diff --git a/apps/marketing/package.json b/apps/marketing/package.json index 9089405fb..c3898bf0a 100644 --- a/apps/marketing/package.json +++ b/apps/marketing/package.json @@ -7,7 +7,8 @@ "dev": "PORT=3001 next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "copy:pdfjs": "node ../../scripts/copy-pdfjs.cjs" }, "dependencies": { "@documenso/lib": "*", @@ -37,4 +38,4 @@ "@types/react": "18.2.18", "@types/react-dom": "18.2.7" } -} \ No newline at end of file +} diff --git a/apps/marketing/public/pdf.worker.min.js b/apps/marketing/public/pdf.worker.min.js new file mode 100644 index 000000000..3b79c94ef --- /dev/null +++ b/apps/marketing/public/pdf.worker.min.js @@ -0,0 +1,56611 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2023 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ +!(function webpackUniversalModuleDefinition(e, t) { + 'object' == typeof exports && 'object' == typeof module + ? (module.exports = t()) + : 'function' == typeof define && define.amd + ? define('pdfjs-dist/build/pdf.worker', [], t) + : 'object' == typeof exports + ? (exports['pdfjs-dist/build/pdf.worker'] = t()) + : (e['pdfjs-dist/build/pdf.worker'] = e.pdfjsWorker = t()); +})(globalThis, () => + (() => { + 'use strict'; + var e = [ + , + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.WorkerTask = t.WorkerMessageHandler = void 0; + var r = a(2), + i = a(3), + n = a(4), + s = a(6), + o = a(71), + c = a(65), + l = a(102), + h = a(103), + u = a(104); + class WorkerTask { + constructor(e) { + this.name = e; + this.terminated = !1; + this._capability = new r.PromiseCapability(); + } + get finished() { + return this._capability.promise; + } + finish() { + this._capability.resolve(); + } + terminate() { + this.terminated = !0; + } + ensureNotTerminated() { + if (this.terminated) throw new Error('Worker task was terminated'); + } + } + t.WorkerTask = WorkerTask; + class WorkerMessageHandler { + static setup(e, t) { + let a = !1; + e.on('test', function (t) { + if (!a) { + a = !0; + e.send('test', t instanceof Uint8Array); + } + }); + e.on('configure', function (e) { + (0, r.setVerbosityLevel)(e.verbosity); + }); + e.on('GetDocRequest', function (e) { + return WorkerMessageHandler.createDocumentHandler(e, t); + }); + } + static createDocumentHandler(e, t) { + let a, + d = !1, + f = null; + const g = new Set(), + p = (0, r.getVerbosityLevel)(), + { docId: m, apiVersion: b } = e, + y = '3.6.172'; + if (b !== y) + throw new Error(`The API version "${b}" does not match the Worker version "${y}".`); + const w = []; + for (const e in []) w.push(e); + if (w.length) + throw new Error( + 'The `Array.prototype` contains unexpected enumerable properties: ' + + w.join(', ') + + '; thus breaking e.g. `for...in` iteration of `Array`s.', + ); + if ( + (l.isNodeJS && 'undefined' == typeof Path2D) || + 'undefined' == typeof ReadableStream + ) { + const e = + 'The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `Path2D` and/or `ReadableStream`); '; + if (l.isNodeJS) throw new Error(e + 'please use a `legacy`-build instead.'); + throw new Error(e + 'please update to a supported browser.'); + } + const S = m + '_worker'; + let x = new h.MessageHandler(S, m, t); + function ensureNotTerminated() { + if (d) throw new Error('Worker was terminated'); + } + function startWorkerTask(e) { + g.add(e); + } + function finishWorkerTask(e) { + e.finish(); + g.delete(e); + } + async function loadDocument(e) { + await a.ensureDoc('checkHeader'); + await a.ensureDoc('parseStartXRef'); + await a.ensureDoc('parse', [e]); + await a.ensureDoc('checkFirstPage', [e]); + await a.ensureDoc('checkLastPage', [e]); + const t = await a.ensureDoc('isPureXfa'); + if (t) { + const e = new WorkerTask('loadXfaFonts'); + startWorkerTask(e); + await Promise.all([ + a + .loadXfaFonts(x, e) + .catch((e) => {}) + .then(() => finishWorkerTask(e)), + a.loadXfaImages(), + ]); + } + const [r, i] = await Promise.all([ + a.ensureDoc('numPages'), + a.ensureDoc('fingerprints'), + ]); + return { + numPages: r, + fingerprints: i, + htmlForXfa: t ? await a.ensureDoc('htmlForXfa') : null, + }; + } + function getPdfManager({ + data: e, + password: t, + disableAutoFetch: a, + rangeChunkSize: n, + length: o, + docBaseUrl: c, + enableXfa: l, + evaluatorOptions: h, + }) { + const d = { + source: null, + disableAutoFetch: a, + docBaseUrl: c, + docId: m, + enableXfa: l, + evaluatorOptions: h, + handler: x, + length: o, + password: t, + rangeChunkSize: n, + }, + g = new r.PromiseCapability(); + let p; + if (e) { + try { + d.source = e; + p = new s.LocalPdfManager(d); + g.resolve(p); + } catch (e) { + g.reject(e); + } + return g.promise; + } + let b, + y = []; + try { + b = new u.PDFWorkerStream(x); + } catch (e) { + g.reject(e); + return g.promise; + } + const w = b.getFullReader(); + w.headersReady + .then(function () { + if (w.isRangeSupported) { + d.source = b; + d.length = w.contentLength; + d.disableAutoFetch ||= w.isStreamingSupported; + p = new s.NetworkPdfManager(d); + for (const e of y) p.sendProgressiveData(e); + y = []; + g.resolve(p); + f = null; + } + }) + .catch(function (e) { + g.reject(e); + f = null; + }); + let S = 0; + new Promise(function (e, t) { + const readChunk = function ({ value: e, done: a }) { + try { + ensureNotTerminated(); + if (a) { + p || + (function () { + const e = (0, i.arrayBuffersToBytes)(y); + o && + e.length !== o && + (0, r.warn)('reported HTTP length is different from actual'); + try { + d.source = e; + p = new s.LocalPdfManager(d); + g.resolve(p); + } catch (e) { + g.reject(e); + } + y = []; + })(); + f = null; + return; + } + S += e.byteLength; + w.isStreamingSupported || + x.send('DocProgress', { + loaded: S, + total: Math.max(S, w.contentLength || 0), + }); + p ? p.sendProgressiveData(e) : y.push(e); + w.read().then(readChunk, t); + } catch (e) { + t(e); + } + }; + w.read().then(readChunk, t); + }).catch(function (e) { + g.reject(e); + f = null; + }); + f = function (e) { + b.cancelAllRequests(e); + }; + return g.promise; + } + x.on('GetPage', function (e) { + return a.getPage(e.pageIndex).then(function (e) { + return Promise.all([ + a.ensure(e, 'rotate'), + a.ensure(e, 'ref'), + a.ensure(e, 'userUnit'), + a.ensure(e, 'view'), + ]).then(function ([e, t, a, r]) { + return { rotate: e, ref: t, userUnit: a, view: r }; + }); + }); + }); + x.on('GetPageIndex', function (e) { + const t = n.Ref.get(e.num, e.gen); + return a.ensureCatalog('getPageIndex', [t]); + }); + x.on('GetDestinations', function (e) { + return a.ensureCatalog('destinations'); + }); + x.on('GetDestination', function (e) { + return a.ensureCatalog('getDestination', [e.id]); + }); + x.on('GetPageLabels', function (e) { + return a.ensureCatalog('pageLabels'); + }); + x.on('GetPageLayout', function (e) { + return a.ensureCatalog('pageLayout'); + }); + x.on('GetPageMode', function (e) { + return a.ensureCatalog('pageMode'); + }); + x.on('GetViewerPreferences', function (e) { + return a.ensureCatalog('viewerPreferences'); + }); + x.on('GetOpenAction', function (e) { + return a.ensureCatalog('openAction'); + }); + x.on('GetAttachments', function (e) { + return a.ensureCatalog('attachments'); + }); + x.on('GetJavaScript', function (e) { + return a.ensureCatalog('javaScript'); + }); + x.on('GetDocJSActions', function (e) { + return a.ensureCatalog('jsActions'); + }); + x.on('GetPageJSActions', function ({ pageIndex: e }) { + return a.getPage(e).then(function (e) { + return a.ensure(e, 'jsActions'); + }); + }); + x.on('GetOutline', function (e) { + return a.ensureCatalog('documentOutline'); + }); + x.on('GetOptionalContentConfig', function (e) { + return a.ensureCatalog('optionalContentConfig'); + }); + x.on('GetPermissions', function (e) { + return a.ensureCatalog('permissions'); + }); + x.on('GetMetadata', function (e) { + return Promise.all([a.ensureDoc('documentInfo'), a.ensureCatalog('metadata')]); + }); + x.on('GetMarkInfo', function (e) { + return a.ensureCatalog('markInfo'); + }); + x.on('GetData', function (e) { + return a.requestLoadedStream().then(function (e) { + return e.bytes; + }); + }); + x.on('GetAnnotations', function ({ pageIndex: e, intent: t }) { + return a.getPage(e).then(function (a) { + const r = new WorkerTask(`GetAnnotations: page ${e}`); + startWorkerTask(r); + return a.getAnnotationsData(x, r, t).then( + (e) => { + finishWorkerTask(r); + return e; + }, + (e) => { + finishWorkerTask(r); + throw e; + }, + ); + }); + }); + x.on('GetFieldObjects', function (e) { + return a.ensureDoc('fieldObjects'); + }); + x.on('HasJSActions', function (e) { + return a.ensureDoc('hasJSActions'); + }); + x.on('GetCalculationOrderIds', function (e) { + return a.ensureDoc('calculationOrderIds'); + }); + x.on( + 'SaveDocument', + function ({ isPureXfa: e, numPages: t, annotationStorage: s, filename: o }) { + const l = [ + a.requestLoadedStream(), + a.ensureCatalog('acroForm'), + a.ensureCatalog('acroFormRef'), + a.ensureDoc('xref'), + a.ensureDoc('startXRef'), + ], + h = e ? null : (0, i.getNewAnnotationsMap)(s); + if (h) + for (const [e, t] of h) + l.push( + a.getPage(e).then((a) => { + const r = new WorkerTask(`Save (editor): page ${e}`); + return a.saveNewAnnotations(x, r, t).finally(function () { + finishWorkerTask(r); + }); + }), + ); + if (e) l.push(a.serializeXfaData(s)); + else + for (let e = 0; e < t; e++) + l.push( + a.getPage(e).then(function (t) { + const a = new WorkerTask(`Save: page ${e}`); + return t.save(x, a, s).finally(function () { + finishWorkerTask(a); + }); + }), + ); + return Promise.all(l).then(function ([t, a, i, s, l, ...h]) { + let u = [], + d = null; + if (e) { + d = h[0]; + if (!d) return t.bytes; + } else { + u = h.flat(2); + if (0 === u.length) return t.bytes; + } + const f = i && a instanceof n.Dict && u.some((e) => e.needAppearances), + g = (a instanceof n.Dict && a.get('XFA')) || null; + let p = null, + m = !1; + if (Array.isArray(g)) { + for (let e = 0, t = g.length; e < t; e += 2) + if ('datasets' === g[e]) { + p = g[e + 1]; + m = !0; + } + null === p && (p = s.getNewTemporaryRef()); + } else g && (0, r.warn)('Unsupported XFA type.'); + let b = Object.create(null); + if (s.trailer) { + const e = Object.create(null), + t = s.trailer.get('Info') || null; + t instanceof n.Dict && + t.forEach((t, a) => { + 'string' == typeof a && (e[t] = (0, r.stringToPDFString)(a)); + }); + b = { + rootRef: s.trailer.getRaw('Root') || null, + encryptRef: s.trailer.getRaw('Encrypt') || null, + newRef: s.getNewTemporaryRef(), + infoRef: s.trailer.getRaw('Info') || null, + info: e, + fileIds: s.trailer.get('ID') || null, + startXRef: s.lastXRefStreamPos ?? l, + filename: o, + }; + } + try { + return (0, + c.incrementalUpdate)({ originalData: t.bytes, xrefInfo: b, newRefs: u, xref: s, hasXfa: !!g, xfaDatasetsRef: p, hasXfaDatasetsEntry: m, needAppearances: f, acroFormRef: i, acroForm: a, xfaData: d }); + } finally { + s.resetNewTemporaryRef(); + } + }); + }, + ); + x.on('GetOperatorList', function (e, t) { + const i = e.pageIndex; + a.getPage(i).then(function (a) { + const n = new WorkerTask(`GetOperatorList: page ${i}`); + startWorkerTask(n); + const s = p >= r.VerbosityLevel.INFOS ? Date.now() : 0; + a.getOperatorList({ + handler: x, + sink: t, + task: n, + intent: e.intent, + cacheKey: e.cacheKey, + annotationStorage: e.annotationStorage, + }).then( + function (e) { + finishWorkerTask(n); + s && + (0, r.info)( + `page=${i + 1} - getOperatorList: time=${Date.now() - s}ms, len=${ + e.length + }`, + ); + t.close(); + }, + function (e) { + finishWorkerTask(n); + n.terminated || t.error(e); + }, + ); + }); + }); + x.on('GetTextContent', function (e, t) { + const { pageIndex: i, includeMarkedContent: n, disableNormalization: s } = e; + a.getPage(i).then(function (e) { + const a = new WorkerTask('GetTextContent: page ' + i); + startWorkerTask(a); + const o = p >= r.VerbosityLevel.INFOS ? Date.now() : 0; + e.extractTextContent({ + handler: x, + task: a, + sink: t, + includeMarkedContent: n, + disableNormalization: s, + }).then( + function () { + finishWorkerTask(a); + o && + (0, r.info)( + `page=${i + 1} - getTextContent: time=` + (Date.now() - o) + 'ms', + ); + t.close(); + }, + function (e) { + finishWorkerTask(a); + a.terminated || t.error(e); + }, + ); + }); + }); + x.on('GetStructTree', function (e) { + return a.getPage(e.pageIndex).then(function (e) { + return a.ensure(e, 'getStructTree'); + }); + }); + x.on('FontFallback', function (e) { + return a.fontFallback(e.id, x); + }); + x.on('Cleanup', function (e) { + return a.cleanup(!0); + }); + x.on('Terminate', function (e) { + d = !0; + const t = []; + if (a) { + a.terminate(new r.AbortException('Worker was terminated.')); + const e = a.cleanup(); + t.push(e); + a = null; + } else (0, o.clearGlobalCaches)(); + f && f(new r.AbortException('Worker was terminated.')); + for (const e of g) { + t.push(e.finished); + e.terminate(); + } + return Promise.all(t).then(function () { + x.destroy(); + x = null; + }); + }); + x.on('Ready', function (t) { + !(function setupDoc(e) { + function onSuccess(e) { + ensureNotTerminated(); + x.send('GetDoc', { pdfInfo: e }); + } + function onFailure(e) { + ensureNotTerminated(); + if (e instanceof r.PasswordException) { + const t = new WorkerTask(`PasswordException: response ${e.code}`); + startWorkerTask(t); + x.sendWithPromise('PasswordRequest', e) + .then(function ({ password: e }) { + finishWorkerTask(t); + a.updatePassword(e); + pdfManagerReady(); + }) + .catch(function () { + finishWorkerTask(t); + x.send('DocException', e); + }); + } else + e instanceof r.InvalidPDFException || + e instanceof r.MissingPDFException || + e instanceof r.UnexpectedResponseException || + e instanceof r.UnknownErrorException + ? x.send('DocException', e) + : x.send( + 'DocException', + new r.UnknownErrorException(e.message, e.toString()), + ); + } + function pdfManagerReady() { + ensureNotTerminated(); + loadDocument(!1).then(onSuccess, function (e) { + ensureNotTerminated(); + e instanceof i.XRefParseException + ? a.requestLoadedStream().then(function () { + ensureNotTerminated(); + loadDocument(!0).then(onSuccess, onFailure); + }) + : onFailure(e); + }); + } + ensureNotTerminated(); + getPdfManager(e) + .then(function (e) { + if (d) { + e.terminate(new r.AbortException('Worker was terminated.')); + throw new Error('Worker was terminated'); + } + a = e; + a.requestLoadedStream(!0).then((e) => { + x.send('DataLoaded', { length: e.bytes.byteLength }); + }); + }) + .then(pdfManagerReady, onFailure); + })(e); + e = null; + }); + return S; + } + static initializeFromPort(e) { + const t = new h.MessageHandler('worker', 'main', e); + WorkerMessageHandler.setup(t, e); + t.send('ready', null); + } + } + t.WorkerMessageHandler = WorkerMessageHandler; + 'undefined' == typeof window && + !l.isNodeJS && + 'undefined' != typeof self && + (function isMessagePort(e) { + return 'function' == typeof e.postMessage && 'onmessage' in e; + })(self) && + WorkerMessageHandler.initializeFromPort(self); + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.VerbosityLevel = + t.Util = + t.UnknownErrorException = + t.UnexpectedResponseException = + t.TextRenderingMode = + t.RenderingIntentFlag = + t.PromiseCapability = + t.PermissionFlag = + t.PasswordResponses = + t.PasswordException = + t.PageActionEventType = + t.OPS = + t.MissingPDFException = + t.MAX_IMAGE_SIZE_TO_CACHE = + t.LINE_FACTOR = + t.LINE_DESCENT_FACTOR = + t.InvalidPDFException = + t.ImageKind = + t.IDENTITY_MATRIX = + t.FormatError = + t.FeatureTest = + t.FONT_IDENTITY_MATRIX = + t.DocumentActionEventType = + t.CMapCompressionType = + t.BaseException = + t.BASELINE_FACTOR = + t.AnnotationType = + t.AnnotationStateModelType = + t.AnnotationReviewState = + t.AnnotationReplyType = + t.AnnotationMode = + t.AnnotationMarkedState = + t.AnnotationFlag = + t.AnnotationFieldFlag = + t.AnnotationEditorType = + t.AnnotationEditorPrefix = + t.AnnotationEditorParamsType = + t.AnnotationBorderStyleType = + t.AnnotationActionEventType = + t.AbortException = + void 0; + t.assert = function assert(e, t) { + e || unreachable(t); + }; + t.bytesToString = function bytesToString(e) { + ('object' == typeof e && void 0 !== e?.length) || + unreachable('Invalid argument for bytesToString'); + const t = e.length, + a = 8192; + if (t < a) return String.fromCharCode.apply(null, e); + const r = []; + for (let i = 0; i < t; i += a) { + const n = Math.min(i + a, t), + s = e.subarray(i, n); + r.push(String.fromCharCode.apply(null, s)); + } + return r.join(''); + }; + t.createValidAbsoluteUrl = function createValidAbsoluteUrl(e, t = null, a = null) { + if (!e) return null; + try { + if (a && 'string' == typeof e) { + if (a.addDefaultProtocol && e.startsWith('www.')) { + const t = e.match(/\./g); + t?.length >= 2 && (e = `http://${e}`); + } + if (a.tryConvertEncoding) + try { + e = stringToUTF8String(e); + } catch (e) {} + } + const r = t ? new URL(e, t) : new URL(e); + if ( + (function _isValidProtocol(e) { + switch (e?.protocol) { + case 'http:': + case 'https:': + case 'ftp:': + case 'mailto:': + case 'tel:': + return !0; + default: + return !1; + } + })(r) + ) + return r; + } catch (e) {} + return null; + }; + t.getModificationDate = function getModificationDate(e = new Date()) { + return [ + e.getUTCFullYear().toString(), + (e.getUTCMonth() + 1).toString().padStart(2, '0'), + e.getUTCDate().toString().padStart(2, '0'), + e.getUTCHours().toString().padStart(2, '0'), + e.getUTCMinutes().toString().padStart(2, '0'), + e.getUTCSeconds().toString().padStart(2, '0'), + ].join(''); + }; + t.getVerbosityLevel = function getVerbosityLevel() { + return r; + }; + t.info = function info(e) { + r >= a.INFOS && console.log(`Info: ${e}`); + }; + t.isArrayBuffer = function isArrayBuffer(e) { + return 'object' == typeof e && void 0 !== e?.byteLength; + }; + t.isArrayEqual = function isArrayEqual(e, t) { + if (e.length !== t.length) return !1; + for (let a = 0, r = e.length; a < r; a++) if (e[a] !== t[a]) return !1; + return !0; + }; + t.normalizeUnicode = function normalizeUnicode(e) { + if (!o) { + o = + /([\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; + c = new Map([['ſt', 'ſt']]); + } + return e.replaceAll(o, (e, t, a) => (t ? t.normalize('NFKC') : c.get(a))); + }; + t.objectFromMap = function objectFromMap(e) { + const t = Object.create(null); + for (const [a, r] of e) t[a] = r; + return t; + }; + t.objectSize = function objectSize(e) { + return Object.keys(e).length; + }; + t.setVerbosityLevel = function setVerbosityLevel(e) { + Number.isInteger(e) && (r = e); + }; + t.shadow = shadow; + t.string32 = function string32(e) { + return String.fromCharCode((e >> 24) & 255, (e >> 16) & 255, (e >> 8) & 255, 255 & e); + }; + t.stringToBytes = stringToBytes; + t.stringToPDFString = function stringToPDFString(e) { + if (e[0] >= 'ï') { + let t; + 'þ' === e[0] && 'ÿ' === e[1] + ? (t = 'utf-16be') + : 'ÿ' === e[0] && 'þ' === e[1] + ? (t = 'utf-16le') + : 'ï' === e[0] && '»' === e[1] && '¿' === e[2] && (t = 'utf-8'); + if (t) + try { + const a = new TextDecoder(t, { fatal: !0 }), + r = stringToBytes(e); + return a.decode(r); + } catch (e) { + warn(`stringToPDFString: "${e}".`); + } + } + const t = []; + for (let a = 0, r = e.length; a < r; a++) { + const r = s[e.charCodeAt(a)]; + t.push(r ? String.fromCharCode(r) : e.charAt(a)); + } + return t.join(''); + }; + t.stringToUTF8String = stringToUTF8String; + t.unreachable = unreachable; + t.utf8StringToString = function utf8StringToString(e) { + return unescape(encodeURIComponent(e)); + }; + t.warn = warn; + t.IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; + t.FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; + t.MAX_IMAGE_SIZE_TO_CACHE = 1e7; + t.LINE_FACTOR = 1.35; + t.LINE_DESCENT_FACTOR = 0.35; + t.BASELINE_FACTOR = 0.25925925925925924; + t.RenderingIntentFlag = { + ANY: 1, + DISPLAY: 2, + PRINT: 4, + SAVE: 8, + ANNOTATIONS_FORMS: 16, + ANNOTATIONS_STORAGE: 32, + ANNOTATIONS_DISABLE: 64, + OPLIST: 256, + }; + t.AnnotationMode = { DISABLE: 0, ENABLE: 1, ENABLE_FORMS: 2, ENABLE_STORAGE: 3 }; + t.AnnotationEditorPrefix = 'pdfjs_internal_editor_'; + t.AnnotationEditorType = { DISABLE: -1, NONE: 0, FREETEXT: 3, INK: 15 }; + t.AnnotationEditorParamsType = { + FREETEXT_SIZE: 1, + FREETEXT_COLOR: 2, + FREETEXT_OPACITY: 3, + INK_COLOR: 11, + INK_THICKNESS: 12, + INK_OPACITY: 13, + }; + t.PermissionFlag = { + PRINT: 4, + MODIFY_CONTENTS: 8, + COPY: 16, + MODIFY_ANNOTATIONS: 32, + FILL_INTERACTIVE_FORMS: 256, + COPY_FOR_ACCESSIBILITY: 512, + ASSEMBLE: 1024, + PRINT_HIGH_QUALITY: 2048, + }; + t.TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7, + FILL_STROKE_MASK: 3, + ADD_TO_PATH_FLAG: 4, + }; + t.ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; + t.AnnotationType = { + 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, + }; + t.AnnotationStateModelType = { MARKED: 'Marked', REVIEW: 'Review' }; + t.AnnotationMarkedState = { MARKED: 'Marked', UNMARKED: 'Unmarked' }; + t.AnnotationReviewState = { + ACCEPTED: 'Accepted', + REJECTED: 'Rejected', + CANCELLED: 'Cancelled', + COMPLETED: 'Completed', + NONE: 'None', + }; + t.AnnotationReplyType = { GROUP: 'Group', REPLY: 'R' }; + t.AnnotationFlag = { + INVISIBLE: 1, + HIDDEN: 2, + PRINT: 4, + NOZOOM: 8, + NOROTATE: 16, + NOVIEW: 32, + READONLY: 64, + LOCKED: 128, + TOGGLENOVIEW: 256, + LOCKEDCONTENTS: 512, + }; + t.AnnotationFieldFlag = { + READONLY: 1, + REQUIRED: 2, + NOEXPORT: 4, + MULTILINE: 4096, + PASSWORD: 8192, + NOTOGGLETOOFF: 16384, + RADIO: 32768, + PUSHBUTTON: 65536, + COMBO: 131072, + EDIT: 262144, + SORT: 524288, + FILESELECT: 1048576, + MULTISELECT: 2097152, + DONOTSPELLCHECK: 4194304, + DONOTSCROLL: 8388608, + COMB: 16777216, + RICHTEXT: 33554432, + RADIOSINUNISON: 33554432, + COMMITONSELCHANGE: 67108864, + }; + t.AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, INSET: 4, UNDERLINE: 5 }; + t.AnnotationActionEventType = { + 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', + }; + t.DocumentActionEventType = { + WC: 'WillClose', + WS: 'WillSave', + DS: 'DidSave', + WP: 'WillPrint', + DP: 'DidPrint', + }; + t.PageActionEventType = { O: 'PageOpen', C: 'PageClose' }; + const a = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }; + t.VerbosityLevel = a; + t.CMapCompressionType = { NONE: 0, BINARY: 1 }; + t.OPS = { + 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, + }; + t.PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; + let r = a.WARNINGS; + function warn(e) { + r >= a.WARNINGS && console.log(`Warning: ${e}`); + } + function unreachable(e) { + throw new Error(e); + } + function shadow(e, t, a, r = !1) { + Object.defineProperty(e, t, { + value: a, + enumerable: !r, + configurable: !0, + writable: !1, + }); + return a; + } + const i = (function BaseExceptionClosure() { + function BaseException(e, t) { + this.constructor === BaseException && unreachable('Cannot initialize BaseException.'); + this.message = e; + this.name = t; + } + BaseException.prototype = new Error(); + BaseException.constructor = BaseException; + return BaseException; + })(); + t.BaseException = i; + t.PasswordException = class PasswordException extends i { + constructor(e, t) { + super(e, 'PasswordException'); + this.code = t; + } + }; + t.UnknownErrorException = class UnknownErrorException extends i { + constructor(e, t) { + super(e, 'UnknownErrorException'); + this.details = t; + } + }; + t.InvalidPDFException = class InvalidPDFException extends i { + constructor(e) { + super(e, 'InvalidPDFException'); + } + }; + t.MissingPDFException = class MissingPDFException extends i { + constructor(e) { + super(e, 'MissingPDFException'); + } + }; + t.UnexpectedResponseException = class UnexpectedResponseException extends i { + constructor(e, t) { + super(e, 'UnexpectedResponseException'); + this.status = t; + } + }; + t.FormatError = class FormatError extends i { + constructor(e) { + super(e, 'FormatError'); + } + }; + t.AbortException = class AbortException extends i { + constructor(e) { + super(e, 'AbortException'); + } + }; + function stringToBytes(e) { + 'string' != typeof e && unreachable('Invalid argument for stringToBytes'); + const t = e.length, + a = new Uint8Array(t); + for (let r = 0; r < t; ++r) a[r] = 255 & e.charCodeAt(r); + return a; + } + t.FeatureTest = class FeatureTest { + static get isLittleEndian() { + return shadow( + this, + 'isLittleEndian', + (function isLittleEndian() { + const e = new Uint8Array(4); + e[0] = 1; + return 1 === new Uint32Array(e.buffer, 0, 1)[0]; + })(), + ); + } + static get isEvalSupported() { + return shadow( + this, + 'isEvalSupported', + (function isEvalSupported() { + try { + new Function(''); + return !0; + } catch (e) { + return !1; + } + })(), + ); + } + static get isOffscreenCanvasSupported() { + return shadow( + this, + 'isOffscreenCanvasSupported', + 'undefined' != typeof OffscreenCanvas, + ); + } + static get platform() { + return 'undefined' == typeof navigator + ? shadow(this, 'platform', { isWin: !1, isMac: !1 }) + : shadow(this, 'platform', { + isWin: navigator.platform.includes('Win'), + isMac: navigator.platform.includes('Mac'), + }); + } + }; + const n = [...Array(256).keys()].map((e) => e.toString(16).padStart(2, '0')); + class Util { + static makeHexColor(e, t, a) { + return `#${n[e]}${n[t]}${n[a]}`; + } + static scaleMinMax(e, t) { + let a; + if (e[0]) { + if (e[0] < 0) { + a = t[0]; + t[0] = t[1]; + t[1] = a; + } + t[0] *= e[0]; + t[1] *= e[0]; + if (e[3] < 0) { + a = t[2]; + t[2] = t[3]; + t[3] = a; + } + t[2] *= e[3]; + t[3] *= e[3]; + } else { + a = t[0]; + t[0] = t[2]; + t[2] = a; + a = t[1]; + t[1] = t[3]; + t[3] = a; + if (e[1] < 0) { + a = t[2]; + t[2] = t[3]; + t[3] = a; + } + t[2] *= e[1]; + t[3] *= e[1]; + if (e[2] < 0) { + a = t[0]; + t[0] = t[1]; + t[1] = a; + } + t[0] *= e[2]; + t[1] *= e[2]; + } + t[0] += e[4]; + t[1] += e[4]; + t[2] += e[5]; + t[3] += e[5]; + } + static transform(e, t) { + return [ + e[0] * t[0] + e[2] * t[1], + e[1] * t[0] + e[3] * t[1], + e[0] * t[2] + e[2] * t[3], + e[1] * t[2] + e[3] * t[3], + e[0] * t[4] + e[2] * t[5] + e[4], + e[1] * t[4] + e[3] * t[5] + e[5], + ]; + } + static applyTransform(e, t) { + return [e[0] * t[0] + e[1] * t[2] + t[4], e[0] * t[1] + e[1] * t[3] + t[5]]; + } + static applyInverseTransform(e, t) { + const a = t[0] * t[3] - t[1] * t[2]; + return [ + (e[0] * t[3] - e[1] * t[2] + t[2] * t[5] - t[4] * t[3]) / a, + (-e[0] * t[1] + e[1] * t[0] + t[4] * t[1] - t[5] * t[0]) / a, + ]; + } + static getAxialAlignedBoundingBox(e, t) { + const a = Util.applyTransform(e, t), + r = Util.applyTransform(e.slice(2, 4), t), + i = Util.applyTransform([e[0], e[3]], t), + n = Util.applyTransform([e[2], e[1]], t); + return [ + Math.min(a[0], r[0], i[0], n[0]), + Math.min(a[1], r[1], i[1], n[1]), + Math.max(a[0], r[0], i[0], n[0]), + Math.max(a[1], r[1], i[1], n[1]), + ]; + } + static inverseTransform(e) { + const t = e[0] * e[3] - e[1] * e[2]; + return [ + e[3] / t, + -e[1] / t, + -e[2] / t, + e[0] / t, + (e[2] * e[5] - e[4] * e[3]) / t, + (e[4] * e[1] - e[5] * e[0]) / t, + ]; + } + static singularValueDecompose2dScale(e) { + const t = [e[0], e[2], e[1], e[3]], + a = e[0] * t[0] + e[1] * t[2], + r = e[0] * t[1] + e[1] * t[3], + i = e[2] * t[0] + e[3] * t[2], + n = e[2] * t[1] + e[3] * t[3], + s = (a + n) / 2, + o = Math.sqrt((a + n) ** 2 - 4 * (a * n - i * r)) / 2, + c = s + o || 1, + l = s - o || 1; + return [Math.sqrt(c), Math.sqrt(l)]; + } + static normalizeRect(e) { + const t = e.slice(0); + if (e[0] > e[2]) { + t[0] = e[2]; + t[2] = e[0]; + } + if (e[1] > e[3]) { + t[1] = e[3]; + t[3] = e[1]; + } + return t; + } + static intersect(e, t) { + const a = Math.max(Math.min(e[0], e[2]), Math.min(t[0], t[2])), + r = Math.min(Math.max(e[0], e[2]), Math.max(t[0], t[2])); + if (a > r) return null; + const i = Math.max(Math.min(e[1], e[3]), Math.min(t[1], t[3])), + n = Math.min(Math.max(e[1], e[3]), Math.max(t[1], t[3])); + return i > n ? null : [a, i, r, n]; + } + static bezierBoundingBox(e, t, a, r, i, n, s, o) { + const c = [], + l = [[], []]; + let h, u, d, f, g, p, m, b; + for (let l = 0; l < 2; ++l) { + if (0 === l) { + u = 6 * e - 12 * a + 6 * i; + h = -3 * e + 9 * a - 9 * i + 3 * s; + d = 3 * a - 3 * e; + } else { + u = 6 * t - 12 * r + 6 * n; + h = -3 * t + 9 * r - 9 * n + 3 * o; + d = 3 * r - 3 * t; + } + if (Math.abs(h) < 1e-12) { + if (Math.abs(u) < 1e-12) continue; + f = -d / u; + 0 < f && f < 1 && c.push(f); + } else { + m = u * u - 4 * d * h; + b = Math.sqrt(m); + if (!(m < 0)) { + g = (-u + b) / (2 * h); + 0 < g && g < 1 && c.push(g); + p = (-u - b) / (2 * h); + 0 < p && p < 1 && c.push(p); + } + } + } + let y, + w = c.length; + const S = w; + for (; w--; ) { + f = c[w]; + y = 1 - f; + l[0][w] = y * y * y * e + 3 * y * y * f * a + 3 * y * f * f * i + f * f * f * s; + l[1][w] = y * y * y * t + 3 * y * y * f * r + 3 * y * f * f * n + f * f * f * o; + } + l[0][S] = e; + l[1][S] = t; + l[0][S + 1] = s; + l[1][S + 1] = o; + l[0].length = l[1].length = S + 2; + return [Math.min(...l[0]), Math.min(...l[1]), Math.max(...l[0]), Math.max(...l[1])]; + } + } + t.Util = Util; + const s = [ + 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, + ]; + function stringToUTF8String(e) { + return decodeURIComponent(escape(e)); + } + t.PromiseCapability = class PromiseCapability { + #e = !1; + constructor() { + this.promise = new Promise((e, t) => { + this.resolve = (t) => { + this.#e = !0; + e(t); + }; + this.reject = (e) => { + this.#e = !0; + t(e); + }; + }); + } + get settled() { + return this.#e; + } + }; + let o = null, + c = null; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XRefParseException = + t.XRefEntryException = + t.ParserEOFException = + t.PDF_VERSION_REGEXP = + t.MissingDataException = + void 0; + t.arrayBuffersToBytes = function arrayBuffersToBytes(e) { + const t = e.length; + if (0 === t) return new Uint8Array(0); + if (1 === t) return new Uint8Array(e[0]); + let a = 0; + for (let r = 0; r < t; r++) a += e[r].byteLength; + const r = new Uint8Array(a); + let i = 0; + for (let a = 0; a < t; a++) { + const t = new Uint8Array(e[a]); + r.set(t, i); + i += t.byteLength; + } + return r; + }; + t.collectActions = function collectActions(e, t, a) { + const n = Object.create(null), + s = getInheritableProperty({ dict: t, key: 'AA', stopWhenFound: !1 }); + if (s) + for (let t = s.length - 1; t >= 0; t--) { + const r = s[t]; + if (r instanceof i.Dict) + for (const t of r.getKeys()) { + const s = a[t]; + if (!s) continue; + const o = []; + _collectJS(r.getRaw(t), e, o, new i.RefSet()); + o.length > 0 && (n[s] = o); + } + } + if (t.has('A')) { + const a = []; + _collectJS(t.get('A'), e, a, new i.RefSet()); + a.length > 0 && (n.Action = a); + } + return (0, r.objectSize)(n) > 0 ? n : null; + }; + t.encodeToXmlString = function encodeToXmlString(e) { + const t = []; + let a = 0; + for (let r = 0, i = e.length; r < i; r++) { + const i = e.codePointAt(r); + if (32 <= i && i <= 126) { + const n = o[i]; + if (n) { + a < r && t.push(e.substring(a, r)); + t.push(n); + a = r + 1; + } + } else { + a < r && t.push(e.substring(a, r)); + t.push(`&#x${i.toString(16).toUpperCase()};`); + i > 55295 && (i < 57344 || i > 65533) && r++; + a = r + 1; + } + } + if (0 === t.length) return e; + a < e.length && t.push(e.substring(a, e.length)); + return t.join(''); + }; + t.escapePDFName = function escapePDFName(e) { + const t = []; + let a = 0; + for (let r = 0, i = e.length; r < i; r++) { + const i = e.charCodeAt(r); + if ( + i < 33 || + i > 126 || + 35 === i || + 40 === i || + 41 === i || + 60 === i || + 62 === i || + 91 === i || + 93 === i || + 123 === i || + 125 === i || + 47 === i || + 37 === i + ) { + a < r && t.push(e.substring(a, r)); + t.push(`#${i.toString(16)}`); + a = r + 1; + } + } + if (0 === t.length) return e; + a < e.length && t.push(e.substring(a, e.length)); + return t.join(''); + }; + t.escapeString = function escapeString(e) { + return e.replaceAll(/([()\\\n\r])/g, (e) => + '\n' === e ? '\\n' : '\r' === e ? '\\r' : `\\${e}`, + ); + }; + t.getInheritableProperty = getInheritableProperty; + t.getLookupTableFactory = function getLookupTableFactory(e) { + let t; + return function () { + if (e) { + t = Object.create(null); + e(t); + e = null; + } + return t; + }; + }; + t.getNewAnnotationsMap = function getNewAnnotationsMap(e) { + if (!e) return null; + const t = new Map(); + for (const [a, i] of e) { + if (!a.startsWith(r.AnnotationEditorPrefix)) continue; + let e = t.get(i.pageIndex); + if (!e) { + e = []; + t.set(i.pageIndex, e); + } + e.push(i); + } + return t.size > 0 ? t : null; + }; + t.getRotationMatrix = function getRotationMatrix(e, t, a) { + switch (e) { + case 90: + return [0, 1, -1, 0, t, 0]; + case 180: + return [-1, 0, 0, -1, t, a]; + case 270: + return [0, -1, 1, 0, 0, a]; + default: + throw new Error('Invalid rotation'); + } + }; + t.isAscii = function isAscii(e) { + return /^[\x00-\x7F]*$/.test(e); + }; + t.isWhiteSpace = function isWhiteSpace(e) { + return 32 === e || 9 === e || 13 === e || 10 === e; + }; + t.log2 = function log2(e) { + if (e <= 0) return 0; + return Math.ceil(Math.log2(e)); + }; + t.numberToString = function numberToString(e) { + if (Number.isInteger(e)) return e.toString(); + const t = Math.round(100 * e); + if (t % 100 == 0) return (t / 100).toString(); + if (t % 10 == 0) return e.toFixed(1); + return e.toFixed(2); + }; + t.parseXFAPath = function parseXFAPath(e) { + const t = /(.+)\[(\d+)\]$/; + return e.split('.').map((e) => { + const a = e.match(t); + return a ? { name: a[1], pos: parseInt(a[2], 10) } : { name: e, pos: 0 }; + }); + }; + t.readInt8 = function readInt8(e, t) { + return (e[t] << 24) >> 24; + }; + t.readUint16 = function readUint16(e, t) { + return (e[t] << 8) | e[t + 1]; + }; + t.readUint32 = function readUint32(e, t) { + return ((e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]) >>> 0; + }; + t.recoverJsURL = function recoverJsURL(e) { + const t = new RegExp( + '^\\s*(' + + ['app.launchURL', 'window.open', 'xfa.host.gotoURL'] + .join('|') + .replaceAll('.', '\\.') + + ')\\((?:\'|")([^\'"]*)(?:\'|")(?:,\\s*(\\w+)\\)|\\))', + 'i', + ).exec(e); + if (t && t[2]) { + const e = t[2]; + let a = !1; + 'true' === t[3] && 'app.launchURL' === t[1] && (a = !0); + return { url: e, newWindow: a }; + } + return null; + }; + t.stringToUTF16HexString = function stringToUTF16HexString(e) { + const t = []; + for (let a = 0, r = e.length; a < r; a++) { + const r = e.charCodeAt(a); + t.push( + ((r >> 8) & 255).toString(16).padStart(2, '0'), + (255 & r).toString(16).padStart(2, '0'), + ); + } + return t.join(''); + }; + t.stringToUTF16String = function stringToUTF16String(e, t = !1) { + const a = []; + t && a.push('þÿ'); + for (let t = 0, r = e.length; t < r; t++) { + const r = e.charCodeAt(t); + a.push(String.fromCharCode((r >> 8) & 255), String.fromCharCode(255 & r)); + } + return a.join(''); + }; + t.toRomanNumerals = function toRomanNumerals(e, t = !1) { + (0, r.assert)(Number.isInteger(e) && e > 0, 'The number should be a positive integer.'); + const a = []; + let i; + for (; e >= 1e3; ) { + e -= 1e3; + a.push('M'); + } + i = (e / 100) | 0; + e %= 100; + a.push(s[i]); + i = (e / 10) | 0; + e %= 10; + a.push(s[10 + i]); + a.push(s[20 + e]); + const n = a.join(''); + return t ? n.toLowerCase() : n; + }; + t.validateCSSFont = function validateCSSFont(e) { + const t = new Set([ + '100', + '200', + '300', + '400', + '500', + '600', + '700', + '800', + '900', + '1000', + 'normal', + 'bold', + 'bolder', + 'lighter', + ]), + { fontFamily: a, fontWeight: i, italicAngle: n } = e, + s = /^("|').*("|')$/.exec(a); + if (s && s[1] === s[2]) { + if (new RegExp(`[^\\\\]${s[1]}`).test(a.slice(1, -1))) { + (0, r.warn)(`XFA - FontFamily contains unescaped ${s[1]}: ${a}.`); + return !1; + } + } else + for (const e of a.split(/[ \t]+/)) + if (/^(\d|(-(\d|-)))/.test(e) || !/^[\w-\\]+$/.test(e)) { + (0, r.warn)(`XFA - FontFamily contains invalid : ${a}.`); + return !1; + } + const o = i ? i.toString() : ''; + e.fontWeight = t.has(o) ? o : '400'; + const c = parseFloat(n); + e.italicAngle = isNaN(c) || c < -90 || c > 90 ? '14' : n.toString(); + return !0; + }; + var r = a(2), + i = a(4), + n = a(5); + t.PDF_VERSION_REGEXP = /^[1-9]\.\d$/; + class MissingDataException extends r.BaseException { + constructor(e, t) { + super(`Missing data [${e}, ${t})`, 'MissingDataException'); + this.begin = e; + this.end = t; + } + } + t.MissingDataException = MissingDataException; + class ParserEOFException extends r.BaseException { + constructor(e) { + super(e, 'ParserEOFException'); + } + } + t.ParserEOFException = ParserEOFException; + class XRefEntryException extends r.BaseException { + constructor(e) { + super(e, 'XRefEntryException'); + } + } + t.XRefEntryException = XRefEntryException; + class XRefParseException extends r.BaseException { + constructor(e) { + super(e, 'XRefParseException'); + } + } + t.XRefParseException = XRefParseException; + function getInheritableProperty({ + dict: e, + key: t, + getArray: a = !1, + stopWhenFound: r = !0, + }) { + let n; + const s = new i.RefSet(); + for (; e instanceof i.Dict && (!e.objId || !s.has(e.objId)); ) { + e.objId && s.put(e.objId); + const i = a ? e.getArray(t) : e.get(t); + if (void 0 !== i) { + if (r) return i; + (n ||= []).push(i); + } + e = e.get('Parent'); + } + return n; + } + const s = [ + '', + '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', + ]; + function _collectJS(e, t, a, s) { + if (!e) return; + let o = null; + if (e instanceof i.Ref) { + if (s.has(e)) return; + o = e; + s.put(o); + e = t.fetch(e); + } + if (Array.isArray(e)) for (const r of e) _collectJS(r, t, a, s); + else if (e instanceof i.Dict) { + if ((0, i.isName)(e.get('S'), 'JavaScript')) { + const t = e.get('JS'); + let i; + t instanceof n.BaseStream ? (i = t.getString()) : 'string' == typeof t && (i = t); + i &&= (0, r.stringToPDFString)(i).replaceAll('\0', ''); + i && a.push(i); + } + _collectJS(e.getRaw('Next'), t, a, s); + } + o && s.remove(o); + } + const o = { 60: '<', 62: '>', 38: '&', 34: '"', 39: ''' }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.RefSetCache = + t.RefSet = + t.Ref = + t.Name = + t.EOF = + t.Dict = + t.Cmd = + t.CIRCULAR_REF = + void 0; + t.clearPrimitiveCaches = function clearPrimitiveCaches() { + s = Object.create(null); + o = Object.create(null); + c = Object.create(null); + }; + t.isCmd = function isCmd(e, t) { + return e instanceof Cmd && (void 0 === t || e.cmd === t); + }; + t.isDict = function isDict(e, t) { + return e instanceof Dict && (void 0 === t || isName(e.get('Type'), t)); + }; + t.isName = isName; + t.isRefsEqual = function isRefsEqual(e, t) { + return e.num === t.num && e.gen === t.gen; + }; + var r = a(2); + const i = Symbol('CIRCULAR_REF'); + t.CIRCULAR_REF = i; + const n = Symbol('EOF'); + t.EOF = n; + let s = Object.create(null), + o = Object.create(null), + c = Object.create(null); + class Name { + constructor(e) { + this.name = e; + } + static get(e) { + return (o[e] ||= new Name(e)); + } + } + t.Name = Name; + class Cmd { + constructor(e) { + this.cmd = e; + } + static get(e) { + return (s[e] ||= new Cmd(e)); + } + } + t.Cmd = Cmd; + const l = function nonSerializableClosure() { + return l; + }; + class Dict { + constructor(e = null) { + this._map = Object.create(null); + this.xref = e; + this.objId = null; + this.suppressEncryption = !1; + this.__nonSerializable__ = l; + } + assignXref(e) { + this.xref = e; + } + get size() { + return Object.keys(this._map).length; + } + get(e, t, a) { + let r = this._map[e]; + if (void 0 === r && void 0 !== t) { + r = this._map[t]; + void 0 === r && void 0 !== a && (r = this._map[a]); + } + return r instanceof Ref && this.xref + ? this.xref.fetch(r, this.suppressEncryption) + : r; + } + async getAsync(e, t, a) { + let r = this._map[e]; + if (void 0 === r && void 0 !== t) { + r = this._map[t]; + void 0 === r && void 0 !== a && (r = this._map[a]); + } + return r instanceof Ref && this.xref + ? this.xref.fetchAsync(r, this.suppressEncryption) + : r; + } + getArray(e, t, a) { + let r = this._map[e]; + if (void 0 === r && void 0 !== t) { + r = this._map[t]; + void 0 === r && void 0 !== a && (r = this._map[a]); + } + r instanceof Ref && this.xref && (r = this.xref.fetch(r, this.suppressEncryption)); + if (Array.isArray(r)) { + r = r.slice(); + for (let e = 0, t = r.length; e < t; e++) + r[e] instanceof Ref && + this.xref && + (r[e] = this.xref.fetch(r[e], this.suppressEncryption)); + } + return r; + } + getRaw(e) { + return this._map[e]; + } + getKeys() { + return Object.keys(this._map); + } + getRawValues() { + return Object.values(this._map); + } + set(e, t) { + this._map[e] = t; + } + has(e) { + return void 0 !== this._map[e]; + } + forEach(e) { + for (const t in this._map) e(t, this.get(t)); + } + static get empty() { + const e = new Dict(null); + e.set = (e, t) => { + (0, r.unreachable)('Should not call `set` on the empty dictionary.'); + }; + return (0, r.shadow)(this, 'empty', e); + } + static merge({ xref: e, dictArray: t, mergeSubDicts: a = !1 }) { + const r = new Dict(e), + i = new Map(); + for (const e of t) + if (e instanceof Dict) + for (const [t, r] of Object.entries(e._map)) { + let e = i.get(t); + if (void 0 === e) { + e = []; + i.set(t, e); + } else if (!(a && r instanceof Dict)) continue; + e.push(r); + } + for (const [t, a] of i) { + if (1 === a.length || !(a[0] instanceof Dict)) { + r._map[t] = a[0]; + continue; + } + const i = new Dict(e); + for (const e of a) + for (const [t, a] of Object.entries(e._map)) + void 0 === i._map[t] && (i._map[t] = a); + i.size > 0 && (r._map[t] = i); + } + i.clear(); + return r.size > 0 ? r : Dict.empty; + } + } + t.Dict = Dict; + class Ref { + constructor(e, t) { + this.num = e; + this.gen = t; + } + toString() { + return 0 === this.gen ? `${this.num}R` : `${this.num}R${this.gen}`; + } + static get(e, t) { + const a = 0 === t ? `${e}R` : `${e}R${t}`; + return (c[a] ||= new Ref(e, t)); + } + } + t.Ref = Ref; + class RefSet { + constructor(e = null) { + this._set = new Set(e && 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(); + } + } + t.RefSet = RefSet; + class RefSetCache { + constructor() { + this._map = 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, t) { + this._map.set(e.toString(), t); + } + putAlias(e, t) { + this._map.set(e.toString(), this.get(t)); + } + [Symbol.iterator]() { + return this._map.values(); + } + clear() { + this._map.clear(); + } + } + t.RefSetCache = RefSetCache; + function isName(e, t) { + return e instanceof Name && (void 0 === t || e.name === t); + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.BaseStream = void 0; + var r = a(2); + class BaseStream { + constructor() { + this.constructor === BaseStream && + (0, r.unreachable)('Cannot initialize BaseStream.'); + } + get length() { + (0, r.unreachable)('Abstract getter `length` accessed'); + } + get isEmpty() { + (0, r.unreachable)('Abstract getter `isEmpty` accessed'); + } + get isDataLoaded() { + return (0, r.shadow)(this, 'isDataLoaded', !0); + } + getByte() { + (0, r.unreachable)('Abstract method `getByte` called'); + } + getBytes(e) { + (0, r.unreachable)('Abstract method `getBytes` called'); + } + peekByte() { + const e = this.getByte(); + -1 !== e && this.pos--; + return e; + } + peekBytes(e) { + const t = this.getBytes(e); + this.pos -= t.length; + return t; + } + getUint16() { + const e = this.getByte(), + t = this.getByte(); + return -1 === e || -1 === t ? -1 : (e << 8) + t; + } + getInt32() { + return ( + (this.getByte() << 24) + + (this.getByte() << 16) + + (this.getByte() << 8) + + this.getByte() + ); + } + getByteRange(e, t) { + (0, r.unreachable)('Abstract method `getByteRange` called'); + } + getString(e) { + return (0, r.bytesToString)(this.getBytes(e)); + } + skip(e) { + this.pos += e || 1; + } + reset() { + (0, r.unreachable)('Abstract method `reset` called'); + } + moveStart() { + (0, r.unreachable)('Abstract method `moveStart` called'); + } + makeSubStream(e, t, a = null) { + (0, r.unreachable)('Abstract method `makeSubStream` called'); + } + getBaseStreams() { + return null; + } + } + t.BaseStream = BaseStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.NetworkPdfManager = t.LocalPdfManager = void 0; + var r = a(2), + i = a(7), + n = a(3), + s = a(9), + o = a(8); + class BasePdfManager { + constructor(e) { + this.constructor === BasePdfManager && + (0, r.unreachable)('Cannot initialize BasePdfManager.'); + this._docBaseUrl = (function parseDocBaseUrl(e) { + if (e) { + const t = (0, r.createValidAbsoluteUrl)(e); + if (t) return t.href; + (0, r.warn)(`Invalid absolute docBaseUrl: "${e}".`); + } + return null; + })(e.docBaseUrl); + this._docId = e.docId; + this._password = e.password; + this.enableXfa = e.enableXfa; + e.evaluatorOptions.isOffscreenCanvasSupported &&= + r.FeatureTest.isOffscreenCanvasSupported; + this.evaluatorOptions = e.evaluatorOptions; + } + get docId() { + return this._docId; + } + get password() { + return this._password; + } + get docBaseUrl() { + const e = this.pdfDocument.catalog; + return (0, r.shadow)(this, 'docBaseUrl', e.baseUrl || this._docBaseUrl); + } + ensureDoc(e, t) { + return this.ensure(this.pdfDocument, e, t); + } + ensureXRef(e, t) { + return this.ensure(this.pdfDocument.xref, e, t); + } + ensureCatalog(e, t) { + return this.ensure(this.pdfDocument.catalog, e, t); + } + getPage(e) { + return this.pdfDocument.getPage(e); + } + fontFallback(e, t) { + return this.pdfDocument.fontFallback(e, t); + } + loadXfaFonts(e, t) { + return this.pdfDocument.loadXfaFonts(e, t); + } + loadXfaImages() { + return this.pdfDocument.loadXfaImages(); + } + serializeXfaData(e) { + return this.pdfDocument.serializeXfaData(e); + } + cleanup(e = !1) { + return this.pdfDocument.cleanup(e); + } + async ensure(e, t, a) { + (0, r.unreachable)('Abstract method `ensure` called'); + } + requestRange(e, t) { + (0, r.unreachable)('Abstract method `requestRange` called'); + } + requestLoadedStream(e = !1) { + (0, r.unreachable)('Abstract method `requestLoadedStream` called'); + } + sendProgressiveData(e) { + (0, r.unreachable)('Abstract method `sendProgressiveData` called'); + } + updatePassword(e) { + this._password = e; + } + terminate(e) { + (0, r.unreachable)('Abstract method `terminate` called'); + } + } + t.LocalPdfManager = class LocalPdfManager extends BasePdfManager { + constructor(e) { + super(e); + const t = new o.Stream(e.source); + this.pdfDocument = new s.PDFDocument(this, t); + this._loadedStreamPromise = Promise.resolve(t); + } + async ensure(e, t, a) { + const r = e[t]; + return 'function' == typeof r ? r.apply(e, a) : r; + } + requestRange(e, t) { + return Promise.resolve(); + } + requestLoadedStream(e = !1) { + return this._loadedStreamPromise; + } + terminate(e) {} + }; + t.NetworkPdfManager = class NetworkPdfManager extends BasePdfManager { + constructor(e) { + super(e); + this.streamManager = new i.ChunkedStreamManager(e.source, { + msgHandler: e.handler, + length: e.length, + disableAutoFetch: e.disableAutoFetch, + rangeChunkSize: e.rangeChunkSize, + }); + this.pdfDocument = new s.PDFDocument(this, this.streamManager.getStream()); + } + async ensure(e, t, a) { + try { + const r = e[t]; + return 'function' == typeof r ? r.apply(e, a) : r; + } catch (r) { + if (!(r instanceof n.MissingDataException)) throw r; + await this.requestRange(r.begin, r.end); + return this.ensure(e, t, a); + } + } + requestRange(e, t) { + return this.streamManager.requestRange(e, t); + } + requestLoadedStream(e = !1) { + return this.streamManager.requestAllChunks(e); + } + sendProgressiveData(e) { + this.streamManager.onReceiveData({ chunk: e }); + } + terminate(e) { + this.streamManager.abort(e); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ChunkedStreamManager = t.ChunkedStream = void 0; + var r = a(3), + i = a(2), + n = a(8); + class ChunkedStream extends n.Stream { + constructor(e, t, a) { + super(new Uint8Array(e), 0, e, null); + this.chunkSize = t; + this._loadedChunks = new Set(); + this.numChunks = Math.ceil(e / t); + this.manager = a; + this.progressiveDataLength = 0; + this.lastSuccessfulEnsureByteChunk = -1; + } + getMissingChunks() { + const e = []; + for (let t = 0, a = this.numChunks; t < a; ++t) + this._loadedChunks.has(t) || e.push(t); + return e; + } + get numChunksLoaded() { + return this._loadedChunks.size; + } + get isDataLoaded() { + return this.numChunksLoaded === this.numChunks; + } + onReceiveData(e, t) { + const a = this.chunkSize; + if (e % a != 0) throw new Error(`Bad begin offset: ${e}`); + const r = e + t.byteLength; + if (r % a != 0 && r !== this.bytes.length) throw new Error(`Bad end offset: ${r}`); + this.bytes.set(new Uint8Array(t), e); + const i = Math.floor(e / a), + n = Math.floor((r - 1) / a) + 1; + for (let e = i; e < n; ++e) this._loadedChunks.add(e); + } + onReceiveProgressiveData(e) { + let t = this.progressiveDataLength; + const a = Math.floor(t / this.chunkSize); + this.bytes.set(new Uint8Array(e), t); + t += e.byteLength; + this.progressiveDataLength = t; + const r = t >= this.end ? this.numChunks : Math.floor(t / this.chunkSize); + for (let e = a; e < r; ++e) this._loadedChunks.add(e); + } + ensureByte(e) { + if (e < this.progressiveDataLength) return; + const t = Math.floor(e / this.chunkSize); + if (!(t > this.numChunks) && t !== this.lastSuccessfulEnsureByteChunk) { + if (!this._loadedChunks.has(t)) throw new r.MissingDataException(e, e + 1); + this.lastSuccessfulEnsureByteChunk = t; + } + } + ensureRange(e, t) { + if (e >= t) return; + if (t <= this.progressiveDataLength) return; + const a = Math.floor(e / this.chunkSize); + if (a > this.numChunks) return; + const i = Math.min(Math.floor((t - 1) / this.chunkSize) + 1, this.numChunks); + for (let n = a; n < i; ++n) + if (!this._loadedChunks.has(n)) throw new r.MissingDataException(e, t); + } + nextEmptyChunk(e) { + const t = this.numChunks; + for (let a = 0; a < t; ++a) { + const r = (e + a) % t; + if (!this._loadedChunks.has(r)) return r; + } + return null; + } + hasChunk(e) { + return this._loadedChunks.has(e); + } + getByte() { + const e = this.pos; + if (e >= this.end) return -1; + e >= this.progressiveDataLength && this.ensureByte(e); + return this.bytes[this.pos++]; + } + getBytes(e) { + const t = this.bytes, + a = this.pos, + r = this.end; + if (!e) { + r > this.progressiveDataLength && this.ensureRange(a, r); + return t.subarray(a, r); + } + let i = a + e; + i > r && (i = r); + i > this.progressiveDataLength && this.ensureRange(a, i); + this.pos = i; + return t.subarray(a, i); + } + getByteRange(e, t) { + e < 0 && (e = 0); + t > this.end && (t = this.end); + t > this.progressiveDataLength && this.ensureRange(e, t); + return this.bytes.subarray(e, t); + } + makeSubStream(e, t, a = null) { + t + ? e + t > this.progressiveDataLength && this.ensureRange(e, e + t) + : e >= this.progressiveDataLength && this.ensureByte(e); + function ChunkedStreamSubstream() {} + ChunkedStreamSubstream.prototype = Object.create(this); + ChunkedStreamSubstream.prototype.getMissingChunks = function () { + const e = this.chunkSize, + t = Math.floor(this.start / e), + a = Math.floor((this.end - 1) / e) + 1, + r = []; + for (let e = t; e < a; ++e) this._loadedChunks.has(e) || r.push(e); + return r; + }; + Object.defineProperty(ChunkedStreamSubstream.prototype, 'isDataLoaded', { + get() { + return ( + this.numChunksLoaded === this.numChunks || 0 === this.getMissingChunks().length + ); + }, + configurable: !0, + }); + const r = new ChunkedStreamSubstream(); + r.pos = r.start = e; + r.end = e + t || this.end; + r.dict = a; + return r; + } + getBaseStreams() { + return [this]; + } + } + t.ChunkedStream = ChunkedStream; + t.ChunkedStreamManager = class ChunkedStreamManager { + constructor(e, t) { + this.length = t.length; + this.chunkSize = t.rangeChunkSize; + this.stream = new ChunkedStream(this.length, this.chunkSize, this); + this.pdfNetworkStream = e; + this.disableAutoFetch = t.disableAutoFetch; + this.msgHandler = t.msgHandler; + this.currRequestId = 0; + this._chunksNeededByRequest = new Map(); + this._requestsByChunk = new Map(); + this._promisesByRequest = new Map(); + this.progressiveDataLength = 0; + this.aborted = !1; + this._loadedStreamCapability = new i.PromiseCapability(); + } + sendRequest(e, t) { + const a = this.pdfNetworkStream.getRangeReader(e, t); + a.isStreamingSupported || (a.onProgress = this.onProgress.bind(this)); + let i = [], + n = 0; + return new Promise((e, t) => { + const readChunk = ({ value: s, done: o }) => { + try { + if (o) { + const t = (0, r.arrayBuffersToBytes)(i); + i = null; + e(t); + return; + } + n += s.byteLength; + a.isStreamingSupported && this.onProgress({ loaded: n }); + i.push(s); + a.read().then(readChunk, t); + } catch (e) { + t(e); + } + }; + a.read().then(readChunk, t); + }).then((t) => { + this.aborted || this.onReceiveData({ chunk: t, begin: e }); + }); + } + requestAllChunks(e = !1) { + if (!e) { + const e = this.stream.getMissingChunks(); + this._requestChunks(e); + } + return this._loadedStreamCapability.promise; + } + _requestChunks(e) { + const t = this.currRequestId++, + a = new Set(); + this._chunksNeededByRequest.set(t, a); + for (const t of e) this.stream.hasChunk(t) || a.add(t); + if (0 === a.size) return Promise.resolve(); + const r = new i.PromiseCapability(); + this._promisesByRequest.set(t, r); + const n = []; + for (const e of a) { + let a = this._requestsByChunk.get(e); + if (!a) { + a = []; + this._requestsByChunk.set(e, a); + n.push(e); + } + a.push(t); + } + if (n.length > 0) { + const e = this.groupChunks(n); + for (const t of e) { + const e = t.beginChunk * this.chunkSize, + a = Math.min(t.endChunk * this.chunkSize, this.length); + this.sendRequest(e, a).catch(r.reject); + } + } + return r.promise.catch((e) => { + if (!this.aborted) throw e; + }); + } + getStream() { + return this.stream; + } + requestRange(e, t) { + t = Math.min(t, this.length); + const a = this.getBeginChunk(e), + r = this.getEndChunk(t), + i = []; + for (let e = a; e < r; ++e) i.push(e); + return this._requestChunks(i); + } + requestRanges(e = []) { + const t = []; + for (const a of e) { + const e = this.getBeginChunk(a.begin), + r = this.getEndChunk(a.end); + for (let a = e; a < r; ++a) t.includes(a) || t.push(a); + } + t.sort(function (e, t) { + return e - t; + }); + return this._requestChunks(t); + } + groupChunks(e) { + const t = []; + let a = -1, + r = -1; + for (let i = 0, n = e.length; i < n; ++i) { + const n = e[i]; + a < 0 && (a = n); + if (r >= 0 && r + 1 !== n) { + t.push({ beginChunk: a, endChunk: r + 1 }); + a = n; + } + i + 1 === e.length && t.push({ beginChunk: a, endChunk: n + 1 }); + r = n; + } + return t; + } + onProgress(e) { + this.msgHandler.send('DocProgress', { + loaded: this.stream.numChunksLoaded * this.chunkSize + e.loaded, + total: this.length, + }); + } + onReceiveData(e) { + const t = e.chunk, + a = void 0 === e.begin, + r = a ? this.progressiveDataLength : e.begin, + i = r + t.byteLength, + n = Math.floor(r / this.chunkSize), + s = + i < this.length ? Math.floor(i / this.chunkSize) : Math.ceil(i / this.chunkSize); + if (a) { + this.stream.onReceiveProgressiveData(t); + this.progressiveDataLength = i; + } else this.stream.onReceiveData(r, t); + this.stream.isDataLoaded && this._loadedStreamCapability.resolve(this.stream); + const o = []; + for (let e = n; e < s; ++e) { + const t = this._requestsByChunk.get(e); + if (t) { + this._requestsByChunk.delete(e); + for (const a of t) { + const t = this._chunksNeededByRequest.get(a); + t.has(e) && t.delete(e); + t.size > 0 || o.push(a); + } + } + } + if (!this.disableAutoFetch && 0 === this._requestsByChunk.size) { + let e; + if (1 === this.stream.numChunksLoaded) { + const t = this.stream.numChunks - 1; + this.stream.hasChunk(t) || (e = t); + } else e = this.stream.nextEmptyChunk(s); + Number.isInteger(e) && this._requestChunks([e]); + } + for (const e of o) { + const t = this._promisesByRequest.get(e); + this._promisesByRequest.delete(e); + t.resolve(); + } + this.msgHandler.send('DocProgress', { + loaded: this.stream.numChunksLoaded * this.chunkSize, + total: this.length, + }); + } + 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 = !0; + this.pdfNetworkStream && this.pdfNetworkStream.cancelAllRequests(e); + for (const t of this._promisesByRequest.values()) t.reject(e); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.StringStream = t.Stream = t.NullStream = void 0; + var r = a(5), + i = a(2); + class Stream extends r.BaseStream { + constructor(e, t, a, r) { + super(); + this.bytes = e instanceof Uint8Array ? e : new Uint8Array(e); + this.start = t || 0; + this.pos = this.start; + this.end = t + a || this.bytes.length; + this.dict = r; + } + get length() { + return this.end - this.start; + } + get isEmpty() { + return 0 === this.length; + } + getByte() { + return this.pos >= this.end ? -1 : this.bytes[this.pos++]; + } + getBytes(e) { + const t = this.bytes, + a = this.pos, + r = this.end; + if (!e) return t.subarray(a, r); + let i = a + e; + i > r && (i = r); + this.pos = i; + return t.subarray(a, i); + } + getByteRange(e, t) { + e < 0 && (e = 0); + t > this.end && (t = this.end); + return this.bytes.subarray(e, t); + } + reset() { + this.pos = this.start; + } + moveStart() { + this.start = this.pos; + } + makeSubStream(e, t, a = null) { + return new Stream(this.bytes.buffer, e, t, a); + } + } + t.Stream = Stream; + t.StringStream = class StringStream extends Stream { + constructor(e) { + super((0, i.stringToBytes)(e)); + } + }; + t.NullStream = class NullStream extends Stream { + constructor() { + super(new Uint8Array(0)); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Page = t.PDFDocument = void 0; + var r = a(10), + i = a(2), + n = a(3), + s = a(4), + o = a(51), + c = a(5), + l = a(67), + h = a(69), + u = a(71), + d = a(100), + f = a(16), + g = a(8), + p = a(75), + m = a(63), + b = a(13), + y = a(18), + w = a(74), + S = a(65), + x = a(76), + C = a(101); + const k = [0, 0, 612, 792]; + class Page { + constructor({ + pdfManager: e, + xref: t, + pageIndex: a, + pageDict: r, + ref: i, + globalIdFactory: n, + fontCache: s, + builtInCMapCache: o, + standardFontDataCache: c, + globalImageCache: l, + nonBlendModesSet: h, + xfaFactory: u, + }) { + this.pdfManager = e; + this.pageIndex = a; + this.pageDict = r; + this.xref = t; + this.ref = i; + this.fontCache = s; + this.builtInCMapCache = o; + this.standardFontDataCache = c; + this.globalImageCache = l; + this.nonBlendModesSet = h; + this.evaluatorOptions = e.evaluatorOptions; + this.resourcesPromise = null; + this.xfaFactory = u; + const d = { obj: 0 }; + this._localIdFactory = class extends n { + static createObjId() { + return `p${a}_${++d.obj}`; + } + static getPageObjId() { + return `page${i.toString()}`; + } + }; + } + _getInheritableProperty(e, t = !1) { + const a = (0, n.getInheritableProperty)({ + dict: this.pageDict, + key: e, + getArray: t, + stopWhenFound: !1, + }); + return Array.isArray(a) + ? 1 !== a.length && a[0] instanceof s.Dict + ? s.Dict.merge({ xref: this.xref, dictArray: a }) + : a[0] + : a; + } + get content() { + return this.pageDict.getArray('Contents'); + } + get resources() { + const e = this._getInheritableProperty('Resources'); + return (0, i.shadow)(this, 'resources', e instanceof s.Dict ? e : s.Dict.empty); + } + _getBoundingBox(e) { + if (this.xfaData) return this.xfaData.bbox; + let t = this._getInheritableProperty(e, !0); + if (Array.isArray(t) && 4 === t.length) { + t = i.Util.normalizeRect(t); + if (t[2] - t[0] > 0 && t[3] - t[1] > 0) return t; + (0, i.warn)(`Empty, or invalid, /${e} entry.`); + } + return null; + } + get mediaBox() { + return (0, i.shadow)(this, 'mediaBox', this._getBoundingBox('MediaBox') || k); + } + get cropBox() { + return (0, i.shadow)( + this, + 'cropBox', + this._getBoundingBox('CropBox') || this.mediaBox, + ); + } + get userUnit() { + let e = this.pageDict.get('UserUnit'); + ('number' != typeof e || e <= 0) && (e = 1); + return (0, i.shadow)(this, 'userUnit', e); + } + get view() { + const { cropBox: e, mediaBox: t } = this; + if (e !== t && !(0, i.isArrayEqual)(e, t)) { + const a = i.Util.intersect(e, t); + if (a && a[2] - a[0] > 0 && a[3] - a[1] > 0) return (0, i.shadow)(this, 'view', a); + (0, i.warn)('Empty /CropBox and /MediaBox intersection.'); + } + return (0, i.shadow)(this, 'view', t); + } + get rotate() { + let e = this._getInheritableProperty('Rotate') || 0; + e % 90 != 0 + ? (e = 0) + : e >= 360 + ? (e %= 360) + : e < 0 && (e = ((e % 360) + 360) % 360); + return (0, i.shadow)(this, 'rotate', e); + } + _onSubStreamError(e, t) { + if (!this.evaluatorOptions.ignoreErrors) throw e; + (0, i.warn)(`getContentStream - ignoring sub-stream (${t}): "${e}".`); + } + getContentStream() { + return this.pdfManager + .ensure(this, 'content') + .then((e) => + e instanceof c.BaseStream + ? e + : Array.isArray(e) + ? new y.StreamsSequenceStream(e, this._onSubStreamError.bind(this)) + : new g.NullStream(), + ); + } + get xfaData() { + return (0, i.shadow)( + this, + 'xfaData', + this.xfaFactory ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) } : null, + ); + } + async saveNewAnnotations(e, t, a) { + if (this.xfaFactory) throw new Error('XFA: Cannot save new annotations.'); + const i = new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }), + n = this.pageDict, + s = this.annotations.slice(), + o = await r.AnnotationFactory.saveNewAnnotations(i, t, a); + for (const { ref: e } of o.annotations) s.push(e); + const c = n.get('Annots'); + n.set('Annots', s); + const l = []; + let h = null; + this.xref.encrypt && + (h = this.xref.encrypt.createCipherTransform(this.ref.num, this.ref.gen)); + (0, S.writeObject)(this.ref, n, l, h); + c && n.set('Annots', c); + const u = o.dependencies; + u.push({ ref: this.ref, data: l.join('') }, ...o.annotations); + return u; + } + save(e, t, a) { + const r = new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }); + return this._parsedAnnotations.then(function (e) { + const n = []; + for (const s of e) + s.mustBePrinted(a) && + n.push( + s.save(r, t, a).catch(function (e) { + (0, + i.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`); + return null; + }), + ); + return Promise.all(n).then(function (e) { + return e.filter((e) => !!e); + }); + }); + } + loadResources(e) { + this.resourcesPromise || + (this.resourcesPromise = this.pdfManager.ensure(this, 'resources')); + return this.resourcesPromise.then(() => + new p.ObjectLoader(this.resources, e, this.xref).load(), + ); + } + getOperatorList({ + handler: e, + sink: t, + task: a, + intent: s, + cacheKey: o, + annotationStorage: c = null, + }) { + const l = this.getContentStream(), + h = this.loadResources([ + 'ColorSpace', + 'ExtGState', + 'Font', + 'Pattern', + 'Properties', + 'Shading', + 'XObject', + ]), + u = new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }), + d = this.xfaFactory ? null : (0, n.getNewAnnotationsMap)(c); + let f = Promise.resolve(null); + if (d) { + const e = d.get(this.pageIndex); + e && (f = r.AnnotationFactory.printNewAnnotations(u, a, e)); + } + const g = Promise.all([l, h]).then(([r]) => { + const i = new m.OperatorList(s, t); + e.send('StartRenderPage', { + transparency: u.hasBlendModes(this.resources, this.nonBlendModesSet), + pageIndex: this.pageIndex, + cacheKey: o, + }); + return u + .getOperatorList({ + stream: r, + task: a, + resources: this.resources, + operatorList: i, + }) + .then(function () { + return i; + }); + }); + return Promise.all([g, this._parsedAnnotations, f]).then(function ([e, t, r]) { + r && (t = t.concat(r)); + if (0 === t.length || s & i.RenderingIntentFlag.ANNOTATIONS_DISABLE) { + e.flush(!0); + return { length: e.totalLength }; + } + const n = !!(s & i.RenderingIntentFlag.ANNOTATIONS_FORMS), + o = !!(s & i.RenderingIntentFlag.ANY), + l = !!(s & i.RenderingIntentFlag.DISPLAY), + h = !!(s & i.RenderingIntentFlag.PRINT), + d = []; + for (const e of t) + (o || (l && e.mustBeViewed(c)) || (h && e.mustBePrinted(c))) && + d.push( + e.getOperatorList(u, a, s, n, c).catch(function (e) { + (0, + i.warn)(`getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`); + return { opList: null, separateForm: !1, separateCanvas: !1 }; + }), + ); + return Promise.all(d).then(function (t) { + let a = !1, + r = !1; + for (const { opList: i, separateForm: n, separateCanvas: s } of t) { + e.addOpList(i); + a ||= n; + r ||= s; + } + e.flush(!0, { form: a, canvas: r }); + return { length: e.totalLength }; + }); + }); + } + extractTextContent({ + handler: e, + task: t, + includeMarkedContent: a, + disableNormalization: r, + sink: i, + }) { + const n = this.getContentStream(), + s = this.loadResources(['ExtGState', 'Font', 'Properties', 'XObject']); + return Promise.all([n, s]).then(([n]) => + new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }).getTextContent({ + stream: n, + task: t, + resources: this.resources, + includeMarkedContent: a, + disableNormalization: r, + sink: i, + viewBox: this.view, + }), + ); + } + async getStructTree() { + const e = await this.pdfManager.ensureCatalog('structTreeRoot'); + if (!e) return null; + return (await this.pdfManager.ensure(this, '_parseStructTree', [e])).serializable; + } + _parseStructTree(e) { + const t = new w.StructTreePage(e, this.pageDict); + t.parse(); + return t; + } + async getAnnotationsData(e, t, a) { + const r = await this._parsedAnnotations; + if (0 === r.length) return []; + const n = [], + s = []; + let o; + const c = !!(a & i.RenderingIntentFlag.ANY), + l = !!(a & i.RenderingIntentFlag.DISPLAY), + h = !!(a & i.RenderingIntentFlag.PRINT); + for (const a of r) { + const r = c || (l && a.viewable); + (r || (h && a.printable)) && n.push(a.data); + if (a.hasTextContent && r) { + o ||= new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }); + s.push( + a.extractTextContent(o, t, this.view).catch(function (e) { + (0, + i.warn)(`getAnnotationsData - ignoring textContent during "${t.name}" task: "${e}".`); + }), + ); + } + } + await Promise.all(s); + return n; + } + get annotations() { + const e = this._getInheritableProperty('Annots'); + return (0, i.shadow)(this, 'annotations', Array.isArray(e) ? e : []); + } + get _parsedAnnotations() { + const e = this.pdfManager.ensure(this, 'annotations').then(() => { + const e = []; + for (const t of this.annotations) + e.push( + r.AnnotationFactory.create( + this.xref, + t, + this.pdfManager, + this._localIdFactory, + !1, + ).catch(function (e) { + (0, i.warn)(`_parsedAnnotations: "${e}".`); + return null; + }), + ); + return Promise.all(e).then(function (e) { + if (0 === e.length) return e; + const t = []; + let a; + for (const i of e) + i && (i instanceof r.PopupAnnotation ? (a ||= []).push(i) : t.push(i)); + a && t.push(...a); + return t; + }); + }); + return (0, i.shadow)(this, '_parsedAnnotations', e); + } + get jsActions() { + const e = (0, n.collectActions)(this.xref, this.pageDict, i.PageActionEventType); + return (0, i.shadow)(this, 'jsActions', e); + } + } + t.Page = Page; + const v = new Uint8Array([37, 80, 68, 70, 45]), + F = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]), + O = new Uint8Array([101, 110, 100, 111, 98, 106]); + function find(e, t, a = 1024, r = !1) { + const i = t.length, + n = e.peekBytes(a), + s = n.length - i; + if (s <= 0) return !1; + if (r) { + const a = i - 1; + let r = n.length - 1; + for (; r >= a; ) { + let s = 0; + for (; s < i && n[r - s] === t[a - s]; ) s++; + if (s >= i) { + e.pos += r - a; + return !0; + } + r--; + } + } else { + let a = 0; + for (; a <= s; ) { + let r = 0; + for (; r < i && n[a + r] === t[r]; ) r++; + if (r >= i) { + e.pos += a; + return !0; + } + a++; + } + } + return !1; + } + t.PDFDocument = class PDFDocument { + constructor(e, t) { + if (t.length <= 0) + throw new i.InvalidPDFException( + 'The PDF file is empty, i.e. its size is zero bytes.', + ); + this.pdfManager = e; + this.stream = t; + this.xref = new C.XRef(t, e); + this._pagePromises = new Map(); + this._version = null; + const a = { font: 0 }; + this._globalIdFactory = class { + static getDocId() { + return `g_${e.docId}`; + } + static createFontId() { + return 'f' + ++a.font; + } + static createObjId() { + (0, i.unreachable)('Abstract method `createObjId` called.'); + } + static getPageObjId() { + (0, i.unreachable)('Abstract method `getPageObjId` called.'); + } + }; + } + parse(e) { + this.xref.parse(e); + this.catalog = new h.Catalog(this.pdfManager, this.xref); + } + get linearization() { + let e = null; + try { + e = f.Linearization.create(this.stream); + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, i.info)(e); + } + return (0, i.shadow)(this, 'linearization', e); + } + get startXRef() { + const e = this.stream; + let t = 0; + if (this.linearization) { + e.reset(); + find(e, O) && (t = e.pos + 6 - e.start); + } else { + const a = 1024, + r = F.length; + let i = !1, + s = e.end; + for (; !i && s > 0; ) { + s -= a - r; + s < 0 && (s = 0); + e.pos = s; + i = find(e, F, a, !0); + } + if (i) { + e.skip(9); + let a; + do { + a = e.getByte(); + } while ((0, n.isWhiteSpace)(a)); + let r = ''; + for (; a >= 32 && a <= 57; ) { + r += String.fromCharCode(a); + a = e.getByte(); + } + t = parseInt(r, 10); + isNaN(t) && (t = 0); + } + } + return (0, i.shadow)(this, 'startXRef', t); + } + checkHeader() { + const e = this.stream; + e.reset(); + if (!find(e, v)) return; + e.moveStart(); + e.skip(v.length); + let t, + a = ''; + for (; (t = e.getByte()) > 32 && a.length < 7; ) a += String.fromCharCode(t); + n.PDF_VERSION_REGEXP.test(a) + ? (this._version = a) + : (0, i.warn)(`Invalid PDF header version: ${a}`); + } + parseStartXRef() { + this.xref.setStartXRef(this.startXRef); + } + get numPages() { + let e = 0; + e = this.catalog.hasActualNumPages + ? this.catalog.numPages + : this.xfaFactory + ? this.xfaFactory.getNumPages() + : this.linearization + ? this.linearization.numPages + : this.catalog.numPages; + return (0, i.shadow)(this, 'numPages', e); + } + _hasOnlyDocumentSignatures(e, t = 0) { + return ( + !!Array.isArray(e) && + e.every((e) => { + if (!((e = this.xref.fetchIfRef(e)) instanceof s.Dict)) return !1; + if (e.has('Kids')) { + if (++t > 10) { + (0, i.warn)('_hasOnlyDocumentSignatures: maximum recursion depth reached'); + return !1; + } + return this._hasOnlyDocumentSignatures(e.get('Kids'), t); + } + const a = (0, s.isName)(e.get('FT'), 'Sig'), + r = e.get('Rect'), + n = Array.isArray(r) && r.every((e) => 0 === e); + return a && n; + }) + ); + } + get _xfaStreams() { + const e = this.catalog.acroForm; + if (!e) return null; + const t = e.get('XFA'), + a = { + 'xdp:xdp': '', + template: '', + datasets: '', + config: '', + connectionSet: '', + localeSet: '', + stylesheet: '', + '/xdp:xdp': '', + }; + if (t instanceof c.BaseStream && !t.isEmpty) { + a['xdp:xdp'] = t; + return a; + } + if (!Array.isArray(t) || 0 === t.length) return null; + for (let e = 0, r = t.length; e < r; e += 2) { + let i; + i = 0 === e ? 'xdp:xdp' : e === r - 2 ? '/xdp:xdp' : t[e]; + if (!a.hasOwnProperty(i)) continue; + const n = this.xref.fetchIfRef(t[e + 1]); + n instanceof c.BaseStream && !n.isEmpty && (a[i] = n); + } + return a; + } + get xfaDatasets() { + const e = this._xfaStreams; + if (!e) return (0, i.shadow)(this, 'xfaDatasets', null); + for (const t of ['datasets', 'xdp:xdp']) { + const a = e[t]; + if (a) + try { + const e = { [t]: (0, i.stringToUTF8String)(a.getString()) }; + return (0, i.shadow)(this, 'xfaDatasets', new d.DatasetReader(e)); + } catch (e) { + (0, i.warn)('XFA - Invalid utf-8 string.'); + break; + } + } + return (0, i.shadow)(this, 'xfaDatasets', null); + } + get xfaData() { + const e = this._xfaStreams; + if (!e) return null; + const t = Object.create(null); + for (const [a, r] of Object.entries(e)) + if (r) + try { + t[a] = (0, i.stringToUTF8String)(r.getString()); + } catch (e) { + (0, i.warn)('XFA - Invalid utf-8 string.'); + return null; + } + return t; + } + get xfaFactory() { + let e; + this.pdfManager.enableXfa && + this.catalog.needsRendering && + this.formInfo.hasXfa && + !this.formInfo.hasAcroForm && + (e = this.xfaData); + return (0, i.shadow)(this, 'xfaFactory', e ? new x.XFAFactory(e) : null); + } + get isPureXfa() { + return !!this.xfaFactory && this.xfaFactory.isValid(); + } + get htmlForXfa() { + return this.xfaFactory ? this.xfaFactory.getPages() : null; + } + async loadXfaImages() { + const e = await this.pdfManager.ensureCatalog('xfaImages'); + if (!e) return; + const t = e.getKeys(), + a = new p.ObjectLoader(e, t, this.xref); + await a.load(); + const r = new Map(); + for (const a of t) { + const t = e.get(a); + t instanceof c.BaseStream && r.set(a, t.getBytes()); + } + this.xfaFactory.setImages(r); + } + async loadXfaFonts(e, t) { + const a = await this.pdfManager.ensureCatalog('acroForm'); + if (!a) return; + const r = await a.getAsync('DR'); + if (!(r instanceof s.Dict)) return; + const c = new p.ObjectLoader(r, ['Font'], this.xref); + await c.load(); + const l = r.get('Font'); + if (!(l instanceof s.Dict)) return; + const h = Object.assign(Object.create(null), this.pdfManager.evaluatorOptions); + h.useSystemFonts = !1; + const u = new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: -1, + idFactory: this._globalIdFactory, + fontCache: this.catalog.fontCache, + builtInCMapCache: this.catalog.builtInCMapCache, + standardFontDataCache: this.catalog.standardFontDataCache, + options: h, + }), + d = new m.OperatorList(), + f = [], + g = { + get font() { + return f.at(-1); + }, + set font(e) { + f.push(e); + }, + clone() { + return this; + }, + }, + y = new Map(); + l.forEach((e, t) => { + y.set(e, t); + }); + const w = []; + for (const [e, a] of y) { + const o = a.get('FontDescriptor'); + if (!(o instanceof s.Dict)) continue; + let c = o.get('FontFamily'); + c = c.replaceAll(/[ ]+(\d)/g, '$1'); + const l = { + fontFamily: c, + fontWeight: o.get('FontWeight'), + italicAngle: -o.get('ItalicAngle'), + }; + (0, n.validateCSSFont)(l) && + w.push( + u + .handleSetFont(r, [s.Name.get(e), 1], null, d, t, g, null, l) + .catch(function (e) { + (0, i.warn)(`loadXfaFonts: "${e}".`); + return null; + }), + ); + } + await Promise.all(w); + const S = this.xfaFactory.setFonts(f); + if (!S) return; + h.ignoreErrors = !0; + w.length = 0; + f.length = 0; + const x = new Set(); + for (const e of S) (0, o.getXfaFontName)(`${e}-Regular`) || x.add(e); + x.size && S.push('PdfJS-Fallback'); + for (const e of S) + if (!x.has(e)) + for (const a 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 n = `${e}-${a.name}`, + c = (0, o.getXfaFontDict)(n); + w.push( + u + .handleSetFont(r, [s.Name.get(n), 1], null, d, t, g, c, { + fontFamily: e, + fontWeight: a.fontWeight, + italicAngle: a.italicAngle, + }) + .catch(function (e) { + (0, i.warn)(`loadXfaFonts: "${e}".`); + return null; + }), + ); + } + await Promise.all(w); + this.xfaFactory.appendFonts(f, x); + } + async serializeXfaData(e) { + return this.xfaFactory ? this.xfaFactory.serializeData(e) : null; + } + get version() { + return this.catalog.version || this._version; + } + get formInfo() { + const e = { hasFields: !1, hasAcroForm: !1, hasXfa: !1, hasSignatures: !1 }, + t = this.catalog.acroForm; + if (!t) return (0, i.shadow)(this, 'formInfo', e); + try { + const a = t.get('Fields'), + r = Array.isArray(a) && a.length > 0; + e.hasFields = r; + const i = t.get('XFA'); + e.hasXfa = + (Array.isArray(i) && i.length > 0) || (i instanceof c.BaseStream && !i.isEmpty); + const n = !!(1 & t.get('SigFlags')), + s = n && this._hasOnlyDocumentSignatures(a); + e.hasAcroForm = r && !s; + e.hasSignatures = n; + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, i.warn)(`Cannot fetch form information: "${e}".`); + } + return (0, i.shadow)(this, 'formInfo', e); + } + get documentInfo() { + const e = { + PDFFormatVersion: this.version, + Language: this.catalog.lang, + EncryptFilterName: this.xref.encrypt ? this.xref.encrypt.filterName : null, + IsLinearized: !!this.linearization, + IsAcroFormPresent: this.formInfo.hasAcroForm, + IsXFAPresent: this.formInfo.hasXfa, + IsCollectionPresent: !!this.catalog.collection, + IsSignaturesPresent: this.formInfo.hasSignatures, + }; + let t; + try { + t = this.xref.trailer.get('Info'); + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, i.info)('The document information dictionary is invalid.'); + } + if (!(t instanceof s.Dict)) return (0, i.shadow)(this, 'documentInfo', e); + for (const a of t.getKeys()) { + const r = t.get(a); + switch (a) { + case 'Title': + case 'Author': + case 'Subject': + case 'Keywords': + case 'Creator': + case 'Producer': + case 'CreationDate': + case 'ModDate': + if ('string' == typeof r) { + e[a] = (0, i.stringToPDFString)(r); + continue; + } + break; + case 'Trapped': + if (r instanceof s.Name) { + e[a] = r; + continue; + } + break; + default: + let t; + switch (typeof r) { + case 'string': + t = (0, i.stringToPDFString)(r); + break; + case 'number': + case 'boolean': + t = r; + break; + default: + r instanceof s.Name && (t = r); + } + if (void 0 === t) { + (0, i.warn)(`Bad value, for custom key "${a}", in Info: ${r}.`); + continue; + } + e.Custom || (e.Custom = Object.create(null)); + e.Custom[a] = t; + continue; + } + (0, i.warn)(`Bad value, for key "${a}", in Info: ${r}.`); + } + return (0, i.shadow)(this, 'documentInfo', e); + } + get fingerprints() { + function validate(e) { + return ( + 'string' == typeof e && e.length > 0 && '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' !== e + ); + } + function hexString(e) { + const t = []; + for (const a of e) { + const e = a.toString(16); + t.push(e.padStart(2, '0')); + } + return t.join(''); + } + const e = this.xref.trailer.get('ID'); + let t, a; + if (Array.isArray(e) && validate(e[0])) { + t = (0, i.stringToBytes)(e[0]); + e[1] !== e[0] && validate(e[1]) && (a = (0, i.stringToBytes)(e[1])); + } else t = (0, l.calculateMD5)(this.stream.getByteRange(0, 1024), 0, 1024); + return (0, i.shadow)(this, 'fingerprints', [hexString(t), a ? hexString(a) : null]); + } + async _getLinearizationPage(e) { + const { catalog: t, linearization: a, xref: r } = this, + n = s.Ref.get(a.objectNumberFirst, 0); + try { + const e = await r.fetchAsync(n); + if (e instanceof s.Dict) { + let a = e.getRaw('Type'); + a instanceof s.Ref && (a = await r.fetchAsync(a)); + if ((0, s.isName)(a, 'Page') || (!e.has('Type') && !e.has('Kids'))) { + t.pageKidsCountCache.has(n) || t.pageKidsCountCache.put(n, 1); + t.pageIndexCache.has(n) || t.pageIndexCache.put(n, 0); + return [e, n]; + } + } + throw new i.FormatError( + "The Linearization dictionary doesn't point to a valid Page dictionary.", + ); + } catch (a) { + (0, i.warn)(`_getLinearizationPage: "${a.message}".`); + return t.getPageDict(e); + } + } + getPage(e) { + const t = this._pagePromises.get(e); + if (t) return t; + const { catalog: a, linearization: r, xfaFactory: i } = this; + let n; + n = i + ? Promise.resolve([s.Dict.empty, null]) + : r && r.pageFirst === e + ? this._getLinearizationPage(e) + : a.getPageDict(e); + n = n.then( + ([t, r]) => + new Page({ + pdfManager: this.pdfManager, + xref: this.xref, + pageIndex: e, + pageDict: t, + ref: r, + globalIdFactory: this._globalIdFactory, + fontCache: a.fontCache, + builtInCMapCache: a.builtInCMapCache, + standardFontDataCache: a.standardFontDataCache, + globalImageCache: a.globalImageCache, + nonBlendModesSet: a.nonBlendModesSet, + xfaFactory: i, + }), + ); + this._pagePromises.set(e, n); + return n; + } + async checkFirstPage(e = !1) { + if (!e) + try { + await this.getPage(0); + } catch (e) { + if (e instanceof n.XRefEntryException) { + this._pagePromises.delete(0); + await this.cleanup(); + throw new n.XRefParseException(); + } + } + } + async checkLastPage(e = !1) { + const { catalog: t, pdfManager: a } = this; + t.setActualNumPages(); + let r; + try { + await Promise.all([ + a.ensureDoc('xfaFactory'), + a.ensureDoc('linearization'), + a.ensureCatalog('numPages'), + ]); + if (this.xfaFactory) return; + r = this.linearization ? this.linearization.numPages : t.numPages; + if (!Number.isInteger(r)) throw new i.FormatError('Page count is not an integer.'); + if (r <= 1) return; + await this.getPage(r - 1); + } catch (s) { + this._pagePromises.delete(r - 1); + await this.cleanup(); + if (s instanceof n.XRefEntryException && !e) throw new n.XRefParseException(); + (0, i.warn)(`checkLastPage - invalid /Pages tree /Count: ${r}.`); + let o; + try { + o = await t.getAllPageDicts(e); + } catch (a) { + if (a instanceof n.XRefEntryException && !e) throw new n.XRefParseException(); + t.setActualNumPages(1); + return; + } + for (const [e, [r, i]] of o) { + let n; + if (r instanceof Error) { + n = Promise.reject(r); + n.catch(() => {}); + } else + n = Promise.resolve( + new Page({ + pdfManager: a, + xref: this.xref, + pageIndex: e, + pageDict: r, + ref: i, + globalIdFactory: this._globalIdFactory, + fontCache: t.fontCache, + builtInCMapCache: t.builtInCMapCache, + standardFontDataCache: t.standardFontDataCache, + globalImageCache: t.globalImageCache, + nonBlendModesSet: t.nonBlendModesSet, + xfaFactory: null, + }), + ); + this._pagePromises.set(e, n); + } + t.setActualNumPages(o.size); + } + } + fontFallback(e, t) { + return this.catalog.fontFallback(e, t); + } + async cleanup(e = !1) { + return this.catalog ? this.catalog.cleanup(e) : (0, u.clearGlobalCaches)(); + } + _collectFieldObjects(e, t, a) { + const n = this.xref.fetchIfRef(t); + if (n.has('T')) { + const t = (0, i.stringToPDFString)(n.get('T')); + e = '' === e ? t : `${e}.${t}`; + } + a.has(e) || a.set(e, []); + a.get(e).push( + r.AnnotationFactory.create(this.xref, t, this.pdfManager, this._localIdFactory, !0) + .then((e) => e && e.getFieldObject()) + .catch(function (e) { + (0, i.warn)(`_collectFieldObjects: "${e}".`); + return null; + }), + ); + if (n.has('Kids')) { + const t = n.get('Kids'); + for (const r of t) this._collectFieldObjects(e, r, a); + } + } + get fieldObjects() { + if (!this.formInfo.hasFields) + return (0, i.shadow)(this, 'fieldObjects', Promise.resolve(null)); + const e = Object.create(null), + t = new Map(); + for (const e of this.catalog.acroForm.get('Fields')) + this._collectFieldObjects('', e, t); + const a = []; + for (const [r, i] of t) + a.push( + Promise.all(i).then((t) => { + (t = t.filter((e) => !!e)).length > 0 && (e[r] = t); + }), + ); + return (0, i.shadow)( + this, + 'fieldObjects', + Promise.all(a).then(() => e), + ); + } + get hasJSActions() { + const e = this.pdfManager.ensureDoc('_parseHasJSActions'); + return (0, i.shadow)(this, 'hasJSActions', e); + } + async _parseHasJSActions() { + const [e, t] = await Promise.all([ + this.pdfManager.ensureCatalog('jsActions'), + this.pdfManager.ensureDoc('fieldObjects'), + ]); + return ( + !!e || (!!t && Object.values(t).some((e) => e.some((e) => null !== e.actions))) + ); + } + get calculationOrderIds() { + const e = this.catalog.acroForm; + if (!e || !e.has('CO')) return (0, i.shadow)(this, 'calculationOrderIds', null); + const t = e.get('CO'); + if (!Array.isArray(t) || 0 === t.length) + return (0, i.shadow)(this, 'calculationOrderIds', null); + const a = []; + for (const e of t) e instanceof s.Ref && a.push(e.toString()); + return 0 === a.length + ? (0, i.shadow)(this, 'calculationOrderIds', null) + : (0, i.shadow)(this, 'calculationOrderIds', a); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PopupAnnotation = + t.MarkupAnnotation = + t.AnnotationFactory = + t.AnnotationBorderStyle = + t.Annotation = + void 0; + t.getQuadPoints = getQuadPoints; + var r = a(2), + i = a(3), + n = a(11), + s = a(4), + o = a(65), + c = a(5), + l = a(60), + h = a(69), + u = a(12), + d = a(72), + f = a(75), + g = a(63), + p = a(8), + m = a(76); + t.AnnotationFactory = class AnnotationFactory { + static create(e, t, a, r, i) { + return Promise.all([ + a.ensureCatalog('acroForm'), + a.ensureCatalog('baseUrl'), + a.ensureCatalog('attachments'), + a.ensureDoc('xfaDatasets'), + i ? this._getPageIndex(e, t, a) : -1, + ]).then(([n, s, o, c, l]) => a.ensure(this, '_create', [e, t, a, r, n, o, c, i, l])); + } + static _create(e, t, a, n, o, c = null, l, h, u = -1) { + const d = e.fetchIfRef(t); + if (!(d instanceof s.Dict)) return; + const f = t instanceof s.Ref ? t.toString() : `annot_${n.createObjId()}`; + let g = d.get('Subtype'); + g = g instanceof s.Name ? g.name : null; + const p = o instanceof s.Dict ? o : s.Dict.empty, + m = { + xref: e, + ref: t, + dict: d, + subtype: g, + id: f, + pdfManager: a, + acroForm: p, + attachments: c, + xfaDatasets: l, + collectFields: h, + needAppearances: !h && !0 === p.get('NeedAppearances'), + pageIndex: u, + isOffscreenCanvasSupported: a.evaluatorOptions.isOffscreenCanvasSupported, + }; + switch (g) { + case 'Link': + return new LinkAnnotation(m); + case 'Text': + return new TextAnnotation(m); + case 'Widget': + let e = (0, i.getInheritableProperty)({ dict: d, key: 'FT' }); + e = e instanceof s.Name ? e.name : null; + switch (e) { + case 'Tx': + return new TextWidgetAnnotation(m); + case 'Btn': + return new ButtonWidgetAnnotation(m); + case 'Ch': + return new ChoiceWidgetAnnotation(m); + case 'Sig': + return new SignatureWidgetAnnotation(m); + } + (0, r.warn)( + `Unimplemented widget field type "${e}", falling back to base field type.`, + ); + return new WidgetAnnotation(m); + case 'Popup': + return new PopupAnnotation(m); + case 'FreeText': + return new FreeTextAnnotation(m); + case 'Line': + return new LineAnnotation(m); + case 'Square': + return new SquareAnnotation(m); + case 'Circle': + return new CircleAnnotation(m); + case 'PolyLine': + return new PolylineAnnotation(m); + case 'Polygon': + return new PolygonAnnotation(m); + case 'Caret': + return new CaretAnnotation(m); + case 'Ink': + return new InkAnnotation(m); + case 'Highlight': + return new HighlightAnnotation(m); + case 'Underline': + return new UnderlineAnnotation(m); + case 'Squiggly': + return new SquigglyAnnotation(m); + case 'StrikeOut': + return new StrikeOutAnnotation(m); + case 'Stamp': + return new StampAnnotation(m); + case 'FileAttachment': + return new FileAttachmentAnnotation(m); + default: + h || + (g + ? (0, r.warn)( + `Unimplemented annotation type "${g}", falling back to base annotation.`, + ) + : (0, r.warn)('Annotation is missing the required /Subtype.')); + return new Annotation(m); + } + } + static async _getPageIndex(e, t, a) { + try { + const r = await e.fetchIfRefAsync(t); + if (!(r instanceof s.Dict)) return -1; + const i = r.getRaw('P'); + if (!(i instanceof s.Ref)) return -1; + return await a.ensureCatalog('getPageIndex', [i]); + } catch (e) { + (0, r.warn)(`_getPageIndex: "${e}".`); + return -1; + } + } + static async saveNewAnnotations(e, t, a) { + const i = e.xref; + let n; + const c = [], + l = []; + for (const h of a) + switch (h.annotationType) { + case r.AnnotationEditorType.FREETEXT: + if (!n) { + const e = new s.Dict(i); + e.set('BaseFont', s.Name.get('Helvetica')); + e.set('Type', s.Name.get('Font')); + e.set('Subtype', s.Name.get('Type1')); + e.set('Encoding', s.Name.get('WinAnsiEncoding')); + const t = []; + n = i.getNewTemporaryRef(); + (0, o.writeObject)(n, e, t, null); + c.push({ ref: n, data: t.join('') }); + } + l.push( + FreeTextAnnotation.createNewAnnotation(i, h, c, { + evaluator: e, + task: t, + baseFontRef: n, + }), + ); + break; + case r.AnnotationEditorType.INK: + l.push(InkAnnotation.createNewAnnotation(i, h, c)); + } + return { annotations: await Promise.all(l), dependencies: c }; + } + static async printNewAnnotations(e, t, a) { + if (!a) return null; + const i = e.xref, + { isOffscreenCanvasSupported: n } = e.options, + s = []; + for (const o of a) + switch (o.annotationType) { + case r.AnnotationEditorType.FREETEXT: + s.push( + FreeTextAnnotation.createNewPrintAnnotation(i, o, { + evaluator: e, + task: t, + isOffscreenCanvasSupported: n, + }), + ); + break; + case r.AnnotationEditorType.INK: + s.push( + InkAnnotation.createNewPrintAnnotation(i, o, { + isOffscreenCanvasSupported: n, + }), + ); + } + return Promise.all(s); + } + }; + function getRgbColor(e, t = new Uint8ClampedArray(3)) { + if (!Array.isArray(e)) return t; + const a = t || new Uint8ClampedArray(3); + switch (e.length) { + case 0: + return null; + case 1: + u.ColorSpace.singletons.gray.getRgbItem(e, 0, a, 0); + return a; + case 3: + u.ColorSpace.singletons.rgb.getRgbItem(e, 0, a, 0); + return a; + case 4: + u.ColorSpace.singletons.cmyk.getRgbItem(e, 0, a, 0); + return a; + default: + return t; + } + } + function getPdfColorArray(e) { + return Array.from(e, (e) => e / 255); + } + function getQuadPoints(e, t) { + const a = e.getArray('QuadPoints'); + if (!Array.isArray(a) || 0 === a.length || a.length % 8 > 0) return null; + const r = []; + for (let e = 0, i = a.length / 8; e < i; e++) { + let i = 1 / 0, + n = -1 / 0, + s = 1 / 0, + o = -1 / 0; + for (let t = 8 * e, r = 8 * e + 8; t < r; t += 2) { + const e = a[t], + r = a[t + 1]; + i = Math.min(e, i); + n = Math.max(e, n); + s = Math.min(r, s); + o = Math.max(r, o); + } + if (null !== t && (i < t[0] || n > t[2] || s < t[1] || o > t[3])) return null; + r.push([ + { x: i, y: o }, + { x: n, y: o }, + { x: i, y: s }, + { x: n, y: s }, + ]); + } + return r; + } + function getTransformMatrix(e, t, a) { + const [i, n, s, o] = r.Util.getAxialAlignedBoundingBox(t, a); + if (i === s || n === o) return [1, 0, 0, 1, e[0], e[1]]; + const c = (e[2] - e[0]) / (s - i), + l = (e[3] - e[1]) / (o - n); + return [c, 0, 0, l, e[0] - i * c, e[1] - n * l]; + } + class Annotation { + constructor(e) { + const { dict: t, xref: a } = e; + this.setTitle(t.get('T')); + this.setContents(t.get('Contents')); + this.setModificationDate(t.get('M')); + this.setFlags(t.get('F')); + this.setRectangle(t.getArray('Rect')); + this.setColor(t.getArray('C')); + this.setBorderStyle(t); + this.setAppearance(t); + this.setOptionalContent(t); + const n = t.get('MK'); + this.setBorderAndBackgroundColors(n); + this.setRotation(n); + this._streams = []; + this.appearance && this._streams.push(this.appearance); + const o = !!(this.flags & r.AnnotationFlag.LOCKED), + c = !!(this.flags & r.AnnotationFlag.LOCKEDCONTENTS); + this.data = { + 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: e.subtype, + hasOwnCanvas: !1, + noRotate: !!(this.flags & r.AnnotationFlag.NOROTATE), + noHTML: o && c, + }; + if (e.collectFields) { + const n = t.get('Kids'); + if (Array.isArray(n)) { + const e = []; + for (const t of n) t instanceof s.Ref && e.push(t.toString()); + 0 !== e.length && (this.data.kidIds = e); + } + this.data.actions = (0, i.collectActions)(a, t, r.AnnotationActionEventType); + this.data.fieldName = this._constructFieldName(t); + this.data.pageIndex = e.pageIndex; + } + this._isOffscreenCanvasSupported = e.isOffscreenCanvasSupported; + this._fallbackFontDict = null; + this._needAppearances = !1; + } + _hasFlag(e, t) { + return !!(e & t); + } + _isViewable(e) { + return ( + !this._hasFlag(e, r.AnnotationFlag.INVISIBLE) && + !this._hasFlag(e, r.AnnotationFlag.NOVIEW) + ); + } + _isPrintable(e) { + return ( + this._hasFlag(e, r.AnnotationFlag.PRINT) && + !this._hasFlag(e, r.AnnotationFlag.INVISIBLE) + ); + } + mustBeViewed(e) { + const t = e && e.get(this.data.id); + return t && void 0 !== t.hidden + ? !t.hidden + : this.viewable && !this._hasFlag(this.flags, r.AnnotationFlag.HIDDEN); + } + mustBePrinted(e) { + const t = e && e.get(this.data.id); + return t && void 0 !== t.print ? t.print : this.printable; + } + get viewable() { + return ( + null !== this.data.quadPoints && (0 === this.flags || this._isViewable(this.flags)) + ); + } + get printable() { + return ( + null !== this.data.quadPoints && 0 !== this.flags && this._isPrintable(this.flags) + ); + } + _parseStringHelper(e) { + const t = 'string' == typeof e ? (0, r.stringToPDFString)(e) : ''; + return { str: t, dir: t && 'rtl' === (0, l.bidi)(t).dir ? 'rtl' : 'ltr' }; + } + setDefaultAppearance(e) { + const t = + (0, i.getInheritableProperty)({ dict: e.dict, key: 'DA' }) || e.acroForm.get('DA'); + this._defaultAppearance = 'string' == typeof t ? t : ''; + this.data.defaultAppearanceData = (0, n.parseDefaultAppearance)( + this._defaultAppearance, + ); + } + setTitle(e) { + this._title = this._parseStringHelper(e); + } + setContents(e) { + this._contents = this._parseStringHelper(e); + } + setModificationDate(e) { + this.modificationDate = 'string' == typeof e ? e : null; + } + setFlags(e) { + this.flags = Number.isInteger(e) && e > 0 ? e : 0; + } + hasFlag(e) { + return this._hasFlag(this.flags, e); + } + setRectangle(e) { + Array.isArray(e) && 4 === e.length + ? (this.rectangle = r.Util.normalizeRect(e)) + : (this.rectangle = [0, 0, 0, 0]); + } + setColor(e) { + this.color = getRgbColor(e); + } + setLineEndings(e) { + this.lineEndings = ['None', 'None']; + if (Array.isArray(e) && 2 === e.length) + for (let t = 0; t < 2; t++) { + const a = e[t]; + if (a instanceof s.Name) + switch (a.name) { + case 'None': + continue; + case 'Square': + case 'Circle': + case 'Diamond': + case 'OpenArrow': + case 'ClosedArrow': + case 'Butt': + case 'ROpenArrow': + case 'RClosedArrow': + case 'Slash': + this.lineEndings[t] = a.name; + continue; + } + (0, r.warn)(`Ignoring invalid lineEnding: ${a}`); + } + } + setRotation(e) { + this.rotation = 0; + if (e instanceof s.Dict) { + let t = e.get('R') || 0; + if (Number.isInteger(t) && 0 !== t) { + t %= 360; + t < 0 && (t += 360); + t % 90 == 0 && (this.rotation = t); + } + } + } + setBorderAndBackgroundColors(e) { + if (e instanceof s.Dict) { + this.borderColor = getRgbColor(e.getArray('BC'), null); + this.backgroundColor = getRgbColor(e.getArray('BG'), null); + } else this.borderColor = this.backgroundColor = null; + } + setBorderStyle(e) { + this.borderStyle = new AnnotationBorderStyle(); + if (e instanceof s.Dict) + if (e.has('BS')) { + const t = e.get('BS'), + a = t.get('Type'); + if (!a || (0, s.isName)(a, 'Border')) { + this.borderStyle.setWidth(t.get('W'), this.rectangle); + this.borderStyle.setStyle(t.get('S')); + this.borderStyle.setDashArray(t.getArray('D')); + } + } else if (e.has('Border')) { + const t = e.getArray('Border'); + if (Array.isArray(t) && t.length >= 3) { + this.borderStyle.setHorizontalCornerRadius(t[0]); + this.borderStyle.setVerticalCornerRadius(t[1]); + this.borderStyle.setWidth(t[2], this.rectangle); + 4 === t.length && this.borderStyle.setDashArray(t[3], !0); + } + } else this.borderStyle.setWidth(0); + } + setAppearance(e) { + this.appearance = null; + const t = e.get('AP'); + if (!(t instanceof s.Dict)) return; + const a = t.get('N'); + if (a instanceof c.BaseStream) { + this.appearance = a; + return; + } + if (!(a instanceof s.Dict)) return; + const r = e.get('AS'); + if (!(r instanceof s.Name && a.has(r.name))) return; + const i = a.get(r.name); + i instanceof c.BaseStream && (this.appearance = i); + } + setOptionalContent(e) { + this.oc = null; + const t = e.get('OC'); + t instanceof s.Name + ? (0, r.warn)('setOptionalContent: Support for /Name-entry is not implemented.') + : t instanceof s.Dict && (this.oc = t); + } + loadResources(e, t) { + return t.dict.getAsync('Resources').then((t) => { + if (!t) return; + return new f.ObjectLoader(t, e, t.xref).load().then(function () { + return t; + }); + }); + } + async getOperatorList(e, t, a, i, n) { + const o = this.data; + let c = this.appearance; + const l = !!(this.data.hasOwnCanvas && a & r.RenderingIntentFlag.DISPLAY); + if (!c) { + if (!l) + return { opList: new g.OperatorList(), separateForm: !1, separateCanvas: !1 }; + c = new p.StringStream(''); + c.dict = new s.Dict(); + } + const h = c.dict, + u = await this.loadResources( + ['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font'], + c, + ), + d = h.getArray('BBox') || [0, 0, 1, 1], + f = h.getArray('Matrix') || [1, 0, 0, 1, 0, 0], + m = getTransformMatrix(o.rect, d, f), + b = new g.OperatorList(); + let y; + this.oc && (y = await e.parseMarkedContentProps(this.oc, null)); + void 0 !== y && b.addOp(r.OPS.beginMarkedContentProps, ['OC', y]); + b.addOp(r.OPS.beginAnnotation, [o.id, o.rect, m, f, l]); + await e.getOperatorList({ + stream: c, + task: t, + resources: u, + operatorList: b, + fallbackFontDict: this._fallbackFontDict, + }); + b.addOp(r.OPS.endAnnotation, []); + void 0 !== y && b.addOp(r.OPS.endMarkedContent, []); + this.reset(); + return { opList: b, separateForm: !1, separateCanvas: l }; + } + async save(e, t, a) { + return null; + } + get hasTextContent() { + return !1; + } + async extractTextContent(e, t, a) { + if (!this.appearance) return; + const r = await this.loadResources( + ['ExtGState', 'Font', 'Properties', 'XObject'], + this.appearance, + ), + i = [], + n = [], + s = { + desiredSize: Math.Infinity, + ready: !0, + enqueue(e, t) { + for (const t of e.items) { + n.push(t.str); + if (t.hasEOL) { + i.push(n.join('')); + n.length = 0; + } + } + }, + }; + await e.getTextContent({ + stream: this.appearance, + task: t, + resources: r, + includeMarkedContent: !0, + sink: s, + viewBox: a, + }); + this.reset(); + n.length && i.push(n.join('')); + i.length > 0 && (this.data.textContent = i); + } + 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')) { + (0, r.warn)('Unknown field name, falling back to empty field name.'); + return ''; + } + if (!e.has('Parent')) return (0, r.stringToPDFString)(e.get('T')); + const t = []; + e.has('T') && t.unshift((0, r.stringToPDFString)(e.get('T'))); + let a = e; + const i = new s.RefSet(); + e.objId && i.put(e.objId); + for (; a.has('Parent'); ) { + a = a.get('Parent'); + if (!(a instanceof s.Dict) || (a.objId && i.has(a.objId))) break; + a.objId && i.put(a.objId); + if (a.has('T')) { + const e = (0, r.stringToPDFString)(a.get('T')); + e.startsWith('#') || t.unshift(e); + } + } + return t.join('.'); + } + } + t.Annotation = Annotation; + class AnnotationBorderStyle { + constructor() { + this.width = 1; + this.style = r.AnnotationBorderStyleType.SOLID; + this.dashArray = [3]; + this.horizontalCornerRadius = 0; + this.verticalCornerRadius = 0; + } + setWidth(e, t = [0, 0, 0, 0]) { + if (e instanceof s.Name) this.width = 0; + else if ('number' == typeof e) { + if (e > 0) { + const a = (t[2] - t[0]) / 2, + i = (t[3] - t[1]) / 2; + if (a > 0 && i > 0 && (e > a || e > i)) { + (0, r.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`); + e = 1; + } + } + this.width = e; + } + } + setStyle(e) { + if (e instanceof s.Name) + switch (e.name) { + case 'S': + this.style = r.AnnotationBorderStyleType.SOLID; + break; + case 'D': + this.style = r.AnnotationBorderStyleType.DASHED; + break; + case 'B': + this.style = r.AnnotationBorderStyleType.BEVELED; + break; + case 'I': + this.style = r.AnnotationBorderStyleType.INSET; + break; + case 'U': + this.style = r.AnnotationBorderStyleType.UNDERLINE; + } + } + setDashArray(e, t = !1) { + if (Array.isArray(e) && e.length > 0) { + let a = !0, + r = !0; + for (const t of e) { + if (!(+t >= 0)) { + a = !1; + break; + } + t > 0 && (r = !1); + } + if (a && !r) { + this.dashArray = e; + t && this.setStyle(s.Name.get('D')); + } else this.width = 0; + } else e && (this.width = 0); + } + setHorizontalCornerRadius(e) { + Number.isInteger(e) && (this.horizontalCornerRadius = e); + } + setVerticalCornerRadius(e) { + Number.isInteger(e) && (this.verticalCornerRadius = e); + } + } + t.AnnotationBorderStyle = AnnotationBorderStyle; + class MarkupAnnotation extends Annotation { + constructor(e) { + super(e); + const { dict: t } = e; + if (t.has('IRT')) { + const e = t.getRaw('IRT'); + this.data.inReplyTo = e instanceof s.Ref ? e.toString() : null; + const a = t.get('RT'); + this.data.replyType = a instanceof s.Name ? a.name : r.AnnotationReplyType.REPLY; + } + if (this.data.replyType === r.AnnotationReplyType.GROUP) { + const e = t.get('IRT'); + this.setTitle(e.get('T')); + this.data.titleObj = this._title; + this.setContents(e.get('Contents')); + this.data.contentsObj = this._contents; + if (e.has('CreationDate')) { + this.setCreationDate(e.get('CreationDate')); + this.data.creationDate = this.creationDate; + } else this.data.creationDate = null; + if (e.has('M')) { + this.setModificationDate(e.get('M')); + this.data.modificationDate = this.modificationDate; + } else this.data.modificationDate = null; + this.data.hasPopup = e.has('Popup'); + if (e.has('C')) { + this.setColor(e.getArray('C')); + this.data.color = this.color; + } else this.data.color = null; + } else { + this.data.titleObj = this._title; + this.setCreationDate(t.get('CreationDate')); + this.data.creationDate = this.creationDate; + this.data.hasPopup = t.has('Popup'); + t.has('C') || (this.data.color = null); + } + t.has('RC') && (this.data.richText = m.XFAFactory.getRichTextAsHtml(t.get('RC'))); + } + setCreationDate(e) { + this.creationDate = 'string' == typeof e ? e : null; + } + _setDefaultAppearance({ + xref: e, + extra: t, + strokeColor: a, + fillColor: r, + blendMode: i, + strokeAlpha: n, + fillAlpha: o, + pointsCallback: c, + }) { + let l = Number.MAX_VALUE, + h = Number.MAX_VALUE, + u = Number.MIN_VALUE, + d = Number.MIN_VALUE; + const f = ['q']; + t && f.push(t); + a && f.push(`${a[0]} ${a[1]} ${a[2]} RG`); + r && f.push(`${r[0]} ${r[1]} ${r[2]} rg`); + let g = this.data.quadPoints; + g || + (g = [ + [ + { x: this.rectangle[0], y: this.rectangle[3] }, + { x: this.rectangle[2], y: this.rectangle[3] }, + { x: this.rectangle[0], y: this.rectangle[1] }, + { x: this.rectangle[2], y: this.rectangle[1] }, + ], + ]); + for (const e of g) { + const [t, a, r, i] = c(f, e); + l = Math.min(l, t); + u = Math.max(u, a); + h = Math.min(h, r); + d = Math.max(d, i); + } + f.push('Q'); + const m = new s.Dict(e), + b = new s.Dict(e); + b.set('Subtype', s.Name.get('Form')); + const y = new p.StringStream(f.join(' ')); + y.dict = b; + m.set('Fm0', y); + const w = new s.Dict(e); + i && w.set('BM', s.Name.get(i)); + 'number' == typeof n && w.set('CA', n); + 'number' == typeof o && w.set('ca', o); + const S = new s.Dict(e); + S.set('GS0', w); + const x = new s.Dict(e); + x.set('ExtGState', S); + x.set('XObject', m); + const C = new s.Dict(e); + C.set('Resources', x); + const k = (this.data.rect = [l, h, u, d]); + C.set('BBox', k); + this.appearance = new p.StringStream('/GS0 gs /Fm0 Do'); + this.appearance.dict = C; + this._streams.push(this.appearance, y); + } + static async createNewAnnotation(e, t, a, r) { + const i = e.getNewTemporaryRef(), + n = await this.createNewAppearanceStream(t, e, r), + s = []; + let c; + if (n) { + const r = e.getNewTemporaryRef(); + c = this.createNewDict(t, e, { apRef: r }); + const i = e.encrypt ? e.encrypt.createCipherTransform(r.num, r.gen) : null; + (0, o.writeObject)(r, n, s, i); + a.push({ ref: r, data: s.join('') }); + } else c = this.createNewDict(t, e, {}); + s.length = 0; + const l = e.encrypt ? e.encrypt.createCipherTransform(i.num, i.gen) : null; + (0, o.writeObject)(i, c, s, l); + return { ref: i, data: s.join('') }; + } + static async createNewPrintAnnotation(e, t, a) { + const r = await this.createNewAppearanceStream(t, e, a), + i = this.createNewDict(t, e, { ap: r }); + return new this.prototype.constructor({ + dict: i, + xref: e, + isOffscreenCanvasSupported: a.isOffscreenCanvasSupported, + }); + } + } + t.MarkupAnnotation = MarkupAnnotation; + class WidgetAnnotation extends Annotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e, + n = this.data; + this.ref = e.ref; + this._needAppearances = e.needAppearances; + n.annotationType = r.AnnotationType.WIDGET; + void 0 === n.fieldName && (n.fieldName = this._constructFieldName(t)); + void 0 === n.actions && + (n.actions = (0, i.collectActions)(a, t, r.AnnotationActionEventType)); + let o = (0, i.getInheritableProperty)({ dict: t, key: 'V', getArray: !0 }); + n.fieldValue = this._decodeFormValue(o); + const c = (0, i.getInheritableProperty)({ dict: t, key: 'DV', getArray: !0 }); + n.defaultFieldValue = this._decodeFormValue(c); + if (void 0 === o && e.xfaDatasets) { + const t = this._title.str; + if (t) { + this._hasValueFromXFA = !0; + n.fieldValue = o = e.xfaDatasets.getValue(t); + } + } + void 0 === o && null !== n.defaultFieldValue && (n.fieldValue = n.defaultFieldValue); + n.alternativeText = (0, r.stringToPDFString)(t.get('TU') || ''); + this.setDefaultAppearance(e); + n.hasAppearance ||= + this._needAppearances && void 0 !== n.fieldValue && null !== n.fieldValue; + const l = (0, i.getInheritableProperty)({ dict: t, key: 'FT' }); + n.fieldType = l instanceof s.Name ? l.name : null; + const h = (0, i.getInheritableProperty)({ dict: t, key: 'DR' }), + u = e.acroForm.get('DR'), + d = this.appearance && this.appearance.dict.get('Resources'); + this._fieldResources = { + localResources: h, + acroFormResources: u, + appearanceResources: d, + mergedResources: s.Dict.merge({ xref: a, dictArray: [h, d, u], mergeSubDicts: !0 }), + }; + n.fieldFlags = (0, i.getInheritableProperty)({ dict: t, key: 'Ff' }); + (!Number.isInteger(n.fieldFlags) || n.fieldFlags < 0) && (n.fieldFlags = 0); + n.readOnly = this.hasFieldFlag(r.AnnotationFieldFlag.READONLY); + n.required = this.hasFieldFlag(r.AnnotationFieldFlag.REQUIRED); + n.hidden = this._hasFlag(n.annotationFlags, r.AnnotationFlag.HIDDEN); + } + _decodeFormValue(e) { + return Array.isArray(e) + ? e.filter((e) => 'string' == typeof e).map((e) => (0, r.stringToPDFString)(e)) + : e instanceof s.Name + ? (0, r.stringToPDFString)(e.name) + : 'string' == typeof e + ? (0, r.stringToPDFString)(e) + : null; + } + hasFieldFlag(e) { + return !!(this.data.fieldFlags & e); + } + getRotationMatrix(e) { + const t = e ? e.get(this.data.id) : void 0; + let a = t && t.rotation; + void 0 === a && (a = this.rotation); + if (0 === a) return r.IDENTITY_MATRIX; + const n = this.data.rect[2] - this.data.rect[0], + s = this.data.rect[3] - this.data.rect[1]; + return (0, i.getRotationMatrix)(a, n, s); + } + getBorderAndBackgroundAppearances(e) { + const t = e ? e.get(this.data.id) : void 0; + let a = t && t.rotation; + void 0 === a && (a = this.rotation); + if (!this.backgroundColor && !this.borderColor) return ''; + const r = this.data.rect[2] - this.data.rect[0], + i = this.data.rect[3] - this.data.rect[1], + s = 0 === a || 180 === a ? `0 0 ${r} ${i} re` : `0 0 ${i} ${r} re`; + let o = ''; + this.backgroundColor && + (o = `${(0, n.getPdfColor)(this.backgroundColor, !0)} ${s} f `); + if (this.borderColor) { + o += `${this.borderStyle.width || 1} w ${(0, n.getPdfColor)( + this.borderColor, + !1, + )} ${s} S `; + } + return o; + } + async getOperatorList(e, t, a, i, n) { + if ( + i && + !(this instanceof SignatureWidgetAnnotation) && + !this.data.noHTML && + !this.data.hasOwnCanvas + ) + return { opList: new g.OperatorList(), separateForm: !0, separateCanvas: !1 }; + if (!this._hasText) return super.getOperatorList(e, t, a, i, n); + const s = await this._getAppearance(e, t, a, n); + if (this.appearance && null === s) return super.getOperatorList(e, t, a, i, n); + const o = new g.OperatorList(); + if (!this._defaultAppearance || null === s) + return { opList: o, separateForm: !1, separateCanvas: !1 }; + const c = [ + 0, + 0, + this.data.rect[2] - this.data.rect[0], + this.data.rect[3] - this.data.rect[1], + ], + l = getTransformMatrix(this.data.rect, c, [1, 0, 0, 1, 0, 0]); + let h; + this.oc && (h = await e.parseMarkedContentProps(this.oc, null)); + void 0 !== h && o.addOp(r.OPS.beginMarkedContentProps, ['OC', h]); + o.addOp(r.OPS.beginAnnotation, [ + this.data.id, + this.data.rect, + l, + this.getRotationMatrix(n), + !1, + ]); + const u = new p.StringStream(s); + await e.getOperatorList({ + stream: u, + task: t, + resources: this._fieldResources.mergedResources, + operatorList: o, + }); + o.addOp(r.OPS.endAnnotation, []); + void 0 !== h && o.addOp(r.OPS.endMarkedContent, []); + return { opList: o, separateForm: !1, separateCanvas: !1 }; + } + _getMKDict(e) { + const t = new s.Dict(null); + e && t.set('R', e); + this.borderColor && t.set('BC', getPdfColorArray(this.borderColor)); + this.backgroundColor && t.set('BG', getPdfColorArray(this.backgroundColor)); + return t.size > 0 ? t : null; + } + amendSavedDict(e, t) {} + async save(e, t, a) { + const n = a ? a.get(this.data.id) : void 0; + let c = n && n.value, + l = n && n.rotation; + if (c === this.data.fieldValue || void 0 === c) { + if (!this._hasValueFromXFA && void 0 === l) return null; + c ||= this.data.fieldValue; + } + if ( + void 0 === l && + !this._hasValueFromXFA && + Array.isArray(c) && + Array.isArray(this.data.fieldValue) && + c.length === this.data.fieldValue.length && + c.every((e, t) => e === this.data.fieldValue[t]) + ) + return null; + void 0 === l && (l = this.rotation); + let h = null; + if (!this._needAppearances) { + h = await this._getAppearance(e, t, r.RenderingIntentFlag.SAVE, a); + if (null === h) return null; + } + let u = !1; + if (h && h.needAppearances) { + u = !0; + h = null; + } + const { xref: d } = e, + f = d.fetchIfRef(this.ref); + if (!(f instanceof s.Dict)) return null; + const g = new s.Dict(d); + for (const e of f.getKeys()) 'AP' !== e && g.set(e, f.getRaw(e)); + const m = { path: this.data.fieldName, value: c }, + encoder = (e) => ((0, i.isAscii)(e) ? e : (0, i.stringToUTF16String)(e, !0)); + g.set('V', Array.isArray(c) ? c.map(encoder) : encoder(c)); + this.amendSavedDict(a, g); + const b = this._getMKDict(l); + b && g.set('MK', b); + const y = d.encrypt, + w = y ? y.createCipherTransform(this.ref.num, this.ref.gen) : null, + S = [], + x = [{ ref: this.ref, data: '', xfa: m, needAppearances: u }]; + if (null !== h) { + const e = d.getNewTemporaryRef(), + t = new s.Dict(d); + g.set('AP', t); + t.set('N', e); + let i = null; + y && (i = y.createCipherTransform(e.num, e.gen)); + const n = this._getSaveFieldResources(d), + c = new p.StringStream(h), + l = (c.dict = new s.Dict(d)); + l.set('Subtype', s.Name.get('Form')); + l.set('Resources', n); + l.set('BBox', [ + 0, + 0, + this.data.rect[2] - this.data.rect[0], + this.data.rect[3] - this.data.rect[1], + ]); + const u = this.getRotationMatrix(a); + u !== r.IDENTITY_MATRIX && l.set('Matrix', u); + (0, o.writeObject)(e, c, S, i); + x.push({ ref: e, data: S.join(''), xfa: null, needAppearances: !1 }); + S.length = 0; + } + g.set('M', `D:${(0, r.getModificationDate)()}`); + (0, o.writeObject)(this.ref, g, S, w); + x[0].data = S.join(''); + return x; + } + async _getAppearance(e, t, a, s) { + if (this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD)) return null; + const o = s ? s.get(this.data.id) : void 0; + let c, l; + if (o) { + c = o.formattedValue || o.value; + l = o.rotation; + } + if ( + void 0 === l && + void 0 === c && + !this._needAppearances && + (!this._hasValueFromXFA || this.appearance) + ) + return null; + const h = this.getBorderAndBackgroundAppearances(s); + if (void 0 === c) { + c = this.data.fieldValue; + if (!c) return `/Tx BMC q ${h}Q EMC`; + } + Array.isArray(c) && 1 === c.length && (c = c[0]); + (0, r.assert)('string' == typeof c, 'Expected `value` to be a string.'); + c = c.trim(); + if (this.data.combo) { + const e = this.data.options.find(({ exportValue: e }) => c === e); + c = (e && e.displayValue) || c; + } + if ('' === c) return `/Tx BMC q ${h}Q EMC`; + void 0 === l && (l = this.rotation); + let u, + d = -1; + if (this.data.multiLine) { + u = c.split(/\r\n?|\n/).map((e) => e.normalize('NFC')); + d = u.length; + } else u = [c.replace(/\r\n?|\n/, '').normalize('NFC')]; + let f = this.data.rect[3] - this.data.rect[1], + g = this.data.rect[2] - this.data.rect[0]; + (90 !== l && 270 !== l) || ([g, f] = [f, g]); + this._defaultAppearance || + (this.data.defaultAppearanceData = (0, n.parseDefaultAppearance)( + (this._defaultAppearance = '/Helvetica 0 Tf 0 g'), + )); + let p, + m, + b, + y = await WidgetAnnotation._getFontData( + e, + t, + this.data.defaultAppearanceData, + this._fieldResources.mergedResources, + ); + const w = []; + let S = !1; + for (const e of u) { + const t = y.encodeString(e); + t.length > 1 && (S = !0); + w.push(t.join('')); + } + if (S && a & r.RenderingIntentFlag.SAVE) return { needAppearances: !0 }; + if (S && this._isOffscreenCanvasSupported) { + const a = this.data.comb ? 'monospace' : 'sans-serif', + r = new n.FakeUnicodeFont(e.xref, a), + s = r.createFontResources(u.join('')), + o = s.getRaw('Font'); + if (this._fieldResources.mergedResources.has('Font')) { + const e = this._fieldResources.mergedResources.get('Font'); + for (const t of o.getKeys()) e.set(t, o.getRaw(t)); + } else this._fieldResources.mergedResources.set('Font', o); + const l = r.fontName.name; + y = await WidgetAnnotation._getFontData(e, t, { fontName: l, fontSize: 0 }, s); + for (let e = 0, t = w.length; e < t; e++) w[e] = (0, i.stringToUTF16String)(u[e]); + const h = Object.assign(Object.create(null), this.data.defaultAppearanceData); + this.data.defaultAppearanceData.fontSize = 0; + this.data.defaultAppearanceData.fontName = l; + [p, m, b] = this._computeFontSize(f - 2, g - 4, c, y, d); + this.data.defaultAppearanceData = h; + } else { + this._isOffscreenCanvasSupported || + (0, r.warn)( + '_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly.', + ); + [p, m, b] = this._computeFontSize(f - 2, g - 4, c, y, d); + } + let x = y.descent; + x = isNaN(x) + ? r.BASELINE_FACTOR * b + : Math.max(r.BASELINE_FACTOR * b, Math.abs(x) * m); + const C = Math.min(Math.floor((f - m) / 2), 1), + k = this.data.textAlignment; + if (this.data.multiLine) + return this._getMultilineAppearance(p, w, y, m, g, f, k, 2, C, x, b, s); + if (this.data.comb) + return this._getCombAppearance(p, y, w[0], m, g, f, 2, C, x, b, s); + const v = C + x; + if (0 === k || k > 2) + return ( + `/Tx BMC q ${h}BT ` + + p + + ` 1 0 0 1 ${(0, i.numberToString)(2)} ${(0, i.numberToString)(v)} Tm (${(0, + i.escapeString)(w[0])}) Tj ET Q EMC` + ); + return ( + `/Tx BMC q ${h}BT ` + + p + + ` 1 0 0 1 0 0 Tm ${this._renderText(w[0], y, m, g, k, { shift: 0 }, 2, v)} ET Q EMC` + ); + } + static async _getFontData(e, t, a, r) { + const i = new g.OperatorList(), + n = { + font: null, + clone() { + return this; + }, + }, + { fontName: o, fontSize: c } = a; + await e.handleSetFont(r, [o && s.Name.get(o), c], null, i, t, n, null); + return n.font; + } + _getTextWidth(e, t) { + return t.charsToGlyphs(e).reduce((e, t) => e + t.width, 0) / 1e3; + } + _computeFontSize(e, t, a, i, s) { + let { fontSize: o } = this.data.defaultAppearanceData, + c = (o || 12) * r.LINE_FACTOR, + l = Math.round(e / c); + if (!o) { + const roundWithTwoDigits = (e) => Math.floor(100 * e) / 100; + if (-1 === s) { + const n = this._getTextWidth(a, i); + o = roundWithTwoDigits(Math.min(e / r.LINE_FACTOR, n > t ? t / n : 1 / 0)); + l = 1; + } else { + const n = a.split(/\r\n?|\n/), + h = []; + for (const e of n) { + const t = i.encodeString(e).join(''), + a = i.charsToGlyphs(t), + r = i.getCharPositions(t); + h.push({ line: t, glyphs: a, positions: r }); + } + const isTooBig = (a) => { + let r = 0; + for (const n of h) { + r += this._splitLine(null, i, a, t, n).length * a; + if (r > e) return !0; + } + return !1; + }; + l = Math.max(l, s); + for (;;) { + c = e / l; + o = roundWithTwoDigits(c / r.LINE_FACTOR); + if (!isTooBig(o)) break; + l++; + } + } + const { fontName: h, fontColor: u } = this.data.defaultAppearanceData; + this._defaultAppearance = (0, n.createDefaultAppearance)({ + fontSize: o, + fontName: h, + fontColor: u, + }); + } + return [this._defaultAppearance, o, e / l]; + } + _renderText(e, t, a, r, n, s, o, c) { + let l; + if (1 === n) { + l = (r - this._getTextWidth(e, t) * a) / 2; + } else if (2 === n) { + l = r - this._getTextWidth(e, t) * a - o; + } else l = o; + const h = (0, i.numberToString)(l - s.shift); + s.shift = l; + return `${h} ${(c = (0, i.numberToString)(c))} Td (${(0, i.escapeString)(e)}) Tj`; + } + _getSaveFieldResources(e) { + const { + localResources: t, + appearanceResources: a, + acroFormResources: r, + } = this._fieldResources, + i = this.data.defaultAppearanceData && this.data.defaultAppearanceData.fontName; + if (!i) return t || s.Dict.empty; + for (const e of [t, a]) + if (e instanceof s.Dict) { + const t = e.get('Font'); + if (t instanceof s.Dict && t.has(i)) return e; + } + if (r instanceof s.Dict) { + const a = r.get('Font'); + if (a instanceof s.Dict && a.has(i)) { + const r = new s.Dict(e); + r.set(i, a.getRaw(i)); + const n = new s.Dict(e); + n.set('Font', r); + return s.Dict.merge({ xref: e, dictArray: [n, t], mergeSubDicts: !0 }); + } + } + return t || s.Dict.empty; + } + getFieldObject() { + return null; + } + } + class TextWidgetAnnotation extends WidgetAnnotation { + constructor(e) { + super(e); + this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML; + this._hasText = !0; + const t = e.dict; + 'string' != typeof this.data.fieldValue && (this.data.fieldValue = ''); + let a = (0, i.getInheritableProperty)({ dict: t, key: 'Q' }); + (!Number.isInteger(a) || a < 0 || a > 2) && (a = null); + this.data.textAlignment = a; + let n = (0, i.getInheritableProperty)({ dict: t, key: 'MaxLen' }); + (!Number.isInteger(n) || n < 0) && (n = 0); + this.data.maxLen = n; + this.data.multiLine = this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE); + this.data.comb = + this.hasFieldFlag(r.AnnotationFieldFlag.COMB) && + !this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE) && + !this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD) && + !this.hasFieldFlag(r.AnnotationFieldFlag.FILESELECT) && + 0 !== this.data.maxLen; + this.data.doNotScroll = this.hasFieldFlag(r.AnnotationFieldFlag.DONOTSCROLL); + } + _getCombAppearance(e, t, a, r, n, s, o, c, l, h, u) { + const d = n / this.data.maxLen, + f = this.getBorderAndBackgroundAppearances(u), + g = [], + p = t.getCharPositions(a); + for (const [e, t] of p) g.push(`(${(0, i.escapeString)(a.substring(e, t))}) Tj`); + const m = g.join(` ${(0, i.numberToString)(d)} 0 Td `); + return ( + `/Tx BMC q ${f}BT ` + + e + + ` 1 0 0 1 ${(0, i.numberToString)(o)} ${(0, i.numberToString)( + c + l, + )} Tm ${m} ET Q EMC` + ); + } + _getMultilineAppearance(e, t, a, r, n, s, o, c, l, h, u, d) { + const f = [], + g = n - 2 * c, + p = { shift: 0 }; + for (let e = 0, i = t.length; e < i; e++) { + const i = t[e], + s = this._splitLine(i, a, r, g); + for (let t = 0, i = s.length; t < i; t++) { + const i = s[t], + d = 0 === e && 0 === t ? -l - (u - h) : -u; + f.push(this._renderText(i, a, r, n, o, p, c, d)); + } + } + const m = this.getBorderAndBackgroundAppearances(d), + b = f.join('\n'); + return ( + `/Tx BMC q ${m}BT ` + e + ` 1 0 0 1 0 ${(0, i.numberToString)(s)} Tm ${b} ET Q EMC` + ); + } + _splitLine(e, t, a, r, i = {}) { + e = i.line || e; + const n = i.glyphs || t.charsToGlyphs(e); + if (n.length <= 1) return [e]; + const s = i.positions || t.getCharPositions(e), + o = a / 1e3, + c = []; + let l = -1, + h = -1, + u = -1, + d = 0, + f = 0; + for (let t = 0, a = n.length; t < a; t++) { + const [a, i] = s[t], + g = n[t], + p = g.width * o; + if (' ' === g.unicode) + if (f + p > r) { + c.push(e.substring(d, a)); + d = a; + f = p; + l = -1; + u = -1; + } else { + f += p; + l = a; + h = i; + u = t; + } + else if (f + p > r) + if (-1 !== l) { + c.push(e.substring(d, h)); + d = h; + t = u + 1; + l = -1; + f = 0; + } else { + c.push(e.substring(d, a)); + d = a; + f = p; + } + else f += p; + } + d < e.length && c.push(e.substring(d, e.length)); + return c; + } + getFieldObject() { + return { + id: this.data.id, + value: this.data.fieldValue, + defaultValue: this.data.defaultFieldValue || '', + multiline: this.data.multiLine, + password: this.hasFieldFlag(r.AnnotationFieldFlag.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, + type: 'text', + }; + } + } + class ButtonWidgetAnnotation extends WidgetAnnotation { + constructor(e) { + super(e); + this.checkedAppearance = null; + this.uncheckedAppearance = null; + this.data.checkBox = + !this.hasFieldFlag(r.AnnotationFieldFlag.RADIO) && + !this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON); + this.data.radioButton = + this.hasFieldFlag(r.AnnotationFieldFlag.RADIO) && + !this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON); + this.data.pushButton = this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON); + this.data.isTooltipOnly = !1; + if (this.data.checkBox) this._processCheckBox(e); + else if (this.data.radioButton) this._processRadioButton(e); + else if (this.data.pushButton) { + this.data.hasOwnCanvas = !0; + this._processPushButton(e); + } else (0, r.warn)('Invalid field flags for button widget annotation'); + } + async getOperatorList(e, t, a, i, n) { + if (this.data.pushButton) return super.getOperatorList(e, t, a, !1, n); + let s = null, + o = null; + if (n) { + const e = n.get(this.data.id); + s = e ? e.value : null; + o = e ? e.rotation : null; + } + if (null === s && this.appearance) return super.getOperatorList(e, t, a, i, n); + null == s && + (s = this.data.checkBox + ? this.data.fieldValue === this.data.exportValue + : this.data.fieldValue === this.data.buttonValue); + const c = s ? this.checkedAppearance : this.uncheckedAppearance; + if (c) { + const s = this.appearance, + l = c.dict.getArray('Matrix') || r.IDENTITY_MATRIX; + o && c.dict.set('Matrix', this.getRotationMatrix(n)); + this.appearance = c; + const h = super.getOperatorList(e, t, a, i, n); + this.appearance = s; + c.dict.set('Matrix', l); + return h; + } + return { opList: new g.OperatorList(), separateForm: !1, separateCanvas: !1 }; + } + async save(e, t, a) { + return this.data.checkBox + ? this._saveCheckbox(e, t, a) + : this.data.radioButton + ? this._saveRadioButton(e, t, a) + : null; + } + async _saveCheckbox(e, t, a) { + if (!a) return null; + const i = a.get(this.data.id); + let n = i && i.rotation, + c = i && i.value; + if (void 0 === n) { + if (void 0 === c) return null; + if ((this.data.fieldValue === this.data.exportValue) === c) return null; + } + const l = e.xref.fetchIfRef(this.ref); + if (!(l instanceof s.Dict)) return null; + void 0 === n && (n = this.rotation); + void 0 === c && (c = this.data.fieldValue === this.data.exportValue); + const h = { path: this.data.fieldName, value: c ? this.data.exportValue : '' }, + u = s.Name.get(c ? this.data.exportValue : 'Off'); + l.set('V', u); + l.set('AS', u); + l.set('M', `D:${(0, r.getModificationDate)()}`); + const d = this._getMKDict(n); + d && l.set('MK', d); + const f = e.xref.encrypt; + let g = null; + f && (g = f.createCipherTransform(this.ref.num, this.ref.gen)); + const p = [`${this.ref.num} ${this.ref.gen} obj\n`]; + (0, o.writeDict)(l, p, g); + p.push('\nendobj\n'); + return [{ ref: this.ref, data: p.join(''), xfa: h }]; + } + async _saveRadioButton(e, t, a) { + if (!a) return null; + const i = a.get(this.data.id); + let n = i && i.rotation, + c = i && i.value; + if (void 0 === n) { + if (void 0 === c) return null; + if ((this.data.fieldValue === this.data.buttonValue) === c) return null; + } + const l = e.xref.fetchIfRef(this.ref); + if (!(l instanceof s.Dict)) return null; + void 0 === c && (c = this.data.fieldValue === this.data.buttonValue); + void 0 === n && (n = this.rotation); + const h = { path: this.data.fieldName, value: c ? this.data.buttonValue : '' }, + u = s.Name.get(c ? this.data.buttonValue : 'Off'); + let d = null; + const f = e.xref.encrypt; + if (c) + if (this.parent instanceof s.Ref) { + const t = e.xref.fetch(this.parent); + let a = null; + f && (a = f.createCipherTransform(this.parent.num, this.parent.gen)); + t.set('V', u); + d = [`${this.parent.num} ${this.parent.gen} obj\n`]; + (0, o.writeDict)(t, d, a); + d.push('\nendobj\n'); + } else this.parent instanceof s.Dict && this.parent.set('V', u); + l.set('AS', u); + l.set('M', `D:${(0, r.getModificationDate)()}`); + const g = this._getMKDict(n); + g && l.set('MK', g); + let p = null; + f && (p = f.createCipherTransform(this.ref.num, this.ref.gen)); + const m = [`${this.ref.num} ${this.ref.gen} obj\n`]; + (0, o.writeDict)(l, m, p); + m.push('\nendobj\n'); + const b = [{ ref: this.ref, data: m.join(''), xfa: h }]; + null !== d && b.push({ ref: this.parent, data: d.join(''), xfa: null }); + return b; + } + _getDefaultCheckedAppearance(e, t) { + const a = this.data.rect[2] - this.data.rect[0], + n = this.data.rect[3] - this.data.rect[1], + o = [0, 0, a, n], + c = 0.8 * Math.min(a, n); + let l, h; + if ('check' === t) { + l = { width: 0.755 * c, height: 0.705 * c }; + h = '3'; + } else if ('disc' === t) { + l = { width: 0.791 * c, height: 0.705 * c }; + h = 'l'; + } else (0, r.unreachable)(`_getDefaultCheckedAppearance - unsupported type: ${t}`); + const u = `q BT /PdfJsZaDb ${c} Tf 0 g ${(0, i.numberToString)( + (a - l.width) / 2, + )} ${(0, i.numberToString)((n - l.height) / 2)} Td (${h}) Tj ET Q`, + d = new s.Dict(e.xref); + d.set('FormType', 1); + d.set('Subtype', s.Name.get('Form')); + d.set('Type', s.Name.get('XObject')); + d.set('BBox', o); + d.set('Matrix', [1, 0, 0, 1, 0, 0]); + d.set('Length', u.length); + const f = new s.Dict(e.xref), + g = new s.Dict(e.xref); + g.set('PdfJsZaDb', this.fallbackFontDict); + f.set('Font', g); + d.set('Resources', f); + this.checkedAppearance = new p.StringStream(u); + this.checkedAppearance.dict = d; + this._streams.push(this.checkedAppearance); + } + _processCheckBox(e) { + const t = e.dict.get('AP'); + if (!(t instanceof s.Dict)) return; + const a = t.get('N'); + if (!(a instanceof s.Dict)) return; + const r = this._decodeFormValue(e.dict.get('AS')); + 'string' == typeof r && (this.data.fieldValue = r); + const i = + null !== this.data.fieldValue && 'Off' !== this.data.fieldValue + ? this.data.fieldValue + : 'Yes', + n = a.getKeys(); + if (0 === n.length) n.push('Off', i); + else if (1 === n.length) 'Off' === n[0] ? n.push(i) : n.unshift('Off'); + else if (n.includes(i)) { + n.length = 0; + n.push('Off', i); + } else { + const e = n.find((e) => 'Off' !== e); + n.length = 0; + n.push('Off', e); + } + n.includes(this.data.fieldValue) || (this.data.fieldValue = 'Off'); + this.data.exportValue = n[1]; + const o = a.get(this.data.exportValue); + this.checkedAppearance = o instanceof c.BaseStream ? o : null; + const l = a.get('Off'); + this.uncheckedAppearance = l instanceof c.BaseStream ? l : null; + this.checkedAppearance + ? this._streams.push(this.checkedAppearance) + : this._getDefaultCheckedAppearance(e, 'check'); + this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance); + this._fallbackFontDict = this.fallbackFontDict; + } + _processRadioButton(e) { + this.data.fieldValue = this.data.buttonValue = null; + const t = e.dict.get('Parent'); + if (t instanceof s.Dict) { + this.parent = e.dict.getRaw('Parent'); + const a = t.get('V'); + a instanceof s.Name && (this.data.fieldValue = this._decodeFormValue(a)); + } + const a = e.dict.get('AP'); + if (!(a instanceof s.Dict)) return; + const r = a.get('N'); + if (!(r instanceof s.Dict)) return; + for (const e of r.getKeys()) + if ('Off' !== e) { + this.data.buttonValue = this._decodeFormValue(e); + break; + } + const i = r.get(this.data.buttonValue); + this.checkedAppearance = i instanceof c.BaseStream ? i : null; + const n = r.get('Off'); + this.uncheckedAppearance = n instanceof c.BaseStream ? n : null; + this.checkedAppearance + ? this._streams.push(this.checkedAppearance) + : this._getDefaultCheckedAppearance(e, 'disc'); + this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance); + this._fallbackFontDict = this.fallbackFontDict; + } + _processPushButton(e) { + if (e.dict.has('A') || e.dict.has('AA') || this.data.alternativeText) { + this.data.isTooltipOnly = !e.dict.has('A') && !e.dict.has('AA'); + h.Catalog.parseDestDictionary({ + destDict: e.dict, + resultObj: this.data, + docBaseUrl: e.pdfManager.docBaseUrl, + docAttachments: e.attachments, + }); + } else (0, r.warn)('Push buttons without action dictionaries are not supported'); + } + getFieldObject() { + let e, + t = 'button'; + if (this.data.checkBox) { + t = 'checkbox'; + e = this.data.exportValue; + } else if (this.data.radioButton) { + t = 'radiobutton'; + e = this.data.buttonValue; + } + return { + id: this.data.id, + value: this.data.fieldValue || 'Off', + defaultValue: this.data.defaultFieldValue, + exportValues: e, + 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: t, + }; + } + get fallbackFontDict() { + const e = new s.Dict(); + e.set('BaseFont', s.Name.get('ZapfDingbats')); + e.set('Type', s.Name.get('FallbackType')); + e.set('Subtype', s.Name.get('FallbackType')); + e.set('Encoding', s.Name.get('ZapfDingbatsEncoding')); + return (0, r.shadow)(this, 'fallbackFontDict', e); + } + } + class ChoiceWidgetAnnotation extends WidgetAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.indices = t.getArray('I'); + this.hasIndices = Array.isArray(this.indices) && this.indices.length > 0; + this.data.options = []; + const n = (0, i.getInheritableProperty)({ dict: t, key: 'Opt' }); + if (Array.isArray(n)) + for (let e = 0, t = n.length; e < t; e++) { + const t = a.fetchIfRef(n[e]), + r = Array.isArray(t); + this.data.options[e] = { + exportValue: this._decodeFormValue(r ? a.fetchIfRef(t[0]) : t), + displayValue: this._decodeFormValue(r ? a.fetchIfRef(t[1]) : t), + }; + } + if (this.hasIndices) { + this.data.fieldValue = []; + const e = this.data.options.length; + for (const t of this.indices) + Number.isInteger(t) && + t >= 0 && + t < e && + this.data.fieldValue.push(this.data.options[t].exportValue); + } else + 'string' == typeof this.data.fieldValue + ? (this.data.fieldValue = [this.data.fieldValue]) + : this.data.fieldValue || (this.data.fieldValue = []); + this.data.combo = this.hasFieldFlag(r.AnnotationFieldFlag.COMBO); + this.data.multiSelect = this.hasFieldFlag(r.AnnotationFieldFlag.MULTISELECT); + this._hasText = !0; + } + getFieldObject() { + const e = this.data.combo ? 'combobox' : 'listbox', + t = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null; + return { + id: this.data.id, + value: t, + 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, t) { + if (!this.hasIndices) return; + const a = e ? e.get(this.data.id) : void 0; + let r = a && a.value; + Array.isArray(r) || (r = [r]); + const i = [], + { options: n } = this.data; + for (let e = 0, t = 0, a = n.length; e < a; e++) + if (n[e].exportValue === r[t]) { + i.push(e); + t += 1; + } + t.set('I', i); + } + async _getAppearance(e, t, a, i) { + if (this.data.combo) return super._getAppearance(e, t, a, i); + let s, o; + const c = i ? i.get(this.data.id) : void 0; + if (c) { + o = c.rotation; + s = c.value; + } + if (void 0 === o && void 0 === s && !this._needAppearances) return null; + void 0 === s ? (s = this.data.fieldValue) : Array.isArray(s) || (s = [s]); + let l = this.data.rect[3] - this.data.rect[1], + h = this.data.rect[2] - this.data.rect[0]; + (90 !== o && 270 !== o) || ([h, l] = [l, h]); + const u = this.data.options.length, + d = []; + for (let e = 0; e < u; e++) { + const { exportValue: t } = this.data.options[e]; + s.includes(t) && d.push(e); + } + this._defaultAppearance || + (this.data.defaultAppearanceData = (0, n.parseDefaultAppearance)( + (this._defaultAppearance = '/Helvetica 0 Tf 0 g'), + )); + const f = await WidgetAnnotation._getFontData( + e, + t, + this.data.defaultAppearanceData, + this._fieldResources.mergedResources, + ); + let g, + { fontSize: p } = this.data.defaultAppearanceData; + if (p) g = this._defaultAppearance; + else { + const e = (l - 1) / u; + let t, + a = -1; + for (const { displayValue: e } of this.data.options) { + const r = this._getTextWidth(e, f); + if (r > a) { + a = r; + t = e; + } + } + [g, p] = this._computeFontSize(e, h - 4, t, f, -1); + } + const m = p * r.LINE_FACTOR, + b = (m - p) / 2, + y = Math.floor(l / m); + let w; + if (1 === d.length) { + const e = d[0]; + w = e - (e % y); + } else w = d.length ? d[0] : 0; + const S = Math.min(w + y + 1, u), + x = ['/Tx BMC q', `1 1 ${h} ${l} re W n`]; + if (d.length) { + x.push('0.600006 0.756866 0.854904 rg'); + for (const e of d) + w <= e && e < S && x.push(`1 ${l - (e - w + 1) * m} ${h} ${m} re f`); + } + x.push('BT', g, `1 0 0 1 0 ${l} Tm`); + const C = { shift: 0 }; + for (let e = w; e < S; e++) { + const { displayValue: t } = this.data.options[e], + a = e === w ? b : 0; + x.push(this._renderText(t, f, p, h, 0, C, 2, -m + a)); + } + x.push('ET Q EMC'); + return x.join('\n'); + } + } + class SignatureWidgetAnnotation extends WidgetAnnotation { + constructor(e) { + super(e); + this.data.fieldValue = null; + this.data.hasOwnCanvas = this.data.noRotate; + } + getFieldObject() { + return { + id: this.data.id, + value: null, + page: this.data.pageIndex, + type: 'signature', + }; + } + } + class TextAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.noRotate = !0; + this.data.hasOwnCanvas = this.data.noRotate; + const { dict: t } = e; + this.data.annotationType = r.AnnotationType.TEXT; + if (this.data.hasAppearance) this.data.name = 'NoIcon'; + else { + this.data.rect[1] = this.data.rect[3] - 22; + this.data.rect[2] = this.data.rect[0] + 22; + this.data.name = t.has('Name') ? t.get('Name').name : 'Note'; + } + if (t.has('State')) { + this.data.state = t.get('State') || null; + this.data.stateModel = t.get('StateModel') || null; + } else { + this.data.state = null; + this.data.stateModel = null; + } + } + } + class LinkAnnotation extends Annotation { + constructor(e) { + super(e); + this.data.annotationType = r.AnnotationType.LINK; + const t = getQuadPoints(e.dict, this.rectangle); + t && (this.data.quadPoints = t); + this.data.borderColor ||= this.data.color; + h.Catalog.parseDestDictionary({ + destDict: e.dict, + resultObj: this.data, + docBaseUrl: e.pdfManager.docBaseUrl, + docAttachments: e.attachments, + }); + } + } + class PopupAnnotation extends Annotation { + constructor(e) { + super(e); + const { dict: t } = e; + this.data.annotationType = r.AnnotationType.POPUP; + let a = t.get('Parent'); + if (!a) { + (0, r.warn)('Popup annotation has a missing or invalid parent annotation.'); + return; + } + const i = a.get('Subtype'); + this.data.parentType = i instanceof s.Name ? i.name : null; + const n = t.getRaw('Parent'); + this.data.parentId = n instanceof s.Ref ? n.toString() : null; + const o = a.getArray('Rect'); + Array.isArray(o) && 4 === o.length + ? (this.data.parentRect = r.Util.normalizeRect(o)) + : (this.data.parentRect = [0, 0, 0, 0]); + const c = a.get('RT'); + (0, s.isName)(c, r.AnnotationReplyType.GROUP) && (a = a.get('IRT')); + if (a.has('M')) { + this.setModificationDate(a.get('M')); + this.data.modificationDate = this.modificationDate; + } else this.data.modificationDate = null; + if (a.has('C')) { + this.setColor(a.getArray('C')); + this.data.color = this.color; + } else this.data.color = null; + if (!this.viewable) { + const e = a.get('F'); + this._isViewable(e) && this.setFlags(e); + } + this.setTitle(a.get('T')); + this.data.titleObj = this._title; + this.setContents(a.get('Contents')); + this.data.contentsObj = this._contents; + a.has('RC') && (this.data.richText = m.XFAFactory.getRichTextAsHtml(a.get('RC'))); + } + } + t.PopupAnnotation = PopupAnnotation; + class FreeTextAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.hasOwnCanvas = this.data.noRotate; + const { xref: t } = e; + this.data.annotationType = r.AnnotationType.FREETEXT; + this.setDefaultAppearance(e); + if (!this.appearance && this._isOffscreenCanvasSupported) { + const a = e.dict.get('CA'), + r = new n.FakeUnicodeFont(t, 'sans-serif'), + i = this.data.defaultAppearanceData; + this.appearance = r.createAppearance( + this._contents.str, + this.rectangle, + this.rotation, + i.fontSize || 10, + i.fontColor, + a, + ); + this._streams.push(this.appearance, n.FakeUnicodeFont.toUnicodeStream); + } else + this._isOffscreenCanvasSupported || + (0, r.warn)( + 'FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.', + ); + } + get hasTextContent() { + return !!this.appearance; + } + static createNewDict(e, t, { apRef: a, ap: o }) { + const { color: c, fontSize: l, rect: h, rotation: u, user: d, value: f } = e, + g = new s.Dict(t); + g.set('Type', s.Name.get('Annot')); + g.set('Subtype', s.Name.get('FreeText')); + g.set('CreationDate', `D:${(0, r.getModificationDate)()}`); + g.set('Rect', h); + const p = `/Helv ${l} Tf ${(0, n.getPdfColor)(c, !0)}`; + g.set('DA', p); + g.set('Contents', (0, i.isAscii)(f) ? f : (0, i.stringToUTF16String)(f, !0)); + g.set('F', 4); + g.set('Border', [0, 0, 0]); + g.set('Rotate', u); + d && g.set('T', (0, i.isAscii)(d) ? d : (0, i.stringToUTF16String)(d, !0)); + if (a || o) { + const e = new s.Dict(t); + g.set('AP', e); + a ? e.set('N', a) : e.set('N', o); + } + return g; + } + static async createNewAppearanceStream(e, t, a) { + const { baseFontRef: o, evaluator: c, task: l } = a, + { color: h, fontSize: u, rect: d, rotation: f, value: g } = e, + m = new s.Dict(t), + b = new s.Dict(t); + if (o) b.set('Helv', o); + else { + const e = new s.Dict(t); + e.set('BaseFont', s.Name.get('Helvetica')); + e.set('Type', s.Name.get('Font')); + e.set('Subtype', s.Name.get('Type1')); + e.set('Encoding', s.Name.get('WinAnsiEncoding')); + b.set('Helv', e); + } + m.set('Font', b); + const y = await WidgetAnnotation._getFontData( + c, + l, + { fontName: 'Helvetica', fontSize: u }, + m, + ), + [w, S, x, C] = d; + let k = x - w, + v = C - S; + f % 180 != 0 && ([k, v] = [v, k]); + const F = g.split('\n'), + O = u / 1e3; + let T = -1 / 0; + const M = []; + for (let e of F) { + const t = y.encodeString(e); + if (t.length > 1) return null; + e = t.join(''); + M.push(e); + let a = 0; + const r = y.charsToGlyphs(e); + for (const e of r) a += e.width * O; + T = Math.max(T, a); + } + let E = 1; + T > k && (E = k / T); + let D = 1; + const N = r.LINE_FACTOR * u, + R = r.LINE_DESCENT_FACTOR * u, + L = N * F.length; + L > v && (D = v / L); + const _ = u * Math.min(E, D), + $ = [ + 'q', + `0 0 ${(0, i.numberToString)(k)} ${(0, i.numberToString)(v)} re W n`, + 'BT', + `1 0 0 1 0 ${(0, i.numberToString)(v + R)} Tm 0 Tc ${(0, n.getPdfColor)(h, !0)}`, + `/Helv ${(0, i.numberToString)(_)} Tf`, + ], + j = (0, i.numberToString)(N); + for (const e of M) $.push(`0 -${j} Td (${(0, i.escapeString)(e)}) Tj`); + $.push('ET', 'Q'); + const U = $.join('\n'), + X = new s.Dict(t); + X.set('FormType', 1); + X.set('Subtype', s.Name.get('Form')); + X.set('Type', s.Name.get('XObject')); + X.set('BBox', [0, 0, k, v]); + X.set('Resources', m); + if (f) { + const e = (0, i.getRotationMatrix)(f, k, v); + X.set('Matrix', e); + } + const H = new p.StringStream(U); + H.dict = X; + return H; + } + } + class LineAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.LINE; + this.data.hasOwnCanvas = this.data.noRotate; + const i = t.getArray('L'); + this.data.lineCoordinates = r.Util.normalizeRect(i); + this.setLineEndings(t.getArray('LE')); + this.data.lineEndings = this.lineEndings; + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + n = t.get('CA'), + s = getRgbColor(t.getArray('IC'), null), + o = s ? getPdfColorArray(s) : null, + c = o ? n : null, + l = this.borderStyle.width || 1, + h = 2 * l, + u = [ + this.data.lineCoordinates[0] - h, + this.data.lineCoordinates[1] - h, + this.data.lineCoordinates[2] + h, + this.data.lineCoordinates[3] + h, + ]; + r.Util.intersect(this.rectangle, u) || (this.rectangle = u); + this._setDefaultAppearance({ + xref: a, + extra: `${l} w`, + strokeColor: e, + fillColor: o, + strokeAlpha: n, + fillAlpha: c, + pointsCallback: (e, t) => { + e.push(`${i[0]} ${i[1]} m`, `${i[2]} ${i[3]} l`, 'S'); + return [t[0].x - l, t[1].x + l, t[3].y - l, t[1].y + l]; + }, + }); + } + } + } + class SquareAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.SQUARE; + this.data.hasOwnCanvas = this.data.noRotate; + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'), + i = getRgbColor(t.getArray('IC'), null), + n = i ? getPdfColorArray(i) : null, + s = n ? r : null; + if (0 === this.borderStyle.width && !n) return; + this._setDefaultAppearance({ + xref: a, + extra: `${this.borderStyle.width} w`, + strokeColor: e, + fillColor: n, + strokeAlpha: r, + fillAlpha: s, + pointsCallback: (e, t) => { + const a = t[2].x + this.borderStyle.width / 2, + r = t[2].y + this.borderStyle.width / 2, + i = t[3].x - t[2].x - this.borderStyle.width, + s = t[1].y - t[3].y - this.borderStyle.width; + e.push(`${a} ${r} ${i} ${s} re`); + n ? e.push('B') : e.push('S'); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } + } + class CircleAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.CIRCLE; + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'), + i = getRgbColor(t.getArray('IC'), null), + n = i ? getPdfColorArray(i) : null, + s = n ? r : null; + if (0 === this.borderStyle.width && !n) return; + const o = (4 / 3) * Math.tan(Math.PI / 8); + this._setDefaultAppearance({ + xref: a, + extra: `${this.borderStyle.width} w`, + strokeColor: e, + fillColor: n, + strokeAlpha: r, + fillAlpha: s, + pointsCallback: (e, t) => { + const a = t[0].x + this.borderStyle.width / 2, + r = t[0].y - this.borderStyle.width / 2, + i = t[3].x - this.borderStyle.width / 2, + s = t[3].y + this.borderStyle.width / 2, + c = a + (i - a) / 2, + l = r + (s - r) / 2, + h = ((i - a) / 2) * o, + u = ((s - r) / 2) * o; + e.push( + `${c} ${s} m`, + `${c + h} ${s} ${i} ${l + u} ${i} ${l} c`, + `${i} ${l - u} ${c + h} ${r} ${c} ${r} c`, + `${c - h} ${r} ${a} ${l - u} ${a} ${l} c`, + `${a} ${l + u} ${c - h} ${s} ${c} ${s} c`, + 'h', + ); + n ? e.push('B') : e.push('S'); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } + } + class PolylineAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.POLYLINE; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.vertices = []; + if (!(this instanceof PolygonAnnotation)) { + this.setLineEndings(t.getArray('LE')); + this.data.lineEndings = this.lineEndings; + } + const i = t.getArray('Vertices'); + if (Array.isArray(i)) { + for (let e = 0, t = i.length; e < t; e += 2) + this.data.vertices.push({ x: i[e], y: i[e + 1] }); + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + i = t.get('CA'), + n = this.borderStyle.width || 1, + s = 2 * n, + o = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; + for (const e of this.data.vertices) { + o[0] = Math.min(o[0], e.x - s); + o[1] = Math.min(o[1], e.y - s); + o[2] = Math.max(o[2], e.x + s); + o[3] = Math.max(o[3], e.y + s); + } + r.Util.intersect(this.rectangle, o) || (this.rectangle = o); + this._setDefaultAppearance({ + xref: a, + extra: `${n} w`, + strokeColor: e, + strokeAlpha: i, + pointsCallback: (e, t) => { + const a = this.data.vertices; + for (let t = 0, r = a.length; t < r; t++) + e.push(`${a[t].x} ${a[t].y} ${0 === t ? 'm' : 'l'}`); + e.push('S'); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } + } + } + class PolygonAnnotation extends PolylineAnnotation { + constructor(e) { + super(e); + this.data.annotationType = r.AnnotationType.POLYGON; + } + } + class CaretAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.annotationType = r.AnnotationType.CARET; + } + } + class InkAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.hasOwnCanvas = this.data.noRotate; + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.INK; + this.data.inkLists = []; + const i = t.getArray('InkList'); + if (Array.isArray(i)) { + for (let e = 0, t = i.length; e < t; ++e) { + this.data.inkLists.push([]); + for (let t = 0, r = i[e].length; t < r; t += 2) + this.data.inkLists[e].push({ + x: a.fetchIfRef(i[e][t]), + y: a.fetchIfRef(i[e][t + 1]), + }); + } + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + i = t.get('CA'), + n = this.borderStyle.width || 1, + s = 2 * n, + o = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; + for (const e of this.data.inkLists) + for (const t of e) { + o[0] = Math.min(o[0], t.x - s); + o[1] = Math.min(o[1], t.y - s); + o[2] = Math.max(o[2], t.x + s); + o[3] = Math.max(o[3], t.y + s); + } + r.Util.intersect(this.rectangle, o) || (this.rectangle = o); + this._setDefaultAppearance({ + xref: a, + extra: `${n} w`, + strokeColor: e, + strokeAlpha: i, + pointsCallback: (e, t) => { + for (const t of this.data.inkLists) { + for (let a = 0, r = t.length; a < r; a++) + e.push(`${t[a].x} ${t[a].y} ${0 === a ? 'm' : 'l'}`); + e.push('S'); + } + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } + } + static createNewDict(e, t, { apRef: a, ap: i }) { + const { paths: n, rect: o, rotation: c } = e, + l = new s.Dict(t); + l.set('Type', s.Name.get('Annot')); + l.set('Subtype', s.Name.get('Ink')); + l.set('CreationDate', `D:${(0, r.getModificationDate)()}`); + l.set('Rect', o); + l.set( + 'InkList', + n.map((e) => e.points), + ); + l.set('F', 4); + l.set('Border', [0, 0, 0]); + l.set('Rotate', c); + const h = new s.Dict(t); + l.set('AP', h); + a ? h.set('N', a) : h.set('N', i); + return l; + } + static async createNewAppearanceStream(e, t, a) { + const { color: r, rect: o, rotation: c, paths: l, thickness: h, opacity: u } = e, + [d, f, g, m] = o; + let b = g - d, + y = m - f; + c % 180 != 0 && ([b, y] = [y, b]); + const w = [`${h} w 1 J 1 j`, `${(0, n.getPdfColor)(r, !1)}`]; + 1 !== u && w.push('/R0 gs'); + const S = []; + for (const { bezier: e } of l) { + S.length = 0; + S.push(`${(0, i.numberToString)(e[0])} ${(0, i.numberToString)(e[1])} m`); + for (let t = 2, a = e.length; t < a; t += 6) { + const a = e + .slice(t, t + 6) + .map(i.numberToString) + .join(' '); + S.push(`${a} c`); + } + S.push('S'); + w.push(S.join('\n')); + } + const x = w.join('\n'), + C = new s.Dict(t); + C.set('FormType', 1); + C.set('Subtype', s.Name.get('Form')); + C.set('Type', s.Name.get('XObject')); + C.set('BBox', [0, 0, b, y]); + C.set('Length', x.length); + if (c) { + const e = (0, i.getRotationMatrix)(c, b, y); + C.set('Matrix', e); + } + if (1 !== u) { + const e = new s.Dict(t), + a = new s.Dict(t), + r = new s.Dict(t); + r.set('CA', u); + r.set('Type', s.Name.get('ExtGState')); + a.set('R0', r); + e.set('ExtGState', a); + C.set('Resources', e); + } + const k = new p.StringStream(x); + k.dict = C; + return k; + } + } + class HighlightAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.HIGHLIGHT; + if ((this.data.quadPoints = getQuadPoints(t, null))) { + const e = this.appearance && this.appearance.dict.get('Resources'); + if (!this.appearance || !e || !e.has('ExtGState')) { + this.appearance && + (0, r.warn)('HighlightAnnotation - ignoring built-in appearance stream.'); + const e = this.color ? getPdfColorArray(this.color) : [1, 1, 0], + i = t.get('CA'); + this._setDefaultAppearance({ + xref: a, + fillColor: e, + blendMode: 'Multiply', + fillAlpha: i, + pointsCallback: (e, t) => { + e.push( + `${t[0].x} ${t[0].y} m`, + `${t[1].x} ${t[1].y} l`, + `${t[3].x} ${t[3].y} l`, + `${t[2].x} ${t[2].y} l`, + 'f', + ); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } else this.data.hasPopup = !1; + } + } + class UnderlineAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.UNDERLINE; + if ((this.data.quadPoints = getQuadPoints(t, null))) { + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'); + this._setDefaultAppearance({ + xref: a, + extra: '[] 0 d 1 w', + strokeColor: e, + strokeAlpha: r, + pointsCallback: (e, t) => { + e.push(`${t[2].x} ${t[2].y} m`, `${t[3].x} ${t[3].y} l`, 'S'); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } else this.data.hasPopup = !1; + } + } + class SquigglyAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.SQUIGGLY; + if ((this.data.quadPoints = getQuadPoints(t, null))) { + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'); + this._setDefaultAppearance({ + xref: a, + extra: '[] 0 d 1 w', + strokeColor: e, + strokeAlpha: r, + pointsCallback: (e, t) => { + const a = (t[0].y - t[2].y) / 6; + let r = a, + i = t[2].x; + const n = t[2].y, + s = t[3].x; + e.push(`${i} ${n + r} m`); + do { + i += 2; + r = 0 === r ? a : 0; + e.push(`${i} ${n + r} l`); + } while (i < s); + e.push('S'); + return [t[2].x, s, n - 2 * a, n + 2 * a]; + }, + }); + } + } else this.data.hasPopup = !1; + } + } + class StrikeOutAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.STRIKEOUT; + if ((this.data.quadPoints = getQuadPoints(t, null))) { + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'); + this._setDefaultAppearance({ + xref: a, + extra: '[] 0 d 1 w', + strokeColor: e, + strokeAlpha: r, + pointsCallback: (e, t) => { + e.push( + (t[0].x + t[2].x) / 2 + ' ' + (t[0].y + t[2].y) / 2 + ' m', + (t[1].x + t[3].x) / 2 + ' ' + (t[1].y + t[3].y) / 2 + ' l', + 'S', + ); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } else this.data.hasPopup = !1; + } + } + class StampAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.annotationType = r.AnnotationType.STAMP; + this.data.hasOwnCanvas = this.data.noRotate; + } + } + class FileAttachmentAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e, + i = new d.FileSpec(t.get('FS'), a); + this.data.annotationType = r.AnnotationType.FILEATTACHMENT; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.file = i.serializable; + const n = t.get('Name'); + this.data.name = n instanceof s.Name ? (0, r.stringToPDFString)(n.name) : 'PushPin'; + } + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FakeUnicodeFont = void 0; + t.createDefaultAppearance = function createDefaultAppearance({ + fontSize: e, + fontName: t, + fontColor: a, + }) { + return `/${(0, i.escapePDFName)(t)} ${e} Tf ${getPdfColor(a, !0)}`; + }; + t.getPdfColor = getPdfColor; + t.parseDefaultAppearance = function parseDefaultAppearance(e) { + return new DefaultAppearanceEvaluator(e).parse(); + }; + var r = a(4), + i = a(3), + n = a(2), + s = a(12), + o = a(13), + c = a(8); + class DefaultAppearanceEvaluator extends o.EvaluatorPreprocessor { + constructor(e) { + super(new c.StringStream(e)); + } + parse() { + const e = { fn: 0, args: [] }, + t = { fontSize: 0, fontName: '', fontColor: new Uint8ClampedArray(3) }; + try { + for (;;) { + e.args.length = 0; + if (!this.read(e)) break; + if (0 !== this.savedStatesDepth) continue; + const { fn: a, args: i } = e; + switch (0 | a) { + case n.OPS.setFont: + const [e, a] = i; + e instanceof r.Name && (t.fontName = e.name); + 'number' == typeof a && a > 0 && (t.fontSize = a); + break; + case n.OPS.setFillRGBColor: + s.ColorSpace.singletons.rgb.getRgbItem(i, 0, t.fontColor, 0); + break; + case n.OPS.setFillGray: + s.ColorSpace.singletons.gray.getRgbItem(i, 0, t.fontColor, 0); + break; + case n.OPS.setFillColorSpace: + s.ColorSpace.singletons.cmyk.getRgbItem(i, 0, t.fontColor, 0); + } + } + } catch (e) { + (0, n.warn)(`parseDefaultAppearance - ignoring errors: "${e}".`); + } + return t; + } + } + function getPdfColor(e, t) { + if (e[0] === e[1] && e[1] === e[2]) { + const a = e[0] / 255; + return `${(0, i.numberToString)(a)} ${t ? 'g' : 'G'}`; + } + return ( + Array.from(e, (e) => (0, i.numberToString)(e / 255)).join(' ') + + ' ' + + (t ? 'rg' : 'RG') + ); + } + class FakeUnicodeFont { + constructor(e, t) { + this.xref = e; + this.widths = null; + this.firstChar = 1 / 0; + this.lastChar = -1 / 0; + this.fontFamily = t; + const a = new OffscreenCanvas(1, 1); + this.ctxMeasure = a.getContext('2d'); + FakeUnicodeFont._fontNameId || (FakeUnicodeFont._fontNameId = 1); + this.fontName = r.Name.get(`InvalidPDFjsFont_${t}_${FakeUnicodeFont._fontNameId++}`); + } + get toUnicodeRef() { + if (!FakeUnicodeFont._toUnicodeRef) { + const e = + '/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo\n<< /Registry (Adobe)\n/Ordering (UCS) /Supplement 0 >> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000> \nendcodespacerange\n1 beginbfrange\n<0000> <0000>\nendbfrange\nendcmap CMapName currentdict /CMap defineresource pop end end', + t = (FakeUnicodeFont.toUnicodeStream = new c.StringStream(e)), + a = new r.Dict(this.xref); + t.dict = a; + a.set('Length', e.length); + FakeUnicodeFont._toUnicodeRef = this.xref.getNewPersistentRef(t); + } + return FakeUnicodeFont._toUnicodeRef; + } + get fontDescriptorRef() { + if (!FakeUnicodeFont._fontDescriptorRef) { + const e = new r.Dict(this.xref); + e.set('Type', r.Name.get('FontDescriptor')); + e.set('FontName', this.fontName); + e.set('FontFamily', 'MyriadPro Regular'); + e.set('FontBBox', [0, 0, 0, 0]); + e.set('FontStretch', r.Name.get('Normal')); + e.set('FontWeight', 400); + e.set('ItalicAngle', 0); + FakeUnicodeFont._fontDescriptorRef = this.xref.getNewPersistentRef(e); + } + return FakeUnicodeFont._fontDescriptorRef; + } + get descendantFontRef() { + const e = new r.Dict(this.xref); + e.set('BaseFont', this.fontName); + e.set('Type', r.Name.get('Font')); + e.set('Subtype', r.Name.get('CIDFontType0')); + e.set('CIDToGIDMap', r.Name.get('Identity')); + e.set('FirstChar', this.firstChar); + e.set('LastChar', this.lastChar); + e.set('FontDescriptor', this.fontDescriptorRef); + e.set('DW', 1e3); + const t = [], + a = [...this.widths.entries()].sort(); + let i = null, + n = null; + for (const [e, r] of a) + if (i) + if (e === i + n.length) n.push(r); + else { + t.push(i, n); + i = e; + n = [r]; + } + else { + i = e; + n = [r]; + } + i && t.push(i, n); + e.set('W', t); + const s = new r.Dict(this.xref); + s.set('Ordering', 'Identity'); + s.set('Registry', 'Adobe'); + s.set('Supplement', 0); + e.set('CIDSystemInfo', s); + return this.xref.getNewPersistentRef(e); + } + get baseFontRef() { + const e = new r.Dict(this.xref); + e.set('BaseFont', this.fontName); + e.set('Type', r.Name.get('Font')); + e.set('Subtype', r.Name.get('Type0')); + e.set('Encoding', r.Name.get('Identity-H')); + e.set('DescendantFonts', [this.descendantFontRef]); + e.set('ToUnicode', this.toUnicodeRef); + return this.xref.getNewPersistentRef(e); + } + get resources() { + const e = new r.Dict(this.xref), + t = new r.Dict(this.xref); + t.set(this.fontName.name, this.baseFontRef); + e.set('Font', t); + return e; + } + _createContext() { + this.widths = new Map(); + this.ctxMeasure.font = `1000px ${this.fontFamily}`; + return this.ctxMeasure; + } + createFontResources(e) { + const t = this._createContext(); + for (const a of e.split(/\r\n?|\n/)) + for (const e of a.split('')) { + const a = e.charCodeAt(0); + if (this.widths.has(a)) continue; + const r = t.measureText(e), + i = Math.ceil(r.width); + this.widths.set(a, i); + this.firstChar = Math.min(a, this.firstChar); + this.lastChar = Math.max(a, this.lastChar); + } + return this.resources; + } + createAppearance(e, t, a, s, o, l) { + const h = this._createContext(), + u = []; + let d = -1 / 0; + for (const t of e.split(/\r\n?|\n/)) { + u.push(t); + const e = h.measureText(t).width; + d = Math.max(d, e); + for (const e of t.split('')) { + const t = e.charCodeAt(0); + let a = this.widths.get(t); + if (void 0 === a) { + const r = h.measureText(e); + a = Math.ceil(r.width); + this.widths.set(t, a); + this.firstChar = Math.min(t, this.firstChar); + this.lastChar = Math.max(t, this.lastChar); + } + } + } + d *= s / 1e3; + const [f, g, p, m] = t; + let b = p - f, + y = m - g; + a % 180 != 0 && ([b, y] = [y, b]); + let w = 1; + d > b && (w = b / d); + let S = 1; + const x = n.LINE_FACTOR * s, + C = n.LINE_DESCENT_FACTOR * s, + k = x * u.length; + k > y && (S = y / k); + const v = s * Math.min(w, S), + F = [ + 'q', + `0 0 ${(0, i.numberToString)(b)} ${(0, i.numberToString)(y)} re W n`, + 'BT', + `1 0 0 1 0 ${(0, i.numberToString)(y + C)} Tm 0 Tc ${getPdfColor(o, !0)}`, + `/${this.fontName.name} ${(0, i.numberToString)(v)} Tf`, + ], + { resources: O } = this; + if (1 !== (l = 'number' == typeof l && l >= 0 && l <= 1 ? l : 1)) { + F.push('/R0 gs'); + const e = new r.Dict(this.xref), + t = new r.Dict(this.xref); + t.set('ca', l); + t.set('CA', l); + t.set('Type', r.Name.get('ExtGState')); + e.set('R0', t); + O.set('ExtGState', e); + } + const T = (0, i.numberToString)(x); + for (const e of u) F.push(`0 -${T} Td <${(0, i.stringToUTF16HexString)(e)}> Tj`); + F.push('ET', 'Q'); + const M = F.join('\n'), + E = new r.Dict(this.xref); + E.set('Subtype', r.Name.get('Form')); + E.set('Type', r.Name.get('XObject')); + E.set('BBox', [0, 0, b, y]); + E.set('Length', M.length); + E.set('Resources', O); + if (a) { + const e = (0, i.getRotationMatrix)(a, b, y); + E.set('Matrix', e); + } + const D = new c.StringStream(M); + D.dict = E; + return D; + } + } + t.FakeUnicodeFont = FakeUnicodeFont; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ColorSpace = void 0; + var r = a(2), + i = a(4), + n = a(5), + s = a(3); + class ColorSpace { + constructor(e, t) { + this.constructor === ColorSpace && + (0, r.unreachable)('Cannot initialize ColorSpace.'); + this.name = e; + this.numComps = t; + } + getRgb(e, t) { + const a = new Uint8ClampedArray(3); + this.getRgbItem(e, t, a, 0); + return a; + } + getRgbItem(e, t, a, i) { + (0, r.unreachable)('Should not call ColorSpace.getRgbItem'); + } + getRgbBuffer(e, t, a, i, n, s, o) { + (0, r.unreachable)('Should not call ColorSpace.getRgbBuffer'); + } + getOutputLength(e, t) { + (0, r.unreachable)('Should not call ColorSpace.getOutputLength'); + } + isPassthrough(e) { + return !1; + } + isDefaultDecode(e, t) { + return ColorSpace.isDefaultDecode(e, this.numComps); + } + fillRgb(e, t, a, r, i, n, s, o, c) { + const l = t * a; + let h = null; + const u = 1 << s, + d = a !== i || t !== r; + if (this.isPassthrough(s)) h = o; + else if ( + 1 === this.numComps && + l > u && + 'DeviceGray' !== this.name && + 'DeviceRGB' !== this.name + ) { + const t = s <= 8 ? new Uint8Array(u) : new Uint16Array(u); + for (let e = 0; e < u; e++) t[e] = e; + const a = new Uint8ClampedArray(3 * u); + this.getRgbBuffer(t, 0, u, a, 0, s, 0); + if (d) { + h = new Uint8Array(3 * l); + let e = 0; + for (let t = 0; t < l; ++t) { + const r = 3 * o[t]; + h[e++] = a[r]; + h[e++] = a[r + 1]; + h[e++] = a[r + 2]; + } + } else { + let t = 0; + for (let r = 0; r < l; ++r) { + const i = 3 * o[r]; + e[t++] = a[i]; + e[t++] = a[i + 1]; + e[t++] = a[i + 2]; + t += c; + } + } + } else if (d) { + h = new Uint8ClampedArray(3 * l); + this.getRgbBuffer(o, 0, l, h, 0, s, 0); + } else this.getRgbBuffer(o, 0, r * n, e, 0, s, c); + if (h) + if (d) + !(function resizeRgbImage(e, t, a, r, i, n, s) { + s = 1 !== s ? 0 : s; + const o = a / i, + c = r / n; + let l, + h = 0; + const u = new Uint16Array(i), + d = 3 * a; + for (let e = 0; e < i; e++) u[e] = 3 * Math.floor(e * o); + for (let a = 0; a < n; a++) { + const r = Math.floor(a * c) * d; + for (let a = 0; a < i; a++) { + l = r + u[a]; + t[h++] = e[l++]; + t[h++] = e[l++]; + t[h++] = e[l++]; + h += s; + } + } + })(h, e, t, a, r, i, c); + else { + let t = 0, + a = 0; + for (let i = 0, s = r * n; i < s; i++) { + e[t++] = h[a++]; + e[t++] = h[a++]; + e[t++] = h[a++]; + t += c; + } + } + } + get usesZeroToOneRange() { + return (0, r.shadow)(this, 'usesZeroToOneRange', !0); + } + static _cache(e, t, a, r) { + if (!a) + throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.'); + if (!r) throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.'); + let n, s; + if (e instanceof i.Ref) { + s = e; + e = t.fetch(e); + } + e instanceof i.Name && (n = e.name); + (n || s) && a.set(n, s, r); + } + static getCached(e, t, a) { + if (!a) + throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.'); + if (e instanceof i.Ref) { + const r = a.getByRef(e); + if (r) return r; + try { + e = t.fetch(e); + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + } + } + if (e instanceof i.Name) { + const t = a.getByName(e.name); + if (t) return t; + } + return null; + } + static async parseAsync({ + cs: e, + xref: t, + resources: a = null, + pdfFunctionFactory: r, + localColorSpaceCache: i, + }) { + const n = this._parse(e, t, a, r); + this._cache(e, t, i, n); + return n; + } + static parse({ + cs: e, + xref: t, + resources: a = null, + pdfFunctionFactory: r, + localColorSpaceCache: i, + }) { + const n = this.getCached(e, t, i); + if (n) return n; + const s = this._parse(e, t, a, r); + this._cache(e, t, i, s); + return s; + } + static _parse(e, t, a = null, n) { + if ((e = t.fetchIfRef(e)) instanceof i.Name) + switch (e.name) { + case 'G': + case 'DeviceGray': + return this.singletons.gray; + case 'RGB': + case 'DeviceRGB': + return this.singletons.rgb; + case 'CMYK': + case 'DeviceCMYK': + return this.singletons.cmyk; + case 'Pattern': + return new PatternCS(null); + default: + if (a instanceof i.Dict) { + const r = a.get('ColorSpace'); + if (r instanceof i.Dict) { + const s = r.get(e.name); + if (s) { + if (s instanceof i.Name) return this._parse(s, t, a, n); + e = s; + break; + } + } + } + throw new r.FormatError(`Unrecognized ColorSpace: ${e.name}`); + } + if (Array.isArray(e)) { + const i = t.fetchIfRef(e[0]).name; + let s, o, u, d, f, g; + switch (i) { + case 'G': + case 'DeviceGray': + return this.singletons.gray; + case 'RGB': + case 'DeviceRGB': + return this.singletons.rgb; + case 'CMYK': + case 'DeviceCMYK': + return this.singletons.cmyk; + case 'CalGray': + s = t.fetchIfRef(e[1]); + d = s.getArray('WhitePoint'); + f = s.getArray('BlackPoint'); + g = s.get('Gamma'); + return new c(d, f, g); + case 'CalRGB': + s = t.fetchIfRef(e[1]); + d = s.getArray('WhitePoint'); + f = s.getArray('BlackPoint'); + g = s.getArray('Gamma'); + const p = s.getArray('Matrix'); + return new l(d, f, g, p); + case 'ICCBased': + const m = t.fetchIfRef(e[1]).dict; + o = m.get('N'); + const b = m.get('Alternate'); + if (b) { + const e = this._parse(b, t, a, n); + if (e.numComps === o) return e; + (0, r.warn)('ICCBased color space: Ignoring incorrect /Alternate entry.'); + } + if (1 === o) return this.singletons.gray; + if (3 === o) return this.singletons.rgb; + if (4 === o) return this.singletons.cmyk; + break; + case 'Pattern': + u = e[1] || null; + u && (u = this._parse(u, t, a, n)); + return new PatternCS(u); + case 'I': + case 'Indexed': + u = this._parse(e[1], t, a, n); + const y = t.fetchIfRef(e[2]) + 1, + w = t.fetchIfRef(e[3]); + return new IndexedCS(u, y, w); + case 'Separation': + case 'DeviceN': + const S = t.fetchIfRef(e[1]); + o = Array.isArray(S) ? S.length : 1; + u = this._parse(e[2], t, a, n); + const x = n.create(e[3]); + return new AlternateCS(o, u, x); + case 'Lab': + s = t.fetchIfRef(e[1]); + d = s.getArray('WhitePoint'); + f = s.getArray('BlackPoint'); + const C = s.getArray('Range'); + return new h(d, f, C); + default: + throw new r.FormatError(`Unimplemented ColorSpace object: ${i}`); + } + } + throw new r.FormatError(`Unrecognized ColorSpace object: ${e}`); + } + static isDefaultDecode(e, t) { + if (!Array.isArray(e)) return !0; + if (2 * t !== e.length) { + (0, r.warn)('The decode map is not the correct length'); + return !0; + } + for (let t = 0, a = e.length; t < a; t += 2) + if (0 !== e[t] || 1 !== e[t + 1]) return !1; + return !0; + } + static get singletons() { + return (0, r.shadow)(this, 'singletons', { + get gray() { + return (0, r.shadow)(this, 'gray', new DeviceGrayCS()); + }, + get rgb() { + return (0, r.shadow)(this, 'rgb', new DeviceRgbCS()); + }, + get cmyk() { + return (0, r.shadow)(this, 'cmyk', new o()); + }, + }); + } + } + t.ColorSpace = ColorSpace; + class AlternateCS extends ColorSpace { + constructor(e, t, a) { + super('Alternate', e); + this.base = t; + this.tintFn = a; + this.tmpBuf = new Float32Array(t.numComps); + } + getRgbItem(e, t, a, r) { + const i = this.tmpBuf; + this.tintFn(e, t, i, 0); + this.base.getRgbItem(i, 0, a, r); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = this.tintFn, + c = this.base, + l = 1 / ((1 << n) - 1), + h = c.numComps, + u = c.usesZeroToOneRange, + d = (c.isPassthrough(8) || !u) && 0 === s; + let f = d ? i : 0; + const g = d ? r : new Uint8ClampedArray(h * a), + p = this.numComps, + m = new Float32Array(p), + b = new Float32Array(h); + let y, w; + for (y = 0; y < a; y++) { + for (w = 0; w < p; w++) m[w] = e[t++] * l; + o(m, 0, b, 0); + if (u) for (w = 0; w < h; w++) g[f++] = 255 * b[w]; + else { + c.getRgbItem(b, 0, g, f); + f += h; + } + } + d || c.getRgbBuffer(g, 0, a, r, i, 8, s); + } + getOutputLength(e, t) { + return this.base.getOutputLength((e * this.base.numComps) / this.numComps, t); + } + } + class PatternCS extends ColorSpace { + constructor(e) { + super('Pattern', null); + this.base = e; + } + isDefaultDecode(e, t) { + (0, r.unreachable)('Should not call PatternCS.isDefaultDecode'); + } + } + class IndexedCS extends ColorSpace { + constructor(e, t, a) { + super('Indexed', 1); + this.base = e; + this.highVal = t; + const i = e.numComps * t; + this.lookup = new Uint8Array(i); + if (a instanceof n.BaseStream) { + const e = a.getBytes(i); + this.lookup.set(e); + } else { + if ('string' != typeof a) + throw new r.FormatError(`IndexedCS - unrecognized lookup table: ${a}`); + for (let e = 0; e < i; ++e) this.lookup[e] = 255 & a.charCodeAt(e); + } + } + getRgbItem(e, t, a, r) { + const i = this.base.numComps, + n = e[t] * i; + this.base.getRgbBuffer(this.lookup, n, 1, a, r, 8, 0); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = this.base, + c = o.numComps, + l = o.getOutputLength(c, s), + h = this.lookup; + for (let n = 0; n < a; ++n) { + const a = e[t++] * c; + o.getRgbBuffer(h, a, 1, r, i, 8, s); + i += l; + } + } + getOutputLength(e, t) { + return this.base.getOutputLength(e * this.base.numComps, t); + } + isDefaultDecode(e, t) { + if (!Array.isArray(e)) return !0; + if (2 !== e.length) { + (0, r.warn)('Decode map length is not correct'); + return !0; + } + if (!Number.isInteger(t) || t < 1) { + (0, r.warn)('Bits per component is not correct'); + return !0; + } + return 0 === e[0] && e[1] === (1 << t) - 1; + } + } + class DeviceGrayCS extends ColorSpace { + constructor() { + super('DeviceGray', 1); + } + getRgbItem(e, t, a, r) { + const i = 255 * e[t]; + a[r] = a[r + 1] = a[r + 2] = i; + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = 255 / ((1 << n) - 1); + let c = t, + l = i; + for (let t = 0; t < a; ++t) { + const t = o * e[c++]; + r[l++] = t; + r[l++] = t; + r[l++] = t; + l += s; + } + } + getOutputLength(e, t) { + return e * (3 + t); + } + } + class DeviceRgbCS extends ColorSpace { + constructor() { + super('DeviceRGB', 3); + } + getRgbItem(e, t, a, r) { + a[r] = 255 * e[t]; + a[r + 1] = 255 * e[t + 1]; + a[r + 2] = 255 * e[t + 2]; + } + getRgbBuffer(e, t, a, r, i, n, s) { + if (8 === n && 0 === s) { + r.set(e.subarray(t, t + 3 * a), i); + return; + } + const o = 255 / ((1 << n) - 1); + let c = t, + l = i; + for (let t = 0; t < a; ++t) { + r[l++] = o * e[c++]; + r[l++] = o * e[c++]; + r[l++] = o * e[c++]; + l += s; + } + } + getOutputLength(e, t) { + return ((e * (3 + t)) / 3) | 0; + } + isPassthrough(e) { + return 8 === e; + } + } + const o = (function DeviceCmykCSClosure() { + function convertToRgb(e, t, a, r, i) { + const n = e[t] * a, + s = e[t + 1] * a, + o = e[t + 2] * a, + c = e[t + 3] * a; + r[i] = + 255 + + n * + (-4.387332384609988 * n + + 54.48615194189176 * s + + 18.82290502165302 * o + + 212.25662451639585 * c - + 285.2331026137004) + + s * + (1.7149763477362134 * s - + 5.6096736904047315 * o + + -17.873870861415444 * c - + 5.497006427196366) + + o * (-2.5217340131683033 * o - 21.248923337353073 * c + 17.5119270841813) + + c * (-21.86122147463605 * c - 189.48180835922747); + r[i + 1] = + 255 + + n * + (8.841041422036149 * n + + 60.118027045597366 * s + + 6.871425592049007 * o + + 31.159100130055922 * c - + 79.2970844816548) + + s * + (-15.310361306967817 * s + + 17.575251261109482 * o + + 131.35250912493976 * c - + 190.9453302588951) + + o * (4.444339102852739 * o + 9.8632861493405 * c - 24.86741582555878) + + c * (-20.737325471181034 * c - 187.80453709719578); + r[i + 2] = + 255 + + n * + (0.8842522430003296 * n + + 8.078677503112928 * s + + 30.89978309703729 * o - + 0.23883238689178934 * c - + 14.183576799673286) + + s * + (10.49593273432072 * s + + 63.02378494754052 * o + + 50.606957656360734 * c - + 112.23884253719248) + + o * (0.03296041114873217 * o + 115.60384449646641 * c - 193.58209356861505) + + c * (-22.33816807309886 * c - 180.12613974708367); + } + return class DeviceCmykCS extends ColorSpace { + constructor() { + super('DeviceCMYK', 4); + } + getRgbItem(e, t, a, r) { + convertToRgb(e, t, 1, a, r); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = 1 / ((1 << n) - 1); + for (let n = 0; n < a; n++) { + convertToRgb(e, t, o, r, i); + t += 4; + i += 3 + s; + } + } + getOutputLength(e, t) { + return ((e / 4) * (3 + t)) | 0; + } + }; + })(), + c = (function CalGrayCSClosure() { + function convertToRgb(e, t, a, r, i, n) { + const s = (t[a] * n) ** e.G, + o = e.YW * s, + c = Math.max(295.8 * o ** 0.3333333333333333 - 40.8, 0); + r[i] = c; + r[i + 1] = c; + r[i + 2] = c; + } + return class CalGrayCS extends ColorSpace { + constructor(e, t, a) { + super('CalGray', 1); + if (!e) + throw new r.FormatError( + 'WhitePoint missing - required for color space CalGray', + ); + t = t || [0, 0, 0]; + a = a || 1; + this.XW = e[0]; + this.YW = e[1]; + this.ZW = e[2]; + this.XB = t[0]; + this.YB = t[1]; + this.ZB = t[2]; + this.G = a; + if (this.XW < 0 || this.ZW < 0 || 1 !== this.YW) + throw new r.FormatError( + `Invalid WhitePoint components for ${this.name}, no fallback available`, + ); + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + (0, r.info)(`Invalid BlackPoint for ${this.name}, falling back to default.`); + this.XB = this.YB = this.ZB = 0; + } + (0 === this.XB && 0 === this.YB && 0 === this.ZB) || + (0, r.warn)( + `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ZB: ${this.ZB}, only default values are supported.`, + ); + if (this.G < 1) { + (0, r.info)( + `Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`, + ); + this.G = 1; + } + } + getRgbItem(e, t, a, r) { + convertToRgb(this, e, t, a, r, 1); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = 1 / ((1 << n) - 1); + for (let n = 0; n < a; ++n) { + convertToRgb(this, e, t, r, i, o); + t += 1; + i += 3 + s; + } + } + getOutputLength(e, t) { + return e * (3 + t); + } + }; + })(), + l = (function CalRGBCSClosure() { + const e = new Float32Array([ + 0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296, + ]), + t = new Float32Array([ + 0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, + 0.0400428, 0.9684867, + ]), + a = new Float32Array([ + 3.2404542, -1.5371385, -0.4985314, -0.969266, 1.8760108, 0.041556, 0.0556434, + -0.2040259, 1.0572252, + ]), + i = new Float32Array([1, 1, 1]), + n = new Float32Array(3), + s = new Float32Array(3), + o = new Float32Array(3), + c = (24 / 116) ** 3 / 8; + function matrixProduct(e, t, a) { + a[0] = e[0] * t[0] + e[1] * t[1] + e[2] * t[2]; + a[1] = e[3] * t[0] + e[4] * t[1] + e[5] * t[2]; + a[2] = e[6] * t[0] + e[7] * t[1] + e[8] * t[2]; + } + function sRGBTransferFunction(e) { + return e <= 0.0031308 + ? adjustToRange(0, 1, 12.92 * e) + : e >= 0.99554525 + ? 1 + : adjustToRange(0, 1, 1.055 * e ** (1 / 2.4) - 0.055); + } + function adjustToRange(e, t, a) { + return Math.max(e, Math.min(t, a)); + } + function decodeL(e) { + return e < 0 ? -decodeL(-e) : e > 8 ? ((e + 16) / 116) ** 3 : e * c; + } + function convertToRgb(r, c, l, h, u, d) { + const f = adjustToRange(0, 1, c[l] * d), + g = adjustToRange(0, 1, c[l + 1] * d), + p = adjustToRange(0, 1, c[l + 2] * d), + m = 1 === f ? 1 : f ** r.GR, + b = 1 === g ? 1 : g ** r.GG, + y = 1 === p ? 1 : p ** r.GB, + w = r.MXA * m + r.MXB * b + r.MXC * y, + S = r.MYA * m + r.MYB * b + r.MYC * y, + x = r.MZA * m + r.MZB * b + r.MZC * y, + C = s; + C[0] = w; + C[1] = S; + C[2] = x; + const k = o; + !(function normalizeWhitePointToFlat(a, r, i) { + if (1 === a[0] && 1 === a[2]) { + i[0] = r[0]; + i[1] = r[1]; + i[2] = r[2]; + return; + } + const s = i; + matrixProduct(e, r, s); + const o = n; + !(function convertToFlat(e, t, a) { + a[0] = (1 * t[0]) / e[0]; + a[1] = (1 * t[1]) / e[1]; + a[2] = (1 * t[2]) / e[2]; + })(a, s, o); + matrixProduct(t, o, i); + })(r.whitePoint, C, k); + const v = s; + !(function compensateBlackPoint(e, t, a) { + if (0 === e[0] && 0 === e[1] && 0 === e[2]) { + a[0] = t[0]; + a[1] = t[1]; + a[2] = t[2]; + return; + } + const r = decodeL(0), + i = (1 - r) / (1 - decodeL(e[0])), + n = 1 - i, + s = (1 - r) / (1 - decodeL(e[1])), + o = 1 - s, + c = (1 - r) / (1 - decodeL(e[2])), + l = 1 - c; + a[0] = t[0] * i + n; + a[1] = t[1] * s + o; + a[2] = t[2] * c + l; + })(r.blackPoint, k, v); + const F = o; + !(function normalizeWhitePointToD65(a, r, i) { + const s = i; + matrixProduct(e, r, s); + const o = n; + !(function convertToD65(e, t, a) { + a[0] = (0.95047 * t[0]) / e[0]; + a[1] = (1 * t[1]) / e[1]; + a[2] = (1.08883 * t[2]) / e[2]; + })(a, s, o); + matrixProduct(t, o, i); + })(i, v, F); + const O = s; + matrixProduct(a, F, O); + h[u] = 255 * sRGBTransferFunction(O[0]); + h[u + 1] = 255 * sRGBTransferFunction(O[1]); + h[u + 2] = 255 * sRGBTransferFunction(O[2]); + } + return class CalRGBCS extends ColorSpace { + constructor(e, t, a, i) { + super('CalRGB', 3); + if (!e) + throw new r.FormatError('WhitePoint missing - required for color space CalRGB'); + t ||= new Float32Array(3); + a ||= new Float32Array([1, 1, 1]); + i ||= new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]); + const n = e[0], + s = e[1], + o = e[2]; + this.whitePoint = e; + const c = t[0], + l = t[1], + h = t[2]; + this.blackPoint = t; + this.GR = a[0]; + this.GG = a[1]; + this.GB = a[2]; + this.MXA = i[0]; + this.MYA = i[1]; + this.MZA = i[2]; + this.MXB = i[3]; + this.MYB = i[4]; + this.MZB = i[5]; + this.MXC = i[6]; + this.MYC = i[7]; + this.MZC = i[8]; + if (n < 0 || o < 0 || 1 !== s) + throw new r.FormatError( + `Invalid WhitePoint components for ${this.name}, no fallback available`, + ); + if (c < 0 || l < 0 || h < 0) { + (0, r.info)( + `Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`, + ); + this.blackPoint = new Float32Array(3); + } + if (this.GR < 0 || this.GG < 0 || this.GB < 0) { + (0, r.info)( + `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`, + ); + this.GR = this.GG = this.GB = 1; + } + } + getRgbItem(e, t, a, r) { + convertToRgb(this, e, t, a, r, 1); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = 1 / ((1 << n) - 1); + for (let n = 0; n < a; ++n) { + convertToRgb(this, e, t, r, i, o); + t += 3; + i += 3 + s; + } + } + getOutputLength(e, t) { + return ((e * (3 + t)) / 3) | 0; + } + }; + })(), + h = (function LabCSClosure() { + function fn_g(e) { + let t; + t = e >= 6 / 29 ? e ** 3 : (108 / 841) * (e - 4 / 29); + return t; + } + function decode(e, t, a, r) { + return a + (e * (r - a)) / t; + } + function convertToRgb(e, t, a, r, i, n) { + let s = t[a], + o = t[a + 1], + c = t[a + 2]; + if (!1 !== r) { + s = decode(s, r, 0, 100); + o = decode(o, r, e.amin, e.amax); + c = decode(c, r, e.bmin, e.bmax); + } + o > e.amax ? (o = e.amax) : o < e.amin && (o = e.amin); + c > e.bmax ? (c = e.bmax) : c < e.bmin && (c = e.bmin); + const l = (s + 16) / 116, + h = l + o / 500, + u = l - c / 200, + d = e.XW * fn_g(h), + f = e.YW * fn_g(l), + g = e.ZW * fn_g(u); + let p, m, b; + if (e.ZW < 1) { + p = 3.1339 * d + -1.617 * f + -0.4906 * g; + m = -0.9785 * d + 1.916 * f + 0.0333 * g; + b = 0.072 * d + -0.229 * f + 1.4057 * g; + } else { + p = 3.2406 * d + -1.5372 * f + -0.4986 * g; + m = -0.9689 * d + 1.8758 * f + 0.0415 * g; + b = 0.0557 * d + -0.204 * f + 1.057 * g; + } + i[n] = 255 * Math.sqrt(p); + i[n + 1] = 255 * Math.sqrt(m); + i[n + 2] = 255 * Math.sqrt(b); + } + return class LabCS extends ColorSpace { + constructor(e, t, a) { + super('Lab', 3); + if (!e) + throw new r.FormatError('WhitePoint missing - required for color space Lab'); + t ||= [0, 0, 0]; + a ||= [-100, 100, -100, 100]; + this.XW = e[0]; + this.YW = e[1]; + this.ZW = e[2]; + this.amin = a[0]; + this.amax = a[1]; + this.bmin = a[2]; + this.bmax = a[3]; + this.XB = t[0]; + this.YB = t[1]; + this.ZB = t[2]; + if (this.XW < 0 || this.ZW < 0 || 1 !== this.YW) + throw new r.FormatError('Invalid WhitePoint components, no fallback available'); + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + (0, r.info)('Invalid BlackPoint, falling back to default'); + this.XB = this.YB = this.ZB = 0; + } + if (this.amin > this.amax || this.bmin > this.bmax) { + (0, r.info)('Invalid Range, falling back to defaults'); + this.amin = -100; + this.amax = 100; + this.bmin = -100; + this.bmax = 100; + } + } + getRgbItem(e, t, a, r) { + convertToRgb(this, e, t, !1, a, r); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = (1 << n) - 1; + for (let n = 0; n < a; n++) { + convertToRgb(this, e, t, o, r, i); + t += 3; + i += 3 + s; + } + } + getOutputLength(e, t) { + return ((e * (3 + t)) / 3) | 0; + } + isDefaultDecode(e, t) { + return !0; + } + get usesZeroToOneRange() { + return (0, r.shadow)(this, 'usesZeroToOneRange', !1); + } + }; + })(); + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PartialEvaluator = t.EvaluatorPreprocessor = void 0; + var r = a(2), + i = a(14), + n = a(4), + s = a(34), + o = a(37), + c = a(41), + l = a(50), + h = a(51), + u = a(42), + d = a(57), + f = a(16), + g = a(59), + p = a(8), + m = a(5), + b = a(60), + y = a(12), + w = a(18), + S = a(38), + x = a(39), + C = a(3), + k = a(45), + v = a(40), + F = a(61), + O = a(62), + T = a(63), + M = a(64); + const E = Object.freeze({ + maxImageSize: -1, + disableFontFace: !1, + ignoreErrors: !1, + isEvalSupported: !0, + isOffscreenCanvasSupported: !1, + canvasMaxAreaInBytes: -1, + fontExtraProperties: !1, + useSystemFonts: !0, + cMapUrl: null, + standardFontDataUrl: null, + }), + D = 1, + N = 2, + R = Promise.resolve(); + function normalizeBlendMode(e, t = !1) { + if (Array.isArray(e)) { + for (const t of e) { + const e = normalizeBlendMode(t, !0); + if (e) return e; + } + (0, r.warn)(`Unsupported blend mode Array: ${e}`); + return 'source-over'; + } + if (!(e instanceof n.Name)) return t ? null : 'source-over'; + switch (e.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'; + } + if (t) return null; + (0, r.warn)(`Unsupported blend mode: ${e.name}`); + return 'source-over'; + } + function incrementCachedImageMaskCount(e) { + e.fn === r.OPS.paintImageMaskXObject && + e.args[0] && + e.args[0].count > 0 && + e.args[0].count++; + } + class TimeSlotManager { + static TIME_SLOT_DURATION_MS = 20; + static CHECK_TIME_EVERY = 100; + constructor() { + this.reset(); + } + check() { + if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) return !1; + this.checked = 0; + return this.endTime <= Date.now(); + } + reset() { + this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS; + this.checked = 0; + } + } + class PartialEvaluator { + constructor({ + xref: e, + handler: t, + pageIndex: a, + idFactory: r, + fontCache: i, + builtInCMapCache: n, + standardFontDataCache: s, + globalImageCache: o, + options: c = null, + }) { + this.xref = e; + this.handler = t; + this.pageIndex = a; + this.idFactory = r; + this.fontCache = i; + this.builtInCMapCache = n; + this.standardFontDataCache = s; + this.globalImageCache = o; + this.options = c || E; + this.parsingType3Font = !1; + this._regionalImageCache = new g.RegionalImageCache(); + this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this); + F.ImageResizer.setMaxArea(this.options.canvasMaxAreaInBytes); + } + get _pdfFunctionFactory() { + const e = new d.PDFFunctionFactory({ + xref: this.xref, + isEvalSupported: this.options.isEvalSupported, + }); + return (0, r.shadow)(this, '_pdfFunctionFactory', e); + } + clone(e = null) { + const t = Object.create(this); + t.options = Object.assign(Object.create(null), this.options, e); + return t; + } + hasBlendModes(e, t) { + if (!(e instanceof n.Dict)) return !1; + if (e.objId && t.has(e.objId)) return !1; + const a = new n.RefSet(t); + e.objId && a.put(e.objId); + const i = [e], + s = this.xref; + for (; i.length; ) { + const e = i.shift(), + t = e.get('ExtGState'); + if (t instanceof n.Dict) + for (let e of t.getRawValues()) { + if (e instanceof n.Ref) { + if (a.has(e)) continue; + try { + e = s.fetch(e); + } catch (t) { + a.put(e); + (0, r.info)(`hasBlendModes - ignoring ExtGState: "${t}".`); + continue; + } + } + if (!(e instanceof n.Dict)) continue; + e.objId && a.put(e.objId); + const t = e.get('BM'); + if (t instanceof n.Name) { + if ('Normal' !== t.name) return !0; + } else if (void 0 !== t && Array.isArray(t)) + for (const e of t) if (e instanceof n.Name && 'Normal' !== e.name) return !0; + } + const o = e.get('XObject'); + if (o instanceof n.Dict) + for (let e of o.getRawValues()) { + if (e instanceof n.Ref) { + if (a.has(e)) continue; + try { + e = s.fetch(e); + } catch (t) { + a.put(e); + (0, r.info)(`hasBlendModes - ignoring XObject: "${t}".`); + continue; + } + } + if (!(e instanceof m.BaseStream)) continue; + e.dict.objId && a.put(e.dict.objId); + const t = e.dict.get('Resources'); + if (t instanceof n.Dict && (!t.objId || !a.has(t.objId))) { + i.push(t); + t.objId && a.put(t.objId); + } + } + } + for (const e of a) t.put(e); + return !1; + } + async fetchBuiltInCMap(e) { + const t = this.builtInCMapCache.get(e); + if (t) return t; + let a; + if (null !== this.options.cMapUrl) { + const t = `${this.options.cMapUrl}${e}.bcmap`, + i = await fetch(t); + if (!i.ok) + throw new Error( + `fetchBuiltInCMap: failed to fetch file "${t}" with "${i.statusText}".`, + ); + a = { + cMapData: new Uint8Array(await i.arrayBuffer()), + compressionType: r.CMapCompressionType.BINARY, + }; + } else a = await this.handler.sendWithPromise('FetchBuiltInCMap', { name: e }); + a.compressionType !== r.CMapCompressionType.NONE && this.builtInCMapCache.set(e, a); + return a; + } + async fetchStandardFontData(e) { + const t = this.standardFontDataCache.get(e); + if (t) return new p.Stream(t); + if (this.options.useSystemFonts && 'Symbol' !== e && 'ZapfDingbats' !== e) + return null; + const a = (0, c.getFontNameToFileMap)()[e]; + let i; + if (null !== this.options.standardFontDataUrl) { + const e = `${this.options.standardFontDataUrl}${a}`, + t = await fetch(e); + t.ok + ? (i = await t.arrayBuffer()) + : (0, r.warn)( + `fetchStandardFontData: failed to fetch file "${e}" with "${t.statusText}".`, + ); + } else + try { + i = await this.handler.sendWithPromise('FetchStandardFontData', { filename: a }); + } catch (e) { + (0, r.warn)(`fetchStandardFontData: failed to fetch file "${a}" with "${e}".`); + } + if (!i) return null; + this.standardFontDataCache.set(e, i); + return new p.Stream(i); + } + async buildFormXObject(e, t, a, i, s, o, c) { + const l = t.dict, + h = l.getArray('Matrix'); + let u, + d, + f = l.getArray('BBox'); + f = Array.isArray(f) && 4 === f.length ? r.Util.normalizeRect(f) : null; + l.has('OC') && (u = await this.parseMarkedContentProps(l.get('OC'), e)); + void 0 !== u && i.addOp(r.OPS.beginMarkedContentProps, ['OC', u]); + const g = l.get('Group'); + if (g) { + d = { matrix: h, bbox: f, smask: a, isolated: !1, knockout: !1 }; + const t = g.get('S'); + let s = null; + if ((0, n.isName)(t, 'Transparency')) { + d.isolated = g.get('I') || !1; + d.knockout = g.get('K') || !1; + if (g.has('CS')) { + const t = g.getRaw('CS'), + a = y.ColorSpace.getCached(t, this.xref, c); + s = + a || + (await this.parseColorSpace({ + cs: t, + resources: e, + localColorSpaceCache: c, + })); + } + } + if (a && a.backdrop) { + s ||= y.ColorSpace.singletons.rgb; + a.backdrop = s.getRgb(a.backdrop, 0); + } + i.addOp(r.OPS.beginGroup, [d]); + } + const p = g ? [h, null] : [h, f]; + i.addOp(r.OPS.paintFormXObjectBegin, p); + return this.getOperatorList({ + stream: t, + task: s, + resources: l.get('Resources') || e, + operatorList: i, + initialState: o, + }).then(function () { + i.addOp(r.OPS.paintFormXObjectEnd, []); + g && i.addOp(r.OPS.endGroup, [d]); + void 0 !== u && i.addOp(r.OPS.endMarkedContent, []); + }); + } + _sendImgData(e, t, a = !1) { + const r = t ? [t.bitmap || t.data.buffer] : null; + return this.parsingType3Font || a + ? this.handler.send('commonobj', [e, 'Image', t], r) + : this.handler.send('obj', [e, this.pageIndex, 'Image', t], r); + } + async buildPaintImageXObject({ + resources: e, + image: t, + isInline: a = !1, + operatorList: i, + cacheKey: n, + localImageCache: s, + localColorSpaceCache: o, + }) { + const c = t.dict, + l = c.objId, + h = c.get('W', 'Width'), + u = c.get('H', 'Height'); + if (!h || 'number' != typeof h || !u || 'number' != typeof u) { + (0, r.warn)('Image dimensions are missing, or not numbers.'); + return; + } + const d = this.options.maxImageSize; + if (-1 !== d && h * u > d) { + const e = 'Image exceeded maximum allowed size and was removed.'; + if (this.options.ignoreErrors) { + (0, r.warn)(e); + return; + } + throw new Error(e); + } + let f; + c.has('OC') && (f = await this.parseMarkedContentProps(c.get('OC'), e)); + let g, p; + if (c.get('IM', 'ImageMask') || !1) { + const e = c.get('I', 'Interpolate'), + a = (h + 7) >> 3, + o = t.getBytes(a * u), + d = c.getArray('D', 'Decode'); + if (this.parsingType3Font) { + g = M.PDFImage.createRawMask({ + imgArray: o, + width: h, + height: u, + imageIsFromDecodeStream: t instanceof w.DecodeStream, + inverseDecode: !!d && d[0] > 0, + interpolate: e, + }); + g.cached = !!n; + p = [g]; + i.addImageOps(r.OPS.paintImageMaskXObject, p, f); + if (n) { + const e = { fn: r.OPS.paintImageMaskXObject, args: p, optionalContent: f }; + s.set(n, l, e); + l && this._regionalImageCache.set(null, l, e); + } + return; + } + g = await M.PDFImage.createMask({ + imgArray: o, + width: h, + height: u, + imageIsFromDecodeStream: t instanceof w.DecodeStream, + inverseDecode: !!d && d[0] > 0, + interpolate: e, + isOffscreenCanvasSupported: this.options.isOffscreenCanvasSupported, + }); + if (g.isSingleOpaquePixel) { + i.addImageOps(r.OPS.paintSolidColorImageMask, [], f); + if (n) { + const e = { fn: r.OPS.paintSolidColorImageMask, args: [], optionalContent: f }; + s.set(n, l, e); + l && this._regionalImageCache.set(null, l, e); + } + return; + } + const m = `mask_${this.idFactory.createObjId()}`; + i.addDependency(m); + this._sendImgData(m, g); + p = [ + { + data: m, + width: g.width, + height: g.height, + interpolate: g.interpolate, + count: 1, + }, + ]; + i.addImageOps(r.OPS.paintImageMaskXObject, p, f); + if (n) { + const e = { fn: r.OPS.paintImageMaskXObject, args: p, optionalContent: f }; + s.set(n, l, e); + l && this._regionalImageCache.set(null, l, e); + } + return; + } + const m = c.get('SM', 'SMask') || !1, + b = c.get('Mask') || !1; + if (a && !m && !b && h + u < 200) { + const n = new M.PDFImage({ + xref: this.xref, + res: e, + image: t, + isInline: a, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache: o, + }); + g = await n.createImageData(!0, !1); + i.isOffscreenCanvasSupported = this.options.isOffscreenCanvasSupported; + i.addImageOps(r.OPS.paintInlineImageXObject, [g], f); + return; + } + let y = `img_${this.idFactory.createObjId()}`, + S = !1; + if (this.parsingType3Font) y = `${this.idFactory.getDocId()}_type3_${y}`; + else if (l) { + S = this.globalImageCache.shouldCache(l, this.pageIndex); + S && (y = `${this.idFactory.getDocId()}_${y}`); + } + i.addDependency(y); + p = [y, h, u]; + M.PDFImage.buildImage({ + xref: this.xref, + res: e, + image: t, + isInline: a, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache: o, + }) + .then(async (e) => { + g = await e.createImageData(!1, this.options.isOffscreenCanvasSupported); + if (n && l && S) { + let e = 0; + e = g.bitmap ? g.width * g.height * 4 : g.data.length; + this.globalImageCache.addByteSize(l, e); + } + return this._sendImgData(y, g, S); + }) + .catch((e) => { + (0, r.warn)(`Unable to decode image "${y}": "${e}".`); + return this._sendImgData(y, null, S); + }); + i.addImageOps(r.OPS.paintImageXObject, p, f); + if (n) { + const e = { fn: r.OPS.paintImageXObject, args: p, optionalContent: f }; + s.set(n, l, e); + if (l) { + this._regionalImageCache.set(null, l, e); + if (S) { + (0, r.assert)(!a, 'Cannot cache an inline image globally.'); + this.globalImageCache.setData(l, { + objId: y, + fn: r.OPS.paintImageXObject, + args: p, + optionalContent: f, + byteSize: 0, + }); + } + } + } + } + handleSMask(e, t, a, r, i, n) { + const s = e.get('G'), + o = { subtype: e.get('S').name, backdrop: e.get('BC') }, + c = e.get('TR'); + if ((0, d.isPDFFunction)(c)) { + const e = this._pdfFunctionFactory.create(c), + t = new Uint8Array(256), + a = new Float32Array(1); + for (let r = 0; r < 256; r++) { + a[0] = r / 255; + e(a, 0, a, 0); + t[r] = (255 * a[0]) | 0; + } + o.transferMap = t; + } + return this.buildFormXObject(t, s, o, a, r, i.state.clone(), n); + } + handleTransferFunction(e) { + let t; + if (Array.isArray(e)) t = e; + else { + if (!(0, d.isPDFFunction)(e)) return null; + t = [e]; + } + const a = []; + let r = 0, + i = 0; + for (const e of t) { + const t = this.xref.fetchIfRef(e); + r++; + if ((0, n.isName)(t, 'Identity')) { + a.push(null); + continue; + } + if (!(0, d.isPDFFunction)(t)) return null; + const s = this._pdfFunctionFactory.create(t), + o = new Uint8Array(256), + c = new Float32Array(1); + for (let e = 0; e < 256; e++) { + c[0] = e / 255; + s(c, 0, c, 0); + o[e] = (255 * c[0]) | 0; + } + a.push(o); + i++; + } + return (1 !== r && 4 !== r) || 0 === i ? null : a; + } + handleTilingType(e, t, a, i, s, o, c, h) { + const u = new T.OperatorList(), + d = n.Dict.merge({ xref: this.xref, dictArray: [s.get('Resources'), a] }); + return this.getOperatorList({ stream: i, task: c, resources: d, operatorList: u }) + .then(function () { + const a = u.getIR(), + r = (0, l.getTilingPatternIR)(a, s, t); + o.addDependencies(u.dependencies); + o.addOp(e, r); + s.objId && h.set(null, s.objId, { operatorListIR: a, dict: s }); + }) + .catch((e) => { + if (!(e instanceof r.AbortException)) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`handleTilingType - ignoring pattern: "${e}".`); + } + }); + } + handleSetFont(e, t, a, r, i, o, c = null, l = null) { + const h = t && t[0] instanceof n.Name ? t[0].name : null; + return this.loadFont(h, a, e, c, l) + .then((t) => + t.font.isType3Font + ? t + .loadType3Data(this, e, i) + .then(function () { + r.addDependencies(t.type3Dependencies); + return t; + }) + .catch( + (e) => + new TranslatedFont({ + loadedName: 'g_font_error', + font: new s.ErrorFont(`Type3 font load error: ${e}`), + dict: t.font, + evaluatorOptions: this.options, + }), + ) + : t, + ) + .then((e) => { + o.font = e.font; + e.send(this.handler); + return e.loadedName; + }); + } + handleText(e, t) { + const a = t.font, + i = a.charsToGlyphs(e); + if (a.data) { + (!!(t.textRenderingMode & r.TextRenderingMode.ADD_TO_PATH_FLAG) || + 'Pattern' === t.fillColorSpace.name || + a.disableFontFace || + this.options.disableFontFace) && + PartialEvaluator.buildFontPaths(a, i, this.handler, this.options); + } + return i; + } + ensureStateFont(e) { + if (e.font) return; + const t = new r.FormatError( + 'Missing setFont (Tf) operator before text rendering operator.', + ); + if (!this.options.ignoreErrors) throw t; + (0, r.warn)(`ensureStateFont: "${t}".`); + } + async setGState({ + resources: e, + gState: t, + operatorList: a, + cacheKey: i, + task: s, + stateManager: o, + localGStateCache: c, + localColorSpaceCache: l, + }) { + const h = t.objId; + let u = !0; + const d = []; + let f = Promise.resolve(); + for (const i of t.getKeys()) { + const c = t.get(i); + switch (i) { + case 'Type': + break; + case 'LW': + case 'LC': + case 'LJ': + case 'ML': + case 'D': + case 'RI': + case 'FL': + case 'CA': + case 'ca': + d.push([i, c]); + break; + case 'Font': + u = !1; + f = f.then(() => + this.handleSetFont(e, null, c[0], a, s, o.state).then(function (e) { + a.addDependency(e); + d.push([i, [e, c[1]]]); + }), + ); + break; + case 'BM': + d.push([i, normalizeBlendMode(c)]); + break; + case 'SMask': + if ((0, n.isName)(c, 'None')) { + d.push([i, !1]); + break; + } + if (c instanceof n.Dict) { + u = !1; + f = f.then(() => this.handleSMask(c, e, a, s, o, l)); + d.push([i, !0]); + } else (0, r.warn)('Unsupported SMask type'); + break; + case 'TR': + const t = this.handleTransferFunction(c); + d.push([i, t]); + 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': + (0, r.info)('graphic state operator ' + i); + break; + default: + (0, r.info)('Unknown graphic state operator ' + i); + } + } + return f.then(function () { + d.length > 0 && a.addOp(r.OPS.setGState, [d]); + u && c.set(i, h, d); + }); + } + loadFont(e, t, a, i = null, o = null) { + const errorFont = async () => + new TranslatedFont({ + loadedName: 'g_font_error', + font: new s.ErrorFont(`Font "${e}" is not available.`), + dict: t, + evaluatorOptions: this.options, + }), + c = this.xref; + let l; + if (t) t instanceof n.Ref && (l = t); + else { + const t = a.get('Font'); + t && (l = t.getRaw(e)); + } + if (!l) { + const a = `Font "${e || (t && t.toString())}" is not available`; + if (!this.options.ignoreErrors && !this.parsingType3Font) { + (0, r.warn)(`${a}.`); + return errorFont(); + } + (0, r.warn)(`${a} -- attempting to fallback to a default font.`); + l = i || PartialEvaluator.fallbackFontDict; + } + if (this.parsingType3Font && this.type3FontRefs.has(l)) return errorFont(); + if (this.fontCache.has(l)) return this.fontCache.get(l); + if (!((t = c.fetchIfRef(l)) instanceof n.Dict)) return errorFont(); + if (t.cacheKey && this.fontCache.has(t.cacheKey)) + return this.fontCache.get(t.cacheKey); + const h = new r.PromiseCapability(); + let u; + try { + u = this.preEvaluateFont(t); + u.cssFontInfo = o; + } catch (e) { + (0, r.warn)(`loadFont - preEvaluateFont failed: "${e}".`); + return errorFont(); + } + const { descriptor: d, hash: f } = u, + g = l instanceof n.Ref; + let p; + g && (p = `f${l.toString()}`); + if (f && d instanceof n.Dict) { + const e = (d.fontAliases ||= Object.create(null)); + if (e[f]) { + const t = e[f].aliasRef; + if (g && t && this.fontCache.has(t)) { + this.fontCache.putAlias(l, t); + return this.fontCache.get(l); + } + } else e[f] = { fontID: this.idFactory.createFontId() }; + g && (e[f].aliasRef = l); + p = e[f].fontID; + } + if (g) this.fontCache.put(l, h.promise); + else { + p || (p = this.idFactory.createFontId()); + t.cacheKey = `cacheKey_${p}`; + this.fontCache.put(t.cacheKey, h.promise); + } + (0, r.assert)(p && p.startsWith('f'), 'The "fontID" must be (correctly) defined.'); + t.loadedName = `${this.idFactory.getDocId()}_${p}`; + this.translateFont(u) + .then((e) => { + h.resolve( + new TranslatedFont({ + loadedName: t.loadedName, + font: e, + dict: t, + evaluatorOptions: this.options, + }), + ); + }) + .catch((e) => { + (0, r.warn)(`loadFont - translateFont failed: "${e}".`); + h.resolve( + new TranslatedFont({ + loadedName: t.loadedName, + font: new s.ErrorFont(e instanceof Error ? e.message : e), + dict: t, + evaluatorOptions: this.options, + }), + ); + }); + return h.promise; + } + buildPath(e, t, a, i = !1) { + const n = e.length - 1; + a || (a = []); + if (n < 0 || e.fnArray[n] !== r.OPS.constructPath) { + if (i) { + (0, r.warn)(`Encountered path operator "${t}" inside of a text object.`); + e.addOp(r.OPS.save, null); + } + let n; + switch (t) { + case r.OPS.rectangle: + const e = a[0] + a[2], + t = a[1] + a[3]; + n = [ + Math.min(a[0], e), + Math.max(a[0], e), + Math.min(a[1], t), + Math.max(a[1], t), + ]; + break; + case r.OPS.moveTo: + case r.OPS.lineTo: + n = [a[0], a[0], a[1], a[1]]; + break; + default: + n = [1 / 0, -1 / 0, 1 / 0, -1 / 0]; + } + e.addOp(r.OPS.constructPath, [[t], a, n]); + i && e.addOp(r.OPS.restore, null); + } else { + const i = e.argsArray[n]; + i[0].push(t); + i[1].push(...a); + const s = i[2]; + switch (t) { + case r.OPS.rectangle: + const e = a[0] + a[2], + t = a[1] + a[3]; + s[0] = Math.min(s[0], a[0], e); + s[1] = Math.max(s[1], a[0], e); + s[2] = Math.min(s[2], a[1], t); + s[3] = Math.max(s[3], a[1], t); + break; + case r.OPS.moveTo: + case r.OPS.lineTo: + s[0] = Math.min(s[0], a[0]); + s[1] = Math.max(s[1], a[0]); + s[2] = Math.min(s[2], a[1]); + s[3] = Math.max(s[3], a[1]); + } + } + } + parseColorSpace({ cs: e, resources: t, localColorSpaceCache: a }) { + return y.ColorSpace.parseAsync({ + cs: e, + xref: this.xref, + resources: t, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache: a, + }).catch((e) => { + if (e instanceof r.AbortException) return null; + if (this.options.ignoreErrors) { + (0, r.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`); + return null; + } + throw e; + }); + } + parseShading({ + shading: e, + resources: t, + localColorSpaceCache: a, + localShadingPatternCache: r, + }) { + let i = r.get(e); + if (!i) { + const n = l.Pattern.parseShading( + e, + this.xref, + t, + this._pdfFunctionFactory, + a, + ).getIR(); + i = `pattern_${this.idFactory.createObjId()}`; + this.parsingType3Font && (i = `${this.idFactory.getDocId()}_type3_${i}`); + r.set(e, i); + this.parsingType3Font + ? this.handler.send('commonobj', [i, 'Pattern', n]) + : this.handler.send('obj', [i, this.pageIndex, 'Pattern', n]); + } + return i; + } + handleColorN(e, t, a, i, s, o, c, h, u, d) { + const f = a.pop(); + if (f instanceof n.Name) { + const g = s.getRaw(f.name), + p = g instanceof n.Ref && u.getByRef(g); + if (p) + try { + const r = i.base ? i.base.getRgb(a, 0) : null, + n = (0, l.getTilingPatternIR)(p.operatorListIR, p.dict, r); + e.addOp(t, n); + return; + } catch (e) {} + const b = this.xref.fetchIfRef(g); + if (b) { + const n = b instanceof m.BaseStream ? b.dict : b, + s = n.get('PatternType'); + if (s === D) { + const r = i.base ? i.base.getRgb(a, 0) : null; + return this.handleTilingType(t, r, o, b, n, e, c, u); + } + if (s === N) { + const a = n.get('Shading'), + r = n.getArray('Matrix'), + i = this.parseShading({ + shading: a, + resources: o, + localColorSpaceCache: h, + localShadingPatternCache: d, + }); + e.addOp(t, ['Shading', i, r]); + return; + } + throw new r.FormatError(`Unknown PatternType: ${s}`); + } + } + throw new r.FormatError(`Unknown PatternName: ${f}`); + } + _parseVisibilityExpression(e, t, a) { + if (++t > 10) { + (0, r.warn)('Visibility expression is too deeply nested'); + return; + } + const i = e.length, + s = this.xref.fetchIfRef(e[0]); + if (!(i < 2) && s instanceof n.Name) { + switch (s.name) { + case 'And': + case 'Or': + case 'Not': + a.push(s.name); + break; + default: + (0, r.warn)(`Invalid operator ${s.name} in visibility expression`); + return; + } + for (let r = 1; r < i; r++) { + const i = e[r], + s = this.xref.fetchIfRef(i); + if (Array.isArray(s)) { + const e = []; + a.push(e); + this._parseVisibilityExpression(s, t, e); + } else i instanceof n.Ref && a.push(i.toString()); + } + } else (0, r.warn)('Invalid visibility expression'); + } + async parseMarkedContentProps(e, t) { + let a; + if (e instanceof n.Name) { + a = t.get('Properties').get(e.name); + } else { + if (!(e instanceof n.Dict)) + throw new r.FormatError('Optional content properties malformed.'); + a = e; + } + const i = a.get('Type').name; + if ('OCG' === i) return { type: i, id: a.objId }; + if ('OCMD' === i) { + const e = a.get('VE'); + if (Array.isArray(e)) { + const t = []; + this._parseVisibilityExpression(e, 0, t); + if (t.length > 0) return { type: 'OCMD', expression: t }; + } + const t = a.get('OCGs'); + if (Array.isArray(t) || t instanceof n.Dict) { + const e = []; + if (Array.isArray(t)) for (const a of t) e.push(a.toString()); + else e.push(t.objId); + return { + type: i, + ids: e, + policy: a.get('P') instanceof n.Name ? a.get('P').name : null, + expression: null, + }; + } + if (t instanceof n.Ref) return { type: i, id: t.toString() }; + } + return null; + } + getOperatorList({ + stream: e, + task: t, + resources: a, + operatorList: i, + initialState: s = null, + fallbackFontDict: o = null, + }) { + a ||= n.Dict.empty; + s ||= new EvalState(); + if (!i) throw new Error('getOperatorList: missing "operatorList" parameter'); + const c = this, + l = this.xref; + let h = !1; + const u = new g.LocalImageCache(), + d = new g.LocalColorSpaceCache(), + f = new g.LocalGStateCache(), + p = new g.LocalTilingPatternCache(), + b = new Map(), + w = a.get('XObject') || n.Dict.empty, + S = a.get('Pattern') || n.Dict.empty, + x = new StateManager(s), + C = new EvaluatorPreprocessor(e, l, x), + k = new TimeSlotManager(); + function closePendingRestoreOPS(e) { + for (let e = 0, t = C.savedStatesDepth; e < t; e++) i.addOp(r.OPS.restore, []); + } + return new Promise(function promiseBody(e, s) { + const next = function (t) { + Promise.all([t, i.ready]).then(function () { + try { + promiseBody(e, s); + } catch (e) { + s(e); + } + }, s); + }; + t.ensureNotTerminated(); + k.reset(); + const g = {}; + let v, F, O, T, M, E; + for (; !(v = k.check()); ) { + g.args = null; + if (!C.read(g)) break; + let e = g.args, + s = g.fn; + switch (0 | s) { + case r.OPS.paintXObject: + E = e[0] instanceof n.Name; + M = e[0].name; + if (E) { + const t = u.getByName(M); + if (t) { + i.addImageOps(t.fn, t.args, t.optionalContent); + incrementCachedImageMaskCount(t); + e = null; + continue; + } + } + next( + new Promise(function (e, s) { + if (!E) throw new r.FormatError('XObject must be referred to by name.'); + let o = w.getRaw(M); + if (o instanceof n.Ref) { + const t = u.getByRef(o) || c._regionalImageCache.getByRef(o); + if (t) { + i.addImageOps(t.fn, t.args, t.optionalContent); + incrementCachedImageMaskCount(t); + e(); + return; + } + const a = c.globalImageCache.getData(o, c.pageIndex); + if (a) { + i.addDependency(a.objId); + i.addImageOps(a.fn, a.args, a.optionalContent); + e(); + return; + } + o = l.fetch(o); + } + if (!(o instanceof m.BaseStream)) + throw new r.FormatError('XObject should be a stream'); + const h = o.dict.get('Subtype'); + if (!(h instanceof n.Name)) + throw new r.FormatError('XObject should have a Name subtype'); + if ('Form' !== h.name) + if ('Image' !== h.name) { + if ('PS' !== h.name) + throw new r.FormatError(`Unhandled XObject subtype ${h.name}`); + (0, r.info)('Ignored XObject subtype PS'); + e(); + } else + c.buildPaintImageXObject({ + resources: a, + image: o, + operatorList: i, + cacheKey: M, + localImageCache: u, + localColorSpaceCache: d, + }).then(e, s); + else { + x.save(); + c.buildFormXObject(a, o, null, i, t, x.state.clone(), d).then( + function () { + x.restore(); + e(); + }, + s, + ); + } + }).catch(function (e) { + if (!(e instanceof r.AbortException)) { + if (!c.options.ignoreErrors) throw e; + (0, r.warn)(`getOperatorList - ignoring XObject: "${e}".`); + } + }), + ); + return; + case r.OPS.setFont: + var D = e[1]; + next( + c.handleSetFont(a, e, null, i, t, x.state, o).then(function (e) { + i.addDependency(e); + i.addOp(r.OPS.setFont, [e, D]); + }), + ); + return; + case r.OPS.beginText: + h = !0; + break; + case r.OPS.endText: + h = !1; + break; + case r.OPS.endInlineImage: + var N = e[0].cacheKey; + if (N) { + const t = u.getByName(N); + if (t) { + i.addImageOps(t.fn, t.args, t.optionalContent); + incrementCachedImageMaskCount(t); + e = null; + continue; + } + } + next( + c.buildPaintImageXObject({ + resources: a, + image: e[0], + isInline: !0, + operatorList: i, + cacheKey: N, + localImageCache: u, + localColorSpaceCache: d, + }), + ); + return; + case r.OPS.showText: + if (!x.state.font) { + c.ensureStateFont(x.state); + continue; + } + e[0] = c.handleText(e[0], x.state); + break; + case r.OPS.showSpacedText: + if (!x.state.font) { + c.ensureStateFont(x.state); + continue; + } + var L = [], + _ = x.state; + for (const t of e[0]) + 'string' == typeof t + ? L.push(...c.handleText(t, _)) + : 'number' == typeof t && L.push(t); + e[0] = L; + s = r.OPS.showText; + break; + case r.OPS.nextLineShowText: + if (!x.state.font) { + c.ensureStateFont(x.state); + continue; + } + i.addOp(r.OPS.nextLine); + e[0] = c.handleText(e[0], x.state); + s = r.OPS.showText; + break; + case r.OPS.nextLineSetSpacingShowText: + if (!x.state.font) { + c.ensureStateFont(x.state); + continue; + } + i.addOp(r.OPS.nextLine); + i.addOp(r.OPS.setWordSpacing, [e.shift()]); + i.addOp(r.OPS.setCharSpacing, [e.shift()]); + e[0] = c.handleText(e[0], x.state); + s = r.OPS.showText; + break; + case r.OPS.setTextRenderingMode: + x.state.textRenderingMode = e[0]; + break; + case r.OPS.setFillColorSpace: { + const t = y.ColorSpace.getCached(e[0], l, d); + if (t) { + x.state.fillColorSpace = t; + continue; + } + next( + c + .parseColorSpace({ cs: e[0], resources: a, localColorSpaceCache: d }) + .then(function (e) { + e && (x.state.fillColorSpace = e); + }), + ); + return; + } + case r.OPS.setStrokeColorSpace: { + const t = y.ColorSpace.getCached(e[0], l, d); + if (t) { + x.state.strokeColorSpace = t; + continue; + } + next( + c + .parseColorSpace({ cs: e[0], resources: a, localColorSpaceCache: d }) + .then(function (e) { + e && (x.state.strokeColorSpace = e); + }), + ); + return; + } + case r.OPS.setFillColor: + T = x.state.fillColorSpace; + e = T.getRgb(e, 0); + s = r.OPS.setFillRGBColor; + break; + case r.OPS.setStrokeColor: + T = x.state.strokeColorSpace; + e = T.getRgb(e, 0); + s = r.OPS.setStrokeRGBColor; + break; + case r.OPS.setFillGray: + x.state.fillColorSpace = y.ColorSpace.singletons.gray; + e = y.ColorSpace.singletons.gray.getRgb(e, 0); + s = r.OPS.setFillRGBColor; + break; + case r.OPS.setStrokeGray: + x.state.strokeColorSpace = y.ColorSpace.singletons.gray; + e = y.ColorSpace.singletons.gray.getRgb(e, 0); + s = r.OPS.setStrokeRGBColor; + break; + case r.OPS.setFillCMYKColor: + x.state.fillColorSpace = y.ColorSpace.singletons.cmyk; + e = y.ColorSpace.singletons.cmyk.getRgb(e, 0); + s = r.OPS.setFillRGBColor; + break; + case r.OPS.setStrokeCMYKColor: + x.state.strokeColorSpace = y.ColorSpace.singletons.cmyk; + e = y.ColorSpace.singletons.cmyk.getRgb(e, 0); + s = r.OPS.setStrokeRGBColor; + break; + case r.OPS.setFillRGBColor: + x.state.fillColorSpace = y.ColorSpace.singletons.rgb; + e = y.ColorSpace.singletons.rgb.getRgb(e, 0); + break; + case r.OPS.setStrokeRGBColor: + x.state.strokeColorSpace = y.ColorSpace.singletons.rgb; + e = y.ColorSpace.singletons.rgb.getRgb(e, 0); + break; + case r.OPS.setFillColorN: + T = x.state.fillColorSpace; + if ('Pattern' === T.name) { + next(c.handleColorN(i, r.OPS.setFillColorN, e, T, S, a, t, d, p, b)); + return; + } + e = T.getRgb(e, 0); + s = r.OPS.setFillRGBColor; + break; + case r.OPS.setStrokeColorN: + T = x.state.strokeColorSpace; + if ('Pattern' === T.name) { + next(c.handleColorN(i, r.OPS.setStrokeColorN, e, T, S, a, t, d, p, b)); + return; + } + e = T.getRgb(e, 0); + s = r.OPS.setStrokeRGBColor; + break; + case r.OPS.shadingFill: + var $ = a.get('Shading'); + if (!$) throw new r.FormatError('No shading resource found'); + var j = $.get(e[0].name); + if (!j) throw new r.FormatError('No shading object found'); + e = [ + c.parseShading({ + shading: j, + resources: a, + localColorSpaceCache: d, + localShadingPatternCache: b, + }), + ]; + s = r.OPS.shadingFill; + break; + case r.OPS.setGState: + E = e[0] instanceof n.Name; + M = e[0].name; + if (E) { + const t = f.getByName(M); + if (t) { + t.length > 0 && i.addOp(r.OPS.setGState, [t]); + e = null; + continue; + } + } + next( + new Promise(function (e, s) { + if (!E) throw new r.FormatError('GState must be referred to by name.'); + const o = a.get('ExtGState'); + if (!(o instanceof n.Dict)) + throw new r.FormatError('ExtGState should be a dictionary.'); + const l = o.get(M); + if (!(l instanceof n.Dict)) + throw new r.FormatError('GState should be a dictionary.'); + c.setGState({ + resources: a, + gState: l, + operatorList: i, + cacheKey: M, + task: t, + stateManager: x, + localGStateCache: f, + localColorSpaceCache: d, + }).then(e, s); + }).catch(function (e) { + if (!(e instanceof r.AbortException)) { + if (!c.options.ignoreErrors) throw e; + (0, r.warn)(`getOperatorList - ignoring ExtGState: "${e}".`); + } + }), + ); + return; + case r.OPS.moveTo: + case r.OPS.lineTo: + case r.OPS.curveTo: + case r.OPS.curveTo2: + case r.OPS.curveTo3: + case r.OPS.closePath: + case r.OPS.rectangle: + c.buildPath(i, s, e, h); + continue; + case r.OPS.markPoint: + case r.OPS.markPointProps: + case r.OPS.beginCompat: + case r.OPS.endCompat: + continue; + case r.OPS.beginMarkedContentProps: + if (!(e[0] instanceof n.Name)) { + (0, r.warn)(`Expected name for beginMarkedContentProps arg0=${e[0]}`); + continue; + } + if ('OC' === e[0].name) { + next( + c + .parseMarkedContentProps(e[1], a) + .then((e) => { + i.addOp(r.OPS.beginMarkedContentProps, ['OC', e]); + }) + .catch((e) => { + if (!(e instanceof r.AbortException)) { + if (!c.options.ignoreErrors) throw e; + (0, r.warn)( + `getOperatorList - ignoring beginMarkedContentProps: "${e}".`, + ); + } + }), + ); + return; + } + e = [e[0].name, e[1] instanceof n.Dict ? e[1].get('MCID') : null]; + break; + case r.OPS.beginMarkedContent: + case r.OPS.endMarkedContent: + default: + if (null !== e) { + for (F = 0, O = e.length; F < O && !(e[F] instanceof n.Dict); F++); + if (F < O) { + (0, r.warn)('getOperatorList - ignoring operator: ' + s); + continue; + } + } + } + i.addOp(s, e); + } + if (v) next(R); + else { + closePendingRestoreOPS(); + e(); + } + }).catch((e) => { + if (!(e instanceof r.AbortException)) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`); + closePendingRestoreOPS(); + } + }); + } + getTextContent({ + stream: e, + task: t, + resources: a, + stateManager: i = null, + includeMarkedContent: s = !1, + sink: o, + seenStyles: c = new Set(), + viewBox: l, + markedContentData: h = null, + disableNormalization: u = !1, + }) { + a ||= n.Dict.empty; + i ||= new StateManager(new TextState()); + s && (h ||= { level: 0 }); + const d = { items: [], styles: Object.create(null) }, + f = { + initialized: !1, + str: [], + totalWidth: 0, + totalHeight: 0, + width: 0, + height: 0, + vertical: !1, + prevTransform: null, + textAdvanceScale: 0, + spaceInFlowMin: 0, + spaceInFlowMax: 0, + trackingSpaceMin: 1 / 0, + negativeSpaceMax: -1 / 0, + notASpace: -1 / 0, + transform: null, + fontName: null, + hasEOL: !1, + }, + p = [' ', ' ']; + let y = 0; + function saveLastChar(e) { + const t = (y + 1) % 2, + a = ' ' !== p[y] && ' ' === p[t]; + p[y] = e; + y = t; + return a; + } + function shouldAddWhitepsace() { + return ' ' !== p[y] && ' ' === p[(y + 1) % 2]; + } + function resetLastChars() { + p[0] = p[1] = ' '; + y = 0; + } + const w = this, + S = this.xref, + x = []; + let C = null; + const k = new g.LocalImageCache(), + v = new g.LocalGStateCache(), + F = new EvaluatorPreprocessor(e, S, i); + let O; + function pushWhitespace({ + width: e = 0, + height: t = 0, + transform: a = f.prevTransform, + fontName: r = f.fontName, + }) { + d.items.push({ + str: ' ', + dir: 'ltr', + width: e, + height: t, + transform: a, + fontName: r, + hasEOL: !1, + }); + } + function getCurrentTextTransform() { + const e = O.font, + t = [O.fontSize * O.textHScale, 0, 0, O.fontSize, 0, O.textRise]; + if ( + e.isType3Font && + (O.fontSize <= 1 || e.isCharBBox) && + !(0, r.isArrayEqual)(O.fontMatrix, r.FONT_IDENTITY_MATRIX) + ) { + const a = e.bbox[3] - e.bbox[1]; + a > 0 && (t[3] *= a * O.fontMatrix[3]); + } + return r.Util.transform(O.ctm, r.Util.transform(O.textMatrix, t)); + } + function ensureTextContentItem() { + if (f.initialized) return f; + const { font: e, loadedName: t } = O; + if (!c.has(t)) { + c.add(t); + d.styles[t] = { + fontFamily: e.fallbackName, + ascent: e.ascent, + descent: e.descent, + vertical: e.vertical, + }; + } + f.fontName = t; + const a = (f.transform = getCurrentTextTransform()); + if (e.vertical) { + f.width = f.totalWidth = Math.hypot(a[0], a[1]); + f.height = f.totalHeight = 0; + f.vertical = !0; + } else { + f.width = f.totalWidth = 0; + f.height = f.totalHeight = Math.hypot(a[2], a[3]); + f.vertical = !1; + } + const r = Math.hypot(O.textLineMatrix[0], O.textLineMatrix[1]), + i = Math.hypot(O.ctm[0], O.ctm[1]); + f.textAdvanceScale = i * r; + const { fontSize: n } = O; + f.trackingSpaceMin = 0.102 * n; + f.notASpace = 0.03 * n; + f.negativeSpaceMax = -0.2 * n; + f.spaceInFlowMin = 0.102 * n; + f.spaceInFlowMax = 0.6 * n; + f.hasEOL = !1; + f.initialized = !0; + return f; + } + function updateAdvanceScale() { + if (!f.initialized) return; + const e = Math.hypot(O.textLineMatrix[0], O.textLineMatrix[1]), + t = Math.hypot(O.ctm[0], O.ctm[1]) * e; + if (t !== f.textAdvanceScale) { + if (f.vertical) { + f.totalHeight += f.height * f.textAdvanceScale; + f.height = 0; + } else { + f.totalWidth += f.width * f.textAdvanceScale; + f.width = 0; + } + f.textAdvanceScale = t; + } + } + function handleSetFont(e, i) { + return w + .loadFont(e, i, a) + .then(function (e) { + return e.font.isType3Font + ? e + .loadType3Data(w, a, t) + .catch(function () {}) + .then(function () { + return e; + }) + : e; + }) + .then(function (e) { + O.loadedName = e.loadedName; + O.font = e.font; + O.fontMatrix = e.font.fontMatrix || r.FONT_IDENTITY_MATRIX; + }); + } + function applyInverseRotation(e, t, a) { + const r = Math.hypot(a[0], a[1]); + return [(a[0] * e + a[1] * t) / r, (a[2] * e + a[3] * t) / r]; + } + function compareWithLastPosition(e) { + const t = getCurrentTextTransform(); + let a = t[4], + r = t[5]; + if (O.font && O.font.vertical) { + if (a < l[0] || a > l[2] || r + e < l[1] || r > l[3]) return !1; + } else if (a + e < l[0] || a > l[2] || r < l[1] || r > l[3]) return !1; + if (!O.font || !f.prevTransform) return !0; + let i = f.prevTransform[4], + n = f.prevTransform[5]; + if (i === a && n === r) return !0; + let s = -1; + t[0] && 0 === t[1] && 0 === t[2] + ? (s = t[0] > 0 ? 0 : 180) + : t[1] && 0 === t[0] && 0 === t[3] && (s = t[1] > 0 ? 90 : 270); + switch (s) { + case 0: + break; + case 90: + [a, r] = [r, a]; + [i, n] = [n, i]; + break; + case 180: + [a, r, i, n] = [-a, -r, -i, -n]; + break; + case 270: + [a, r] = [-r, -a]; + [i, n] = [-n, -i]; + break; + default: + [a, r] = applyInverseRotation(a, r, t); + [i, n] = applyInverseRotation(i, n, f.prevTransform); + } + if (O.font.vertical) { + const e = (n - r) / f.textAdvanceScale, + t = a - i, + s = Math.sign(f.height); + if (e < s * f.negativeSpaceMax) { + if (Math.abs(t) > 0.5 * f.width) { + appendEOL(); + return !0; + } + resetLastChars(); + flushTextContentItem(); + return !0; + } + if (Math.abs(t) > f.width) { + appendEOL(); + return !0; + } + e <= s * f.notASpace && resetLastChars(); + if (e <= s * f.trackingSpaceMin) + if (shouldAddWhitepsace()) { + resetLastChars(); + flushTextContentItem(); + pushWhitespace({ height: Math.abs(e) }); + } else f.height += e; + else if (!addFakeSpaces(e, f.prevTransform, s)) + if (0 === f.str.length) { + resetLastChars(); + pushWhitespace({ height: Math.abs(e) }); + } else f.height += e; + Math.abs(t) > 0.25 * f.width && flushTextContentItem(); + return !0; + } + const o = (a - i) / f.textAdvanceScale, + c = r - n, + h = Math.sign(f.width); + if (o < h * f.negativeSpaceMax) { + if (Math.abs(c) > 0.5 * f.height) { + appendEOL(); + return !0; + } + resetLastChars(); + flushTextContentItem(); + return !0; + } + if (Math.abs(c) > f.height) { + appendEOL(); + return !0; + } + o <= h * f.notASpace && resetLastChars(); + if (o <= h * f.trackingSpaceMin) + if (shouldAddWhitepsace()) { + resetLastChars(); + flushTextContentItem(); + pushWhitespace({ width: Math.abs(o) }); + } else f.width += o; + else if (!addFakeSpaces(o, f.prevTransform, h)) + if (0 === f.str.length) { + resetLastChars(); + pushWhitespace({ width: Math.abs(o) }); + } else f.width += o; + Math.abs(c) > 0.25 * f.height && flushTextContentItem(); + return !0; + } + function buildTextContentItem({ chars: e, extraSpacing: t }) { + const a = O.font; + if (!e) { + const e = O.charSpacing + t; + e && + (a.vertical + ? O.translateTextMatrix(0, -e) + : O.translateTextMatrix(e * O.textHScale, 0)); + return; + } + const r = a.charsToGlyphs(e), + i = O.fontMatrix[0] * O.fontSize; + for (let e = 0, n = r.length; e < n; e++) { + const s = r[e], + { category: o } = s; + if (o.isInvisibleFormatMark) continue; + let c = O.charSpacing + (e + 1 === n ? t : 0), + l = s.width; + a.vertical && (l = s.vmetric ? s.vmetric[0] : -l); + let h = l * i; + if (o.isWhitespace) { + if (a.vertical) { + c += -h + O.wordSpacing; + O.translateTextMatrix(0, -c); + } else { + c += h + O.wordSpacing; + O.translateTextMatrix(c * O.textHScale, 0); + } + saveLastChar(' '); + continue; + } + if (!o.isZeroWidthDiacritic && !compareWithLastPosition(h)) { + a.vertical + ? O.translateTextMatrix(0, h) + : O.translateTextMatrix(h * O.textHScale, 0); + continue; + } + const u = ensureTextContentItem(); + o.isZeroWidthDiacritic && (h = 0); + if (a.vertical) { + O.translateTextMatrix(0, h); + h = Math.abs(h); + u.height += h; + } else { + h *= O.textHScale; + O.translateTextMatrix(h, 0); + u.width += h; + } + h && (u.prevTransform = getCurrentTextTransform()); + const d = s.unicode; + saveLastChar(d) && u.str.push(' '); + u.str.push(d); + c && + (a.vertical + ? O.translateTextMatrix(0, -c) + : O.translateTextMatrix(c * O.textHScale, 0)); + } + } + function appendEOL() { + resetLastChars(); + if (f.initialized) { + f.hasEOL = !0; + flushTextContentItem(); + } else + d.items.push({ + str: '', + dir: 'ltr', + width: 0, + height: 0, + transform: getCurrentTextTransform(), + fontName: O.loadedName, + hasEOL: !0, + }); + } + function addFakeSpaces(e, t, a) { + if (a * f.spaceInFlowMin <= e && e <= a * f.spaceInFlowMax) { + if (f.initialized) { + resetLastChars(); + f.str.push(' '); + } + return !1; + } + const r = f.fontName; + let i = 0; + if (f.vertical) { + i = e; + e = 0; + } + flushTextContentItem(); + resetLastChars(); + pushWhitespace({ + width: Math.abs(e), + height: Math.abs(i), + transform: t || getCurrentTextTransform(), + fontName: r, + }); + return !0; + } + function flushTextContentItem() { + if (f.initialized && f.str) { + f.vertical + ? (f.totalHeight += f.height * f.textAdvanceScale) + : (f.totalWidth += f.width * f.textAdvanceScale); + d.items.push( + (function runBidiTransform(e) { + let t = e.str.join(''); + u || (t = (0, r.normalizeUnicode)(t)); + const a = (0, b.bidi)(t, -1, e.vertical); + return { + str: a.str, + dir: a.dir, + width: Math.abs(e.totalWidth), + height: Math.abs(e.totalHeight), + transform: e.transform, + fontName: e.fontName, + hasEOL: e.hasEOL, + }; + })(f), + ); + f.initialized = !1; + f.str.length = 0; + } + } + function enqueueChunk(e = !1) { + const t = d.items.length; + if (0 !== t && !(e && t < 10)) { + o.enqueue(d, t); + d.items = []; + d.styles = Object.create(null); + } + } + const T = new TimeSlotManager(); + return new Promise(function promiseBody(e, f) { + const next = function (t) { + enqueueChunk(!0); + Promise.all([t, o.ready]).then(function () { + try { + promiseBody(e, f); + } catch (e) { + f(e); + } + }, f); + }; + t.ensureNotTerminated(); + T.reset(); + const g = {}; + let p, + b = []; + for (; !(p = T.check()); ) { + b.length = 0; + g.args = b; + if (!F.read(g)) break; + O = i.state; + const e = g.fn; + b = g.args; + switch (0 | e) { + case r.OPS.setFont: + var y = b[0].name, + M = b[1]; + if (O.font && y === O.fontName && M === O.fontSize) break; + flushTextContentItem(); + O.fontName = y; + O.fontSize = M; + next(handleSetFont(y, null)); + return; + case r.OPS.setTextRise: + O.textRise = b[0]; + break; + case r.OPS.setHScale: + O.textHScale = b[0] / 100; + break; + case r.OPS.setLeading: + O.leading = b[0]; + break; + case r.OPS.moveText: + O.translateTextLineMatrix(b[0], b[1]); + O.textMatrix = O.textLineMatrix.slice(); + break; + case r.OPS.setLeadingMoveText: + O.leading = -b[1]; + O.translateTextLineMatrix(b[0], b[1]); + O.textMatrix = O.textLineMatrix.slice(); + break; + case r.OPS.nextLine: + O.carriageReturn(); + break; + case r.OPS.setTextMatrix: + O.setTextMatrix(b[0], b[1], b[2], b[3], b[4], b[5]); + O.setTextLineMatrix(b[0], b[1], b[2], b[3], b[4], b[5]); + updateAdvanceScale(); + break; + case r.OPS.setCharSpacing: + O.charSpacing = b[0]; + break; + case r.OPS.setWordSpacing: + O.wordSpacing = b[0]; + break; + case r.OPS.beginText: + O.textMatrix = r.IDENTITY_MATRIX.slice(); + O.textLineMatrix = r.IDENTITY_MATRIX.slice(); + break; + case r.OPS.showSpacedText: + if (!i.state.font) { + w.ensureStateFont(i.state); + continue; + } + const e = ((O.font.vertical ? 1 : -1) * O.fontSize) / 1e3, + f = b[0]; + for (let t = 0, a = f.length; t < a - 1; t++) { + const a = f[t]; + if ('string' == typeof a) x.push(a); + else if ('number' == typeof a && 0 !== a) { + const t = x.join(''); + x.length = 0; + buildTextContentItem({ chars: t, extraSpacing: a * e }); + } + } + const g = f.at(-1); + 'string' == typeof g && x.push(g); + if (x.length > 0) { + const e = x.join(''); + x.length = 0; + buildTextContentItem({ chars: e, extraSpacing: 0 }); + } + break; + case r.OPS.showText: + if (!i.state.font) { + w.ensureStateFont(i.state); + continue; + } + buildTextContentItem({ chars: b[0], extraSpacing: 0 }); + break; + case r.OPS.nextLineShowText: + if (!i.state.font) { + w.ensureStateFont(i.state); + continue; + } + O.carriageReturn(); + buildTextContentItem({ chars: b[0], extraSpacing: 0 }); + break; + case r.OPS.nextLineSetSpacingShowText: + if (!i.state.font) { + w.ensureStateFont(i.state); + continue; + } + O.wordSpacing = b[0]; + O.charSpacing = b[1]; + O.carriageReturn(); + buildTextContentItem({ chars: b[2], extraSpacing: 0 }); + break; + case r.OPS.paintXObject: + flushTextContentItem(); + C || (C = a.get('XObject') || n.Dict.empty); + var E = b[0] instanceof n.Name, + D = b[0].name; + if (E && k.getByName(D)) break; + next( + new Promise(function (e, d) { + if (!E) throw new r.FormatError('XObject must be referred to by name.'); + let f = C.getRaw(D); + if (f instanceof n.Ref) { + if (k.getByRef(f)) { + e(); + return; + } + if (w.globalImageCache.getData(f, w.pageIndex)) { + e(); + return; + } + f = S.fetch(f); + } + if (!(f instanceof m.BaseStream)) + throw new r.FormatError('XObject should be a stream'); + const g = f.dict.get('Subtype'); + if (!(g instanceof n.Name)) + throw new r.FormatError('XObject should have a Name subtype'); + if ('Form' !== g.name) { + k.set(D, f.dict.objId, !0); + e(); + return; + } + const p = i.state.clone(), + b = new StateManager(p), + y = f.dict.getArray('Matrix'); + Array.isArray(y) && 6 === y.length && b.transform(y); + enqueueChunk(); + const x = { + enqueueInvoked: !1, + enqueue(e, t) { + this.enqueueInvoked = !0; + o.enqueue(e, t); + }, + get desiredSize() { + return o.desiredSize; + }, + get ready() { + return o.ready; + }, + }; + w.getTextContent({ + stream: f, + task: t, + resources: f.dict.get('Resources') || a, + stateManager: b, + includeMarkedContent: s, + sink: x, + seenStyles: c, + viewBox: l, + markedContentData: h, + disableNormalization: u, + }).then(function () { + x.enqueueInvoked || k.set(D, f.dict.objId, !0); + e(); + }, d); + }).catch(function (e) { + if (!(e instanceof r.AbortException)) { + if (!w.options.ignoreErrors) throw e; + (0, r.warn)(`getTextContent - ignoring XObject: "${e}".`); + } + }), + ); + return; + case r.OPS.setGState: + E = b[0] instanceof n.Name; + D = b[0].name; + if (E && v.getByName(D)) break; + next( + new Promise(function (e, t) { + if (!E) throw new r.FormatError('GState must be referred to by name.'); + const i = a.get('ExtGState'); + if (!(i instanceof n.Dict)) + throw new r.FormatError('ExtGState should be a dictionary.'); + const s = i.get(D); + if (!(s instanceof n.Dict)) + throw new r.FormatError('GState should be a dictionary.'); + const o = s.get('Font'); + if (o) { + flushTextContentItem(); + O.fontName = null; + O.fontSize = o[1]; + handleSetFont(null, o[0]).then(e, t); + } else { + v.set(D, s.objId, !0); + e(); + } + }).catch(function (e) { + if (!(e instanceof r.AbortException)) { + if (!w.options.ignoreErrors) throw e; + (0, r.warn)(`getTextContent - ignoring ExtGState: "${e}".`); + } + }), + ); + return; + case r.OPS.beginMarkedContent: + flushTextContentItem(); + if (s) { + h.level++; + d.items.push({ + type: 'beginMarkedContent', + tag: b[0] instanceof n.Name ? b[0].name : null, + }); + } + break; + case r.OPS.beginMarkedContentProps: + flushTextContentItem(); + if (s) { + h.level++; + let e = null; + b[1] instanceof n.Dict && (e = b[1].get('MCID')); + d.items.push({ + type: 'beginMarkedContentProps', + id: Number.isInteger(e) ? `${w.idFactory.getPageObjId()}_mcid${e}` : null, + tag: b[0] instanceof n.Name ? b[0].name : null, + }); + } + break; + case r.OPS.endMarkedContent: + flushTextContentItem(); + if (s) { + if (0 === h.level) break; + h.level--; + d.items.push({ type: 'endMarkedContent' }); + } + } + if (d.items.length >= o.desiredSize) { + p = !0; + break; + } + } + if (p) next(R); + else { + flushTextContentItem(); + enqueueChunk(); + e(); + } + }).catch((e) => { + if (!(e instanceof r.AbortException)) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`); + flushTextContentItem(); + enqueueChunk(); + } + }); + } + extractDataStructures(e, t, a) { + const i = this.xref; + let s; + const c = this.readToUnicode(a.toUnicode || e.get('ToUnicode') || t.get('ToUnicode')); + if (a.composite) { + const t = e.get('CIDSystemInfo'); + t instanceof n.Dict && + (a.cidSystemInfo = { + registry: (0, r.stringToPDFString)(t.get('Registry')), + ordering: (0, r.stringToPDFString)(t.get('Ordering')), + supplement: t.get('Supplement'), + }); + try { + const t = e.get('CIDToGIDMap'); + t instanceof m.BaseStream && (s = t.getBytes()); + } catch (e) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`extractDataStructures - ignoring CIDToGIDMap data: "${e}".`); + } + } + const l = []; + let h, + u = null; + if (e.has('Encoding')) { + h = e.get('Encoding'); + if (h instanceof n.Dict) { + u = h.get('BaseEncoding'); + u = u instanceof n.Name ? u.name : null; + if (h.has('Differences')) { + const e = h.get('Differences'); + let t = 0; + for (const a of e) { + const e = i.fetchIfRef(a); + if ('number' == typeof e) t = e; + else { + if (!(e instanceof n.Name)) + throw new r.FormatError(`Invalid entry in 'Differences' array: ${e}`); + l[t++] = e.name; + } + } + } + } else if (h instanceof n.Name) u = h.name; + else { + const e = 'Encoding is not a Name nor a Dict'; + if (!this.options.ignoreErrors) throw new r.FormatError(e); + (0, r.warn)(e); + } + 'MacRomanEncoding' !== u && + 'MacExpertEncoding' !== u && + 'WinAnsiEncoding' !== u && + (u = null); + } + if (u) a.defaultEncoding = (0, o.getEncoding)(u); + else { + const e = !!(a.flags & S.FontFlags.Symbolic), + t = !!(a.flags & S.FontFlags.Nonsymbolic); + h = o.StandardEncoding; + 'TrueType' !== a.type || t || (h = o.WinAnsiEncoding); + if (e) { + h = o.MacRomanEncoding; + (a.file && !a.isInternalFont) || + (/Symbol/i.test(a.name) + ? (h = o.SymbolSetEncoding) + : /Dingbats|Wingdings/i.test(a.name) && (h = o.ZapfDingbatsEncoding)); + } + a.defaultEncoding = h; + } + a.differences = l; + a.baseEncodingName = u; + a.hasEncoding = !!u || l.length > 0; + a.dict = e; + return c + .then((e) => { + a.toUnicode = e; + return this.buildToUnicode(a); + }) + .then((e) => { + a.toUnicode = e; + s && (a.cidToGidMap = this.readCidToGidMap(s, e)); + return a; + }); + } + _simpleFontToUnicode(e, t = !1) { + (0, r.assert)(!e.composite, 'Must be a simple font.'); + const a = [], + i = e.defaultEncoding.slice(), + n = e.baseEncodingName, + s = e.differences; + for (const e in s) { + const t = s[e]; + '.notdef' !== t && (i[e] = t); + } + const c = (0, x.getGlyphsUnicode)(); + for (const r in i) { + let s = i[r]; + if ('' === s) continue; + let l = c[s]; + if (void 0 !== l) { + a[r] = String.fromCharCode(l); + continue; + } + let h = 0; + switch (s[0]) { + case 'G': + 3 === s.length && (h = parseInt(s.substring(1), 16)); + break; + case 'g': + 5 === s.length && (h = parseInt(s.substring(1), 16)); + break; + case 'C': + case 'c': + if (s.length >= 3 && s.length <= 4) { + const a = s.substring(1); + if (t) { + h = parseInt(a, 16); + break; + } + h = +a; + if (Number.isNaN(h) && Number.isInteger(parseInt(a, 16))) + return this._simpleFontToUnicode(e, !0); + } + break; + case 'u': + l = (0, v.getUnicodeForGlyph)(s, c); + -1 !== l && (h = l); + break; + default: + switch (s) { + case 'f_h': + case 'f_t': + case 'T_h': + a[r] = s.replaceAll('_', ''); + continue; + } + } + if (h > 0 && h <= 1114111 && Number.isInteger(h)) { + if (n && h === +r) { + const e = (0, o.getEncoding)(n); + if (e && (s = e[r])) { + a[r] = String.fromCharCode(c[s]); + continue; + } + } + a[r] = String.fromCodePoint(h); + } + } + return a; + } + async buildToUnicode(e) { + e.hasIncludedToUnicodeMap = !!e.toUnicode && e.toUnicode.length > 0; + if (e.hasIncludedToUnicodeMap) { + !e.composite && + e.hasEncoding && + (e.fallbackToUnicode = this._simpleFontToUnicode(e)); + return e.toUnicode; + } + if (!e.composite) return new u.ToUnicodeMap(this._simpleFontToUnicode(e)); + if ( + e.composite && + ((e.cMap.builtInCMap && !(e.cMap instanceof i.IdentityCMap)) || + ('Adobe' === e.cidSystemInfo.registry && + ('GB1' === e.cidSystemInfo.ordering || + 'CNS1' === e.cidSystemInfo.ordering || + 'Japan1' === e.cidSystemInfo.ordering || + 'Korea1' === e.cidSystemInfo.ordering))) + ) { + const { registry: t, ordering: a } = e.cidSystemInfo, + s = n.Name.get(`${t}-${a}-UCS2`), + o = await i.CMapFactory.create({ + encoding: s, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null, + }), + c = [], + l = []; + e.cMap.forEach(function (e, t) { + if (t > 65535) throw new r.FormatError('Max size of CID is 65,535'); + const a = o.lookup(t); + if (a) { + l.length = 0; + for (let e = 0, t = a.length; e < t; e += 2) + l.push((a.charCodeAt(e) << 8) + a.charCodeAt(e + 1)); + c[e] = String.fromCharCode(...l); + } + }); + return new u.ToUnicodeMap(c); + } + return new u.IdentityToUnicodeMap(e.firstChar, e.lastChar); + } + readToUnicode(e) { + return e + ? e instanceof n.Name + ? i.CMapFactory.create({ + encoding: e, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null, + }).then(function (e) { + return e instanceof i.IdentityCMap + ? new u.IdentityToUnicodeMap(0, 65535) + : new u.ToUnicodeMap(e.getMap()); + }) + : e instanceof m.BaseStream + ? i.CMapFactory.create({ + encoding: e, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null, + }).then( + function (e) { + if (e instanceof i.IdentityCMap) + return new u.IdentityToUnicodeMap(0, 65535); + const t = new Array(e.length); + e.forEach(function (e, a) { + if ('number' == typeof a) { + t[e] = String.fromCodePoint(a); + return; + } + const r = []; + for (let e = 0; e < a.length; e += 2) { + const t = (a.charCodeAt(e) << 8) | a.charCodeAt(e + 1); + if (55296 != (63488 & t)) { + r.push(t); + continue; + } + e += 2; + const i = (a.charCodeAt(e) << 8) | a.charCodeAt(e + 1); + r.push(((1023 & t) << 10) + (1023 & i) + 65536); + } + t[e] = String.fromCodePoint(...r); + }); + return new u.ToUnicodeMap(t); + }, + (e) => { + if (e instanceof r.AbortException) return null; + if (this.options.ignoreErrors) { + (0, r.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`); + return null; + } + throw e; + }, + ) + : Promise.resolve(null) + : Promise.resolve(null); + } + readCidToGidMap(e, t) { + const a = []; + for (let r = 0, i = e.length; r < i; r++) { + const i = (e[r++] << 8) | e[r], + n = r >> 1; + (0 !== i || t.has(n)) && (a[n] = i); + } + return a; + } + extractWidths(e, t, a) { + const r = this.xref; + let i = [], + s = 0; + const o = []; + let c, l, h, u, d, f, g, p; + if (a.composite) { + s = e.has('DW') ? e.get('DW') : 1e3; + p = e.get('W'); + if (p) + for (l = 0, h = p.length; l < h; l++) { + f = r.fetchIfRef(p[l++]); + g = r.fetchIfRef(p[l]); + if (Array.isArray(g)) + for (u = 0, d = g.length; u < d; u++) i[f++] = r.fetchIfRef(g[u]); + else { + const e = r.fetchIfRef(p[++l]); + for (u = f; u <= g; u++) i[u] = e; + } + } + if (a.vertical) { + let t = e.getArray('DW2') || [880, -1e3]; + c = [t[1], 0.5 * s, t[0]]; + t = e.get('W2'); + if (t) + for (l = 0, h = t.length; l < h; l++) { + f = r.fetchIfRef(t[l++]); + g = r.fetchIfRef(t[l]); + if (Array.isArray(g)) + for (u = 0, d = g.length; u < d; u++) + o[f++] = [r.fetchIfRef(g[u++]), r.fetchIfRef(g[u++]), r.fetchIfRef(g[u])]; + else { + const e = [ + r.fetchIfRef(t[++l]), + r.fetchIfRef(t[++l]), + r.fetchIfRef(t[++l]), + ]; + for (u = f; u <= g; u++) o[u] = e; + } + } + } + } else { + const o = a.firstChar; + p = e.get('Widths'); + if (p) { + u = o; + for (l = 0, h = p.length; l < h; l++) i[u++] = r.fetchIfRef(p[l]); + s = parseFloat(t.get('MissingWidth')) || 0; + } else { + const t = e.get('BaseFont'); + if (t instanceof n.Name) { + const e = this.getBaseFontMetrics(t.name); + i = this.buildCharCodeToWidth(e.widths, a); + s = e.defaultWidth; + } + } + } + let m = !0, + b = s; + for (const e in i) { + const t = i[e]; + if (t) + if (b) { + if (b !== t) { + m = !1; + break; + } + } else b = t; + } + m && (a.flags |= S.FontFlags.FixedPitch); + a.defaultWidth = s; + a.widths = i; + a.defaultVMetrics = c; + a.vmetrics = o; + } + isSerifFont(e) { + const t = e.split('-')[0]; + return t in (0, c.getSerifFonts)() || /serif/gi.test(t); + } + getBaseFontMetrics(e) { + let t = 0, + a = Object.create(null), + r = !1; + let i = (0, c.getStdFontMap)()[e] || e; + const n = (0, k.getMetrics)(); + i in n || (i = this.isSerifFont(e) ? 'Times-Roman' : 'Helvetica'); + const s = n[i]; + if ('number' == typeof s) { + t = s; + r = !0; + } else a = s(); + return { defaultWidth: t, monospace: r, widths: a }; + } + buildCharCodeToWidth(e, t) { + const a = Object.create(null), + r = t.differences, + i = t.defaultEncoding; + for (let t = 0; t < 256; t++) + t in r && e[r[t]] ? (a[t] = e[r[t]]) : t in i && e[i[t]] && (a[t] = e[i[t]]); + return a; + } + preEvaluateFont(e) { + const t = e; + let a = e.get('Subtype'); + if (!(a instanceof n.Name)) throw new r.FormatError('invalid font Subtype'); + let i, + s, + o = !1; + if ('Type0' === a.name) { + const t = e.get('DescendantFonts'); + if (!t) throw new r.FormatError('Descendant fonts are not specified'); + if (!((e = Array.isArray(t) ? this.xref.fetchIfRef(t[0]) : t) instanceof n.Dict)) + throw new r.FormatError('Descendant font is not a dictionary.'); + a = e.get('Subtype'); + if (!(a instanceof n.Name)) throw new r.FormatError('invalid font Subtype'); + o = !0; + } + const c = e.get('FirstChar') || 0, + l = e.get('LastChar') || (o ? 65535 : 255), + h = e.get('FontDescriptor'); + if (h) { + i = new O.MurmurHash3_64(); + const a = t.getRaw('Encoding'); + if (a instanceof n.Name) i.update(a.name); + else if (a instanceof n.Ref) i.update(a.toString()); + else if (a instanceof n.Dict) + for (const e of a.getRawValues()) + if (e instanceof n.Name) i.update(e.name); + else if (e instanceof n.Ref) i.update(e.toString()); + else if (Array.isArray(e)) { + const t = e.length, + a = new Array(t); + for (let r = 0; r < t; r++) { + const t = e[r]; + t instanceof n.Name + ? (a[r] = t.name) + : ('number' == typeof t || t instanceof n.Ref) && (a[r] = t.toString()); + } + i.update(a.join()); + } + i.update(`${c}-${l}`); + s = e.get('ToUnicode') || t.get('ToUnicode'); + if (s instanceof m.BaseStream) { + const e = s.str || s, + t = e.buffer + ? new Uint8Array(e.buffer.buffer, 0, e.bufferLength) + : new Uint8Array(e.bytes.buffer, e.start, e.end - e.start); + i.update(t); + } else s instanceof n.Name && i.update(s.name); + const r = e.get('Widths') || t.get('Widths'); + if (Array.isArray(r)) { + const e = []; + for (const t of r) + ('number' == typeof t || t instanceof n.Ref) && e.push(t.toString()); + i.update(e.join()); + } + if (o) { + i.update('compositeFont'); + const a = e.get('W') || t.get('W'); + if (Array.isArray(a)) { + const e = []; + for (const t of a) + if ('number' == typeof t || t instanceof n.Ref) e.push(t.toString()); + else if (Array.isArray(t)) { + const a = []; + for (const e of t) + ('number' == typeof e || e instanceof n.Ref) && a.push(e.toString()); + e.push(`[${a.join()}]`); + } + i.update(e.join()); + } + const r = e.getRaw('CIDToGIDMap') || t.getRaw('CIDToGIDMap'); + r instanceof n.Name + ? i.update(r.name) + : r instanceof n.Ref + ? i.update(r.toString()) + : r instanceof m.BaseStream && i.update(r.peekBytes()); + } + } + return { + descriptor: h, + dict: e, + baseDict: t, + composite: o, + type: a.name, + firstChar: c, + lastChar: l, + toUnicode: s, + hash: i ? i.hexdigest() : '', + }; + } + async translateFont({ + descriptor: e, + dict: t, + baseDict: a, + composite: o, + type: l, + firstChar: u, + lastChar: d, + toUnicode: f, + cssFontInfo: g, + }) { + const m = 'Type3' === l; + let b; + if (!e) { + if (!m) { + let e = t.get('BaseFont'); + if (!(e instanceof n.Name)) throw new r.FormatError('Base font is not specified'); + e = e.name.replaceAll(/[,_]/g, '-'); + const i = this.getBaseFontMetrics(e), + o = e.split('-')[0], + h = + (this.isSerifFont(o) ? S.FontFlags.Serif : 0) | + (i.monospace ? S.FontFlags.FixedPitch : 0) | + ((0, c.getSymbolsFonts)()[o] + ? S.FontFlags.Symbolic + : S.FontFlags.Nonsymbolic); + b = { + type: l, + name: e, + loadedName: a.loadedName, + widths: i.widths, + defaultWidth: i.defaultWidth, + isSimulatedFlags: !0, + flags: h, + firstChar: u, + lastChar: d, + toUnicode: f, + xHeight: 0, + capHeight: 0, + italicAngle: 0, + isType3Font: m, + }; + const g = t.get('Widths'), + p = (0, c.getStandardFontName)(e); + let y = null; + if (p) { + y = await this.fetchStandardFontData(p); + b.isInternalFont = !!y; + } + return this.extractDataStructures(t, t, b).then((t) => { + if (g) { + const e = []; + let a = u; + for (const t of g) e[a++] = this.xref.fetchIfRef(t); + t.widths = e; + } else t.widths = this.buildCharCodeToWidth(i.widths, t); + return new s.Font(e, y, t); + }); + } + (e = new n.Dict(null)).set('FontName', n.Name.get(l)); + e.set('FontBBox', t.getArray('FontBBox') || [0, 0, 0, 0]); + } + let y, + w, + x, + C, + k, + v = e.get('FontName'), + F = t.get('BaseFont'); + 'string' == typeof v && (v = n.Name.get(v)); + 'string' == typeof F && (F = n.Name.get(F)); + if (!m) { + const e = v && v.name, + t = F && F.name; + if (e !== t) { + (0, r.info)( + `The FontDescriptor's FontName is "${e}" but should be the same as the Font's BaseFont "${t}".`, + ); + e && t && t.startsWith(e) && (v = F); + } + } + v ||= F; + if (!(v instanceof n.Name)) throw new r.FormatError('invalid font name'); + try { + y = e.get('FontFile', 'FontFile2', 'FontFile3'); + } catch (e) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`translateFont - fetching "${v.name}" font file: "${e}".`); + y = new p.NullStream(); + } + let O = !1, + T = null; + if (y) { + if (y.dict) { + const e = y.dict.get('Subtype'); + e instanceof n.Name && (w = e.name); + x = y.dict.get('Length1'); + C = y.dict.get('Length2'); + k = y.dict.get('Length3'); + } + } else if (g) { + const e = (0, h.getXfaFontName)(v.name); + if (e) { + g.fontFamily = `${g.fontFamily}-PdfJS-XFA`; + g.metrics = e.metrics || null; + T = e.factors || null; + y = await this.fetchStandardFontData(e.name); + O = !!y; + a = t = (0, h.getXfaFontDict)(v.name); + o = !0; + } + } else if (!m) { + const e = (0, c.getStandardFontName)(v.name); + if (e) { + y = await this.fetchStandardFontData(e); + O = !!y; + } + } + b = { + type: l, + name: v.name, + subtype: w, + file: y, + length1: x, + length2: C, + length3: k, + isInternalFont: O, + loadedName: a.loadedName, + composite: o, + fixedPitch: !1, + fontMatrix: t.getArray('FontMatrix') || r.FONT_IDENTITY_MATRIX, + firstChar: u, + lastChar: d, + toUnicode: f, + bbox: e.getArray('FontBBox') || t.getArray('FontBBox'), + ascent: e.get('Ascent'), + descent: e.get('Descent'), + xHeight: e.get('XHeight') || 0, + capHeight: e.get('CapHeight') || 0, + flags: e.get('Flags'), + italicAngle: e.get('ItalicAngle') || 0, + isType3Font: m, + cssFontInfo: g, + scaleFactors: T, + }; + if (o) { + const e = a.get('Encoding'); + e instanceof n.Name && (b.cidEncoding = e.name); + const t = await i.CMapFactory.create({ + encoding: e, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null, + }); + b.cMap = t; + b.vertical = b.cMap.vertical; + } + return this.extractDataStructures(t, a, b).then((a) => { + this.extractWidths(t, e, a); + return new s.Font(v.name, y, a); + }); + } + static buildFontPaths(e, t, a, i) { + function buildPath(t) { + const n = `${e.loadedName}_path_${t}`; + try { + if (e.renderer.hasBuiltPath(t)) return; + a.send('commonobj', [n, 'FontPath', e.renderer.getPathJs(t)]); + } catch (e) { + if (i.ignoreErrors) { + (0, r.warn)(`buildFontPaths - ignoring ${n} glyph: "${e}".`); + return; + } + throw e; + } + } + for (const e of t) { + buildPath(e.fontChar); + const t = e.accent; + t && t.fontChar && buildPath(t.fontChar); + } + } + static get fallbackFontDict() { + const e = new n.Dict(); + e.set('BaseFont', n.Name.get('PDFJS-FallbackFont')); + e.set('Type', n.Name.get('FallbackType')); + e.set('Subtype', n.Name.get('FallbackType')); + e.set('Encoding', n.Name.get('WinAnsiEncoding')); + return (0, r.shadow)(this, 'fallbackFontDict', e); + } + } + t.PartialEvaluator = PartialEvaluator; + class TranslatedFont { + constructor({ loadedName: e, font: t, dict: a, evaluatorOptions: r }) { + this.loadedName = e; + this.font = t; + this.dict = a; + this._evaluatorOptions = r || E; + this.type3Loaded = null; + this.type3Dependencies = t.isType3Font ? new Set() : null; + this.sent = !1; + } + send(e) { + if (!this.sent) { + this.sent = !0; + e.send('commonobj', [ + this.loadedName, + 'Font', + this.font.exportData(this._evaluatorOptions.fontExtraProperties), + ]); + } + } + fallback(e) { + if (this.font.data) { + this.font.disableFontFace = !0; + PartialEvaluator.buildFontPaths( + this.font, + this.font.glyphCacheValues, + e, + this._evaluatorOptions, + ); + } + } + loadType3Data(e, t, a) { + if (this.type3Loaded) return this.type3Loaded; + if (!this.font.isType3Font) throw new Error('Must be a Type3 font.'); + const i = e.clone({ ignoreErrors: !1 }); + i.parsingType3Font = !0; + const s = new n.RefSet(e.type3FontRefs); + this.dict.objId && !s.has(this.dict.objId) && s.put(this.dict.objId); + i.type3FontRefs = s; + const o = this.font, + c = this.type3Dependencies; + let l = Promise.resolve(); + const h = this.dict.get('CharProcs'), + u = this.dict.get('Resources') || t, + d = Object.create(null), + f = r.Util.normalizeRect(o.bbox || [0, 0, 0, 0]), + g = f[2] - f[0], + p = f[3] - f[1], + m = Math.hypot(g, p); + for (const e of h.getKeys()) + l = l.then(() => { + const t = h.get(e), + n = new T.OperatorList(); + return i + .getOperatorList({ stream: t, task: a, resources: u, operatorList: n }) + .then(() => { + n.fnArray[0] === r.OPS.setCharWidthAndBounds && + this._removeType3ColorOperators(n, m); + d[e] = n.getIR(); + for (const e of n.dependencies) c.add(e); + }) + .catch(function (t) { + (0, r.warn)(`Type3 font resource "${e}" is not available.`); + const a = new T.OperatorList(); + d[e] = a.getIR(); + }); + }); + this.type3Loaded = l.then(() => { + o.charProcOperatorList = d; + if (this._bbox) { + o.isCharBBox = !0; + o.bbox = this._bbox; + } + }); + return this.type3Loaded; + } + _removeType3ColorOperators(e, t = NaN) { + const a = r.Util.normalizeRect(e.argsArray[0].slice(2)), + i = a[2] - a[0], + n = a[3] - a[1], + s = Math.hypot(i, n); + if (0 === i || 0 === n) { + e.fnArray.splice(0, 1); + e.argsArray.splice(0, 1); + } else if (0 === t || Math.round(s / t) >= 10) { + this._bbox || (this._bbox = [1 / 0, 1 / 0, -1 / 0, -1 / 0]); + this._bbox[0] = Math.min(this._bbox[0], a[0]); + this._bbox[1] = Math.min(this._bbox[1], a[1]); + this._bbox[2] = Math.max(this._bbox[2], a[2]); + this._bbox[3] = Math.max(this._bbox[3], a[3]); + } + let o = 0, + c = e.length; + for (; o < c; ) { + switch (e.fnArray[o]) { + case r.OPS.setCharWidthAndBounds: + break; + case r.OPS.setStrokeColorSpace: + case r.OPS.setFillColorSpace: + case r.OPS.setStrokeColor: + case r.OPS.setStrokeColorN: + case r.OPS.setFillColor: + case r.OPS.setFillColorN: + case r.OPS.setStrokeGray: + case r.OPS.setFillGray: + case r.OPS.setStrokeRGBColor: + case r.OPS.setFillRGBColor: + case r.OPS.setStrokeCMYKColor: + case r.OPS.setFillCMYKColor: + case r.OPS.shadingFill: + case r.OPS.setRenderingIntent: + e.fnArray.splice(o, 1); + e.argsArray.splice(o, 1); + c--; + continue; + case r.OPS.setGState: + const [t] = e.argsArray[o]; + let a = 0, + i = t.length; + for (; a < i; ) { + const [e] = t[a]; + switch (e) { + case 'TR': + case 'TR2': + case 'HT': + case 'BG': + case 'BG2': + case 'UCR': + case 'UCR2': + t.splice(a, 1); + i--; + continue; + } + a++; + } + } + o++; + } + } + } + class StateManager { + constructor(e = new EvalState()) { + 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 = r.Util.transform(this.state.ctm, e); + } + } + class TextState { + constructor() { + this.ctm = new Float32Array(r.IDENTITY_MATRIX); + this.fontName = null; + this.fontSize = 0; + this.loadedName = null; + this.font = null; + this.fontMatrix = r.FONT_IDENTITY_MATRIX; + this.textMatrix = r.IDENTITY_MATRIX.slice(); + this.textLineMatrix = r.IDENTITY_MATRIX.slice(); + this.charSpacing = 0; + this.wordSpacing = 0; + this.leading = 0; + this.textHScale = 1; + this.textRise = 0; + } + setTextMatrix(e, t, a, r, i, n) { + const s = this.textMatrix; + s[0] = e; + s[1] = t; + s[2] = a; + s[3] = r; + s[4] = i; + s[5] = n; + } + setTextLineMatrix(e, t, a, r, i, n) { + const s = this.textLineMatrix; + s[0] = e; + s[1] = t; + s[2] = a; + s[3] = r; + s[4] = i; + s[5] = n; + } + translateTextMatrix(e, t) { + const a = this.textMatrix; + a[4] = a[0] * e + a[2] * t + a[4]; + a[5] = a[1] * e + a[3] * t + a[5]; + } + translateTextLineMatrix(e, t) { + const a = this.textLineMatrix; + a[4] = a[0] * e + a[2] * t + a[4]; + a[5] = a[1] * e + a[3] * t + a[5]; + } + carriageReturn() { + this.translateTextLineMatrix(0, -this.leading); + this.textMatrix = this.textLineMatrix.slice(); + } + clone() { + const e = Object.create(this); + e.textMatrix = this.textMatrix.slice(); + e.textLineMatrix = this.textLineMatrix.slice(); + e.fontMatrix = this.fontMatrix.slice(); + return e; + } + } + class EvalState { + constructor() { + this.ctm = new Float32Array(r.IDENTITY_MATRIX); + this.font = null; + this.textRenderingMode = r.TextRenderingMode.FILL; + this.fillColorSpace = y.ColorSpace.singletons.gray; + this.strokeColorSpace = y.ColorSpace.singletons.gray; + } + clone() { + return Object.create(this); + } + } + class EvaluatorPreprocessor { + static get opMap() { + const e = (0, C.getLookupTableFactory)(function (e) { + e.w = { id: r.OPS.setLineWidth, numArgs: 1, variableArgs: !1 }; + e.J = { id: r.OPS.setLineCap, numArgs: 1, variableArgs: !1 }; + e.j = { id: r.OPS.setLineJoin, numArgs: 1, variableArgs: !1 }; + e.M = { id: r.OPS.setMiterLimit, numArgs: 1, variableArgs: !1 }; + e.d = { id: r.OPS.setDash, numArgs: 2, variableArgs: !1 }; + e.ri = { id: r.OPS.setRenderingIntent, numArgs: 1, variableArgs: !1 }; + e.i = { id: r.OPS.setFlatness, numArgs: 1, variableArgs: !1 }; + e.gs = { id: r.OPS.setGState, numArgs: 1, variableArgs: !1 }; + e.q = { id: r.OPS.save, numArgs: 0, variableArgs: !1 }; + e.Q = { id: r.OPS.restore, numArgs: 0, variableArgs: !1 }; + e.cm = { id: r.OPS.transform, numArgs: 6, variableArgs: !1 }; + e.m = { id: r.OPS.moveTo, numArgs: 2, variableArgs: !1 }; + e.l = { id: r.OPS.lineTo, numArgs: 2, variableArgs: !1 }; + e.c = { id: r.OPS.curveTo, numArgs: 6, variableArgs: !1 }; + e.v = { id: r.OPS.curveTo2, numArgs: 4, variableArgs: !1 }; + e.y = { id: r.OPS.curveTo3, numArgs: 4, variableArgs: !1 }; + e.h = { id: r.OPS.closePath, numArgs: 0, variableArgs: !1 }; + e.re = { id: r.OPS.rectangle, numArgs: 4, variableArgs: !1 }; + e.S = { id: r.OPS.stroke, numArgs: 0, variableArgs: !1 }; + e.s = { id: r.OPS.closeStroke, numArgs: 0, variableArgs: !1 }; + e.f = { id: r.OPS.fill, numArgs: 0, variableArgs: !1 }; + e.F = { id: r.OPS.fill, numArgs: 0, variableArgs: !1 }; + e['f*'] = { id: r.OPS.eoFill, numArgs: 0, variableArgs: !1 }; + e.B = { id: r.OPS.fillStroke, numArgs: 0, variableArgs: !1 }; + e['B*'] = { id: r.OPS.eoFillStroke, numArgs: 0, variableArgs: !1 }; + e.b = { id: r.OPS.closeFillStroke, numArgs: 0, variableArgs: !1 }; + e['b*'] = { id: r.OPS.closeEOFillStroke, numArgs: 0, variableArgs: !1 }; + e.n = { id: r.OPS.endPath, numArgs: 0, variableArgs: !1 }; + e.W = { id: r.OPS.clip, numArgs: 0, variableArgs: !1 }; + e['W*'] = { id: r.OPS.eoClip, numArgs: 0, variableArgs: !1 }; + e.BT = { id: r.OPS.beginText, numArgs: 0, variableArgs: !1 }; + e.ET = { id: r.OPS.endText, numArgs: 0, variableArgs: !1 }; + e.Tc = { id: r.OPS.setCharSpacing, numArgs: 1, variableArgs: !1 }; + e.Tw = { id: r.OPS.setWordSpacing, numArgs: 1, variableArgs: !1 }; + e.Tz = { id: r.OPS.setHScale, numArgs: 1, variableArgs: !1 }; + e.TL = { id: r.OPS.setLeading, numArgs: 1, variableArgs: !1 }; + e.Tf = { id: r.OPS.setFont, numArgs: 2, variableArgs: !1 }; + e.Tr = { id: r.OPS.setTextRenderingMode, numArgs: 1, variableArgs: !1 }; + e.Ts = { id: r.OPS.setTextRise, numArgs: 1, variableArgs: !1 }; + e.Td = { id: r.OPS.moveText, numArgs: 2, variableArgs: !1 }; + e.TD = { id: r.OPS.setLeadingMoveText, numArgs: 2, variableArgs: !1 }; + e.Tm = { id: r.OPS.setTextMatrix, numArgs: 6, variableArgs: !1 }; + e['T*'] = { id: r.OPS.nextLine, numArgs: 0, variableArgs: !1 }; + e.Tj = { id: r.OPS.showText, numArgs: 1, variableArgs: !1 }; + e.TJ = { id: r.OPS.showSpacedText, numArgs: 1, variableArgs: !1 }; + e["'"] = { id: r.OPS.nextLineShowText, numArgs: 1, variableArgs: !1 }; + e['"'] = { id: r.OPS.nextLineSetSpacingShowText, numArgs: 3, variableArgs: !1 }; + e.d0 = { id: r.OPS.setCharWidth, numArgs: 2, variableArgs: !1 }; + e.d1 = { id: r.OPS.setCharWidthAndBounds, numArgs: 6, variableArgs: !1 }; + e.CS = { id: r.OPS.setStrokeColorSpace, numArgs: 1, variableArgs: !1 }; + e.cs = { id: r.OPS.setFillColorSpace, numArgs: 1, variableArgs: !1 }; + e.SC = { id: r.OPS.setStrokeColor, numArgs: 4, variableArgs: !0 }; + e.SCN = { id: r.OPS.setStrokeColorN, numArgs: 33, variableArgs: !0 }; + e.sc = { id: r.OPS.setFillColor, numArgs: 4, variableArgs: !0 }; + e.scn = { id: r.OPS.setFillColorN, numArgs: 33, variableArgs: !0 }; + e.G = { id: r.OPS.setStrokeGray, numArgs: 1, variableArgs: !1 }; + e.g = { id: r.OPS.setFillGray, numArgs: 1, variableArgs: !1 }; + e.RG = { id: r.OPS.setStrokeRGBColor, numArgs: 3, variableArgs: !1 }; + e.rg = { id: r.OPS.setFillRGBColor, numArgs: 3, variableArgs: !1 }; + e.K = { id: r.OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: !1 }; + e.k = { id: r.OPS.setFillCMYKColor, numArgs: 4, variableArgs: !1 }; + e.sh = { id: r.OPS.shadingFill, numArgs: 1, variableArgs: !1 }; + e.BI = { id: r.OPS.beginInlineImage, numArgs: 0, variableArgs: !1 }; + e.ID = { id: r.OPS.beginImageData, numArgs: 0, variableArgs: !1 }; + e.EI = { id: r.OPS.endInlineImage, numArgs: 1, variableArgs: !1 }; + e.Do = { id: r.OPS.paintXObject, numArgs: 1, variableArgs: !1 }; + e.MP = { id: r.OPS.markPoint, numArgs: 1, variableArgs: !1 }; + e.DP = { id: r.OPS.markPointProps, numArgs: 2, variableArgs: !1 }; + e.BMC = { id: r.OPS.beginMarkedContent, numArgs: 1, variableArgs: !1 }; + e.BDC = { id: r.OPS.beginMarkedContentProps, numArgs: 2, variableArgs: !1 }; + e.EMC = { id: r.OPS.endMarkedContent, numArgs: 0, variableArgs: !1 }; + e.BX = { id: r.OPS.beginCompat, numArgs: 0, variableArgs: !1 }; + e.EX = { id: r.OPS.endCompat, numArgs: 0, variableArgs: !1 }; + e.BM = null; + e.BD = null; + e.true = null; + e.fa = null; + e.fal = null; + e.fals = null; + e.false = null; + e.nu = null; + e.nul = null; + e.null = null; + }); + return (0, r.shadow)(this, 'opMap', e()); + } + static MAX_INVALID_PATH_OPS = 10; + constructor(e, t, a = new StateManager()) { + this.parser = new f.Parser({ + lexer: new f.Lexer(e, EvaluatorPreprocessor.opMap), + xref: t, + }); + this.stateManager = a; + this.nonProcessedArgs = []; + this._isPathOp = !1; + this._numInvalidPathOPS = 0; + } + get savedStatesDepth() { + return this.stateManager.stateStack.length; + } + read(e) { + let t = e.args; + for (;;) { + const a = this.parser.getObj(); + if (a instanceof n.Cmd) { + const i = a.cmd, + n = EvaluatorPreprocessor.opMap[i]; + if (!n) { + (0, r.warn)(`Unknown command "${i}".`); + continue; + } + const s = n.id, + o = n.numArgs; + let c = null !== t ? t.length : 0; + this._isPathOp || (this._numInvalidPathOPS = 0); + this._isPathOp = s >= r.OPS.moveTo && s <= r.OPS.endPath; + if (n.variableArgs) + c > o && + (0, r.info)(`Command ${i}: expected [0, ${o}] args, but received ${c} args.`); + else { + if (c !== o) { + const e = this.nonProcessedArgs; + for (; c > o; ) { + e.push(t.shift()); + c--; + } + for (; c < o && 0 !== e.length; ) { + null === t && (t = []); + t.unshift(e.pop()); + c++; + } + } + if (c < o) { + const e = `command ${i}: expected ${o} args, but received ${c} args.`; + if ( + this._isPathOp && + ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS + ) + throw new r.FormatError(`Invalid ${e}`); + (0, r.warn)(`Skipping ${e}`); + null !== t && (t.length = 0); + continue; + } + } + this.preprocessCommand(s, t); + e.fn = s; + e.args = t; + return !0; + } + if (a === n.EOF) return !1; + if (null !== a) { + null === t && (t = []); + t.push(a); + if (t.length > 33) throw new r.FormatError('Too many arguments'); + } + } + } + preprocessCommand(e, t) { + switch (0 | e) { + case r.OPS.save: + this.stateManager.save(); + break; + case r.OPS.restore: + this.stateManager.restore(); + break; + case r.OPS.transform: + this.stateManager.transform(t); + } + } + } + t.EvaluatorPreprocessor = EvaluatorPreprocessor; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.IdentityCMap = t.CMapFactory = t.CMap = void 0; + var r = a(2), + i = a(4), + n = a(5), + s = a(15), + o = a(16), + c = a(3), + l = a(8); + const h = [ + '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', + ], + u = 2 ** 24 - 1; + class CMap { + constructor(e = !1) { + this.codespaceRanges = [[], [], [], []]; + this.numCodespaceRanges = 0; + this._map = []; + this.name = ''; + this.vertical = !1; + this.useCMap = null; + this.builtInCMap = e; + } + addCodespaceRange(e, t, a) { + this.codespaceRanges[e - 1].push(t, a); + this.numCodespaceRanges++; + } + mapCidRange(e, t, a) { + if (t - e > u) throw new Error('mapCidRange - ignoring data above MAX_MAP_RANGE.'); + for (; e <= t; ) this._map[e++] = a++; + } + mapBfRange(e, t, a) { + if (t - e > u) throw new Error('mapBfRange - ignoring data above MAX_MAP_RANGE.'); + const r = a.length - 1; + for (; e <= t; ) { + this._map[e++] = a; + const t = a.charCodeAt(r) + 1; + t > 255 + ? (a = + a.substring(0, r - 1) + String.fromCharCode(a.charCodeAt(r - 1) + 1) + '\0') + : (a = a.substring(0, r) + String.fromCharCode(t)); + } + } + mapBfRangeToArray(e, t, a) { + if (t - e > u) + throw new Error('mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.'); + const r = a.length; + let i = 0; + for (; e <= t && i < r; ) { + this._map[e] = a[i++]; + ++e; + } + } + mapOne(e, t) { + this._map[e] = t; + } + lookup(e) { + return this._map[e]; + } + contains(e) { + return void 0 !== this._map[e]; + } + forEach(e) { + const t = this._map, + a = t.length; + if (a <= 65536) for (let r = 0; r < a; r++) void 0 !== t[r] && e(r, t[r]); + else for (const a in t) e(a, t[a]); + } + charCodeOf(e) { + const t = this._map; + if (t.length <= 65536) return t.indexOf(e); + for (const a in t) if (t[a] === e) return 0 | a; + return -1; + } + getMap() { + return this._map; + } + readCharCode(e, t, a) { + let r = 0; + const i = this.codespaceRanges; + for (let n = 0, s = i.length; n < s; n++) { + r = ((r << 8) | e.charCodeAt(t + n)) >>> 0; + const s = i[n]; + for (let e = 0, t = s.length; e < t; ) { + const t = s[e++], + i = s[e++]; + if (r >= t && r <= i) { + a.charcode = r; + a.length = n + 1; + return; + } + } + } + a.charcode = 0; + a.length = 1; + } + getCharCodeLength(e) { + const t = this.codespaceRanges; + for (let a = 0, r = t.length; a < r; a++) { + const r = t[a]; + for (let t = 0, i = r.length; t < i; ) { + const i = r[t++], + n = r[t++]; + if (e >= i && e <= n) return a + 1; + } + } + return 1; + } + get length() { + return this._map.length; + } + get isIdentityCMap() { + if ('Identity-H' !== this.name && 'Identity-V' !== this.name) return !1; + if (65536 !== this._map.length) return !1; + for (let e = 0; e < 65536; e++) if (this._map[e] !== e) return !1; + return !0; + } + } + t.CMap = CMap; + class IdentityCMap extends CMap { + constructor(e, t) { + super(); + this.vertical = e; + this.addCodespaceRange(t, 0, 65535); + } + mapCidRange(e, t, a) { + (0, r.unreachable)('should not call mapCidRange'); + } + mapBfRange(e, t, a) { + (0, r.unreachable)('should not call mapBfRange'); + } + mapBfRangeToArray(e, t, a) { + (0, r.unreachable)('should not call mapBfRangeToArray'); + } + mapOne(e, t) { + (0, r.unreachable)('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 t = 0; t <= 65535; t++) e(t, t); + } + charCodeOf(e) { + return Number.isInteger(e) && e <= 65535 ? e : -1; + } + getMap() { + const e = new Array(65536); + for (let t = 0; t <= 65535; t++) e[t] = t; + return e; + } + get length() { + return 65536; + } + get isIdentityCMap() { + (0, r.unreachable)('should not access .isIdentityCMap'); + } + } + t.IdentityCMap = IdentityCMap; + function strToInt(e) { + let t = 0; + for (let a = 0; a < e.length; a++) t = (t << 8) | e.charCodeAt(a); + return t >>> 0; + } + function expectString(e) { + if ('string' != typeof e) throw new r.FormatError('Malformed CMap: expected string.'); + } + function expectInt(e) { + if (!Number.isInteger(e)) throw new r.FormatError('Malformed CMap: expected int.'); + } + function parseBfChar(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endbfchar')) return; + expectString(a); + const r = strToInt(a); + a = t.getObj(); + expectString(a); + const n = a; + e.mapOne(r, n); + } + } + function parseBfRange(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endbfrange')) return; + expectString(a); + const r = strToInt(a); + a = t.getObj(); + expectString(a); + const n = strToInt(a); + a = t.getObj(); + if (Number.isInteger(a) || 'string' == typeof a) { + const t = Number.isInteger(a) ? String.fromCharCode(a) : a; + e.mapBfRange(r, n, t); + } else { + if (!(0, i.isCmd)(a, '[')) break; + { + a = t.getObj(); + const s = []; + for (; !(0, i.isCmd)(a, ']') && a !== i.EOF; ) { + s.push(a); + a = t.getObj(); + } + e.mapBfRangeToArray(r, n, s); + } + } + } + throw new r.FormatError('Invalid bf range.'); + } + function parseCidChar(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endcidchar')) return; + expectString(a); + const r = strToInt(a); + a = t.getObj(); + expectInt(a); + const n = a; + e.mapOne(r, n); + } + } + function parseCidRange(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endcidrange')) return; + expectString(a); + const r = strToInt(a); + a = t.getObj(); + expectString(a); + const n = strToInt(a); + a = t.getObj(); + expectInt(a); + const s = a; + e.mapCidRange(r, n, s); + } + } + function parseCodespaceRange(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endcodespacerange')) return; + if ('string' != typeof a) break; + const r = strToInt(a); + a = t.getObj(); + if ('string' != typeof a) break; + const n = strToInt(a); + e.addCodespaceRange(a.length, r, n); + } + throw new r.FormatError('Invalid codespace range.'); + } + function parseWMode(e, t) { + const a = t.getObj(); + Number.isInteger(a) && (e.vertical = !!a); + } + function parseCMapName(e, t) { + const a = t.getObj(); + a instanceof i.Name && (e.name = a.name); + } + async function parseCMap(e, t, a, n) { + let s, o; + e: for (;;) + try { + const a = t.getObj(); + if (a === i.EOF) break; + if (a instanceof i.Name) { + 'WMode' === a.name + ? parseWMode(e, t) + : 'CMapName' === a.name && parseCMapName(e, t); + s = a; + } else if (a instanceof i.Cmd) + switch (a.cmd) { + case 'endcmap': + break e; + case 'usecmap': + s instanceof i.Name && (o = s.name); + break; + case 'begincodespacerange': + parseCodespaceRange(e, t); + break; + case 'beginbfchar': + parseBfChar(e, t); + break; + case 'begincidchar': + parseCidChar(e, t); + break; + case 'beginbfrange': + parseBfRange(e, t); + break; + case 'begincidrange': + parseCidRange(e, t); + } + } catch (e) { + if (e instanceof c.MissingDataException) throw e; + (0, r.warn)('Invalid cMap data: ' + e); + continue; + } + !n && o && (n = o); + return n ? extendCMap(e, a, n) : e; + } + async function extendCMap(e, t, a) { + e.useCMap = await createBuiltInCMap(a, t); + if (0 === e.numCodespaceRanges) { + const t = e.useCMap.codespaceRanges; + for (let a = 0; a < t.length; a++) e.codespaceRanges[a] = t[a].slice(); + e.numCodespaceRanges = e.useCMap.numCodespaceRanges; + } + e.useCMap.forEach(function (t, a) { + e.contains(t) || e.mapOne(t, e.useCMap.lookup(t)); + }); + return e; + } + async function createBuiltInCMap(e, t) { + if ('Identity-H' === e) return new IdentityCMap(!1, 2); + if ('Identity-V' === e) return new IdentityCMap(!0, 2); + if (!h.includes(e)) throw new Error('Unknown CMap name: ' + e); + if (!t) throw new Error('Built-in CMap parameters are not provided.'); + const { cMapData: a, compressionType: i } = await t(e), + n = new CMap(!0); + if (i === r.CMapCompressionType.BINARY) + return new s.BinaryCMapReader().process(a, n, (e) => extendCMap(n, t, e)); + if (i === r.CMapCompressionType.NONE) { + const e = new o.Lexer(new l.Stream(a)); + return parseCMap(n, e, t, null); + } + throw new Error(`Invalid CMap "compressionType" value: ${i}`); + } + t.CMapFactory = class CMapFactory { + static async create({ encoding: e, fetchBuiltInCMap: t, useCMap: a }) { + if (e instanceof i.Name) return createBuiltInCMap(e.name, t); + if (e instanceof n.BaseStream) { + const r = await parseCMap(new CMap(), new o.Lexer(e), t, a); + return r.isIdentityCMap ? createBuiltInCMap(r.name, t) : r; + } + throw new Error('Encoding required.'); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.BinaryCMapReader = void 0; + var r = a(2); + function hexToInt(e, t) { + let a = 0; + for (let r = 0; r <= t; r++) a = (a << 8) | e[r]; + return a >>> 0; + } + function hexToStr(e, t) { + return 1 === t + ? String.fromCharCode(e[0], e[1]) + : 3 === t + ? String.fromCharCode(e[0], e[1], e[2], e[3]) + : String.fromCharCode(...e.subarray(0, t + 1)); + } + function addHex(e, t, a) { + let r = 0; + for (let i = a; i >= 0; i--) { + r += e[i] + t[i]; + e[i] = 255 & r; + r >>= 8; + } + } + function incHex(e, t) { + let a = 1; + for (let r = t; r >= 0 && a > 0; r--) { + a += e[r]; + e[r] = 255 & a; + a >>= 8; + } + } + const i = 16; + class BinaryCMapStream { + constructor(e) { + this.buffer = e; + this.pos = 0; + this.end = e.length; + this.tmpBuf = new Uint8Array(19); + } + readByte() { + return this.pos >= this.end ? -1 : this.buffer[this.pos++]; + } + readNumber() { + let e, + t = 0; + do { + const a = this.readByte(); + if (a < 0) throw new r.FormatError('unexpected EOF in bcmap'); + e = !(128 & a); + t = (t << 7) | (127 & a); + } while (!e); + return t; + } + readSigned() { + const e = this.readNumber(); + return 1 & e ? ~(e >>> 1) : e >>> 1; + } + readHex(e, t) { + e.set(this.buffer.subarray(this.pos, this.pos + t + 1)); + this.pos += t + 1; + } + readHexNumber(e, t) { + let a; + const i = this.tmpBuf; + let n = 0; + do { + const e = this.readByte(); + if (e < 0) throw new r.FormatError('unexpected EOF in bcmap'); + a = !(128 & e); + i[n++] = 127 & e; + } while (!a); + let s = t, + o = 0, + c = 0; + for (; s >= 0; ) { + for (; c < 8 && i.length > 0; ) { + o |= i[--n] << c; + c += 7; + } + e[s] = 255 & o; + s--; + o >>= 8; + c -= 8; + } + } + readHexSigned(e, t) { + this.readHexNumber(e, t); + const a = 1 & e[t] ? 255 : 0; + let r = 0; + for (let i = 0; i <= t; i++) { + r = ((1 & r) << 8) | e[i]; + e[i] = (r >> 1) ^ a; + } + } + readString() { + const e = this.readNumber(), + t = new Array(e); + for (let a = 0; a < e; a++) t[a] = this.readNumber(); + return String.fromCharCode(...t); + } + } + t.BinaryCMapReader = class BinaryCMapReader { + async process(e, t, a) { + const r = new BinaryCMapStream(e), + n = r.readByte(); + t.vertical = !!(1 & n); + let s = null; + const o = new Uint8Array(i), + c = new Uint8Array(i), + l = new Uint8Array(i), + h = new Uint8Array(i), + u = new Uint8Array(i); + let d, f; + for (; (f = r.readByte()) >= 0; ) { + const e = f >> 5; + if (7 === e) { + switch (31 & f) { + case 0: + r.readString(); + break; + case 1: + s = r.readString(); + } + continue; + } + const a = !!(16 & f), + n = 15 & f; + if (n + 1 > i) throw new Error('BinaryCMapReader.process: Invalid dataSize.'); + const g = 1, + p = r.readNumber(); + switch (e) { + case 0: + r.readHex(o, n); + r.readHexNumber(c, n); + addHex(c, o, n); + t.addCodespaceRange(n + 1, hexToInt(o, n), hexToInt(c, n)); + for (let e = 1; e < p; e++) { + incHex(c, n); + r.readHexNumber(o, n); + addHex(o, c, n); + r.readHexNumber(c, n); + addHex(c, o, n); + t.addCodespaceRange(n + 1, hexToInt(o, n), hexToInt(c, n)); + } + break; + case 1: + r.readHex(o, n); + r.readHexNumber(c, n); + addHex(c, o, n); + r.readNumber(); + for (let e = 1; e < p; e++) { + incHex(c, n); + r.readHexNumber(o, n); + addHex(o, c, n); + r.readHexNumber(c, n); + addHex(c, o, n); + r.readNumber(); + } + break; + case 2: + r.readHex(l, n); + d = r.readNumber(); + t.mapOne(hexToInt(l, n), d); + for (let e = 1; e < p; e++) { + incHex(l, n); + if (!a) { + r.readHexNumber(u, n); + addHex(l, u, n); + } + d = r.readSigned() + (d + 1); + t.mapOne(hexToInt(l, n), d); + } + break; + case 3: + r.readHex(o, n); + r.readHexNumber(c, n); + addHex(c, o, n); + d = r.readNumber(); + t.mapCidRange(hexToInt(o, n), hexToInt(c, n), d); + for (let e = 1; e < p; e++) { + incHex(c, n); + if (a) o.set(c); + else { + r.readHexNumber(o, n); + addHex(o, c, n); + } + r.readHexNumber(c, n); + addHex(c, o, n); + d = r.readNumber(); + t.mapCidRange(hexToInt(o, n), hexToInt(c, n), d); + } + break; + case 4: + r.readHex(l, g); + r.readHex(h, n); + t.mapOne(hexToInt(l, g), hexToStr(h, n)); + for (let e = 1; e < p; e++) { + incHex(l, g); + if (!a) { + r.readHexNumber(u, g); + addHex(l, u, g); + } + incHex(h, n); + r.readHexSigned(u, n); + addHex(h, u, n); + t.mapOne(hexToInt(l, g), hexToStr(h, n)); + } + break; + case 5: + r.readHex(o, g); + r.readHexNumber(c, g); + addHex(c, o, g); + r.readHex(h, n); + t.mapBfRange(hexToInt(o, g), hexToInt(c, g), hexToStr(h, n)); + for (let e = 1; e < p; e++) { + incHex(c, g); + if (a) o.set(c); + else { + r.readHexNumber(o, g); + addHex(o, c, g); + } + r.readHexNumber(c, g); + addHex(c, o, g); + r.readHex(h, n); + t.mapBfRange(hexToInt(o, g), hexToInt(c, g), hexToStr(h, n)); + } + break; + default: + throw new Error(`BinaryCMapReader.process - unknown type: ${e}`); + } + } + return s ? a(s) : t; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Parser = t.Linearization = t.Lexer = void 0; + var r = a(2), + i = a(4), + n = a(3), + s = a(17), + o = a(19), + c = a(20), + l = a(22), + h = a(23), + u = a(26), + d = a(29), + f = a(31), + g = a(8), + p = a(32), + m = a(33); + class Parser { + constructor({ lexer: e, xref: t, allowStreams: a = !1, recoveryMode: r = !1 }) { + this.lexer = e; + this.xref = t; + this.allowStreams = a; + this.recoveryMode = r; + this.imageCache = Object.create(null); + this._imageId = 0; + this.refill(); + } + refill() { + this.buf1 = this.lexer.getObj(); + this.buf2 = this.lexer.getObj(); + } + shift() { + if (this.buf2 instanceof i.Cmd && 'ID' === this.buf2.cmd) { + this.buf1 = this.buf2; + this.buf2 = null; + } else { + this.buf1 = this.buf2; + this.buf2 = this.lexer.getObj(); + } + } + tryShift() { + try { + this.shift(); + return !0; + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + return !1; + } + } + getObj(e = null) { + const t = this.buf1; + this.shift(); + if (t instanceof i.Cmd) + switch (t.cmd) { + case 'BI': + return this.makeInlineImage(e); + case '[': + const a = []; + for (; !(0, i.isCmd)(this.buf1, ']') && this.buf1 !== i.EOF; ) + a.push(this.getObj(e)); + if (this.buf1 === i.EOF) { + if (this.recoveryMode) return a; + throw new n.ParserEOFException('End of file inside array.'); + } + this.shift(); + return a; + case '<<': + const s = new i.Dict(this.xref); + for (; !(0, i.isCmd)(this.buf1, '>>') && this.buf1 !== i.EOF; ) { + if (!(this.buf1 instanceof i.Name)) { + (0, r.info)('Malformed dictionary: key must be a name object'); + this.shift(); + continue; + } + const t = this.buf1.name; + this.shift(); + if (this.buf1 === i.EOF) break; + s.set(t, this.getObj(e)); + } + if (this.buf1 === i.EOF) { + if (this.recoveryMode) return s; + throw new n.ParserEOFException('End of file inside dictionary.'); + } + if ((0, i.isCmd)(this.buf2, 'stream')) + return this.allowStreams ? this.makeStream(s, e) : s; + this.shift(); + return s; + default: + return t; + } + if (Number.isInteger(t)) { + if (Number.isInteger(this.buf1) && (0, i.isCmd)(this.buf2, 'R')) { + const e = i.Ref.get(t, this.buf1); + this.shift(); + this.shift(); + return e; + } + return t; + } + return 'string' == typeof t && e ? e.decryptString(t) : t; + } + findDefaultInlineStreamEnd(e) { + const t = this.lexer, + a = e.pos; + let s, + o, + c = 0; + for (; -1 !== (s = e.getByte()); ) + if (0 === c) c = 69 === s ? 1 : 0; + else if (1 === c) c = 73 === s ? 2 : 0; + else if (32 === s || 10 === s || 13 === s) { + o = e.pos; + const a = e.peekBytes(10); + for (let e = 0, t = a.length; e < t; e++) { + s = a[e]; + if ( + (0 !== s || 0 === a[e + 1]) && + 10 !== s && + 13 !== s && + (s < 32 || s > 127) + ) { + c = 0; + break; + } + } + if (2 !== c) continue; + if (t.knownCommands) { + const e = t.peekObj(); + e instanceof i.Cmd && !t.knownCommands[e.cmd] && (c = 0); + } else + (0, r.warn)('findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.'); + if (2 === c) break; + } else c = 0; + if (-1 === s) { + (0, r.warn)( + 'findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker', + ); + if (o) { + (0, r.warn)('... trying to recover by using the last "EI" occurrence.'); + e.skip(-(e.pos - o)); + } + } + let l = 4; + e.skip(-l); + s = e.peekByte(); + e.skip(l); + (0, n.isWhiteSpace)(s) || l--; + return e.pos - l - a; + } + findDCTDecodeInlineStreamEnd(e) { + const t = e.pos; + let a, + i, + n = !1; + for (; -1 !== (a = e.getByte()); ) + if (255 === a) { + switch (e.getByte()) { + case 0: + break; + case 255: + e.skip(-1); + break; + case 217: + n = !0; + 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: + i = e.getUint16(); + i > 2 ? e.skip(i - 2) : e.skip(-2); + } + if (n) break; + } + const s = e.pos - t; + if (-1 === a) { + (0, r.warn)( + 'Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.', + ); + e.skip(-s); + return this.findDefaultInlineStreamEnd(e); + } + this.inlineStreamSkipEI(e); + return s; + } + findASCII85DecodeInlineStreamEnd(e) { + const t = e.pos; + let a; + for (; -1 !== (a = e.getByte()); ) + if (126 === a) { + const t = e.pos; + a = e.peekByte(); + for (; (0, n.isWhiteSpace)(a); ) { + e.skip(); + a = e.peekByte(); + } + if (62 === a) { + e.skip(); + break; + } + if (e.pos > t) { + const t = e.peekBytes(2); + if (69 === t[0] && 73 === t[1]) break; + } + } + const i = e.pos - t; + if (-1 === a) { + (0, r.warn)( + 'Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.', + ); + e.skip(-i); + return this.findDefaultInlineStreamEnd(e); + } + this.inlineStreamSkipEI(e); + return i; + } + findASCIIHexDecodeInlineStreamEnd(e) { + const t = e.pos; + let a; + for (; -1 !== (a = e.getByte()) && 62 !== a; ); + const i = e.pos - t; + if (-1 === a) { + (0, r.warn)( + 'Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.', + ); + e.skip(-i); + return this.findDefaultInlineStreamEnd(e); + } + this.inlineStreamSkipEI(e); + return i; + } + inlineStreamSkipEI(e) { + let t, + a = 0; + for (; -1 !== (t = e.getByte()); ) + if (0 === a) a = 69 === t ? 1 : 0; + else if (1 === a) a = 73 === t ? 2 : 0; + else if (2 === a) break; + } + makeInlineImage(e) { + const t = this.lexer, + a = t.stream, + n = Object.create(null); + let s; + for (; !(0, i.isCmd)(this.buf1, 'ID') && this.buf1 !== i.EOF; ) { + if (!(this.buf1 instanceof i.Name)) + throw new r.FormatError('Dictionary key must be a name object'); + const t = this.buf1.name; + this.shift(); + if (this.buf1 === i.EOF) break; + n[t] = this.getObj(e); + } + -1 !== t.beginInlineImagePos && (s = a.pos - t.beginInlineImagePos); + const o = this.xref.fetchIfRef(n.F || n.Filter); + let c; + if (o instanceof i.Name) c = o.name; + else if (Array.isArray(o)) { + const e = this.xref.fetchIfRef(o[0]); + e instanceof i.Name && (c = e.name); + } + const l = a.pos; + let h, u; + switch (c) { + case 'DCT': + case 'DCTDecode': + h = this.findDCTDecodeInlineStreamEnd(a); + break; + case 'A85': + case 'ASCII85Decode': + h = this.findASCII85DecodeInlineStreamEnd(a); + break; + case 'AHx': + case 'ASCIIHexDecode': + h = this.findASCIIHexDecodeInlineStreamEnd(a); + break; + default: + h = this.findDefaultInlineStreamEnd(a); + } + if (h < 1e3 && s > 0) { + const e = a.pos; + a.pos = t.beginInlineImagePos; + u = (function getInlineImageCacheKey(e) { + const t = [], + a = e.length; + let r = 0; + for (; r < a - 1; ) t.push((e[r++] << 8) | e[r++]); + r < a && t.push(e[r]); + return a + '_' + String.fromCharCode.apply(null, t); + })(a.getBytes(s + h)); + a.pos = e; + const r = this.imageCache[u]; + if (void 0 !== r) { + this.buf2 = i.Cmd.get('EI'); + this.shift(); + r.reset(); + return r; + } + } + const d = new i.Dict(this.xref); + for (const e in n) d.set(e, n[e]); + let f = a.makeSubStream(l, h, d); + e && (f = e.createStream(f, h)); + f = this.filter(f, d, h); + f.dict = d; + if (void 0 !== u) { + f.cacheKey = 'inline_img_' + ++this._imageId; + this.imageCache[u] = f; + } + this.buf2 = i.Cmd.get('EI'); + this.shift(); + return f; + } + _findStreamLength(e, t) { + const { stream: a } = this.lexer; + a.pos = e; + const r = t.length; + for (; a.pos < a.end; ) { + const i = a.peekBytes(2048), + n = i.length - r; + if (n <= 0) break; + let s = 0; + for (; s < n; ) { + let n = 0; + for (; n < r && i[s + n] === t[n]; ) n++; + if (n >= r) { + a.pos += s; + return a.pos - e; + } + s++; + } + a.pos += n; + } + return -1; + } + makeStream(e, t) { + const a = this.lexer; + let s = a.stream; + a.skipToNextLine(); + const o = s.pos - 1; + let c = e.get('Length'); + if (!Number.isInteger(c)) { + (0, r.info)(`Bad length "${c && c.toString()}" in stream.`); + c = 0; + } + s.pos = o + c; + a.nextChar(); + if (this.tryShift() && (0, i.isCmd)(this.buf2, 'endstream')) this.shift(); + else { + const e = new Uint8Array([101, 110, 100, 115, 116, 114, 101, 97, 109]); + let t = this._findStreamLength(o, e); + if (t < 0) { + const a = 1; + for (let i = 1; i <= a; i++) { + const a = e.length - i, + c = e.slice(0, a), + l = this._findStreamLength(o, c); + if (l >= 0) { + const e = s.peekBytes(a + 1)[a]; + if (!(0, n.isWhiteSpace)(e)) break; + (0, r.info)( + `Found "${(0, r.bytesToString)(c)}" when searching for endstream command.`, + ); + t = l; + break; + } + } + if (t < 0) throw new r.FormatError('Missing endstream command.'); + } + c = t; + a.nextChar(); + this.shift(); + this.shift(); + } + this.shift(); + s = s.makeSubStream(o, c, e); + t && (s = t.createStream(s, c)); + s = this.filter(s, e, c); + s.dict = e; + return s; + } + filter(e, t, a) { + let n = t.get('F', 'Filter'), + s = t.get('DP', 'DecodeParms'); + if (n instanceof i.Name) { + Array.isArray(s) && + (0, r.warn)('/DecodeParms should not be an Array, when /Filter is a Name.'); + return this.makeFilter(e, n.name, a, s); + } + let o = a; + if (Array.isArray(n)) { + const t = n, + a = s; + for (let c = 0, l = t.length; c < l; ++c) { + n = this.xref.fetchIfRef(t[c]); + if (!(n instanceof i.Name)) throw new r.FormatError(`Bad filter name "${n}"`); + s = null; + Array.isArray(a) && c in a && (s = this.xref.fetchIfRef(a[c])); + e = this.makeFilter(e, n.name, o, s); + o = null; + } + } + return e; + } + makeFilter(e, t, a, i) { + if (0 === a) { + (0, r.warn)(`Empty "${t}" stream.`); + return new g.NullStream(); + } + try { + switch (t) { + case 'Fl': + case 'FlateDecode': + return i + ? new p.PredictorStream(new l.FlateStream(e, a), a, i) + : new l.FlateStream(e, a); + case 'LZW': + case 'LZWDecode': + let t = 1; + if (i) { + i.has('EarlyChange') && (t = i.get('EarlyChange')); + return new p.PredictorStream(new f.LZWStream(e, a, t), a, i); + } + return new f.LZWStream(e, a, t); + case 'DCT': + case 'DCTDecode': + return new u.JpegStream(e, a, i); + case 'JPX': + case 'JPXDecode': + return new d.JpxStream(e, a, i); + case 'A85': + case 'ASCII85Decode': + return new s.Ascii85Stream(e, a); + case 'AHx': + case 'ASCIIHexDecode': + return new o.AsciiHexStream(e, a); + case 'CCF': + case 'CCITTFaxDecode': + return new c.CCITTFaxStream(e, a, i); + case 'RL': + case 'RunLengthDecode': + return new m.RunLengthStream(e, a); + case 'JBIG2Decode': + return new h.Jbig2Stream(e, a, i); + } + (0, r.warn)(`Filter "${t}" is not supported.`); + return e; + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, r.warn)(`Invalid stream: "${e}"`); + return new g.NullStream(); + } + } + } + t.Parser = Parser; + const b = [ + 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, + ]; + function toHexDigit(e) { + return e >= 48 && e <= 57 + ? 15 & e + : (e >= 65 && e <= 70) || (e >= 97 && e <= 102) + ? 9 + (15 & e) + : -1; + } + class Lexer { + constructor(e, t = null) { + this.stream = e; + this.nextChar(); + this.strBuf = []; + this.knownCommands = t; + this._hexStringNumWarn = 0; + this.beginInlineImagePos = -1; + } + nextChar() { + return (this.currentChar = this.stream.getByte()); + } + peekChar() { + return this.stream.peekByte(); + } + getNumber() { + let e = this.currentChar, + t = !1, + a = 0, + i = 0; + if (45 === e) { + i = -1; + e = this.nextChar(); + 45 === e && (e = this.nextChar()); + } else if (43 === e) { + i = 1; + e = this.nextChar(); + } + if (10 === e || 13 === e) + do { + e = this.nextChar(); + } while (10 === e || 13 === e); + if (46 === e) { + a = 10; + e = this.nextChar(); + } + if (e < 48 || e > 57) { + const t = `Invalid number: ${String.fromCharCode(e)} (charCode ${e})`; + if ((0, n.isWhiteSpace)(e) || -1 === e) { + (0, r.info)(`Lexer.getNumber - "${t}".`); + return 0; + } + throw new r.FormatError(t); + } + i ||= 1; + let s = e - 48, + o = 0, + c = 1; + for (; (e = this.nextChar()) >= 0; ) + if (e >= 48 && e <= 57) { + const r = e - 48; + if (t) o = 10 * o + r; + else { + 0 !== a && (a *= 10); + s = 10 * s + r; + } + } else if (46 === e) { + if (0 !== a) break; + a = 1; + } else if (45 === e) + (0, r.warn)('Badly formatted number: minus sign in the middle'); + else { + if (69 !== e && 101 !== e) break; + e = this.peekChar(); + if (43 === e || 45 === e) { + c = 45 === e ? -1 : 1; + this.nextChar(); + } else if (e < 48 || e > 57) break; + t = !0; + } + 0 !== a && (s /= a); + t && (s *= 10 ** (c * o)); + return i * s; + } + getString() { + let e = 1, + t = !1; + const a = this.strBuf; + a.length = 0; + let i = this.nextChar(); + for (;;) { + let n = !1; + switch (0 | i) { + case -1: + (0, r.warn)('Unterminated string'); + t = !0; + break; + case 40: + ++e; + a.push('('); + break; + case 41: + if (0 == --e) { + this.nextChar(); + t = !0; + } else a.push(')'); + break; + case 92: + i = this.nextChar(); + switch (i) { + case -1: + (0, r.warn)('Unterminated string'); + t = !0; + break; + case 110: + a.push('\n'); + break; + case 114: + a.push('\r'); + break; + case 116: + a.push('\t'); + break; + case 98: + a.push('\b'); + break; + case 102: + a.push('\f'); + break; + case 92: + case 40: + case 41: + a.push(String.fromCharCode(i)); + break; + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + let e = 15 & i; + i = this.nextChar(); + n = !0; + if (i >= 48 && i <= 55) { + e = (e << 3) + (15 & i); + i = this.nextChar(); + if (i >= 48 && i <= 55) { + n = !1; + e = (e << 3) + (15 & i); + } + } + a.push(String.fromCharCode(e)); + break; + case 13: + 10 === this.peekChar() && this.nextChar(); + break; + case 10: + break; + default: + a.push(String.fromCharCode(i)); + } + break; + default: + a.push(String.fromCharCode(i)); + } + if (t) break; + n || (i = this.nextChar()); + } + return a.join(''); + } + getName() { + let e, t; + const a = this.strBuf; + a.length = 0; + for (; (e = this.nextChar()) >= 0 && !b[e]; ) + if (35 === e) { + e = this.nextChar(); + if (b[e]) { + (0, r.warn)( + 'Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.', + ); + a.push('#'); + break; + } + const i = toHexDigit(e); + if (-1 !== i) { + t = e; + e = this.nextChar(); + const n = toHexDigit(e); + if (-1 === n) { + (0, r.warn)( + `Lexer_getName: Illegal digit (${String.fromCharCode( + e, + )}) in hexadecimal number.`, + ); + a.push('#', String.fromCharCode(t)); + if (b[e]) break; + a.push(String.fromCharCode(e)); + continue; + } + a.push(String.fromCharCode((i << 4) | n)); + } else a.push('#', String.fromCharCode(e)); + } else a.push(String.fromCharCode(e)); + a.length > 127 && + (0, r.warn)(`Name token is longer than allowed by the spec: ${a.length}`); + return i.Name.get(a.join('')); + } + _hexStringWarn(e) { + 5 != this._hexStringNumWarn++ + ? this._hexStringNumWarn > 5 || + (0, r.warn)(`getHexString - ignoring invalid character: ${e}`) + : (0, r.warn)('getHexString - ignoring additional invalid characters.'); + } + getHexString() { + const e = this.strBuf; + e.length = 0; + let t, + a, + i = this.currentChar, + n = !0; + this._hexStringNumWarn = 0; + for (;;) { + if (i < 0) { + (0, r.warn)('Unterminated hex string'); + break; + } + if (62 === i) { + this.nextChar(); + break; + } + if (1 !== b[i]) { + if (n) { + t = toHexDigit(i); + if (-1 === t) { + this._hexStringWarn(i); + i = this.nextChar(); + continue; + } + } else { + a = toHexDigit(i); + if (-1 === a) { + this._hexStringWarn(i); + i = this.nextChar(); + continue; + } + e.push(String.fromCharCode((t << 4) | a)); + } + n = !n; + i = this.nextChar(); + } else i = this.nextChar(); + } + return e.join(''); + } + getObj() { + let e = !1, + t = this.currentChar; + for (;;) { + if (t < 0) return i.EOF; + if (e) (10 !== t && 13 !== t) || (e = !1); + else if (37 === t) e = !0; + else if (1 !== b[t]) break; + t = this.nextChar(); + } + switch (0 | t) { + 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: + this.nextChar(); + return i.Cmd.get('['); + case 93: + this.nextChar(); + return i.Cmd.get(']'); + case 60: + t = this.nextChar(); + if (60 === t) { + this.nextChar(); + return i.Cmd.get('<<'); + } + return this.getHexString(); + case 62: + t = this.nextChar(); + if (62 === t) { + this.nextChar(); + return i.Cmd.get('>>'); + } + return i.Cmd.get('>'); + case 123: + this.nextChar(); + return i.Cmd.get('{'); + case 125: + this.nextChar(); + return i.Cmd.get('}'); + case 41: + this.nextChar(); + throw new r.FormatError(`Illegal character: ${t}`); + } + let a = String.fromCharCode(t); + if (t < 32 || t > 127) { + const e = this.peekChar(); + if (e >= 32 && e <= 127) { + this.nextChar(); + return i.Cmd.get(a); + } + } + const n = this.knownCommands; + let s = n && void 0 !== n[a]; + for (; (t = this.nextChar()) >= 0 && !b[t]; ) { + const e = a + String.fromCharCode(t); + if (s && void 0 === n[e]) break; + if (128 === a.length) + throw new r.FormatError(`Command token too long: ${a.length}`); + a = e; + s = n && void 0 !== n[a]; + } + if ('true' === a) return !0; + if ('false' === a) return !1; + if ('null' === a) return null; + 'BI' === a && (this.beginInlineImagePos = this.stream.pos); + return i.Cmd.get(a); + } + peekObj() { + const e = this.stream.pos, + t = this.currentChar, + a = this.beginInlineImagePos; + let i; + try { + i = this.getObj(); + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, r.warn)(`peekObj: ${e}`); + } + this.stream.pos = e; + this.currentChar = t; + this.beginInlineImagePos = a; + return i; + } + skipToNextLine() { + let e = this.currentChar; + for (; e >= 0; ) { + if (13 === e) { + e = this.nextChar(); + 10 === e && this.nextChar(); + break; + } + if (10 === e) { + this.nextChar(); + break; + } + e = this.nextChar(); + } + } + } + t.Lexer = Lexer; + t.Linearization = class Linearization { + static create(e) { + function getInt(e, t, a = !1) { + const r = e.get(t); + if (Number.isInteger(r) && (a ? r >= 0 : r > 0)) return r; + throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`); + } + const t = new Parser({ lexer: new Lexer(e), xref: null }), + a = t.getObj(), + r = t.getObj(), + n = t.getObj(), + s = t.getObj(); + let o, c; + if ( + !( + Number.isInteger(a) && + Number.isInteger(r) && + (0, i.isCmd)(n, 'obj') && + s instanceof i.Dict && + 'number' == typeof (o = s.get('Linearized')) && + o > 0 + ) + ) + return null; + if ((c = getInt(s, 'L')) !== e.length) + throw new Error( + 'The "L" parameter in the linearization dictionary does not equal the stream length.', + ); + return { + length: c, + hints: (function getHints(e) { + const t = e.get('H'); + let a; + if (Array.isArray(t) && (2 === (a = t.length) || 4 === a)) { + for (let e = 0; e < a; e++) { + const a = t[e]; + if (!(Number.isInteger(a) && a > 0)) + throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`); + } + return t; + } + throw new Error('Hint array in the linearization dictionary is invalid.'); + })(s), + objectNumberFirst: getInt(s, 'O'), + endFirst: getInt(s, 'E'), + numPages: getInt(s, 'N'), + mainXRefEntriesOffset: getInt(s, 'T'), + pageFirst: s.has('P') ? getInt(s, 'P', !0) : 0, + }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Ascii85Stream = void 0; + var r = a(18), + i = a(3); + class Ascii85Stream extends r.DecodeStream { + constructor(e, t) { + t && (t *= 0.8); + super(t); + this.str = e; + this.dict = e.dict; + this.input = new Uint8Array(5); + } + readBlock() { + const e = this.str; + let t = e.getByte(); + for (; (0, i.isWhiteSpace)(t); ) t = e.getByte(); + if (-1 === t || 126 === t) { + this.eof = !0; + return; + } + const a = this.bufferLength; + let r, n; + if (122 === t) { + r = this.ensureBuffer(a + 4); + for (n = 0; n < 4; ++n) r[a + n] = 0; + this.bufferLength += 4; + } else { + const s = this.input; + s[0] = t; + for (n = 1; n < 5; ++n) { + t = e.getByte(); + for (; (0, i.isWhiteSpace)(t); ) t = e.getByte(); + s[n] = t; + if (-1 === t || 126 === t) break; + } + r = this.ensureBuffer(a + n - 1); + this.bufferLength += n - 1; + if (n < 5) { + for (; n < 5; ++n) s[n] = 117; + this.eof = !0; + } + let o = 0; + for (n = 0; n < 5; ++n) o = 85 * o + (s[n] - 33); + for (n = 3; n >= 0; --n) { + r[a + n] = 255 & o; + o >>= 8; + } + } + } + } + t.Ascii85Stream = Ascii85Stream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.StreamsSequenceStream = t.DecodeStream = void 0; + var r = a(5), + i = a(8); + const n = new Uint8Array(0); + class DecodeStream extends r.BaseStream { + constructor(e) { + super(); + this._rawMinBufferLength = e || 0; + this.pos = 0; + this.bufferLength = 0; + this.eof = !1; + this.buffer = n; + this.minBufferLength = 512; + if (e) for (; this.minBufferLength < e; ) this.minBufferLength *= 2; + } + get isEmpty() { + for (; !this.eof && 0 === this.bufferLength; ) this.readBlock(); + return 0 === this.bufferLength; + } + ensureBuffer(e) { + const t = this.buffer; + if (e <= t.byteLength) return t; + let a = this.minBufferLength; + for (; a < e; ) a *= 2; + const r = new Uint8Array(a); + r.set(t); + return (this.buffer = r); + } + getByte() { + const e = this.pos; + for (; this.bufferLength <= e; ) { + if (this.eof) return -1; + this.readBlock(); + } + return this.buffer[this.pos++]; + } + getBytes(e) { + const t = this.pos; + let a; + if (e) { + this.ensureBuffer(t + e); + a = t + e; + for (; !this.eof && this.bufferLength < a; ) this.readBlock(); + const r = this.bufferLength; + a > r && (a = r); + } else { + for (; !this.eof; ) this.readBlock(); + a = this.bufferLength; + } + this.pos = a; + return this.buffer.subarray(t, a); + } + reset() { + this.pos = 0; + } + makeSubStream(e, t, a = null) { + if (void 0 === t) for (; !this.eof; ) this.readBlock(); + else { + const a = e + t; + for (; this.bufferLength <= a && !this.eof; ) this.readBlock(); + } + return new i.Stream(this.buffer, e, t, a); + } + getBaseStreams() { + return this.str ? this.str.getBaseStreams() : null; + } + } + t.DecodeStream = DecodeStream; + t.StreamsSequenceStream = class StreamsSequenceStream extends DecodeStream { + constructor(e, t = null) { + let a = 0; + for (const t of e) a += t instanceof DecodeStream ? t._rawMinBufferLength : t.length; + super(a); + this.streams = e; + this._onError = t; + } + readBlock() { + const e = this.streams; + if (0 === e.length) { + this.eof = !0; + return; + } + const t = e.shift(); + let a; + try { + a = t.getBytes(); + } catch (e) { + if (this._onError) { + this._onError(e, t.dict && t.dict.objId); + return; + } + throw e; + } + const r = this.bufferLength, + i = r + a.length; + this.ensureBuffer(i).set(a, r); + this.bufferLength = i; + } + getBaseStreams() { + const e = []; + for (const t of this.streams) { + const a = t.getBaseStreams(); + a && e.push(...a); + } + return e.length > 0 ? e : null; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.AsciiHexStream = void 0; + var r = a(18); + class AsciiHexStream extends r.DecodeStream { + constructor(e, t) { + t && (t *= 0.5); + super(t); + this.str = e; + this.dict = e.dict; + this.firstDigit = -1; + } + readBlock() { + const e = this.str.getBytes(8e3); + if (!e.length) { + this.eof = !0; + return; + } + const t = (e.length + 1) >> 1, + a = this.ensureBuffer(this.bufferLength + t); + let r = this.bufferLength, + i = this.firstDigit; + for (const t of e) { + let e; + if (t >= 48 && t <= 57) e = 15 & t; + else { + if (!((t >= 65 && t <= 70) || (t >= 97 && t <= 102))) { + if (62 === t) { + this.eof = !0; + break; + } + continue; + } + e = 9 + (15 & t); + } + if (i < 0) i = e; + else { + a[r++] = (i << 4) | e; + i = -1; + } + } + if (i >= 0 && this.eof) { + a[r++] = i << 4; + i = -1; + } + this.firstDigit = i; + this.bufferLength = r; + } + } + t.AsciiHexStream = AsciiHexStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CCITTFaxStream = void 0; + var r = a(21), + i = a(18), + n = a(4); + class CCITTFaxStream extends i.DecodeStream { + constructor(e, t, a) { + super(t); + this.str = e; + this.dict = e.dict; + a instanceof n.Dict || (a = n.Dict.empty); + const i = { next: () => e.getByte() }; + this.ccittFaxDecoder = new r.CCITTFaxDecoder(i, { + K: a.get('K'), + EndOfLine: a.get('EndOfLine'), + EncodedByteAlign: a.get('EncodedByteAlign'), + Columns: a.get('Columns'), + Rows: a.get('Rows'), + EndOfBlock: a.get('EndOfBlock'), + BlackIs1: a.get('BlackIs1'), + }); + } + readBlock() { + for (; !this.eof; ) { + const e = this.ccittFaxDecoder.readNextChar(); + if (-1 === e) { + this.eof = !0; + return; + } + this.ensureBuffer(this.bufferLength + 1); + this.buffer[this.bufferLength++] = e; + } + } + } + t.CCITTFaxStream = CCITTFaxStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CCITTFaxDecoder = void 0; + var r = a(2); + const i = -1, + n = [ + [-1, -1], + [-1, -1], + [7, 8], + [7, 7], + [6, 6], + [6, 6], + [6, 5], + [6, 5], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [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], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + ], + s = [ + [-1, -1], + [12, -2], + [-1, -1], + [-1, -1], + [-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], + ], + o = [ + [-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], + ], + c = [ + [-1, -1], + [-1, -1], + [12, -2], + [12, -2], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-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], + ], + l = [ + [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], + ], + h = [ + [-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], + ]; + t.CCITTFaxDecoder = class CCITTFaxDecoder { + constructor(e, t = {}) { + if (!e || 'function' != typeof e.next) + throw new Error('CCITTFaxDecoder - invalid "source" parameter.'); + this.source = e; + this.eof = !1; + this.encoding = t.K || 0; + this.eoline = t.EndOfLine || !1; + this.byteAlign = t.EncodedByteAlign || !1; + this.columns = t.Columns || 1728; + this.rows = t.Rows || 0; + let a, + r = t.EndOfBlock; + null == r && (r = !0); + this.eoblock = r; + this.black = t.BlackIs1 || !1; + 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 = !1; + for (; 0 === (a = this._lookBits(12)); ) this._eatBits(1); + 1 === a && this._eatBits(12); + if (this.encoding > 0) { + this.nextLine2D = !this._lookBits(1); + this._eatBits(1); + } + } + readNextChar() { + if (this.eof) return -1; + const e = this.refLine, + t = this.codingLine, + a = this.columns; + let n, s, o, c, l; + if (0 === this.outputBits) { + this.rowsDone && (this.eof = !0); + if (this.eof) return -1; + this.err = !1; + let o, l, h; + if (this.nextLine2D) { + for (c = 0; t[c] < a; ++c) e[c] = t[c]; + e[c++] = a; + e[c] = a; + t[0] = 0; + this.codingPos = 0; + n = 0; + s = 0; + for (; t[this.codingPos] < a; ) { + o = this._getTwoDimCode(); + switch (o) { + case 0: + this._addPixels(e[n + 1], s); + e[n + 1] < a && (n += 2); + break; + case 1: + o = l = 0; + if (s) { + do { + o += h = this._getBlackCode(); + } while (h >= 64); + do { + l += h = this._getWhiteCode(); + } while (h >= 64); + } else { + do { + o += h = this._getWhiteCode(); + } while (h >= 64); + do { + l += h = this._getBlackCode(); + } while (h >= 64); + } + this._addPixels(t[this.codingPos] + o, s); + t[this.codingPos] < a && this._addPixels(t[this.codingPos] + l, 1 ^ s); + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + break; + case 7: + this._addPixels(e[n] + 3, s); + s ^= 1; + if (t[this.codingPos] < a) { + ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 5: + this._addPixels(e[n] + 2, s); + s ^= 1; + if (t[this.codingPos] < a) { + ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 3: + this._addPixels(e[n] + 1, s); + s ^= 1; + if (t[this.codingPos] < a) { + ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 2: + this._addPixels(e[n], s); + s ^= 1; + if (t[this.codingPos] < a) { + ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 8: + this._addPixelsNeg(e[n] - 3, s); + s ^= 1; + if (t[this.codingPos] < a) { + n > 0 ? --n : ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 6: + this._addPixelsNeg(e[n] - 2, s); + s ^= 1; + if (t[this.codingPos] < a) { + n > 0 ? --n : ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 4: + this._addPixelsNeg(e[n] - 1, s); + s ^= 1; + if (t[this.codingPos] < a) { + n > 0 ? --n : ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case i: + this._addPixels(a, 0); + this.eof = !0; + break; + default: + (0, r.info)('bad 2d code'); + this._addPixels(a, 0); + this.err = !0; + } + } + } else { + t[0] = 0; + this.codingPos = 0; + s = 0; + for (; t[this.codingPos] < a; ) { + o = 0; + if (s) + do { + o += h = this._getBlackCode(); + } while (h >= 64); + else + do { + o += h = this._getWhiteCode(); + } while (h >= 64); + this._addPixels(t[this.codingPos] + o, s); + s ^= 1; + } + } + let u = !1; + this.byteAlign && (this.inputBits &= -8); + if (this.eoblock || this.row !== this.rows - 1) { + o = this._lookBits(12); + if (this.eoline) + for (; o !== i && 1 !== o; ) { + this._eatBits(1); + o = this._lookBits(12); + } + else + for (; 0 === o; ) { + this._eatBits(1); + o = this._lookBits(12); + } + if (1 === o) { + this._eatBits(12); + u = !0; + } else o === i && (this.eof = !0); + } else this.rowsDone = !0; + if (!this.eof && this.encoding > 0 && !this.rowsDone) { + this.nextLine2D = !this._lookBits(1); + this._eatBits(1); + } + if (this.eoblock && u && this.byteAlign) { + o = this._lookBits(12); + if (1 === o) { + this._eatBits(12); + if (this.encoding > 0) { + this._lookBits(1); + this._eatBits(1); + } + if (this.encoding >= 0) + for (c = 0; c < 4; ++c) { + o = this._lookBits(12); + 1 !== o && (0, r.info)('bad rtc code: ' + o); + this._eatBits(12); + if (this.encoding > 0) { + this._lookBits(1); + this._eatBits(1); + } + } + this.eof = !0; + } + } else if (this.err && this.eoline) { + for (;;) { + o = this._lookBits(13); + if (o === i) { + this.eof = !0; + return -1; + } + if (o >> 1 == 1) break; + this._eatBits(1); + } + this._eatBits(12); + if (this.encoding > 0) { + this._eatBits(1); + this.nextLine2D = !(1 & o); + } + } + t[0] > 0 + ? (this.outputBits = t[(this.codingPos = 0)]) + : (this.outputBits = t[(this.codingPos = 1)]); + this.row++; + } + if (this.outputBits >= 8) { + l = 1 & this.codingPos ? 0 : 255; + this.outputBits -= 8; + if (0 === this.outputBits && t[this.codingPos] < a) { + this.codingPos++; + this.outputBits = t[this.codingPos] - t[this.codingPos - 1]; + } + } else { + o = 8; + l = 0; + do { + if ('number' != typeof this.outputBits) + throw new r.FormatError( + 'Invalid /CCITTFaxDecode data, "outputBits" must be a number.', + ); + if (this.outputBits > o) { + l <<= o; + 1 & this.codingPos || (l |= 255 >> (8 - o)); + this.outputBits -= o; + o = 0; + } else { + l <<= this.outputBits; + 1 & this.codingPos || (l |= 255 >> (8 - this.outputBits)); + o -= this.outputBits; + this.outputBits = 0; + if (t[this.codingPos] < a) { + this.codingPos++; + this.outputBits = t[this.codingPos] - t[this.codingPos - 1]; + } else if (o > 0) { + l <<= o; + o = 0; + } + } + } while (o); + } + this.black && (l ^= 255); + return l; + } + _addPixels(e, t) { + const a = this.codingLine; + let i = this.codingPos; + if (e > a[i]) { + if (e > this.columns) { + (0, r.info)('row is wrong length'); + this.err = !0; + e = this.columns; + } + (1 & i) ^ t && ++i; + a[i] = e; + } + this.codingPos = i; + } + _addPixelsNeg(e, t) { + const a = this.codingLine; + let i = this.codingPos; + if (e > a[i]) { + if (e > this.columns) { + (0, r.info)('row is wrong length'); + this.err = !0; + e = this.columns; + } + (1 & i) ^ t && ++i; + a[i] = e; + } else if (e < a[i]) { + if (e < 0) { + (0, r.info)('invalid code'); + this.err = !0; + e = 0; + } + for (; i > 0 && e < a[i - 1]; ) --i; + a[i] = e; + } + this.codingPos = i; + } + _findTableCode(e, t, a, r) { + const n = r || 0; + for (let r = e; r <= t; ++r) { + let e = this._lookBits(r); + if (e === i) return [!0, 1, !1]; + r < t && (e <<= t - r); + if (!n || e >= n) { + const t = a[e - n]; + if (t[0] === r) { + this._eatBits(r); + return [!0, t[1], !0]; + } + } + } + return [!1, 0, !1]; + } + _getTwoDimCode() { + let e, + t = 0; + if (this.eoblock) { + t = this._lookBits(7); + e = n[t]; + if (e && e[0] > 0) { + this._eatBits(e[0]); + return e[1]; + } + } else { + const e = this._findTableCode(1, 7, n); + if (e[0] && e[2]) return e[1]; + } + (0, r.info)('Bad two dim code'); + return i; + } + _getWhiteCode() { + let e, + t = 0; + if (this.eoblock) { + t = this._lookBits(12); + if (t === i) return 1; + e = t >> 5 == 0 ? s[t] : o[t >> 3]; + if (e[0] > 0) { + this._eatBits(e[0]); + return e[1]; + } + } else { + let e = this._findTableCode(1, 9, o); + if (e[0]) return e[1]; + e = this._findTableCode(11, 12, s); + if (e[0]) return e[1]; + } + (0, r.info)('bad white code'); + this._eatBits(1); + return 1; + } + _getBlackCode() { + let e, t; + if (this.eoblock) { + e = this._lookBits(13); + if (e === i) return 1; + t = e >> 7 == 0 ? c[e] : e >> 9 == 0 && e >> 7 != 0 ? l[(e >> 1) - 64] : h[e >> 7]; + if (t[0] > 0) { + this._eatBits(t[0]); + return t[1]; + } + } else { + let e = this._findTableCode(2, 6, h); + if (e[0]) return e[1]; + e = this._findTableCode(7, 12, l, 64); + if (e[0]) return e[1]; + e = this._findTableCode(10, 13, c); + if (e[0]) return e[1]; + } + (0, r.info)('bad black code'); + this._eatBits(1); + return 1; + } + _lookBits(e) { + let t; + for (; this.inputBits < e; ) { + if (-1 === (t = this.source.next())) + return 0 === this.inputBits + ? i + : (this.inputBuf << (e - this.inputBits)) & (65535 >> (16 - e)); + this.inputBuf = (this.inputBuf << 8) | t; + this.inputBits += 8; + } + return (this.inputBuf >> (this.inputBits - e)) & (65535 >> (16 - e)); + } + _eatBits(e) { + (this.inputBits -= e) < 0 && (this.inputBits = 0); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FlateStream = void 0; + var r = a(18), + i = a(2); + const n = new Int32Array([ + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15, + ]), + s = 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, + ]), + o = 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, + ]), + c = [ + 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, + ], + l = [ + 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, + ]; + class FlateStream extends r.DecodeStream { + constructor(e, t) { + super(t); + this.str = e; + this.dict = e.dict; + const a = e.getByte(), + r = e.getByte(); + if (-1 === a || -1 === r) + throw new i.FormatError(`Invalid header in flate stream: ${a}, ${r}`); + if (8 != (15 & a)) + throw new i.FormatError(`Unknown compression method in flate stream: ${a}, ${r}`); + if (((a << 8) + r) % 31 != 0) + throw new i.FormatError(`Bad FCHECK in flate stream: ${a}, ${r}`); + if (32 & r) throw new i.FormatError(`FDICT bit set in flate stream: ${a}, ${r}`); + this.codeSize = 0; + this.codeBuf = 0; + } + getBits(e) { + const t = this.str; + let a, + r = this.codeSize, + n = this.codeBuf; + for (; r < e; ) { + if (-1 === (a = t.getByte())) + throw new i.FormatError('Bad encoding in flate stream'); + n |= a << r; + r += 8; + } + a = n & ((1 << e) - 1); + this.codeBuf = n >> e; + this.codeSize = r -= e; + return a; + } + getCode(e) { + const t = this.str, + a = e[0], + r = e[1]; + let n, + s = this.codeSize, + o = this.codeBuf; + for (; s < r && -1 !== (n = t.getByte()); ) { + o |= n << s; + s += 8; + } + const c = a[o & ((1 << r) - 1)], + l = c >> 16, + h = 65535 & c; + if (l < 1 || s < l) throw new i.FormatError('Bad encoding in flate stream'); + this.codeBuf = o >> l; + this.codeSize = s - l; + return h; + } + generateHuffmanTable(e) { + const t = e.length; + let a, + r = 0; + for (a = 0; a < t; ++a) e[a] > r && (r = e[a]); + const i = 1 << r, + n = new Int32Array(i); + for (let s = 1, o = 0, c = 2; s <= r; ++s, o <<= 1, c <<= 1) + for (let r = 0; r < t; ++r) + if (e[r] === s) { + let e = 0, + t = o; + for (a = 0; a < s; ++a) { + e = (e << 1) | (1 & t); + t >>= 1; + } + for (a = e; a < i; a += c) n[a] = (s << 16) | r; + ++o; + } + return [n, r]; + } + readBlock() { + let e, t; + const a = this.str; + let r, + h, + u = this.getBits(3); + 1 & u && (this.eof = !0); + u >>= 1; + if (0 === u) { + let t; + if (-1 === (t = a.getByte())) + throw new i.FormatError('Bad block header in flate stream'); + let r = t; + if (-1 === (t = a.getByte())) + throw new i.FormatError('Bad block header in flate stream'); + r |= t << 8; + if (-1 === (t = a.getByte())) + throw new i.FormatError('Bad block header in flate stream'); + let n = t; + if (-1 === (t = a.getByte())) + throw new i.FormatError('Bad block header in flate stream'); + n |= t << 8; + if (n !== (65535 & ~r) && (0 !== r || 0 !== n)) + throw new i.FormatError('Bad uncompressed block length in flate stream'); + this.codeBuf = 0; + this.codeSize = 0; + const s = this.bufferLength, + o = s + r; + e = this.ensureBuffer(o); + this.bufferLength = o; + if (0 === r) -1 === a.peekByte() && (this.eof = !0); + else { + const t = a.getBytes(r); + e.set(t, s); + t.length < r && (this.eof = !0); + } + return; + } + if (1 === u) { + r = c; + h = l; + } else { + if (2 !== u) throw new i.FormatError('Unknown block type in flate stream'); + { + const e = this.getBits(5) + 257, + a = this.getBits(5) + 1, + i = this.getBits(4) + 4, + s = new Uint8Array(n.length); + let o; + for (o = 0; o < i; ++o) s[n[o]] = this.getBits(3); + const c = this.generateHuffmanTable(s); + t = 0; + o = 0; + const l = e + a, + u = new Uint8Array(l); + let d, f, g; + for (; o < l; ) { + const e = this.getCode(c); + if (16 === e) { + d = 2; + f = 3; + g = t; + } else if (17 === e) { + d = 3; + f = 3; + g = t = 0; + } else { + if (18 !== e) { + u[o++] = t = e; + continue; + } + d = 7; + f = 11; + g = t = 0; + } + let a = this.getBits(d) + f; + for (; a-- > 0; ) u[o++] = g; + } + r = this.generateHuffmanTable(u.subarray(0, e)); + h = this.generateHuffmanTable(u.subarray(e, l)); + } + } + e = this.buffer; + let d = e ? e.length : 0, + f = this.bufferLength; + for (;;) { + let a = this.getCode(r); + if (a < 256) { + if (f + 1 >= d) { + e = this.ensureBuffer(f + 1); + d = e.length; + } + e[f++] = a; + continue; + } + if (256 === a) { + this.bufferLength = f; + return; + } + a -= 257; + a = s[a]; + let i = a >> 16; + i > 0 && (i = this.getBits(i)); + t = (65535 & a) + i; + a = this.getCode(h); + a = o[a]; + i = a >> 16; + i > 0 && (i = this.getBits(i)); + const n = (65535 & a) + i; + if (f + t >= d) { + e = this.ensureBuffer(f + t); + d = e.length; + } + for (let a = 0; a < t; ++a, ++f) e[f] = e[f - n]; + } + } + } + t.FlateStream = FlateStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Jbig2Stream = void 0; + var r = a(5), + i = a(18), + n = a(4), + s = a(24), + o = a(2); + class Jbig2Stream extends i.DecodeStream { + constructor(e, t, a) { + super(t); + this.stream = e; + this.dict = e.dict; + this.maybeLength = t; + this.params = a; + } + get bytes() { + return (0, o.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(e) {} + readBlock() { + if (this.eof) return; + const e = new s.Jbig2Image(), + t = []; + if (this.params instanceof n.Dict) { + const e = this.params.get('JBIG2Globals'); + if (e instanceof r.BaseStream) { + const a = e.getBytes(); + t.push({ data: a, start: 0, end: a.length }); + } + } + t.push({ data: this.bytes, start: 0, end: this.bytes.length }); + const a = e.parseChunks(t), + i = a.length; + for (let e = 0; e < i; e++) a[e] ^= 255; + this.buffer = a; + this.bufferLength = i; + this.eof = !0; + } + } + t.Jbig2Stream = Jbig2Stream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Jbig2Image = void 0; + var r = a(2), + i = a(3), + n = a(25), + s = a(21); + class Jbig2Error extends r.BaseException { + constructor(e) { + super(`JBIG2 error: ${e}`, 'Jbig2Error'); + } + } + class ContextCache { + getContexts(e) { + return e in this ? this[e] : (this[e] = new Int8Array(65536)); + } + } + class DecodingContext { + constructor(e, t, a) { + this.data = e; + this.start = t; + this.end = a; + } + get decoder() { + const e = new n.ArithmeticDecoder(this.data, this.start, this.end); + return (0, r.shadow)(this, 'decoder', e); + } + get contextCache() { + const e = new ContextCache(); + return (0, r.shadow)(this, 'contextCache', e); + } + } + const o = 2 ** 31 - 1, + c = -(2 ** 31); + function decodeInteger(e, t, a) { + const r = e.getContexts(t); + let i = 1; + function readBits(e) { + let t = 0; + for (let n = 0; n < e; n++) { + const e = a.readBit(r, i); + i = i < 256 ? (i << 1) | e : (511 & ((i << 1) | e)) | 256; + t = (t << 1) | e; + } + return t >>> 0; + } + const n = readBits(1), + s = readBits(1) + ? readBits(1) + ? readBits(1) + ? readBits(1) + ? readBits(1) + ? readBits(32) + 4436 + : readBits(12) + 340 + : readBits(8) + 84 + : readBits(6) + 20 + : readBits(4) + 4 + : readBits(2); + let l; + 0 === n ? (l = s) : s > 0 && (l = -s); + return l >= c && l <= o ? l : null; + } + function decodeIAID(e, t, a) { + const r = e.getContexts('IAID'); + let i = 1; + for (let e = 0; e < a; e++) { + i = (i << 1) | t.readBit(r, i); + } + return a < 31 ? i & ((1 << a) - 1) : 2147483647 & i; + } + const l = [ + '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', + ], + h = [ + [ + { 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 }, + ], + ], + u = [ + { + 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 }, + ], + }, + ], + d = [39717, 1941, 229, 405], + f = [32, 8]; + function decodeBitmap(e, t, a, r, i, n, s, o) { + if (e) { + return decodeMMRBitmap(new Reader(o.data, o.start, o.end), t, a, !1); + } + if ( + 0 === r && + !n && + !i && + 4 === s.length && + 3 === s[0].x && + -1 === s[0].y && + -3 === s[1].x && + -1 === s[1].y && + 2 === s[2].x && + -2 === s[2].y && + -2 === s[3].x && + -2 === s[3].y + ) + return (function decodeBitmapTemplate0(e, t, a) { + const r = a.decoder, + i = a.contextCache.getContexts('GB'), + n = []; + let s, o, c, l, h, u, d; + for (o = 0; o < t; o++) { + h = n[o] = new Uint8Array(e); + u = o < 1 ? h : n[o - 1]; + d = o < 2 ? h : n[o - 2]; + s = + (d[0] << 13) | + (d[1] << 12) | + (d[2] << 11) | + (u[0] << 7) | + (u[1] << 6) | + (u[2] << 5) | + (u[3] << 4); + for (c = 0; c < e; c++) { + h[c] = l = r.readBit(i, s); + s = + ((31735 & s) << 1) | + (c + 3 < e ? d[c + 3] << 11 : 0) | + (c + 4 < e ? u[c + 4] << 4 : 0) | + l; + } + } + return n; + })(t, a, o); + const c = !!n, + l = h[r].concat(s); + l.sort(function (e, t) { + return e.y - t.y || e.x - t.x; + }); + const u = l.length, + f = new Int8Array(u), + g = new Int8Array(u), + p = []; + let m, + b, + y = 0, + w = 0, + S = 0, + x = 0; + for (b = 0; b < u; b++) { + f[b] = l[b].x; + g[b] = l[b].y; + w = Math.min(w, l[b].x); + S = Math.max(S, l[b].x); + x = Math.min(x, l[b].y); + b < u - 1 && l[b].y === l[b + 1].y && l[b].x === l[b + 1].x - 1 + ? (y |= 1 << (u - 1 - b)) + : p.push(b); + } + const C = p.length, + k = new Int8Array(C), + v = new Int8Array(C), + F = new Uint16Array(C); + for (m = 0; m < C; m++) { + b = p[m]; + k[m] = l[b].x; + v[m] = l[b].y; + F[m] = 1 << (u - 1 - b); + } + const O = -w, + T = -x, + M = t - S, + E = d[r]; + let D = new Uint8Array(t); + const N = [], + R = o.decoder, + L = o.contextCache.getContexts('GB'); + let _, + $, + j, + U, + X, + H = 0, + q = 0; + for (let e = 0; e < a; e++) { + if (i) { + H ^= R.readBit(L, E); + if (H) { + N.push(D); + continue; + } + } + D = new Uint8Array(D); + N.push(D); + for (_ = 0; _ < t; _++) { + if (c && n[e][_]) { + D[_] = 0; + continue; + } + if (_ >= O && _ < M && e >= T) { + q = (q << 1) & y; + for (b = 0; b < C; b++) { + $ = e + v[b]; + j = _ + k[b]; + U = N[$][j]; + if (U) { + U = F[b]; + q |= U; + } + } + } else { + q = 0; + X = u - 1; + for (b = 0; b < u; b++, X--) { + j = _ + f[b]; + if (j >= 0 && j < t) { + $ = e + g[b]; + if ($ >= 0) { + U = N[$][j]; + U && (q |= U << X); + } + } + } + } + const a = R.readBit(L, q); + D[_] = a; + } + } + return N; + } + function decodeRefinement(e, t, a, r, i, n, s, o, c) { + let l = u[a].coding; + 0 === a && (l = l.concat([o[0]])); + const h = l.length, + d = new Int32Array(h), + g = new Int32Array(h); + let p; + for (p = 0; p < h; p++) { + d[p] = l[p].x; + g[p] = l[p].y; + } + let m = u[a].reference; + 0 === a && (m = m.concat([o[1]])); + const b = m.length, + y = new Int32Array(b), + w = new Int32Array(b); + for (p = 0; p < b; p++) { + y[p] = m[p].x; + w[p] = m[p].y; + } + const S = r[0].length, + x = r.length, + C = f[a], + k = [], + v = c.decoder, + F = c.contextCache.getContexts('GR'); + let O = 0; + for (let a = 0; a < t; a++) { + if (s) { + O ^= v.readBit(F, C); + if (O) throw new Jbig2Error('prediction is not supported'); + } + const t = new Uint8Array(e); + k.push(t); + for (let s = 0; s < e; s++) { + let o, + c, + l = 0; + for (p = 0; p < h; p++) { + o = a + g[p]; + c = s + d[p]; + o < 0 || c < 0 || c >= e ? (l <<= 1) : (l = (l << 1) | k[o][c]); + } + for (p = 0; p < b; p++) { + o = a + w[p] - n; + c = s + y[p] - i; + o < 0 || o >= x || c < 0 || c >= S ? (l <<= 1) : (l = (l << 1) | r[o][c]); + } + const u = v.readBit(F, l); + t[s] = u; + } + } + return k; + } + function decodeTextRegion(e, t, a, r, i, n, s, o, c, l, h, u, d, f, g, p, m, b, y) { + if (e && t) throw new Jbig2Error('refinement with Huffman is not supported'); + const w = []; + let S, x; + for (S = 0; S < r; S++) { + x = new Uint8Array(a); + if (i) for (let e = 0; e < a; e++) x[e] = i; + w.push(x); + } + const C = m.decoder, + k = m.contextCache; + let v = e ? -f.tableDeltaT.decode(y) : -decodeInteger(k, 'IADT', C), + F = 0; + S = 0; + for (; S < n; ) { + v += e ? f.tableDeltaT.decode(y) : decodeInteger(k, 'IADT', C); + F += e ? f.tableFirstS.decode(y) : decodeInteger(k, 'IAFS', C); + let r = F; + for (;;) { + let i = 0; + s > 1 && (i = e ? y.readBits(b) : decodeInteger(k, 'IAIT', C)); + const n = s * v + i, + F = e ? f.symbolIDTable.decode(y) : decodeIAID(k, C, c), + O = t && (e ? y.readBit() : decodeInteger(k, 'IARI', C)); + let T = o[F], + M = T[0].length, + E = T.length; + if (O) { + const e = decodeInteger(k, 'IARDW', C), + t = decodeInteger(k, 'IARDH', C); + M += e; + E += t; + T = decodeRefinement( + M, + E, + g, + T, + (e >> 1) + decodeInteger(k, 'IARDX', C), + (t >> 1) + decodeInteger(k, 'IARDY', C), + !1, + p, + m, + ); + } + const D = n - (1 & u ? 0 : E - 1), + N = r - (2 & u ? M - 1 : 0); + let R, L, _; + if (l) { + for (R = 0; R < E; R++) { + x = w[N + R]; + if (!x) continue; + _ = T[R]; + const e = Math.min(a - D, M); + switch (d) { + case 0: + for (L = 0; L < e; L++) x[D + L] |= _[L]; + break; + case 2: + for (L = 0; L < e; L++) x[D + L] ^= _[L]; + break; + default: + throw new Jbig2Error(`operator ${d} is not supported`); + } + } + r += E - 1; + } else { + for (L = 0; L < E; L++) { + x = w[D + L]; + if (x) { + _ = T[L]; + switch (d) { + case 0: + for (R = 0; R < M; R++) x[N + R] |= _[R]; + break; + case 2: + for (R = 0; R < M; R++) x[N + R] ^= _[R]; + break; + default: + throw new Jbig2Error(`operator ${d} is not supported`); + } + } + } + r += M - 1; + } + S++; + const $ = e ? f.tableDeltaS.decode(y) : decodeInteger(k, 'IADS', C); + if (null === $) break; + r += $ + h; + } + } + return w; + } + function readSegmentHeader(e, t) { + const a = {}; + a.number = (0, i.readUint32)(e, t); + const r = e[t + 4], + n = 63 & r; + if (!l[n]) throw new Jbig2Error('invalid segment type: ' + n); + a.type = n; + a.typeName = l[n]; + a.deferredNonRetain = !!(128 & r); + const s = !!(64 & r), + o = e[t + 5]; + let c = (o >> 5) & 7; + const h = [31 & o]; + let u = t + 6; + if (7 === o) { + c = 536870911 & (0, i.readUint32)(e, u - 1); + u += 3; + let t = (c + 7) >> 3; + h[0] = e[u++]; + for (; --t > 0; ) h.push(e[u++]); + } else if (5 === o || 6 === o) throw new Jbig2Error('invalid referred-to flags'); + a.retainBits = h; + let d = 4; + a.number <= 256 ? (d = 1) : a.number <= 65536 && (d = 2); + const f = []; + let p, m; + for (p = 0; p < c; p++) { + let t; + t = 1 === d ? e[u] : 2 === d ? (0, i.readUint16)(e, u) : (0, i.readUint32)(e, u); + f.push(t); + u += d; + } + a.referredTo = f; + if (s) { + a.pageAssociation = (0, i.readUint32)(e, u); + u += 4; + } else a.pageAssociation = e[u++]; + a.length = (0, i.readUint32)(e, u); + u += 4; + if (4294967295 === a.length) { + if (38 !== n) throw new Jbig2Error('invalid unknown segment length'); + { + const t = readRegionSegmentInformation(e, u), + r = !!(1 & e[u + g]), + i = 6, + n = new Uint8Array(i); + if (!r) { + n[0] = 255; + n[1] = 172; + } + n[2] = (t.height >>> 24) & 255; + n[3] = (t.height >> 16) & 255; + n[4] = (t.height >> 8) & 255; + n[5] = 255 & t.height; + for (p = u, m = e.length; p < m; p++) { + let t = 0; + for (; t < i && n[t] === e[p + t]; ) t++; + if (t === i) { + a.length = p + i; + break; + } + } + if (4294967295 === a.length) throw new Jbig2Error('segment end was not found'); + } + } + a.headerEnd = u; + return a; + } + function readSegments(e, t, a, r) { + const i = []; + let n = a; + for (; n < r; ) { + const a = readSegmentHeader(t, n); + n = a.headerEnd; + const r = { header: a, data: t }; + if (!e.randomAccess) { + r.start = n; + n += a.length; + r.end = n; + } + i.push(r); + if (51 === a.type) break; + } + if (e.randomAccess) + for (let e = 0, t = i.length; e < t; e++) { + i[e].start = n; + n += i[e].header.length; + i[e].end = n; + } + return i; + } + function readRegionSegmentInformation(e, t) { + return { + width: (0, i.readUint32)(e, t), + height: (0, i.readUint32)(e, t + 4), + x: (0, i.readUint32)(e, t + 8), + y: (0, i.readUint32)(e, t + 12), + combinationOperator: 7 & e[t + 16], + }; + } + const g = 17; + function processSegment(e, t) { + const a = e.header, + r = e.data, + n = e.end; + let s, + o, + c, + l, + h = e.start; + switch (a.type) { + case 0: + const e = {}, + t = (0, i.readUint16)(r, h); + e.huffman = !!(1 & t); + e.refinement = !!(2 & t); + e.huffmanDHSelector = (t >> 2) & 3; + e.huffmanDWSelector = (t >> 4) & 3; + e.bitmapSizeSelector = (t >> 6) & 1; + e.aggregationInstancesSelector = (t >> 7) & 1; + e.bitmapCodingContextUsed = !!(256 & t); + e.bitmapCodingContextRetained = !!(512 & t); + e.template = (t >> 10) & 3; + e.refinementTemplate = (t >> 12) & 1; + h += 2; + if (!e.huffman) { + l = 0 === e.template ? 4 : 1; + o = []; + for (c = 0; c < l; c++) { + o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) }); + h += 2; + } + e.at = o; + } + if (e.refinement && !e.refinementTemplate) { + o = []; + for (c = 0; c < 2; c++) { + o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) }); + h += 2; + } + e.refinementAt = o; + } + e.numberOfExportedSymbols = (0, i.readUint32)(r, h); + h += 4; + e.numberOfNewSymbols = (0, i.readUint32)(r, h); + h += 4; + s = [e, a.number, a.referredTo, r, h, n]; + break; + case 6: + case 7: + const u = {}; + u.info = readRegionSegmentInformation(r, h); + h += g; + const d = (0, i.readUint16)(r, h); + h += 2; + u.huffman = !!(1 & d); + u.refinement = !!(2 & d); + u.logStripSize = (d >> 2) & 3; + u.stripSize = 1 << u.logStripSize; + u.referenceCorner = (d >> 4) & 3; + u.transposed = !!(64 & d); + u.combinationOperator = (d >> 7) & 3; + u.defaultPixelValue = (d >> 9) & 1; + u.dsOffset = (d << 17) >> 27; + u.refinementTemplate = (d >> 15) & 1; + if (u.huffman) { + const e = (0, i.readUint16)(r, h); + h += 2; + u.huffmanFS = 3 & e; + u.huffmanDS = (e >> 2) & 3; + u.huffmanDT = (e >> 4) & 3; + u.huffmanRefinementDW = (e >> 6) & 3; + u.huffmanRefinementDH = (e >> 8) & 3; + u.huffmanRefinementDX = (e >> 10) & 3; + u.huffmanRefinementDY = (e >> 12) & 3; + u.huffmanRefinementSizeSelector = !!(16384 & e); + } + if (u.refinement && !u.refinementTemplate) { + o = []; + for (c = 0; c < 2; c++) { + o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) }); + h += 2; + } + u.refinementAt = o; + } + u.numberOfSymbolInstances = (0, i.readUint32)(r, h); + h += 4; + s = [u, a.referredTo, r, h, n]; + break; + case 16: + const f = {}, + p = r[h++]; + f.mmr = !!(1 & p); + f.template = (p >> 1) & 3; + f.patternWidth = r[h++]; + f.patternHeight = r[h++]; + f.maxPatternIndex = (0, i.readUint32)(r, h); + h += 4; + s = [f, a.number, r, h, n]; + break; + case 22: + case 23: + const m = {}; + m.info = readRegionSegmentInformation(r, h); + h += g; + const b = r[h++]; + m.mmr = !!(1 & b); + m.template = (b >> 1) & 3; + m.enableSkip = !!(8 & b); + m.combinationOperator = (b >> 4) & 7; + m.defaultPixelValue = (b >> 7) & 1; + m.gridWidth = (0, i.readUint32)(r, h); + h += 4; + m.gridHeight = (0, i.readUint32)(r, h); + h += 4; + m.gridOffsetX = 4294967295 & (0, i.readUint32)(r, h); + h += 4; + m.gridOffsetY = 4294967295 & (0, i.readUint32)(r, h); + h += 4; + m.gridVectorX = (0, i.readUint16)(r, h); + h += 2; + m.gridVectorY = (0, i.readUint16)(r, h); + h += 2; + s = [m, a.referredTo, r, h, n]; + break; + case 38: + case 39: + const y = {}; + y.info = readRegionSegmentInformation(r, h); + h += g; + const w = r[h++]; + y.mmr = !!(1 & w); + y.template = (w >> 1) & 3; + y.prediction = !!(8 & w); + if (!y.mmr) { + l = 0 === y.template ? 4 : 1; + o = []; + for (c = 0; c < l; c++) { + o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) }); + h += 2; + } + y.at = o; + } + s = [y, r, h, n]; + break; + case 48: + const S = { + width: (0, i.readUint32)(r, h), + height: (0, i.readUint32)(r, h + 4), + resolutionX: (0, i.readUint32)(r, h + 8), + resolutionY: (0, i.readUint32)(r, h + 12), + }; + 4294967295 === S.height && delete S.height; + const x = r[h + 16]; + (0, i.readUint16)(r, h + 17); + S.lossless = !!(1 & x); + S.refinement = !!(2 & x); + S.defaultPixelValue = (x >> 2) & 1; + S.combinationOperator = (x >> 3) & 3; + S.requiresBuffer = !!(32 & x); + S.combinationOperatorOverride = !!(64 & x); + s = [S]; + break; + case 49: + case 50: + case 51: + case 62: + break; + case 53: + s = [a.number, r, h, n]; + break; + default: + throw new Jbig2Error(`segment type ${a.typeName}(${a.type}) is not implemented`); + } + const u = 'on' + a.typeName; + u in t && t[u].apply(t, s); + } + function processSegments(e, t) { + for (let a = 0, r = e.length; a < r; a++) processSegment(e[a], t); + } + class SimpleSegmentVisitor { + onPageInformation(e) { + this.currentPageInfo = e; + const t = (e.width + 7) >> 3, + a = new Uint8ClampedArray(t * e.height); + e.defaultPixelValue && a.fill(255); + this.buffer = a; + } + drawBitmap(e, t) { + const a = this.currentPageInfo, + r = e.width, + i = e.height, + n = (a.width + 7) >> 3, + s = a.combinationOperatorOverride ? e.combinationOperator : a.combinationOperator, + o = this.buffer, + c = 128 >> (7 & e.x); + let l, + h, + u, + d, + f = e.y * n + (e.x >> 3); + switch (s) { + case 0: + for (l = 0; l < i; l++) { + u = c; + d = f; + for (h = 0; h < r; h++) { + t[l][h] && (o[d] |= u); + u >>= 1; + if (!u) { + u = 128; + d++; + } + } + f += n; + } + break; + case 2: + for (l = 0; l < i; l++) { + u = c; + d = f; + for (h = 0; h < r; h++) { + t[l][h] && (o[d] ^= u); + u >>= 1; + if (!u) { + u = 128; + d++; + } + } + f += n; + } + break; + default: + throw new Jbig2Error(`operator ${s} is not supported`); + } + } + onImmediateGenericRegion(e, t, a, r) { + const i = e.info, + n = new DecodingContext(t, a, r), + s = decodeBitmap(e.mmr, i.width, i.height, e.template, e.prediction, null, e.at, n); + this.drawBitmap(i, s); + } + onImmediateLosslessGenericRegion() { + this.onImmediateGenericRegion(...arguments); + } + onSymbolDictionary(e, t, a, r, n, s) { + let o, c; + if (e.huffman) { + o = (function getSymbolDictionaryHuffmanTables(e, t, a) { + let r, + i, + n, + s, + o = 0; + switch (e.huffmanDHSelector) { + case 0: + case 1: + r = getStandardTable(e.huffmanDHSelector + 4); + break; + case 3: + r = getCustomHuffmanTable(o, t, a); + o++; + break; + default: + throw new Jbig2Error('invalid Huffman DH selector'); + } + switch (e.huffmanDWSelector) { + case 0: + case 1: + i = getStandardTable(e.huffmanDWSelector + 2); + break; + case 3: + i = getCustomHuffmanTable(o, t, a); + o++; + break; + default: + throw new Jbig2Error('invalid Huffman DW selector'); + } + if (e.bitmapSizeSelector) { + n = getCustomHuffmanTable(o, t, a); + o++; + } else n = getStandardTable(1); + s = e.aggregationInstancesSelector + ? getCustomHuffmanTable(o, t, a) + : getStandardTable(1); + return { + tableDeltaHeight: r, + tableDeltaWidth: i, + tableBitmapSize: n, + tableAggregateInstances: s, + }; + })(e, a, this.customTables); + c = new Reader(r, n, s); + } + let l = this.symbols; + l || (this.symbols = l = {}); + const h = []; + for (const e of a) { + const t = l[e]; + t && h.push(...t); + } + const u = new DecodingContext(r, n, s); + l[t] = (function decodeSymbolDictionary(e, t, a, r, n, s, o, c, l, h, u, d) { + if (e && t) throw new Jbig2Error('symbol refinement with Huffman is not supported'); + const f = []; + let g = 0, + p = (0, i.log2)(a.length + r); + const m = u.decoder, + b = u.contextCache; + let y, w; + if (e) { + y = getStandardTable(1); + w = []; + p = Math.max(p, 1); + } + for (; f.length < r; ) { + g += e ? s.tableDeltaHeight.decode(d) : decodeInteger(b, 'IADH', m); + let r = 0, + i = 0; + const n = e ? w.length : 0; + for (;;) { + const n = e ? s.tableDeltaWidth.decode(d) : decodeInteger(b, 'IADW', m); + if (null === n) break; + r += n; + i += r; + let y; + if (t) { + const i = decodeInteger(b, 'IAAI', m); + if (i > 1) + y = decodeTextRegion( + e, + t, + r, + g, + 0, + i, + 1, + a.concat(f), + p, + 0, + 0, + 1, + 0, + s, + l, + h, + u, + 0, + d, + ); + else { + const e = decodeIAID(b, m, p), + t = decodeInteger(b, 'IARDX', m), + i = decodeInteger(b, 'IARDY', m); + y = decodeRefinement( + r, + g, + l, + e < a.length ? a[e] : f[e - a.length], + t, + i, + !1, + h, + u, + ); + } + f.push(y); + } else if (e) w.push(r); + else { + y = decodeBitmap(!1, r, g, o, !1, null, c, u); + f.push(y); + } + } + if (e && !t) { + const e = s.tableBitmapSize.decode(d); + d.byteAlign(); + let t; + if (0 === e) t = readUncompressedBitmap(d, i, g); + else { + const a = d.end, + r = d.position + e; + d.end = r; + t = decodeMMRBitmap(d, i, g, !1); + d.end = a; + d.position = r; + } + const a = w.length; + if (n === a - 1) f.push(t); + else { + let e, + r, + i, + s, + o, + c = 0; + for (e = n; e < a; e++) { + s = w[e]; + i = c + s; + o = []; + for (r = 0; r < g; r++) o.push(t[r].subarray(c, i)); + f.push(o); + c = i; + } + } + } + } + const S = [], + x = []; + let C, + k, + v = !1; + const F = a.length + r; + for (; x.length < F; ) { + let t = e ? y.decode(d) : decodeInteger(b, 'IAEX', m); + for (; t--; ) x.push(v); + v = !v; + } + for (C = 0, k = a.length; C < k; C++) x[C] && S.push(a[C]); + for (let e = 0; e < r; C++, e++) x[C] && S.push(f[e]); + return S; + })( + e.huffman, + e.refinement, + h, + e.numberOfNewSymbols, + e.numberOfExportedSymbols, + o, + e.template, + e.at, + e.refinementTemplate, + e.refinementAt, + u, + c, + ); + } + onImmediateTextRegion(e, t, a, r, n) { + const s = e.info; + let o, c; + const l = this.symbols, + h = []; + for (const e of t) { + const t = l[e]; + t && h.push(...t); + } + const u = (0, i.log2)(h.length); + if (e.huffman) { + c = new Reader(a, r, n); + o = (function getTextRegionHuffmanTables(e, t, a, r, i) { + const n = []; + for (let e = 0; e <= 34; e++) { + const t = i.readBits(4); + n.push(new HuffmanLine([e, t, 0, 0])); + } + const s = new HuffmanTable(n, !1); + n.length = 0; + for (let e = 0; e < r; ) { + const t = s.decode(i); + if (t >= 32) { + let a, r, s; + switch (t) { + case 32: + if (0 === e) throw new Jbig2Error('no previous value in symbol ID table'); + r = i.readBits(2) + 3; + a = n[e - 1].prefixLength; + break; + case 33: + r = i.readBits(3) + 3; + a = 0; + break; + case 34: + r = i.readBits(7) + 11; + a = 0; + break; + default: + throw new Jbig2Error('invalid code length in symbol ID table'); + } + for (s = 0; s < r; s++) { + n.push(new HuffmanLine([e, a, 0, 0])); + e++; + } + } else { + n.push(new HuffmanLine([e, t, 0, 0])); + e++; + } + } + i.byteAlign(); + const o = new HuffmanTable(n, !1); + let c, + l, + h, + u = 0; + switch (e.huffmanFS) { + case 0: + case 1: + c = getStandardTable(e.huffmanFS + 6); + break; + case 3: + c = getCustomHuffmanTable(u, t, a); + u++; + break; + default: + throw new Jbig2Error('invalid Huffman FS selector'); + } + switch (e.huffmanDS) { + case 0: + case 1: + case 2: + l = getStandardTable(e.huffmanDS + 8); + break; + case 3: + l = getCustomHuffmanTable(u, t, a); + u++; + break; + default: + throw new Jbig2Error('invalid Huffman DS selector'); + } + switch (e.huffmanDT) { + case 0: + case 1: + case 2: + h = getStandardTable(e.huffmanDT + 11); + break; + case 3: + h = getCustomHuffmanTable(u, t, a); + u++; + break; + default: + throw new Jbig2Error('invalid Huffman DT selector'); + } + if (e.refinement) + throw new Jbig2Error('refinement with Huffman is not supported'); + return { symbolIDTable: o, tableFirstS: c, tableDeltaS: l, tableDeltaT: h }; + })(e, t, this.customTables, h.length, c); + } + const d = new DecodingContext(a, r, n), + f = decodeTextRegion( + e.huffman, + e.refinement, + s.width, + s.height, + e.defaultPixelValue, + e.numberOfSymbolInstances, + e.stripSize, + h, + u, + e.transposed, + e.dsOffset, + e.referenceCorner, + e.combinationOperator, + o, + e.refinementTemplate, + e.refinementAt, + d, + e.logStripSize, + c, + ); + this.drawBitmap(s, f); + } + onImmediateLosslessTextRegion() { + this.onImmediateTextRegion(...arguments); + } + onPatternDictionary(e, t, a, r, i) { + let n = this.patterns; + n || (this.patterns = n = {}); + const s = new DecodingContext(a, r, i); + n[t] = (function decodePatternDictionary(e, t, a, r, i, n) { + const s = []; + if (!e) { + s.push({ x: -t, y: 0 }); + 0 === i && s.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 }); + } + const o = decodeBitmap(e, (r + 1) * t, a, i, !1, null, s, n), + c = []; + for (let e = 0; e <= r; e++) { + const r = [], + i = t * e, + n = i + t; + for (let e = 0; e < a; e++) r.push(o[e].subarray(i, n)); + c.push(r); + } + return c; + })(e.mmr, e.patternWidth, e.patternHeight, e.maxPatternIndex, e.template, s); + } + onImmediateHalftoneRegion(e, t, a, r, n) { + const s = this.patterns[t[0]], + o = e.info, + c = new DecodingContext(a, r, n), + l = (function decodeHalftoneRegion(e, t, a, r, n, s, o, c, l, h, u, d, f, g, p) { + if (o) throw new Jbig2Error('skip is not supported'); + if (0 !== c) + throw new Jbig2Error(`operator "${c}" is not supported in halftone region`); + const m = []; + let b, y, w; + for (b = 0; b < n; b++) { + w = new Uint8Array(r); + if (s) for (y = 0; y < r; y++) w[y] = s; + m.push(w); + } + const S = t.length, + x = t[0], + C = x[0].length, + k = x.length, + v = (0, i.log2)(S), + F = []; + if (!e) { + F.push({ x: a <= 1 ? 3 : 2, y: -1 }); + 0 === a && F.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 }); + } + const O = []; + let T, M, E, D, N, R, L, _, $, j, U; + e && (T = new Reader(p.data, p.start, p.end)); + for (b = v - 1; b >= 0; b--) { + M = e + ? decodeMMRBitmap(T, l, h, !0) + : decodeBitmap(!1, l, h, a, !1, null, F, p); + O[b] = M; + } + for (E = 0; E < h; E++) + for (D = 0; D < l; D++) { + N = 0; + R = 0; + for (y = v - 1; y >= 0; y--) { + N ^= O[y][E][D]; + R |= N << y; + } + L = t[R]; + _ = (u + E * g + D * f) >> 8; + $ = (d + E * f - D * g) >> 8; + if (_ >= 0 && _ + C <= r && $ >= 0 && $ + k <= n) + for (b = 0; b < k; b++) { + U = m[$ + b]; + j = L[b]; + for (y = 0; y < C; y++) U[_ + y] |= j[y]; + } + else { + let e, t; + for (b = 0; b < k; b++) { + t = $ + b; + if (!(t < 0 || t >= n)) { + U = m[t]; + j = L[b]; + for (y = 0; y < C; y++) { + e = _ + y; + e >= 0 && e < r && (U[e] |= j[y]); + } + } + } + } + } + return m; + })( + e.mmr, + s, + e.template, + o.width, + o.height, + e.defaultPixelValue, + e.enableSkip, + e.combinationOperator, + e.gridWidth, + e.gridHeight, + e.gridOffsetX, + e.gridOffsetY, + e.gridVectorX, + e.gridVectorY, + c, + ); + this.drawBitmap(o, l); + } + onImmediateLosslessHalftoneRegion() { + this.onImmediateHalftoneRegion(...arguments); + } + onTables(e, t, a, r) { + let n = this.customTables; + n || (this.customTables = n = {}); + n[e] = (function decodeTablesSegment(e, t, a) { + const r = e[t], + n = 4294967295 & (0, i.readUint32)(e, t + 1), + s = 4294967295 & (0, i.readUint32)(e, t + 5), + o = new Reader(e, t + 9, a), + c = 1 + ((r >> 1) & 7), + l = 1 + ((r >> 4) & 7), + h = []; + let u, + d, + f = n; + do { + u = o.readBits(c); + d = o.readBits(l); + h.push(new HuffmanLine([f, u, d, 0])); + f += 1 << d; + } while (f < s); + u = o.readBits(c); + h.push(new HuffmanLine([n - 1, u, 32, 0, 'lower'])); + u = o.readBits(c); + h.push(new HuffmanLine([s, u, 32, 0])); + if (1 & r) { + u = o.readBits(c); + h.push(new HuffmanLine([u, 0])); + } + return new HuffmanTable(h, !1); + })(t, a, r); + } + } + class HuffmanLine { + constructor(e) { + if (2 === e.length) { + this.isOOB = !0; + this.rangeLow = 0; + this.prefixLength = e[0]; + this.rangeLength = 0; + this.prefixCode = e[1]; + this.isLowerRange = !1; + } else { + this.isOOB = !1; + this.rangeLow = e[0]; + this.prefixLength = e[1]; + this.rangeLength = e[2]; + this.prefixCode = e[3]; + this.isLowerRange = 'lower' === e[4]; + } + } + } + class HuffmanTreeNode { + constructor(e) { + this.children = []; + if (e) { + this.isLeaf = !0; + this.rangeLength = e.rangeLength; + this.rangeLow = e.rangeLow; + this.isLowerRange = e.isLowerRange; + this.isOOB = e.isOOB; + } else this.isLeaf = !1; + } + buildTree(e, t) { + const a = (e.prefixCode >> t) & 1; + if (t <= 0) this.children[a] = new HuffmanTreeNode(e); + else { + let r = this.children[a]; + r || (this.children[a] = r = new HuffmanTreeNode(null)); + r.buildTree(e, t - 1); + } + } + decodeNode(e) { + if (this.isLeaf) { + if (this.isOOB) return null; + const t = e.readBits(this.rangeLength); + return this.rangeLow + (this.isLowerRange ? -t : t); + } + const t = this.children[e.readBit()]; + if (!t) throw new Jbig2Error('invalid Huffman data'); + return t.decodeNode(e); + } + } + class HuffmanTable { + constructor(e, t) { + t || this.assignPrefixCodes(e); + this.rootNode = new HuffmanTreeNode(null); + for (let t = 0, a = e.length; t < a; t++) { + const a = e[t]; + a.prefixLength > 0 && this.rootNode.buildTree(a, a.prefixLength - 1); + } + } + decode(e) { + return this.rootNode.decodeNode(e); + } + assignPrefixCodes(e) { + const t = e.length; + let a = 0; + for (let r = 0; r < t; r++) a = Math.max(a, e[r].prefixLength); + const r = new Uint32Array(a + 1); + for (let a = 0; a < t; a++) r[e[a].prefixLength]++; + let i, + n, + s, + o = 1, + c = 0; + r[0] = 0; + for (; o <= a; ) { + c = (c + r[o - 1]) << 1; + i = c; + n = 0; + for (; n < t; ) { + s = e[n]; + if (s.prefixLength === o) { + s.prefixCode = i; + i++; + } + n++; + } + o++; + } + } + } + const p = {}; + function getStandardTable(e) { + let t, + a = p[e]; + if (a) return a; + switch (e) { + case 1: + t = [ + [0, 1, 4, 0], + [16, 2, 8, 2], + [272, 3, 16, 6], + [65808, 3, 32, 7], + ]; + break; + case 2: + t = [ + [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: + t = [ + [-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: + t = [ + [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: + t = [ + [-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: + t = [ + [-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: + t = [ + [-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: + t = [ + [-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: + t = [ + [-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: + t = [ + [-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: + t = [ + [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: + t = [ + [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: + t = [ + [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: + t = [ + [-2, 3, 0, 4], + [-1, 3, 0, 5], + [0, 1, 0, 0], + [1, 3, 0, 6], + [2, 3, 0, 7], + ]; + break; + case 15: + t = [ + [-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 Jbig2Error(`standard table B.${e} does not exist`); + } + for (let e = 0, a = t.length; e < a; e++) t[e] = new HuffmanLine(t[e]); + a = new HuffmanTable(t, !0); + p[e] = a; + return a; + } + class Reader { + constructor(e, t, a) { + this.data = e; + this.start = t; + this.end = a; + this.position = t; + this.shift = -1; + this.currentByte = 0; + } + readBit() { + if (this.shift < 0) { + if (this.position >= this.end) + throw new Jbig2Error('end of data while reading bit'); + this.currentByte = this.data[this.position++]; + this.shift = 7; + } + const e = (this.currentByte >> this.shift) & 1; + this.shift--; + return e; + } + readBits(e) { + let t, + a = 0; + for (t = e - 1; t >= 0; t--) a |= this.readBit() << t; + return a; + } + byteAlign() { + this.shift = -1; + } + next() { + return this.position >= this.end ? -1 : this.data[this.position++]; + } + } + function getCustomHuffmanTable(e, t, a) { + let r = 0; + for (let i = 0, n = t.length; i < n; i++) { + const n = a[t[i]]; + if (n) { + if (e === r) return n; + r++; + } + } + throw new Jbig2Error("can't find custom Huffman table"); + } + function readUncompressedBitmap(e, t, a) { + const r = []; + for (let i = 0; i < a; i++) { + const a = new Uint8Array(t); + r.push(a); + for (let r = 0; r < t; r++) a[r] = e.readBit(); + e.byteAlign(); + } + return r; + } + function decodeMMRBitmap(e, t, a, r) { + const i = { K: -1, Columns: t, Rows: a, BlackIs1: !0, EndOfBlock: r }, + n = new s.CCITTFaxDecoder(e, i), + o = []; + let c, + l = !1; + for (let e = 0; e < a; e++) { + const e = new Uint8Array(t); + o.push(e); + let a = -1; + for (let r = 0; r < t; r++) { + if (a < 0) { + c = n.readNextChar(); + if (-1 === c) { + c = 0; + l = !0; + } + a = 7; + } + e[r] = (c >> a) & 1; + a--; + } + } + if (r && !l) { + const e = 5; + for (let t = 0; t < e && -1 !== n.readNextChar(); t++); + } + return o; + } + t.Jbig2Image = class Jbig2Image { + parseChunks(e) { + return (function parseJbig2Chunks(e) { + const t = new SimpleSegmentVisitor(); + for (let a = 0, r = e.length; a < r; a++) { + const r = e[a]; + processSegments(readSegments({}, r.data, r.start, r.end), t); + } + return t.buffer; + })(e); + } + parse(e) { + throw new Error('Not implemented: Jbig2Image.parse'); + } + }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ArithmeticDecoder = void 0; + const a = [ + { 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 }, + ]; + t.ArithmeticDecoder = class ArithmeticDecoder { + constructor(e, t, a) { + this.data = e; + this.bp = t; + this.dataEnd = a; + this.chigh = e[t]; + 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 t = this.bp; + if (255 === e[t]) + if (e[t + 1] > 143) { + this.clow += 65280; + this.ct = 8; + } else { + t++; + this.clow += e[t] << 9; + this.ct = 7; + this.bp = t; + } + else { + t++; + this.clow += t < this.dataEnd ? e[t] << 8 : 65280; + this.ct = 8; + this.bp = t; + } + if (this.clow > 65535) { + this.chigh += this.clow >> 16; + this.clow &= 65535; + } + } + readBit(e, t) { + let r = e[t] >> 1, + i = 1 & e[t]; + const n = a[r], + s = n.qe; + let o, + c = this.a - s; + if (this.chigh < s) + if (c < s) { + c = s; + o = i; + r = n.nmps; + } else { + c = s; + o = 1 ^ i; + 1 === n.switchFlag && (i = o); + r = n.nlps; + } + else { + this.chigh -= s; + if (0 != (32768 & c)) { + this.a = c; + return i; + } + if (c < s) { + o = 1 ^ i; + 1 === n.switchFlag && (i = o); + r = n.nlps; + } else { + o = i; + r = n.nmps; + } + } + do { + 0 === this.ct && this.byteIn(); + c <<= 1; + this.chigh = ((this.chigh << 1) & 65535) | ((this.clow >> 15) & 1); + this.clow = (this.clow << 1) & 65535; + this.ct--; + } while (0 == (32768 & c)); + this.a = c; + e[t] = (r << 1) | i; + return o; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.JpegStream = void 0; + var r = a(18), + i = a(4), + n = a(27), + s = a(2); + class JpegStream extends r.DecodeStream { + constructor(e, t, a) { + let r; + for (; -1 !== (r = e.getByte()); ) + if (255 === r) { + e.skip(-1); + break; + } + super(t); + this.stream = e; + this.dict = e.dict; + this.maybeLength = t; + this.params = a; + } + get bytes() { + return (0, s.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(e) {} + readBlock() { + if (this.eof) return; + const e = { decodeTransform: void 0, colorTransform: void 0 }, + t = this.dict.getArray('D', 'Decode'); + if ((this.forceRGBA || this.forceRGB) && Array.isArray(t)) { + const a = this.dict.get('BPC', 'BitsPerComponent') || 8, + r = t.length, + i = new Int32Array(r); + let n = !1; + const s = (1 << a) - 1; + for (let e = 0; e < r; e += 2) { + i[e] = (256 * (t[e + 1] - t[e])) | 0; + i[e + 1] = (t[e] * s) | 0; + (256 === i[e] && 0 === i[e + 1]) || (n = !0); + } + n && (e.decodeTransform = i); + } + if (this.params instanceof i.Dict) { + const t = this.params.get('ColorTransform'); + Number.isInteger(t) && (e.colorTransform = t); + } + const a = new n.JpegImage(e); + a.parse(this.bytes); + const r = a.getData({ + width: this.drawWidth, + height: this.drawHeight, + forceRGBA: this.forceRGBA, + forceRGB: this.forceRGB, + isSourcePDF: !0, + }); + this.buffer = r; + this.bufferLength = r.length; + this.eof = !0; + } + } + t.JpegStream = JpegStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.JpegImage = void 0; + var r = a(2), + i = a(28), + n = a(3); + class JpegError extends r.BaseException { + constructor(e) { + super(`JPEG error: ${e}`, 'JpegError'); + } + } + class DNLMarkerError extends r.BaseException { + constructor(e, t) { + super(e, 'DNLMarkerError'); + this.scanLines = t; + } + } + class EOIMarkerError extends r.BaseException { + constructor(e) { + super(e, 'EOIMarkerError'); + } + } + const s = 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, + ]), + o = 4017, + c = 799, + l = 3406, + h = 2276, + u = 1567, + d = 3784, + f = 5793, + g = 2896; + function buildHuffmanTable(e, t) { + let a, + r, + i = 0, + n = 16; + for (; n > 0 && !e[n - 1]; ) n--; + const s = [{ children: [], index: 0 }]; + let o, + c = s[0]; + for (a = 0; a < n; a++) { + for (r = 0; r < e[a]; r++) { + c = s.pop(); + c.children[c.index] = t[i]; + for (; c.index > 0; ) c = s.pop(); + c.index++; + s.push(c); + for (; s.length <= a; ) { + s.push((o = { children: [], index: 0 })); + c.children[c.index] = o.children; + c = o; + } + i++; + } + if (a + 1 < n) { + s.push((o = { children: [], index: 0 })); + c.children[c.index] = o.children; + c = o; + } + } + return s[0].children; + } + function getBlockBufferOffset(e, t, a) { + return 64 * ((e.blocksPerLine + 1) * t + a); + } + function decodeScan(e, t, a, i, o, c, l, h, u, d = !1) { + const f = a.mcusPerLine, + g = a.progressive, + p = t; + let m = 0, + b = 0; + function readBit() { + if (b > 0) { + b--; + return (m >> b) & 1; + } + m = e[t++]; + if (255 === m) { + const r = e[t++]; + if (r) { + if (220 === r && d) { + t += 2; + const r = (0, n.readUint16)(e, t); + t += 2; + if (r > 0 && r !== a.scanLines) + throw new DNLMarkerError( + 'Found DNL marker (0xFFDC) while parsing scan data', + r, + ); + } else if (217 === r) { + if (d) { + const e = x * (8 === a.precision ? 8 : 0); + if (e > 0 && Math.round(a.scanLines / e) >= 5) + throw new DNLMarkerError( + 'Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter', + e, + ); + } + throw new EOIMarkerError('Found EOI marker (0xFFD9) while parsing scan data'); + } + throw new JpegError(`unexpected marker ${((m << 8) | r).toString(16)}`); + } + } + b = 7; + return m >>> 7; + } + function decodeHuffman(e) { + let t = e; + for (;;) { + t = t[readBit()]; + switch (typeof t) { + case 'number': + return t; + case 'object': + continue; + } + throw new JpegError('invalid huffman sequence'); + } + } + function receive(e) { + let t = 0; + for (; e > 0; ) { + t = (t << 1) | readBit(); + e--; + } + return t; + } + function receiveAndExtend(e) { + if (1 === e) return 1 === readBit() ? 1 : -1; + const t = receive(e); + return t >= 1 << (e - 1) ? t : t + (-1 << e) + 1; + } + let y = 0; + let w, + S = 0; + let x = 0; + function decodeMcu(e, t, a, r, i) { + const n = a % f; + x = ((a / f) | 0) * e.v + r; + const s = n * e.h + i; + t(e, getBlockBufferOffset(e, x, s)); + } + function decodeBlock(e, t, a) { + x = (a / e.blocksPerLine) | 0; + const r = a % e.blocksPerLine; + t(e, getBlockBufferOffset(e, x, r)); + } + const C = i.length; + let k, v, F, O, T, M; + M = g + ? 0 === c + ? 0 === h + ? function decodeDCFirst(e, t) { + const a = decodeHuffman(e.huffmanTableDC), + r = 0 === a ? 0 : receiveAndExtend(a) << u; + e.blockData[t] = e.pred += r; + } + : function decodeDCSuccessive(e, t) { + e.blockData[t] |= readBit() << u; + } + : 0 === h + ? function decodeACFirst(e, t) { + if (y > 0) { + y--; + return; + } + let a = c; + const r = l; + for (; a <= r; ) { + const r = decodeHuffman(e.huffmanTableAC), + i = 15 & r, + n = r >> 4; + if (0 === i) { + if (n < 15) { + y = receive(n) + (1 << n) - 1; + break; + } + a += 16; + continue; + } + a += n; + const o = s[a]; + e.blockData[t + o] = receiveAndExtend(i) * (1 << u); + a++; + } + } + : function decodeACSuccessive(e, t) { + let a = c; + const r = l; + let i, + n, + o = 0; + for (; a <= r; ) { + const r = t + s[a], + c = e.blockData[r] < 0 ? -1 : 1; + switch (S) { + case 0: + n = decodeHuffman(e.huffmanTableAC); + i = 15 & n; + o = n >> 4; + if (0 === i) + if (o < 15) { + y = receive(o) + (1 << o); + S = 4; + } else { + o = 16; + S = 1; + } + else { + if (1 !== i) throw new JpegError('invalid ACn encoding'); + w = receiveAndExtend(i); + S = o ? 2 : 3; + } + continue; + case 1: + case 2: + if (e.blockData[r]) e.blockData[r] += c * (readBit() << u); + else { + o--; + 0 === o && (S = 2 === S ? 3 : 0); + } + break; + case 3: + if (e.blockData[r]) e.blockData[r] += c * (readBit() << u); + else { + e.blockData[r] = w << u; + S = 0; + } + break; + case 4: + e.blockData[r] && (e.blockData[r] += c * (readBit() << u)); + } + a++; + } + if (4 === S) { + y--; + 0 === y && (S = 0); + } + } + : function decodeBaseline(e, t) { + const a = decodeHuffman(e.huffmanTableDC), + r = 0 === a ? 0 : receiveAndExtend(a); + e.blockData[t] = e.pred += r; + let i = 1; + for (; i < 64; ) { + const a = decodeHuffman(e.huffmanTableAC), + r = 15 & a, + n = a >> 4; + if (0 === r) { + if (n < 15) break; + i += 16; + continue; + } + i += n; + const o = s[i]; + e.blockData[t + o] = receiveAndExtend(r); + i++; + } + }; + let E, + D, + N, + R, + L = 0; + D = 1 === C ? i[0].blocksPerLine * i[0].blocksPerColumn : f * a.mcusPerColumn; + for (; L <= D; ) { + const a = o ? Math.min(D - L, o) : D; + if (a > 0) { + for (v = 0; v < C; v++) i[v].pred = 0; + y = 0; + if (1 === C) { + k = i[0]; + for (T = 0; T < a; T++) { + decodeBlock(k, M, L); + L++; + } + } else + for (T = 0; T < a; T++) { + for (v = 0; v < C; v++) { + k = i[v]; + N = k.h; + R = k.v; + for (F = 0; F < R; F++) for (O = 0; O < N; O++) decodeMcu(k, M, L, F, O); + } + L++; + } + } + b = 0; + E = findNextFileMarker(e, t); + if (!E) break; + if (E.invalid) { + const e = a > 0 ? 'unexpected' : 'excessive'; + (0, r.warn)(`decodeScan - ${e} MCU data, current marker is: ${E.invalid}`); + t = E.offset; + } + if (!(E.marker >= 65488 && E.marker <= 65495)) break; + t += 2; + } + return t - p; + } + function quantizeAndInverse(e, t, a) { + const r = e.quantizationTable, + i = e.blockData; + let n, s, p, m, b, y, w, S, x, C, k, v, F, O, T, M, E; + if (!r) throw new JpegError('missing required Quantization Table.'); + for (let e = 0; e < 64; e += 8) { + x = i[t + e]; + C = i[t + e + 1]; + k = i[t + e + 2]; + v = i[t + e + 3]; + F = i[t + e + 4]; + O = i[t + e + 5]; + T = i[t + e + 6]; + M = i[t + e + 7]; + x *= r[e]; + if (0 != (C | k | v | F | O | T | M)) { + C *= r[e + 1]; + k *= r[e + 2]; + v *= r[e + 3]; + F *= r[e + 4]; + O *= r[e + 5]; + T *= r[e + 6]; + M *= r[e + 7]; + n = (f * x + 128) >> 8; + s = (f * F + 128) >> 8; + p = k; + m = T; + b = (g * (C - M) + 128) >> 8; + S = (g * (C + M) + 128) >> 8; + y = v << 4; + w = O << 4; + n = (n + s + 1) >> 1; + s = n - s; + E = (p * d + m * u + 128) >> 8; + p = (p * u - m * d + 128) >> 8; + m = E; + b = (b + w + 1) >> 1; + w = b - w; + S = (S + y + 1) >> 1; + y = S - y; + n = (n + m + 1) >> 1; + m = n - m; + s = (s + p + 1) >> 1; + p = s - p; + E = (b * h + S * l + 2048) >> 12; + b = (b * l - S * h + 2048) >> 12; + S = E; + E = (y * c + w * o + 2048) >> 12; + y = (y * o - w * c + 2048) >> 12; + w = E; + a[e] = n + S; + a[e + 7] = n - S; + a[e + 1] = s + w; + a[e + 6] = s - w; + a[e + 2] = p + y; + a[e + 5] = p - y; + a[e + 3] = m + b; + a[e + 4] = m - b; + } else { + E = (f * x + 512) >> 10; + a[e] = E; + a[e + 1] = E; + a[e + 2] = E; + a[e + 3] = E; + a[e + 4] = E; + a[e + 5] = E; + a[e + 6] = E; + a[e + 7] = E; + } + } + for (let e = 0; e < 8; ++e) { + x = a[e]; + C = a[e + 8]; + k = a[e + 16]; + v = a[e + 24]; + F = a[e + 32]; + O = a[e + 40]; + T = a[e + 48]; + M = a[e + 56]; + if (0 != (C | k | v | F | O | T | M)) { + n = (f * x + 2048) >> 12; + s = (f * F + 2048) >> 12; + p = k; + m = T; + b = (g * (C - M) + 2048) >> 12; + S = (g * (C + M) + 2048) >> 12; + y = v; + w = O; + n = 4112 + ((n + s + 1) >> 1); + s = n - s; + E = (p * d + m * u + 2048) >> 12; + p = (p * u - m * d + 2048) >> 12; + m = E; + b = (b + w + 1) >> 1; + w = b - w; + S = (S + y + 1) >> 1; + y = S - y; + n = (n + m + 1) >> 1; + m = n - m; + s = (s + p + 1) >> 1; + p = s - p; + E = (b * h + S * l + 2048) >> 12; + b = (b * l - S * h + 2048) >> 12; + S = E; + E = (y * c + w * o + 2048) >> 12; + y = (y * o - w * c + 2048) >> 12; + w = E; + x = n + S; + M = n - S; + C = s + w; + T = s - w; + k = p + y; + O = p - y; + v = m + b; + F = m - b; + x < 16 ? (x = 0) : x >= 4080 ? (x = 255) : (x >>= 4); + C < 16 ? (C = 0) : C >= 4080 ? (C = 255) : (C >>= 4); + k < 16 ? (k = 0) : k >= 4080 ? (k = 255) : (k >>= 4); + v < 16 ? (v = 0) : v >= 4080 ? (v = 255) : (v >>= 4); + F < 16 ? (F = 0) : F >= 4080 ? (F = 255) : (F >>= 4); + O < 16 ? (O = 0) : O >= 4080 ? (O = 255) : (O >>= 4); + T < 16 ? (T = 0) : T >= 4080 ? (T = 255) : (T >>= 4); + M < 16 ? (M = 0) : M >= 4080 ? (M = 255) : (M >>= 4); + i[t + e] = x; + i[t + e + 8] = C; + i[t + e + 16] = k; + i[t + e + 24] = v; + i[t + e + 32] = F; + i[t + e + 40] = O; + i[t + e + 48] = T; + i[t + e + 56] = M; + } else { + E = (f * x + 8192) >> 14; + E = E < -2040 ? 0 : E >= 2024 ? 255 : (E + 2056) >> 4; + i[t + e] = E; + i[t + e + 8] = E; + i[t + e + 16] = E; + i[t + e + 24] = E; + i[t + e + 32] = E; + i[t + e + 40] = E; + i[t + e + 48] = E; + i[t + e + 56] = E; + } + } + } + function buildComponentData(e, t) { + const a = t.blocksPerLine, + r = t.blocksPerColumn, + i = new Int16Array(64); + for (let e = 0; e < r; e++) + for (let r = 0; r < a; r++) { + quantizeAndInverse(t, getBlockBufferOffset(t, e, r), i); + } + return t.blockData; + } + function findNextFileMarker(e, t, a = t) { + const r = e.length - 1; + let i = a < t ? a : t; + if (t >= r) return null; + const s = (0, n.readUint16)(e, t); + if (s >= 65472 && s <= 65534) return { invalid: null, marker: s, offset: t }; + let o = (0, n.readUint16)(e, i); + for (; !(o >= 65472 && o <= 65534); ) { + if (++i >= r) return null; + o = (0, n.readUint16)(e, i); + } + return { invalid: s.toString(16), marker: o, offset: i }; + } + t.JpegImage = class JpegImage { + constructor({ decodeTransform: e = null, colorTransform: t = -1 } = {}) { + this._decodeTransform = e; + this._colorTransform = t; + } + parse(e, { dnlScanLines: t = null } = {}) { + function readDataBlock() { + const t = (0, n.readUint16)(e, o); + o += 2; + let a = o + t - 2; + const i = findNextFileMarker(e, a, o); + if (i && i.invalid) { + (0, r.warn)('readDataBlock - incorrect length, current marker is: ' + i.invalid); + a = i.offset; + } + const s = e.subarray(o, a); + o += s.length; + return s; + } + function prepareComponents(e) { + const t = Math.ceil(e.samplesPerLine / 8 / e.maxH), + a = Math.ceil(e.scanLines / 8 / e.maxV); + for (const r of e.components) { + const i = Math.ceil((Math.ceil(e.samplesPerLine / 8) * r.h) / e.maxH), + n = Math.ceil((Math.ceil(e.scanLines / 8) * r.v) / e.maxV), + s = t * r.h, + o = 64 * (a * r.v) * (s + 1); + r.blockData = new Int16Array(o); + r.blocksPerLine = i; + r.blocksPerColumn = n; + } + e.mcusPerLine = t; + e.mcusPerColumn = a; + } + let a, + i, + o = 0, + c = null, + l = null, + h = 0; + const u = [], + d = [], + f = []; + let g = (0, n.readUint16)(e, o); + o += 2; + if (65496 !== g) throw new JpegError('SOI not found'); + g = (0, n.readUint16)(e, o); + o += 2; + e: for (; 65497 !== g; ) { + let p, m, b; + switch (g) { + 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 y = readDataBlock(); + 65504 === g && + 74 === y[0] && + 70 === y[1] && + 73 === y[2] && + 70 === y[3] && + 0 === y[4] && + (c = { + version: { major: y[5], minor: y[6] }, + densityUnits: y[7], + xDensity: (y[8] << 8) | y[9], + yDensity: (y[10] << 8) | y[11], + thumbWidth: y[12], + thumbHeight: y[13], + thumbData: y.subarray(14, 14 + 3 * y[12] * y[13]), + }); + 65518 === g && + 65 === y[0] && + 100 === y[1] && + 111 === y[2] && + 98 === y[3] && + 101 === y[4] && + (l = { + version: (y[5] << 8) | y[6], + flags0: (y[7] << 8) | y[8], + flags1: (y[9] << 8) | y[10], + transformCode: y[11], + }); + break; + case 65499: + const w = (0, n.readUint16)(e, o); + o += 2; + const S = w + o - 2; + let x; + for (; o < S; ) { + const t = e[o++], + a = new Uint16Array(64); + if (t >> 4 == 0) + for (m = 0; m < 64; m++) { + x = s[m]; + a[x] = e[o++]; + } + else { + if (t >> 4 != 1) throw new JpegError('DQT - invalid table spec'); + for (m = 0; m < 64; m++) { + x = s[m]; + a[x] = (0, n.readUint16)(e, o); + o += 2; + } + } + u[15 & t] = a; + } + break; + case 65472: + case 65473: + case 65474: + if (a) throw new JpegError('Only single frame JPEGs supported'); + o += 2; + a = {}; + a.extended = 65473 === g; + a.progressive = 65474 === g; + a.precision = e[o++]; + const C = (0, n.readUint16)(e, o); + o += 2; + a.scanLines = t || C; + a.samplesPerLine = (0, n.readUint16)(e, o); + o += 2; + a.components = []; + a.componentIds = {}; + const k = e[o++]; + let v = 0, + F = 0; + for (p = 0; p < k; p++) { + const t = e[o], + r = e[o + 1] >> 4, + i = 15 & e[o + 1]; + v < r && (v = r); + F < i && (F = i); + const n = e[o + 2]; + b = a.components.push({ + h: r, + v: i, + quantizationId: n, + quantizationTable: null, + }); + a.componentIds[t] = b - 1; + o += 3; + } + a.maxH = v; + a.maxV = F; + prepareComponents(a); + break; + case 65476: + const O = (0, n.readUint16)(e, o); + o += 2; + for (p = 2; p < O; ) { + const t = e[o++], + a = new Uint8Array(16); + let r = 0; + for (m = 0; m < 16; m++, o++) r += a[m] = e[o]; + const i = new Uint8Array(r); + for (m = 0; m < r; m++, o++) i[m] = e[o]; + p += 17 + r; + (t >> 4 == 0 ? f : d)[15 & t] = buildHuffmanTable(a, i); + } + break; + case 65501: + o += 2; + i = (0, n.readUint16)(e, o); + o += 2; + break; + case 65498: + const T = 1 == ++h && !t; + o += 2; + const M = e[o++], + E = []; + for (p = 0; p < M; p++) { + const t = e[o++], + r = a.componentIds[t], + i = a.components[r]; + i.index = t; + const n = e[o++]; + i.huffmanTableDC = f[n >> 4]; + i.huffmanTableAC = d[15 & n]; + E.push(i); + } + const D = e[o++], + N = e[o++], + R = e[o++]; + try { + const t = decodeScan(e, o, a, E, i, D, N, R >> 4, 15 & R, T); + o += t; + } catch (t) { + if (t instanceof DNLMarkerError) { + (0, r.warn)(`${t.message} -- attempting to re-parse the JPEG image.`); + return this.parse(e, { dnlScanLines: t.scanLines }); + } + if (t instanceof EOIMarkerError) { + (0, r.warn)(`${t.message} -- ignoring the rest of the image data.`); + break e; + } + throw t; + } + break; + case 65500: + o += 4; + break; + case 65535: + 255 !== e[o] && o--; + break; + default: + const L = findNextFileMarker(e, o - 2, o - 3); + if (L && L.invalid) { + (0, r.warn)( + 'JpegImage.parse - unexpected data, current marker is: ' + L.invalid, + ); + o = L.offset; + break; + } + if (!L || o >= e.length - 1) { + (0, r.warn)( + 'JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).', + ); + break e; + } + throw new JpegError('JpegImage.parse - unknown marker: ' + g.toString(16)); + } + g = (0, n.readUint16)(e, o); + o += 2; + } + this.width = a.samplesPerLine; + this.height = a.scanLines; + this.jfif = c; + this.adobe = l; + this.components = []; + for (const e of a.components) { + const t = u[e.quantizationId]; + t && (e.quantizationTable = t); + this.components.push({ + index: e.index, + output: buildComponentData(0, e), + scaleX: e.h / a.maxH, + scaleY: e.v / a.maxV, + blocksPerLine: e.blocksPerLine, + blocksPerColumn: e.blocksPerColumn, + }); + } + this.numComponents = this.components.length; + } + _getLinearizedBlockData(e, t, a = !1) { + const r = this.width / e, + i = this.height / t; + let n, + s, + o, + c, + l, + h, + u, + d, + f, + g, + p, + m = 0; + const b = this.components.length, + y = e * t * b, + w = new Uint8ClampedArray(y), + S = new Uint32Array(e), + x = 4294967288; + let C; + for (u = 0; u < b; u++) { + n = this.components[u]; + s = n.scaleX * r; + o = n.scaleY * i; + m = u; + p = n.output; + c = (n.blocksPerLine + 1) << 3; + if (s !== C) { + for (l = 0; l < e; l++) { + d = 0 | (l * s); + S[l] = ((d & x) << 3) | (7 & d); + } + C = s; + } + for (h = 0; h < t; h++) { + d = 0 | (h * o); + g = (c * (d & x)) | ((7 & d) << 3); + for (l = 0; l < e; l++) { + w[m] = p[g + S[l]]; + m += b; + } + } + } + let k = this._decodeTransform; + a || + 4 !== b || + k || + (k = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255])); + if (k) + for (u = 0; u < y; ) + for (d = 0, f = 0; d < b; d++, u++, f += 2) + w[u] = ((w[u] * k[f]) >> 8) + k[f + 1]; + return w; + } + get _isColorConversionNeeded() { + return this.adobe + ? !!this.adobe.transformCode + : 3 === this.numComponents + ? 0 !== this._colorTransform && + (82 !== this.components[0].index || + 71 !== this.components[1].index || + 66 !== this.components[2].index) + : 1 === this._colorTransform; + } + _convertYccToRgb(e) { + let t, a, r; + for (let i = 0, n = e.length; i < n; i += 3) { + t = e[i]; + a = e[i + 1]; + r = e[i + 2]; + e[i] = t - 179.456 + 1.402 * r; + e[i + 1] = t + 135.459 - 0.344 * a - 0.714 * r; + e[i + 2] = t - 226.816 + 1.772 * a; + } + return e; + } + _convertYccToRgba(e, t) { + for (let a = 0, r = 0, i = e.length; a < i; a += 3, r += 4) { + const i = e[a], + n = e[a + 1], + s = e[a + 2]; + t[r] = i - 179.456 + 1.402 * s; + t[r + 1] = i + 135.459 - 0.344 * n - 0.714 * s; + t[r + 2] = i - 226.816 + 1.772 * n; + t[r + 3] = 255; + } + return t; + } + _convertYcckToRgb(e) { + let t, + a, + r, + i, + n = 0; + for (let s = 0, o = e.length; s < o; s += 4) { + t = e[s]; + a = e[s + 1]; + r = e[s + 2]; + i = e[s + 3]; + e[n++] = + a * + (-660635669420364e-19 * a + + 0.000437130475926232 * r - + 54080610064599e-18 * t + + 0.00048449797120281 * i - + 0.154362151871126) - + 122.67195406894 + + r * + (-0.000957964378445773 * r + + 0.000817076911346625 * t - + 0.00477271405408747 * i + + 1.53380253221734) + + t * (0.000961250184130688 * t - 0.00266257332283933 * i + 0.48357088451265) + + i * (-0.000336197177618394 * i + 0.484791561490776); + e[n++] = + 107.268039397724 + + a * + (219927104525741e-19 * a - + 0.000640992018297945 * r + + 0.000659397001245577 * t + + 0.000426105652938837 * i - + 0.176491792462875) + + r * + (-0.000778269941513683 * r + + 0.00130872261408275 * t + + 0.000770482631801132 * i - + 0.151051492775562) + + t * (0.00126935368114843 * t - 0.00265090189010898 * i + 0.25802910206845) + + i * (-0.000318913117588328 * i - 0.213742400323665); + e[n++] = + a * + (-0.000570115196973677 * a - + 263409051004589e-19 * r + + 0.0020741088115012 * t - + 0.00288260236853442 * i + + 0.814272968359295) - + 20.810012546947 + + r * + (-153496057440975e-19 * r - + 0.000132689043961446 * t + + 0.000560833691242812 * i - + 0.195152027534049) + + t * (0.00174418132927582 * t - 0.00255243321439347 * i + 0.116935020465145) + + i * (-0.000343531996510555 * i + 0.24165260232407); + } + return e.subarray(0, n); + } + _convertYcckToRgba(e) { + for (let t = 0, a = e.length; t < a; t += 4) { + const a = e[t], + r = e[t + 1], + i = e[t + 2], + n = e[t + 3]; + e[t] = + r * + (-660635669420364e-19 * r + + 0.000437130475926232 * i - + 54080610064599e-18 * a + + 0.00048449797120281 * n - + 0.154362151871126) - + 122.67195406894 + + i * + (-0.000957964378445773 * i + + 0.000817076911346625 * a - + 0.00477271405408747 * n + + 1.53380253221734) + + a * (0.000961250184130688 * a - 0.00266257332283933 * n + 0.48357088451265) + + n * (-0.000336197177618394 * n + 0.484791561490776); + e[t + 1] = + 107.268039397724 + + r * + (219927104525741e-19 * r - + 0.000640992018297945 * i + + 0.000659397001245577 * a + + 0.000426105652938837 * n - + 0.176491792462875) + + i * + (-0.000778269941513683 * i + + 0.00130872261408275 * a + + 0.000770482631801132 * n - + 0.151051492775562) + + a * (0.00126935368114843 * a - 0.00265090189010898 * n + 0.25802910206845) + + n * (-0.000318913117588328 * n - 0.213742400323665); + e[t + 2] = + r * + (-0.000570115196973677 * r - + 263409051004589e-19 * i + + 0.0020741088115012 * a - + 0.00288260236853442 * n + + 0.814272968359295) - + 20.810012546947 + + i * + (-153496057440975e-19 * i - + 0.000132689043961446 * a + + 0.000560833691242812 * n - + 0.195152027534049) + + a * (0.00174418132927582 * a - 0.00255243321439347 * n + 0.116935020465145) + + n * (-0.000343531996510555 * n + 0.24165260232407); + e[t + 3] = 255; + } + return e; + } + _convertYcckToCmyk(e) { + let t, a, r; + for (let i = 0, n = e.length; i < n; i += 4) { + t = e[i]; + a = e[i + 1]; + r = e[i + 2]; + e[i] = 434.456 - t - 1.402 * r; + e[i + 1] = 119.541 - t + 0.344 * a + 0.714 * r; + e[i + 2] = 481.816 - t - 1.772 * a; + } + return e; + } + _convertCmykToRgb(e) { + let t, + a, + r, + i, + n = 0; + for (let s = 0, o = e.length; s < o; s += 4) { + t = e[s]; + a = e[s + 1]; + r = e[s + 2]; + i = e[s + 3]; + e[n++] = + 255 + + t * + (-6747147073602441e-20 * t + + 0.0008379262121013727 * a + + 0.0002894718188643294 * r + + 0.003264231057537806 * i - + 1.1185611867203937) + + a * + (26374107616089405e-21 * a - + 8626949158638572e-20 * r - + 0.0002748769067499491 * i - + 0.02155688794978967) + + r * (-3878099212869363e-20 * r - 0.0003267808279485286 * i + 0.0686742238595345) - + i * (0.0003361971776183937 * i + 0.7430659151342254); + e[n++] = + 255 + + t * + (0.00013596372813588848 * t + + 0.000924537132573585 * a + + 0.00010567359618683593 * r + + 0.0004791864687436512 * i - + 0.3109689587515875) + + a * + (-0.00023545346108370344 * a + + 0.0002702845253534714 * r + + 0.0020200308977307156 * i - + 0.7488052167015494) + + r * + (6834815998235662e-20 * r + 0.00015168452363460973 * i - 0.09751927774728933) - + i * (0.0003189131175883281 * i + 0.7364883807733168); + e[n++] = + 255 + + t * + (13598650411385307e-21 * t + + 0.00012423956175490851 * a + + 0.0004751985097583589 * r - + 36729317476630422e-22 * i - + 0.05562186980264034) + + a * + (0.00016141380598724676 * a + + 0.0009692239130725186 * r + + 0.0007782692450036253 * i - + 0.44015232367526463) + + r * (5.068882914068769e-7 * r + 0.0017778369011375071 * i - 0.7591454649749609) - + i * (0.0003435319965105553 * i + 0.7063770186160144); + } + return e.subarray(0, n); + } + _convertCmykToRgba(e) { + for (let t = 0, a = e.length; t < a; t += 4) { + const a = e[t], + r = e[t + 1], + i = e[t + 2], + n = e[t + 3]; + e[t] = + 255 + + a * + (-6747147073602441e-20 * a + + 0.0008379262121013727 * r + + 0.0002894718188643294 * i + + 0.003264231057537806 * n - + 1.1185611867203937) + + r * + (26374107616089405e-21 * r - + 8626949158638572e-20 * i - + 0.0002748769067499491 * n - + 0.02155688794978967) + + i * (-3878099212869363e-20 * i - 0.0003267808279485286 * n + 0.0686742238595345) - + n * (0.0003361971776183937 * n + 0.7430659151342254); + e[t + 1] = + 255 + + a * + (0.00013596372813588848 * a + + 0.000924537132573585 * r + + 0.00010567359618683593 * i + + 0.0004791864687436512 * n - + 0.3109689587515875) + + r * + (-0.00023545346108370344 * r + + 0.0002702845253534714 * i + + 0.0020200308977307156 * n - + 0.7488052167015494) + + i * + (6834815998235662e-20 * i + 0.00015168452363460973 * n - 0.09751927774728933) - + n * (0.0003189131175883281 * n + 0.7364883807733168); + e[t + 2] = + 255 + + a * + (13598650411385307e-21 * a + + 0.00012423956175490851 * r + + 0.0004751985097583589 * i - + 36729317476630422e-22 * n - + 0.05562186980264034) + + r * + (0.00016141380598724676 * r + + 0.0009692239130725186 * i + + 0.0007782692450036253 * n - + 0.44015232367526463) + + i * (5.068882914068769e-7 * i + 0.0017778369011375071 * n - 0.7591454649749609) - + n * (0.0003435319965105553 * n + 0.7063770186160144); + e[t + 3] = 255; + } + return e; + } + getData({ + width: e, + height: t, + forceRGBA: a = !1, + forceRGB: r = !1, + isSourcePDF: n = !1, + }) { + if (this.numComponents > 4) throw new JpegError('Unsupported color mode'); + const s = this._getLinearizedBlockData(e, t, n); + if (1 === this.numComponents && (a || r)) { + const e = s.length * (a ? 4 : 3), + t = new Uint8ClampedArray(e); + let r = 0; + if (a) (0, i.grayToRGBA)(s, new Uint32Array(t.buffer)); + else + for (const e of s) { + t[r++] = e; + t[r++] = e; + t[r++] = e; + } + return t; + } + if (3 === this.numComponents && this._isColorConversionNeeded) { + if (a) { + const e = new Uint8ClampedArray((s.length / 3) * 4); + return this._convertYccToRgba(s, e); + } + return this._convertYccToRgb(s); + } + if (4 === this.numComponents) { + if (this._isColorConversionNeeded) + return a + ? this._convertYcckToRgba(s) + : r + ? this._convertYcckToRgb(s) + : this._convertYcckToCmyk(s); + if (a) return this._convertCmykToRgba(s); + if (r) return this._convertCmykToRgb(s); + } + return s; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.convertBlackAndWhiteToRGBA = convertBlackAndWhiteToRGBA; + t.convertToRGBA = function convertToRGBA(e) { + switch (e.kind) { + case r.ImageKind.GRAYSCALE_1BPP: + return convertBlackAndWhiteToRGBA(e); + case r.ImageKind.RGB_24BPP: + return (function convertRGBToRGBA({ + src: e, + srcPos: t = 0, + dest: a, + destPos: i = 0, + width: n, + height: s, + }) { + let o = 0; + const c = e.length >> 2, + l = new Uint32Array(e.buffer, t, c); + if (r.FeatureTest.isLittleEndian) { + for (; o < c - 2; o += 3, i += 4) { + const e = l[o], + t = l[o + 1], + r = l[o + 2]; + a[i] = 4278190080 | e; + a[i + 1] = (e >>> 24) | (t << 8) | 4278190080; + a[i + 2] = (t >>> 16) | (r << 16) | 4278190080; + a[i + 3] = (r >>> 8) | 4278190080; + } + for (let t = 4 * o, r = e.length; t < r; t += 3) + a[i++] = e[t] | (e[t + 1] << 8) | (e[t + 2] << 16) | 4278190080; + } else { + for (; o < c - 2; o += 3, i += 4) { + const e = l[o], + t = l[o + 1], + r = l[o + 2]; + a[i] = 255 | e; + a[i + 1] = (e << 24) | (t >>> 8) | 255; + a[i + 2] = (t << 16) | (r >>> 16) | 255; + a[i + 3] = (r << 8) | 255; + } + for (let t = 4 * o, r = e.length; t < r; t += 3) + a[i++] = (e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | 255; + } + return { srcPos: t, destPos: i }; + })(e); + } + return null; + }; + t.grayToRGBA = function grayToRGBA(e, t) { + if (r.FeatureTest.isLittleEndian) + for (let a = 0, r = e.length; a < r; a++) t[a] = (65793 * e[a]) | 4278190080; + else for (let a = 0, r = e.length; a < r; a++) t[a] = (16843008 * e[a]) | 255; + }; + var r = a(2); + function convertBlackAndWhiteToRGBA({ + src: e, + srcPos: t = 0, + dest: a, + width: i, + height: n, + nonBlackColor: s = 4294967295, + inverseDecode: o = !1, + }) { + const c = r.FeatureTest.isLittleEndian ? 4278190080 : 255, + [l, h] = o ? [s, c] : [c, s], + u = i >> 3, + d = 7 & i, + f = e.length; + a = new Uint32Array(a.buffer); + let g = 0; + for (let r = 0; r < n; r++) { + for (const r = t + u; t < r; t++) { + const r = t < f ? e[t] : 255; + a[g++] = 128 & r ? h : l; + a[g++] = 64 & r ? h : l; + a[g++] = 32 & r ? h : l; + a[g++] = 16 & r ? h : l; + a[g++] = 8 & r ? h : l; + a[g++] = 4 & r ? h : l; + a[g++] = 2 & r ? h : l; + a[g++] = 1 & r ? h : l; + } + if (0 === d) continue; + const r = t < f ? e[t++] : 255; + for (let e = 0; e < d; e++) a[g++] = r & (1 << (7 - e)) ? h : l; + } + return { srcPos: t, destPos: g }; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.JpxStream = void 0; + var r = a(18), + i = a(30), + n = a(2); + class JpxStream extends r.DecodeStream { + constructor(e, t, a) { + super(t); + this.stream = e; + this.dict = e.dict; + this.maybeLength = t; + this.params = a; + } + get bytes() { + return (0, n.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(e) {} + readBlock() { + if (this.eof) return; + const e = new i.JpxImage(); + e.parse(this.bytes); + const t = e.width, + a = e.height, + r = e.componentsCount, + n = e.tiles.length; + if (1 === n) this.buffer = e.tiles[0].items; + else { + const i = new Uint8ClampedArray(t * a * r); + for (let a = 0; a < n; a++) { + const n = e.tiles[a], + s = n.width, + o = n.height, + c = n.left, + l = n.top, + h = n.items; + let u = 0, + d = (t * l + c) * r; + const f = t * r, + g = s * r; + for (let e = 0; e < o; e++) { + const e = h.subarray(u, u + g); + i.set(e, d); + u += g; + d += f; + } + } + this.buffer = i; + } + this.bufferLength = this.buffer.length; + this.eof = !0; + } + } + t.JpxStream = JpxStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.JpxImage = void 0; + var r = a(2), + i = a(3), + n = a(25); + class JpxError extends r.BaseException { + constructor(e) { + super(`JPX error: ${e}`, 'JpxError'); + } + } + const s = { LL: 0, LH: 1, HL: 1, HH: 2 }; + t.JpxImage = class JpxImage { + constructor() { + this.failOnCorruptedImage = !1; + } + parse(e) { + if (65359 === (0, i.readUint16)(e, 0)) { + this.parseCodestream(e, 0, e.length); + return; + } + const t = e.length; + let a = 0; + for (; a < t; ) { + let n = 8, + s = (0, i.readUint32)(e, a); + const o = (0, i.readUint32)(e, a + 4); + a += n; + if (1 === s) { + s = 4294967296 * (0, i.readUint32)(e, a) + (0, i.readUint32)(e, a + 4); + a += 8; + n += 8; + } + 0 === s && (s = t - a + n); + if (s < n) throw new JpxError('Invalid box field size'); + const c = s - n; + let l = !0; + switch (o) { + case 1785737832: + l = !1; + break; + case 1668246642: + const t = e[a]; + if (1 === t) { + const t = (0, i.readUint32)(e, a + 3); + switch (t) { + case 16: + case 17: + case 18: + break; + default: + (0, r.warn)('Unknown colorspace ' + t); + } + } else 2 === t && (0, r.info)('ICC profile not supported'); + break; + case 1785737827: + this.parseCodestream(e, a, a + c); + break; + case 1783636e3: + 218793738 !== (0, i.readUint32)(e, a) && (0, r.warn)('Invalid JP2 signature'); + break; + case 1783634458: + case 1718909296: + case 1920099697: + case 1919251232: + case 1768449138: + break; + default: + const n = String.fromCharCode( + (o >> 24) & 255, + (o >> 16) & 255, + (o >> 8) & 255, + 255 & o, + ); + (0, r.warn)(`Unsupported header type ${o} (${n}).`); + } + l && (a += c); + } + } + parseImageProperties(e) { + let t = e.getByte(); + for (; t >= 0; ) { + const a = t; + t = e.getByte(); + if (65361 === ((a << 8) | t)) { + e.skip(4); + const t = e.getInt32() >>> 0, + a = e.getInt32() >>> 0, + r = e.getInt32() >>> 0, + i = e.getInt32() >>> 0; + e.skip(16); + const n = e.getUint16(); + this.width = t - r; + this.height = a - i; + this.componentsCount = n; + this.bitsPerComponent = 8; + return; + } + } + throw new JpxError('No size marker found in JPX stream'); + } + parseCodestream(e, t, a) { + const n = {}; + let s = !1; + try { + let o = t; + for (; o + 1 < a; ) { + const t = (0, i.readUint16)(e, o); + o += 2; + let a, + c, + l, + h, + u, + d, + f = 0; + switch (t) { + case 65359: + n.mainHeader = !0; + break; + case 65497: + break; + case 65361: + f = (0, i.readUint16)(e, o); + const g = {}; + g.Xsiz = (0, i.readUint32)(e, o + 4); + g.Ysiz = (0, i.readUint32)(e, o + 8); + g.XOsiz = (0, i.readUint32)(e, o + 12); + g.YOsiz = (0, i.readUint32)(e, o + 16); + g.XTsiz = (0, i.readUint32)(e, o + 20); + g.YTsiz = (0, i.readUint32)(e, o + 24); + g.XTOsiz = (0, i.readUint32)(e, o + 28); + g.YTOsiz = (0, i.readUint32)(e, o + 32); + const p = (0, i.readUint16)(e, o + 36); + g.Csiz = p; + const m = []; + a = o + 38; + for (let t = 0; t < p; t++) { + const t = { + precision: 1 + (127 & e[a]), + isSigned: !!(128 & e[a]), + XRsiz: e[a + 1], + YRsiz: e[a + 2], + }; + a += 3; + calculateComponentDimensions(t, g); + m.push(t); + } + n.SIZ = g; + n.components = m; + calculateTileGrids(n, m); + n.QCC = []; + n.COC = []; + break; + case 65372: + f = (0, i.readUint16)(e, o); + const b = {}; + a = o + 2; + c = e[a++]; + switch (31 & c) { + case 0: + h = 8; + u = !0; + break; + case 1: + h = 16; + u = !1; + break; + case 2: + h = 16; + u = !0; + break; + default: + throw new Error('Invalid SQcd value ' + c); + } + b.noQuantization = 8 === h; + b.scalarExpounded = u; + b.guardBits = c >> 5; + l = []; + for (; a < f + o; ) { + const t = {}; + if (8 === h) { + t.epsilon = e[a++] >> 3; + t.mu = 0; + } else { + t.epsilon = e[a] >> 3; + t.mu = ((7 & e[a]) << 8) | e[a + 1]; + a += 2; + } + l.push(t); + } + b.SPqcds = l; + if (n.mainHeader) n.QCD = b; + else { + n.currentTile.QCD = b; + n.currentTile.QCC = []; + } + break; + case 65373: + f = (0, i.readUint16)(e, o); + const y = {}; + a = o + 2; + let w; + if (n.SIZ.Csiz < 257) w = e[a++]; + else { + w = (0, i.readUint16)(e, a); + a += 2; + } + c = e[a++]; + switch (31 & c) { + case 0: + h = 8; + u = !0; + break; + case 1: + h = 16; + u = !1; + break; + case 2: + h = 16; + u = !0; + break; + default: + throw new Error('Invalid SQcd value ' + c); + } + y.noQuantization = 8 === h; + y.scalarExpounded = u; + y.guardBits = c >> 5; + l = []; + for (; a < f + o; ) { + const t = {}; + if (8 === h) { + t.epsilon = e[a++] >> 3; + t.mu = 0; + } else { + t.epsilon = e[a] >> 3; + t.mu = ((7 & e[a]) << 8) | e[a + 1]; + a += 2; + } + l.push(t); + } + y.SPqcds = l; + n.mainHeader ? (n.QCC[w] = y) : (n.currentTile.QCC[w] = y); + break; + case 65362: + f = (0, i.readUint16)(e, o); + const S = {}; + a = o + 2; + const x = e[a++]; + S.entropyCoderWithCustomPrecincts = !!(1 & x); + S.sopMarkerUsed = !!(2 & x); + S.ephMarkerUsed = !!(4 & x); + S.progressionOrder = e[a++]; + S.layersCount = (0, i.readUint16)(e, a); + a += 2; + S.multipleComponentTransform = e[a++]; + S.decompositionLevelsCount = e[a++]; + S.xcb = 2 + (15 & e[a++]); + S.ycb = 2 + (15 & e[a++]); + const C = e[a++]; + S.selectiveArithmeticCodingBypass = !!(1 & C); + S.resetContextProbabilities = !!(2 & C); + S.terminationOnEachCodingPass = !!(4 & C); + S.verticallyStripe = !!(8 & C); + S.predictableTermination = !!(16 & C); + S.segmentationSymbolUsed = !!(32 & C); + S.reversibleTransformation = e[a++]; + if (S.entropyCoderWithCustomPrecincts) { + const t = []; + for (; a < f + o; ) { + const r = e[a++]; + t.push({ PPx: 15 & r, PPy: r >> 4 }); + } + S.precinctsSizes = t; + } + const k = []; + S.selectiveArithmeticCodingBypass && + k.push('selectiveArithmeticCodingBypass'); + S.terminationOnEachCodingPass && k.push('terminationOnEachCodingPass'); + S.verticallyStripe && k.push('verticallyStripe'); + S.predictableTermination && k.push('predictableTermination'); + if (k.length > 0) { + s = !0; + (0, r.warn)(`JPX: Unsupported COD options (${k.join(', ')}).`); + } + if (n.mainHeader) n.COD = S; + else { + n.currentTile.COD = S; + n.currentTile.COC = []; + } + break; + case 65424: + f = (0, i.readUint16)(e, o); + d = {}; + d.index = (0, i.readUint16)(e, o + 2); + d.length = (0, i.readUint32)(e, o + 4); + d.dataEnd = d.length + o - 2; + d.partIndex = e[o + 8]; + d.partsCount = e[o + 9]; + n.mainHeader = !1; + if (0 === d.partIndex) { + d.COD = n.COD; + d.COC = n.COC.slice(0); + d.QCD = n.QCD; + d.QCC = n.QCC.slice(0); + } + n.currentTile = d; + break; + case 65427: + d = n.currentTile; + if (0 === d.partIndex) { + initializeTile(n, d.index); + buildPackets(n); + } + f = d.dataEnd - o; + parseTilePackets(n, e, o, f); + break; + case 65363: + (0, r.warn)('JPX: Codestream code 0xFF53 (COC) is not implemented.'); + case 65365: + case 65367: + case 65368: + case 65380: + f = (0, i.readUint16)(e, o); + break; + default: + throw new Error('Unknown codestream code: ' + t.toString(16)); + } + o += f; + } + } catch (e) { + if (s || this.failOnCorruptedImage) throw new JpxError(e.message); + (0, r.warn)(`JPX: Trying to recover from: "${e.message}".`); + } + this.tiles = (function transformComponents(e) { + const t = e.SIZ, + a = e.components, + r = t.Csiz, + i = []; + for (let t = 0, n = e.tiles.length; t < n; t++) { + const n = e.tiles[t], + s = []; + for (let t = 0; t < r; t++) s[t] = transformTile(e, n, t); + const o = s[0], + c = new Uint8ClampedArray(o.items.length * r), + l = { left: o.left, top: o.top, width: o.width, height: o.height, items: c }; + let h, + u, + d, + f, + g, + p, + m, + b = 0; + if (n.codingStyleDefaultParameters.multipleComponentTransform) { + const e = 4 === r, + t = s[0].items, + i = s[1].items, + o = s[2].items, + l = e ? s[3].items : null; + h = a[0].precision - 8; + u = 0.5 + (128 << h); + const y = n.components[0], + w = r - 3; + f = t.length; + if (y.codingStyleParameters.reversibleTransformation) + for (d = 0; d < f; d++, b += w) { + g = t[d] + u; + p = i[d]; + m = o[d]; + const e = g - ((m + p) >> 2); + c[b++] = (e + m) >> h; + c[b++] = e >> h; + c[b++] = (e + p) >> h; + } + else + for (d = 0; d < f; d++, b += w) { + g = t[d] + u; + p = i[d]; + m = o[d]; + c[b++] = (g + 1.402 * m) >> h; + c[b++] = (g - 0.34413 * p - 0.71414 * m) >> h; + c[b++] = (g + 1.772 * p) >> h; + } + if (e) for (d = 0, b = 3; d < f; d++, b += 4) c[b] = (l[d] + u) >> h; + } else + for (let e = 0; e < r; e++) { + const t = s[e].items; + h = a[e].precision - 8; + u = 0.5 + (128 << h); + for (b = e, d = 0, f = t.length; d < f; d++) { + c[b] = (t[d] + u) >> h; + b += r; + } + } + i.push(l); + } + return i; + })(n); + this.width = n.SIZ.Xsiz - n.SIZ.XOsiz; + this.height = n.SIZ.Ysiz - n.SIZ.YOsiz; + this.componentsCount = n.SIZ.Csiz; + } + }; + function calculateComponentDimensions(e, t) { + e.x0 = Math.ceil(t.XOsiz / e.XRsiz); + e.x1 = Math.ceil(t.Xsiz / e.XRsiz); + e.y0 = Math.ceil(t.YOsiz / e.YRsiz); + e.y1 = Math.ceil(t.Ysiz / e.YRsiz); + e.width = e.x1 - e.x0; + e.height = e.y1 - e.y0; + } + function calculateTileGrids(e, t) { + const a = e.SIZ, + r = []; + let i; + const n = Math.ceil((a.Xsiz - a.XTOsiz) / a.XTsiz), + s = Math.ceil((a.Ysiz - a.YTOsiz) / a.YTsiz); + for (let e = 0; e < s; e++) + for (let t = 0; t < n; t++) { + i = {}; + i.tx0 = Math.max(a.XTOsiz + t * a.XTsiz, a.XOsiz); + i.ty0 = Math.max(a.YTOsiz + e * a.YTsiz, a.YOsiz); + i.tx1 = Math.min(a.XTOsiz + (t + 1) * a.XTsiz, a.Xsiz); + i.ty1 = Math.min(a.YTOsiz + (e + 1) * a.YTsiz, a.Ysiz); + i.width = i.tx1 - i.tx0; + i.height = i.ty1 - i.ty0; + i.components = []; + r.push(i); + } + e.tiles = r; + for (let e = 0, n = a.Csiz; e < n; e++) { + const a = t[e]; + for (let t = 0, n = r.length; t < n; t++) { + const n = {}; + i = r[t]; + n.tcx0 = Math.ceil(i.tx0 / a.XRsiz); + n.tcy0 = Math.ceil(i.ty0 / a.YRsiz); + n.tcx1 = Math.ceil(i.tx1 / a.XRsiz); + n.tcy1 = Math.ceil(i.ty1 / a.YRsiz); + n.width = n.tcx1 - n.tcx0; + n.height = n.tcy1 - n.tcy0; + i.components[e] = n; + } + } + } + function getBlocksDimensions(e, t, a) { + const r = t.codingStyleParameters, + i = {}; + if (r.entropyCoderWithCustomPrecincts) { + i.PPx = r.precinctsSizes[a].PPx; + i.PPy = r.precinctsSizes[a].PPy; + } else { + i.PPx = 15; + i.PPy = 15; + } + i.xcb_ = a > 0 ? Math.min(r.xcb, i.PPx - 1) : Math.min(r.xcb, i.PPx); + i.ycb_ = a > 0 ? Math.min(r.ycb, i.PPy - 1) : Math.min(r.ycb, i.PPy); + return i; + } + function buildPrecincts(e, t, a) { + const r = 1 << a.PPx, + i = 1 << a.PPy, + n = 0 === t.resLevel, + s = 1 << (a.PPx + (n ? 0 : -1)), + o = 1 << (a.PPy + (n ? 0 : -1)), + c = t.trx1 > t.trx0 ? Math.ceil(t.trx1 / r) - Math.floor(t.trx0 / r) : 0, + l = t.try1 > t.try0 ? Math.ceil(t.try1 / i) - Math.floor(t.try0 / i) : 0, + h = c * l; + t.precinctParameters = { + precinctWidth: r, + precinctHeight: i, + numprecinctswide: c, + numprecinctshigh: l, + numprecincts: h, + precinctWidthInSubband: s, + precinctHeightInSubband: o, + }; + } + function buildCodeblocks(e, t, a) { + const r = a.xcb_, + i = a.ycb_, + n = 1 << r, + s = 1 << i, + o = t.tbx0 >> r, + c = t.tby0 >> i, + l = (t.tbx1 + n - 1) >> r, + h = (t.tby1 + s - 1) >> i, + u = t.resolution.precinctParameters, + d = [], + f = []; + let g, p, m, b; + for (p = c; p < h; p++) + for (g = o; g < l; g++) { + m = { + cbx: g, + cby: p, + tbx0: n * g, + tby0: s * p, + tbx1: n * (g + 1), + tby1: s * (p + 1), + }; + m.tbx0_ = Math.max(t.tbx0, m.tbx0); + m.tby0_ = Math.max(t.tby0, m.tby0); + m.tbx1_ = Math.min(t.tbx1, m.tbx1); + m.tby1_ = Math.min(t.tby1, m.tby1); + b = + Math.floor((m.tbx0_ - t.tbx0) / u.precinctWidthInSubband) + + Math.floor((m.tby0_ - t.tby0) / u.precinctHeightInSubband) * u.numprecinctswide; + m.precinctNumber = b; + m.subbandType = t.type; + m.Lblock = 3; + if (m.tbx1_ <= m.tbx0_ || m.tby1_ <= m.tby0_) continue; + d.push(m); + let e = f[b]; + if (void 0 !== e) { + g < e.cbxMin ? (e.cbxMin = g) : g > e.cbxMax && (e.cbxMax = g); + p < e.cbyMin ? (e.cbxMin = p) : p > e.cbyMax && (e.cbyMax = p); + } else f[b] = e = { cbxMin: g, cbyMin: p, cbxMax: g, cbyMax: p }; + m.precinct = e; + } + t.codeblockParameters = { + codeblockWidth: r, + codeblockHeight: i, + numcodeblockwide: l - o + 1, + numcodeblockhigh: h - c + 1, + }; + t.codeblocks = d; + t.precincts = f; + } + function createPacket(e, t, a) { + const r = [], + i = e.subbands; + for (let e = 0, a = i.length; e < a; e++) { + const a = i[e].codeblocks; + for (let e = 0, i = a.length; e < i; e++) { + const i = a[e]; + i.precinctNumber === t && r.push(i); + } + } + return { layerNumber: a, codeblocks: r }; + } + function LayerResolutionComponentPositionIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz; + let s = 0; + for (let e = 0; e < n; e++) + s = Math.max(s, r.components[e].codingStyleParameters.decompositionLevelsCount); + let o = 0, + c = 0, + l = 0, + h = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; o < i; o++) { + for (; c <= s; c++) { + for (; l < n; l++) { + const e = r.components[l]; + if (c > e.codingStyleParameters.decompositionLevelsCount) continue; + const t = e.resolutions[c], + a = t.precinctParameters.numprecincts; + for (; h < a; ) { + const e = createPacket(t, h, o); + h++; + return e; + } + h = 0; + } + l = 0; + } + c = 0; + } + throw new JpxError('Out of packets'); + }; + } + function ResolutionLayerComponentPositionIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz; + let s = 0; + for (let e = 0; e < n; e++) + s = Math.max(s, r.components[e].codingStyleParameters.decompositionLevelsCount); + let o = 0, + c = 0, + l = 0, + h = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; o <= s; o++) { + for (; c < i; c++) { + for (; l < n; l++) { + const e = r.components[l]; + if (o > e.codingStyleParameters.decompositionLevelsCount) continue; + const t = e.resolutions[o], + a = t.precinctParameters.numprecincts; + for (; h < a; ) { + const e = createPacket(t, h, c); + h++; + return e; + } + h = 0; + } + l = 0; + } + c = 0; + } + throw new JpxError('Out of packets'); + }; + } + function ResolutionPositionComponentLayerIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz; + let s, + o, + c, + l, + h = 0; + for (c = 0; c < n; c++) { + const e = r.components[c]; + h = Math.max(h, e.codingStyleParameters.decompositionLevelsCount); + } + const u = new Int32Array(h + 1); + for (o = 0; o <= h; ++o) { + let e = 0; + for (c = 0; c < n; ++c) { + const t = r.components[c].resolutions; + o < t.length && (e = Math.max(e, t[o].precinctParameters.numprecincts)); + } + u[o] = e; + } + s = 0; + o = 0; + c = 0; + l = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; o <= h; o++) { + for (; l < u[o]; l++) { + for (; c < n; c++) { + const e = r.components[c]; + if (o > e.codingStyleParameters.decompositionLevelsCount) continue; + const t = e.resolutions[o], + a = t.precinctParameters.numprecincts; + if (!(l >= a)) { + for (; s < i; ) { + const e = createPacket(t, l, s); + s++; + return e; + } + s = 0; + } + } + c = 0; + } + l = 0; + } + throw new JpxError('Out of packets'); + }; + } + function PositionComponentResolutionLayerIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz, + s = getPrecinctSizesInImageScale(r), + o = s; + let c = 0, + l = 0, + h = 0, + u = 0, + d = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; d < o.maxNumHigh; d++) { + for (; u < o.maxNumWide; u++) { + for (; h < n; h++) { + const e = r.components[h], + t = e.codingStyleParameters.decompositionLevelsCount; + for (; l <= t; l++) { + const t = e.resolutions[l], + a = s.components[h].resolutions[l], + r = getPrecinctIndexIfExist(u, d, a, o, t); + if (null !== r) { + for (; c < i; ) { + const e = createPacket(t, r, c); + c++; + return e; + } + c = 0; + } + } + l = 0; + } + h = 0; + } + u = 0; + } + throw new JpxError('Out of packets'); + }; + } + function ComponentPositionResolutionLayerIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz, + s = getPrecinctSizesInImageScale(r); + let o = 0, + c = 0, + l = 0, + h = 0, + u = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; l < n; ++l) { + const e = r.components[l], + t = s.components[l], + a = e.codingStyleParameters.decompositionLevelsCount; + for (; u < t.maxNumHigh; u++) { + for (; h < t.maxNumWide; h++) { + for (; c <= a; c++) { + const a = e.resolutions[c], + r = t.resolutions[c], + n = getPrecinctIndexIfExist(h, u, r, t, a); + if (null !== n) { + for (; o < i; ) { + const e = createPacket(a, n, o); + o++; + return e; + } + o = 0; + } + } + c = 0; + } + h = 0; + } + u = 0; + } + throw new JpxError('Out of packets'); + }; + } + function getPrecinctIndexIfExist(e, t, a, r, i) { + const n = e * r.minWidth, + s = t * r.minHeight; + if (n % a.width != 0 || s % a.height != 0) return null; + const o = (s / a.width) * i.precinctParameters.numprecinctswide; + return n / a.height + o; + } + function getPrecinctSizesInImageScale(e) { + const t = e.components.length; + let a = Number.MAX_VALUE, + r = Number.MAX_VALUE, + i = 0, + n = 0; + const s = new Array(t); + for (let o = 0; o < t; o++) { + const t = e.components[o], + c = t.codingStyleParameters.decompositionLevelsCount, + l = new Array(c + 1); + let h = Number.MAX_VALUE, + u = Number.MAX_VALUE, + d = 0, + f = 0, + g = 1; + for (let e = c; e >= 0; --e) { + const a = t.resolutions[e], + r = g * a.precinctParameters.precinctWidth, + i = g * a.precinctParameters.precinctHeight; + h = Math.min(h, r); + u = Math.min(u, i); + d = Math.max(d, a.precinctParameters.numprecinctswide); + f = Math.max(f, a.precinctParameters.numprecinctshigh); + l[e] = { width: r, height: i }; + g <<= 1; + } + a = Math.min(a, h); + r = Math.min(r, u); + i = Math.max(i, d); + n = Math.max(n, f); + s[o] = { resolutions: l, minWidth: h, minHeight: u, maxNumWide: d, maxNumHigh: f }; + } + return { components: s, minWidth: a, minHeight: r, maxNumWide: i, maxNumHigh: n }; + } + function buildPackets(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = t.Csiz; + for (let e = 0; e < i; e++) { + const t = r.components[e], + a = t.codingStyleParameters.decompositionLevelsCount, + i = [], + n = []; + for (let e = 0; e <= a; e++) { + const r = getBlocksDimensions(0, t, e), + s = {}, + o = 1 << (a - e); + s.trx0 = Math.ceil(t.tcx0 / o); + s.try0 = Math.ceil(t.tcy0 / o); + s.trx1 = Math.ceil(t.tcx1 / o); + s.try1 = Math.ceil(t.tcy1 / o); + s.resLevel = e; + buildPrecincts(0, s, r); + i.push(s); + let c; + if (0 === e) { + c = {}; + c.type = 'LL'; + c.tbx0 = Math.ceil(t.tcx0 / o); + c.tby0 = Math.ceil(t.tcy0 / o); + c.tbx1 = Math.ceil(t.tcx1 / o); + c.tby1 = Math.ceil(t.tcy1 / o); + c.resolution = s; + buildCodeblocks(0, c, r); + n.push(c); + s.subbands = [c]; + } else { + const i = 1 << (a - e + 1), + o = []; + c = {}; + c.type = 'HL'; + c.tbx0 = Math.ceil(t.tcx0 / i - 0.5); + c.tby0 = Math.ceil(t.tcy0 / i); + c.tbx1 = Math.ceil(t.tcx1 / i - 0.5); + c.tby1 = Math.ceil(t.tcy1 / i); + c.resolution = s; + buildCodeblocks(0, c, r); + n.push(c); + o.push(c); + c = {}; + c.type = 'LH'; + c.tbx0 = Math.ceil(t.tcx0 / i); + c.tby0 = Math.ceil(t.tcy0 / i - 0.5); + c.tbx1 = Math.ceil(t.tcx1 / i); + c.tby1 = Math.ceil(t.tcy1 / i - 0.5); + c.resolution = s; + buildCodeblocks(0, c, r); + n.push(c); + o.push(c); + c = {}; + c.type = 'HH'; + c.tbx0 = Math.ceil(t.tcx0 / i - 0.5); + c.tby0 = Math.ceil(t.tcy0 / i - 0.5); + c.tbx1 = Math.ceil(t.tcx1 / i - 0.5); + c.tby1 = Math.ceil(t.tcy1 / i - 0.5); + c.resolution = s; + buildCodeblocks(0, c, r); + n.push(c); + o.push(c); + s.subbands = o; + } + } + t.resolutions = i; + t.subbands = n; + } + const n = r.codingStyleDefaultParameters.progressionOrder; + switch (n) { + case 0: + r.packetsIterator = new LayerResolutionComponentPositionIterator(e); + break; + case 1: + r.packetsIterator = new ResolutionLayerComponentPositionIterator(e); + break; + case 2: + r.packetsIterator = new ResolutionPositionComponentLayerIterator(e); + break; + case 3: + r.packetsIterator = new PositionComponentResolutionLayerIterator(e); + break; + case 4: + r.packetsIterator = new ComponentPositionResolutionLayerIterator(e); + break; + default: + throw new JpxError(`Unsupported progression order ${n}`); + } + } + function parseTilePackets(e, t, a, r) { + let n, + s = 0, + o = 0, + c = !1; + function readBits(e) { + for (; o < e; ) { + const e = t[a + s]; + s++; + if (c) { + n = (n << 7) | e; + o += 7; + c = !1; + } else { + n = (n << 8) | e; + o += 8; + } + 255 === e && (c = !0); + } + o -= e; + return (n >>> o) & ((1 << e) - 1); + } + function skipMarkerIfEqual(e) { + if (255 === t[a + s - 1] && t[a + s] === e) { + skipBytes(1); + return !0; + } + if (255 === t[a + s] && t[a + s + 1] === e) { + skipBytes(2); + return !0; + } + return !1; + } + function skipBytes(e) { + s += e; + } + function alignToByte() { + o = 0; + if (c) { + s++; + c = !1; + } + } + function readCodingpasses() { + if (0 === readBits(1)) return 1; + if (0 === readBits(1)) return 2; + let e = readBits(2); + if (e < 3) return e + 3; + e = readBits(5); + if (e < 31) return e + 6; + e = readBits(7); + return e + 37; + } + const l = e.currentTile.index, + h = e.tiles[l], + u = e.COD.sopMarkerUsed, + d = e.COD.ephMarkerUsed, + f = h.packetsIterator; + for (; s < r; ) { + alignToByte(); + u && skipMarkerIfEqual(145) && skipBytes(4); + const e = f.nextPacket(); + if (!readBits(1)) continue; + const r = e.layerNumber, + n = []; + let o; + for (let t = 0, a = e.codeblocks.length; t < a; t++) { + o = e.codeblocks[t]; + let a = o.precinct; + const s = o.cbx - a.cbxMin, + c = o.cby - a.cbyMin; + let l, + h, + u = !1, + d = !1; + if (void 0 !== o.included) u = !!readBits(1); + else { + a = o.precinct; + let e; + if (void 0 !== a.inclusionTree) e = a.inclusionTree; + else { + const t = a.cbxMax - a.cbxMin + 1, + i = a.cbyMax - a.cbyMin + 1; + e = new InclusionTree(t, i, r); + h = new TagTree(t, i); + a.inclusionTree = e; + a.zeroBitPlanesTree = h; + for (let e = 0; e < r; e++) + if (0 !== readBits(1)) throw new JpxError('Invalid tag tree'); + } + if (e.reset(s, c, r)) + for (;;) { + if (!readBits(1)) { + e.incrementValue(r); + break; + } + l = !e.nextLevel(); + if (l) { + o.included = !0; + u = d = !0; + break; + } + } + } + if (!u) continue; + if (d) { + h = a.zeroBitPlanesTree; + h.reset(s, c); + for (;;) + if (readBits(1)) { + l = !h.nextLevel(); + if (l) break; + } else h.incrementValue(); + o.zeroBitPlanes = h.value; + } + const f = readCodingpasses(); + for (; readBits(1); ) o.Lblock++; + const g = (0, i.log2)(f), + p = readBits((f < 1 << g ? g - 1 : g) + o.Lblock); + n.push({ codeblock: o, codingpasses: f, dataLength: p }); + } + alignToByte(); + d && skipMarkerIfEqual(146); + for (; n.length > 0; ) { + const e = n.shift(); + o = e.codeblock; + void 0 === o.data && (o.data = []); + o.data.push({ + data: t, + start: a + s, + end: a + s + e.dataLength, + codingpasses: e.codingpasses, + }); + s += e.dataLength; + } + } + return s; + } + function copyCoefficients(e, t, a, r, i, s, o, c, l) { + const h = r.tbx0, + u = r.tby0, + d = r.tbx1 - r.tbx0, + f = r.codeblocks, + g = 'H' === r.type.charAt(0) ? 1 : 0, + p = 'H' === r.type.charAt(1) ? t : 0; + for (let a = 0, m = f.length; a < m; ++a) { + const m = f[a], + b = m.tbx1_ - m.tbx0_, + y = m.tby1_ - m.tby0_; + if (0 === b || 0 === y) continue; + if (void 0 === m.data) continue; + const w = new BitModel(b, y, m.subbandType, m.zeroBitPlanes, s); + let S = 2; + const x = m.data; + let C, + k, + v, + F = 0, + O = 0; + for (C = 0, k = x.length; C < k; C++) { + v = x[C]; + F += v.end - v.start; + O += v.codingpasses; + } + const T = new Uint8Array(F); + let M = 0; + for (C = 0, k = x.length; C < k; C++) { + v = x[C]; + const e = v.data.subarray(v.start, v.end); + T.set(e, M); + M += e.length; + } + const E = new n.ArithmeticDecoder(T, 0, F); + w.setDecoder(E); + for (C = 0; C < O; C++) { + switch (S) { + case 0: + w.runSignificancePropagationPass(); + break; + case 1: + w.runMagnitudeRefinementPass(); + break; + case 2: + w.runCleanupPass(); + c && w.checkSegmentationSymbol(); + } + l && w.reset(); + S = (S + 1) % 3; + } + let D = m.tbx0_ - h + (m.tby0_ - u) * d; + const N = w.coefficentsSign, + R = w.coefficentsMagnitude, + L = w.bitsDecoded, + _ = o ? 0 : 0.5; + let $, j, U; + M = 0; + const X = 'LL' !== r.type; + for (C = 0; C < y; C++) { + const a = 2 * ((D / d) | 0) * (t - d) + g + p; + for ($ = 0; $ < b; $++) { + j = R[M]; + if (0 !== j) { + j = (j + _) * i; + 0 !== N[M] && (j = -j); + U = L[M]; + const t = X ? a + (D << 1) : D; + e[t] = o && U >= s ? j : j * (1 << (s - U)); + } + D++; + M++; + } + D += d - b; + } + } + } + function transformTile(e, t, a) { + const r = t.components[a], + i = r.codingStyleParameters, + n = r.quantizationParameters, + o = i.decompositionLevelsCount, + c = n.SPqcds, + l = n.scalarExpounded, + h = n.guardBits, + u = i.segmentationSymbolUsed, + d = i.resetContextProbabilities, + f = e.components[a].precision, + g = i.reversibleTransformation, + p = g ? new ReversibleTransform() : new IrreversibleTransform(), + m = []; + let b = 0; + for (let e = 0; e <= o; e++) { + const t = r.resolutions[e], + a = t.trx1 - t.trx0, + i = t.try1 - t.try0, + n = new Float32Array(a * i); + for (let r = 0, i = t.subbands.length; r < i; r++) { + let i, o; + if (l) { + i = c[b].mu; + o = c[b].epsilon; + b++; + } else { + i = c[0].mu; + o = c[0].epsilon + (e > 0 ? 1 - e : 0); + } + const p = t.subbands[r], + m = s[p.type]; + copyCoefficients( + n, + a, + 0, + p, + g ? 1 : 2 ** (f + m - o) * (1 + i / 2048), + h + o - 1, + g, + u, + d, + ); + } + m.push({ width: a, height: i, items: n }); + } + const y = p.calculate(m, r.tcx0, r.tcy0); + return { left: r.tcx0, top: r.tcy0, width: y.width, height: y.height, items: y.items }; + } + function initializeTile(e, t) { + const a = e.SIZ.Csiz, + r = e.tiles[t]; + for (let t = 0; t < a; t++) { + const a = r.components[t], + i = void 0 !== e.currentTile.QCC[t] ? e.currentTile.QCC[t] : e.currentTile.QCD; + a.quantizationParameters = i; + const n = void 0 !== e.currentTile.COC[t] ? e.currentTile.COC[t] : e.currentTile.COD; + a.codingStyleParameters = n; + } + r.codingStyleDefaultParameters = e.currentTile.COD; + } + class TagTree { + constructor(e, t) { + const a = (0, i.log2)(Math.max(e, t)) + 1; + this.levels = []; + for (let r = 0; r < a; r++) { + const a = { width: e, height: t, items: [] }; + this.levels.push(a); + e = Math.ceil(e / 2); + t = Math.ceil(t / 2); + } + } + reset(e, t) { + let a, + r = 0, + i = 0; + for (; r < this.levels.length; ) { + a = this.levels[r]; + const n = e + t * a.width; + if (void 0 !== a.items[n]) { + i = a.items[n]; + break; + } + a.index = n; + e >>= 1; + t >>= 1; + r++; + } + r--; + a = this.levels[r]; + a.items[a.index] = i; + this.currentLevel = r; + delete this.value; + } + incrementValue() { + const e = this.levels[this.currentLevel]; + e.items[e.index]++; + } + nextLevel() { + let e = this.currentLevel, + t = this.levels[e]; + const a = t.items[t.index]; + e--; + if (e < 0) { + this.value = a; + return !1; + } + this.currentLevel = e; + t = this.levels[e]; + t.items[t.index] = a; + return !0; + } + } + class InclusionTree { + constructor(e, t, a) { + const r = (0, i.log2)(Math.max(e, t)) + 1; + this.levels = []; + for (let i = 0; i < r; i++) { + const r = new Uint8Array(e * t); + for (let e = 0, t = r.length; e < t; e++) r[e] = a; + const i = { width: e, height: t, items: r }; + this.levels.push(i); + e = Math.ceil(e / 2); + t = Math.ceil(t / 2); + } + } + reset(e, t, a) { + let r = 0; + for (; r < this.levels.length; ) { + const i = this.levels[r], + n = e + t * i.width; + i.index = n; + const s = i.items[n]; + if (255 === s) break; + if (s > a) { + this.currentLevel = r; + this.propagateValues(); + return !1; + } + e >>= 1; + t >>= 1; + r++; + } + this.currentLevel = r - 1; + return !0; + } + incrementValue(e) { + const t = this.levels[this.currentLevel]; + t.items[t.index] = e + 1; + this.propagateValues(); + } + propagateValues() { + let e = this.currentLevel, + t = this.levels[e]; + const a = t.items[t.index]; + for (; --e >= 0; ) { + t = this.levels[e]; + t.items[t.index] = a; + } + } + nextLevel() { + let e = this.currentLevel, + t = this.levels[e]; + const a = t.items[t.index]; + t.items[t.index] = 255; + e--; + if (e < 0) return !1; + this.currentLevel = e; + t = this.levels[e]; + t.items[t.index] = a; + return !0; + } + } + class BitModel { + static UNIFORM_CONTEXT = 17; + static RUNLENGTH_CONTEXT = 18; + static LLAndLHContextsLabel = new Uint8Array([ + 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, + 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, + 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, + ]); + static HLContextLabel = new Uint8Array([ + 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, + 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, + 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, + ]); + static HHContextLabel = new Uint8Array([ + 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, + 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, + 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, + ]); + constructor(e, t, a, r, i) { + this.width = e; + this.height = t; + let n; + n = + 'HH' === a + ? BitModel.HHContextLabel + : 'HL' === a + ? BitModel.HLContextLabel + : BitModel.LLAndLHContextsLabel; + this.contextLabelTable = n; + const s = e * t; + this.neighborsSignificance = new Uint8Array(s); + this.coefficentsSign = new Uint8Array(s); + let o; + o = i > 14 ? new Uint32Array(s) : i > 6 ? new Uint16Array(s) : new Uint8Array(s); + this.coefficentsMagnitude = o; + this.processingFlags = new Uint8Array(s); + const c = new Uint8Array(s); + if (0 !== r) for (let e = 0; e < s; e++) c[e] = r; + this.bitsDecoded = c; + this.reset(); + } + setDecoder(e) { + this.decoder = e; + } + reset() { + this.contexts = new Int8Array(19); + this.contexts[0] = 8; + this.contexts[BitModel.UNIFORM_CONTEXT] = 92; + this.contexts[BitModel.RUNLENGTH_CONTEXT] = 6; + } + setNeighborsSignificance(e, t, a) { + const r = this.neighborsSignificance, + i = this.width, + n = this.height, + s = t > 0, + o = t + 1 < i; + let c; + if (e > 0) { + c = a - i; + s && (r[c - 1] += 16); + o && (r[c + 1] += 16); + r[c] += 4; + } + if (e + 1 < n) { + c = a + i; + s && (r[c - 1] += 16); + o && (r[c + 1] += 16); + r[c] += 4; + } + s && (r[a - 1] += 1); + o && (r[a + 1] += 1); + r[a] |= 128; + } + runSignificancePropagationPass() { + const e = this.decoder, + t = this.width, + a = this.height, + r = this.coefficentsMagnitude, + i = this.coefficentsSign, + n = this.neighborsSignificance, + s = this.processingFlags, + o = this.contexts, + c = this.contextLabelTable, + l = this.bitsDecoded; + for (let h = 0; h < a; h += 4) + for (let u = 0; u < t; u++) { + let d = h * t + u; + for (let f = 0; f < 4; f++, d += t) { + const t = h + f; + if (t >= a) break; + s[d] &= -2; + if (r[d] || !n[d]) continue; + const g = c[n[d]]; + if (e.readBit(o, g)) { + const e = this.decodeSignBit(t, u, d); + i[d] = e; + r[d] = 1; + this.setNeighborsSignificance(t, u, d); + s[d] |= 2; + } + l[d]++; + s[d] |= 1; + } + } + } + decodeSignBit(e, t, a) { + const r = this.width, + i = this.height, + n = this.coefficentsMagnitude, + s = this.coefficentsSign; + let o, c, l, h, u, d; + h = t > 0 && 0 !== n[a - 1]; + if (t + 1 < r && 0 !== n[a + 1]) { + l = s[a + 1]; + if (h) { + c = s[a - 1]; + o = 1 - l - c; + } else o = 1 - l - l; + } else if (h) { + c = s[a - 1]; + o = 1 - c - c; + } else o = 0; + const f = 3 * o; + h = e > 0 && 0 !== n[a - r]; + if (e + 1 < i && 0 !== n[a + r]) { + l = s[a + r]; + if (h) { + c = s[a - r]; + o = 1 - l - c + f; + } else o = 1 - l - l + f; + } else if (h) { + c = s[a - r]; + o = 1 - c - c + f; + } else o = f; + if (o >= 0) { + u = 9 + o; + d = this.decoder.readBit(this.contexts, u); + } else { + u = 9 - o; + d = 1 ^ this.decoder.readBit(this.contexts, u); + } + return d; + } + runMagnitudeRefinementPass() { + const e = this.decoder, + t = this.width, + a = this.height, + r = this.coefficentsMagnitude, + i = this.neighborsSignificance, + n = this.contexts, + s = this.bitsDecoded, + o = this.processingFlags, + c = t * a, + l = 4 * t; + for (let a, h = 0; h < c; h = a) { + a = Math.min(c, h + l); + for (let c = 0; c < t; c++) + for (let l = h + c; l < a; l += t) { + if (!r[l] || 0 != (1 & o[l])) continue; + let t = 16; + if (0 != (2 & o[l])) { + o[l] ^= 2; + t = 0 === (127 & i[l]) ? 15 : 14; + } + const a = e.readBit(n, t); + r[l] = (r[l] << 1) | a; + s[l]++; + o[l] |= 1; + } + } + } + runCleanupPass() { + const e = this.decoder, + t = this.width, + a = this.height, + r = this.neighborsSignificance, + i = this.coefficentsMagnitude, + n = this.coefficentsSign, + s = this.contexts, + o = this.contextLabelTable, + c = this.bitsDecoded, + l = this.processingFlags, + h = t, + u = 2 * t, + d = 3 * t; + let f; + for (let g = 0; g < a; g = f) { + f = Math.min(g + 4, a); + const p = g * t, + m = g + 3 < a; + for (let a = 0; a < t; a++) { + const b = p + a; + let y, + w = 0, + S = b, + x = g; + if ( + m && + 0 === l[b] && + 0 === l[b + h] && + 0 === l[b + u] && + 0 === l[b + d] && + 0 === r[b] && + 0 === r[b + h] && + 0 === r[b + u] && + 0 === r[b + d] + ) { + if (!e.readBit(s, BitModel.RUNLENGTH_CONTEXT)) { + c[b]++; + c[b + h]++; + c[b + u]++; + c[b + d]++; + continue; + } + w = + (e.readBit(s, BitModel.UNIFORM_CONTEXT) << 1) | + e.readBit(s, BitModel.UNIFORM_CONTEXT); + if (0 !== w) { + x = g + w; + S += w * t; + } + y = this.decodeSignBit(x, a, S); + n[S] = y; + i[S] = 1; + this.setNeighborsSignificance(x, a, S); + l[S] |= 2; + S = b; + for (let e = g; e <= x; e++, S += t) c[S]++; + w++; + } + for (x = g + w; x < f; x++, S += t) { + if (i[S] || 0 != (1 & l[S])) continue; + const t = o[r[S]]; + if (1 === e.readBit(s, t)) { + y = this.decodeSignBit(x, a, S); + n[S] = y; + i[S] = 1; + this.setNeighborsSignificance(x, a, S); + l[S] |= 2; + } + c[S]++; + } + } + } + } + checkSegmentationSymbol() { + const e = this.decoder, + t = this.contexts; + if ( + 10 !== + ((e.readBit(t, BitModel.UNIFORM_CONTEXT) << 3) | + (e.readBit(t, BitModel.UNIFORM_CONTEXT) << 2) | + (e.readBit(t, BitModel.UNIFORM_CONTEXT) << 1) | + e.readBit(t, BitModel.UNIFORM_CONTEXT)) + ) + throw new JpxError('Invalid segmentation symbol'); + } + } + class Transform { + constructor() { + this.constructor === Transform && (0, r.unreachable)('Cannot initialize Transform.'); + } + calculate(e, t, a) { + let r = e[0]; + for (let i = 1, n = e.length; i < n; i++) r = this.iterate(r, e[i], t, a); + return r; + } + extend(e, t, a) { + let r = t - 1, + i = t + 1, + n = t + a - 2, + s = t + a; + e[r--] = e[i++]; + e[s++] = e[n--]; + e[r--] = e[i++]; + e[s++] = e[n--]; + e[r--] = e[i++]; + e[s++] = e[n--]; + e[r] = e[i]; + e[s] = e[n]; + } + filter(e, t, a) { + (0, r.unreachable)('Abstract method `filter` called'); + } + iterate(e, t, a, r) { + const i = e.width, + n = e.height; + let s = e.items; + const o = t.width, + c = t.height, + l = t.items; + let h, u, d, f, g, p; + for (d = 0, h = 0; h < n; h++) { + f = 2 * h * o; + for (u = 0; u < i; u++, d++, f += 2) l[f] = s[d]; + } + s = e.items = null; + const m = new Float32Array(o + 8); + if (1 === o) { + if (0 != (1 & a)) for (p = 0, d = 0; p < c; p++, d += o) l[d] *= 0.5; + } else + for (p = 0, d = 0; p < c; p++, d += o) { + m.set(l.subarray(d, d + o), 4); + this.extend(m, 4, o); + this.filter(m, 4, o); + l.set(m.subarray(4, 4 + o), d); + } + let b = 16; + const y = []; + for (h = 0; h < b; h++) y.push(new Float32Array(c + 8)); + let w, + S = 0; + e = 4 + c; + if (1 === c) { + if (0 != (1 & r)) for (g = 0; g < o; g++) l[g] *= 0.5; + } else + for (g = 0; g < o; g++) { + if (0 === S) { + b = Math.min(o - g, b); + for (d = g, f = 4; f < e; d += o, f++) + for (w = 0; w < b; w++) y[w][f] = l[d + w]; + S = b; + } + S--; + const t = y[S]; + this.extend(t, 4, c); + this.filter(t, 4, c); + if (0 === S) { + d = g - b + 1; + for (f = 4; f < e; d += o, f++) for (w = 0; w < b; w++) l[d + w] = y[w][f]; + } + } + return { width: o, height: c, items: l }; + } + } + class IrreversibleTransform extends Transform { + filter(e, t, a) { + const r = a >> 1; + let i, n, s, o; + const c = -1.586134342059924, + l = -0.052980118572961, + h = 0.882911075530934, + u = 0.443506852043971, + d = 1.230174104914001; + i = (t |= 0) - 3; + for (n = r + 4; n--; i += 2) e[i] *= 0.8128930661159609; + i = t - 2; + s = u * e[i - 1]; + for (n = r + 3; n--; i += 2) { + o = u * e[i + 1]; + e[i] = d * e[i] - s - o; + if (!n--) break; + i += 2; + s = u * e[i + 1]; + e[i] = d * e[i] - s - o; + } + i = t - 1; + s = h * e[i - 1]; + for (n = r + 2; n--; i += 2) { + o = h * e[i + 1]; + e[i] -= s + o; + if (!n--) break; + i += 2; + s = h * e[i + 1]; + e[i] -= s + o; + } + i = t; + s = l * e[i - 1]; + for (n = r + 1; n--; i += 2) { + o = l * e[i + 1]; + e[i] -= s + o; + if (!n--) break; + i += 2; + s = l * e[i + 1]; + e[i] -= s + o; + } + if (0 !== r) { + i = t + 1; + s = c * e[i - 1]; + for (n = r; n--; i += 2) { + o = c * e[i + 1]; + e[i] -= s + o; + if (!n--) break; + i += 2; + s = c * e[i + 1]; + e[i] -= s + o; + } + } + } + } + class ReversibleTransform extends Transform { + filter(e, t, a) { + const r = a >> 1; + let i, n; + for (i = t |= 0, n = r + 1; n--; i += 2) e[i] -= (e[i - 1] + e[i + 1] + 2) >> 2; + for (i = t + 1, n = r; n--; i += 2) e[i] += (e[i - 1] + e[i + 1]) >> 1; + } + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.LZWStream = void 0; + var r = a(18); + class LZWStream extends r.DecodeStream { + constructor(e, t, a) { + super(t); + this.str = e; + this.dict = e.dict; + this.cachedData = 0; + this.bitsCached = 0; + const r = 4096, + i = { + earlyChange: a, + codeLength: 9, + nextCode: 258, + dictionaryValues: new Uint8Array(r), + dictionaryLengths: new Uint16Array(r), + dictionaryPrevCodes: new Uint16Array(r), + currentSequence: new Uint8Array(r), + currentSequenceLength: 0, + }; + for (let e = 0; e < 256; ++e) { + i.dictionaryValues[e] = e; + i.dictionaryLengths[e] = 1; + } + this.lzwState = i; + } + readBits(e) { + let t = this.bitsCached, + a = this.cachedData; + for (; t < e; ) { + const e = this.str.getByte(); + if (-1 === e) { + this.eof = !0; + return null; + } + a = (a << 8) | e; + t += 8; + } + this.bitsCached = t -= e; + this.cachedData = a; + this.lastCode = null; + return (a >>> t) & ((1 << e) - 1); + } + readBlock() { + let e, + t, + a, + r = 1024; + const i = this.lzwState; + if (!i) return; + const n = i.earlyChange; + let s = i.nextCode; + const o = i.dictionaryValues, + c = i.dictionaryLengths, + l = i.dictionaryPrevCodes; + let h = i.codeLength, + u = i.prevCode; + const d = i.currentSequence; + let f = i.currentSequenceLength, + g = 0, + p = this.bufferLength, + m = this.ensureBuffer(this.bufferLength + r); + for (e = 0; e < 512; e++) { + const e = this.readBits(h), + i = f > 0; + if (e < 256) { + d[0] = e; + f = 1; + } else { + if (!(e >= 258)) { + if (256 === e) { + h = 9; + s = 258; + f = 0; + continue; + } + this.eof = !0; + delete this.lzwState; + break; + } + if (e < s) { + f = c[e]; + for (t = f - 1, a = e; t >= 0; t--) { + d[t] = o[a]; + a = l[a]; + } + } else d[f++] = d[0]; + } + if (i) { + l[s] = u; + c[s] = c[u] + 1; + o[s] = d[0]; + s++; + h = + (s + n) & (s + n - 1) + ? h + : 0 | Math.min(Math.log(s + n) / 0.6931471805599453 + 1, 12); + } + u = e; + g += f; + if (r < g) { + do { + r += 512; + } while (r < g); + m = this.ensureBuffer(this.bufferLength + r); + } + for (t = 0; t < f; t++) m[p++] = d[t]; + } + i.nextCode = s; + i.codeLength = h; + i.prevCode = u; + i.currentSequenceLength = f; + this.bufferLength = p; + } + } + t.LZWStream = LZWStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PredictorStream = void 0; + var r = a(18), + i = a(4), + n = a(2); + class PredictorStream extends r.DecodeStream { + constructor(e, t, a) { + super(t); + if (!(a instanceof i.Dict)) return e; + const r = (this.predictor = a.get('Predictor') || 1); + if (r <= 1) return e; + if (2 !== r && (r < 10 || r > 15)) + throw new n.FormatError(`Unsupported predictor: ${r}`); + this.readBlock = 2 === r ? this.readBlockTiff : this.readBlockPng; + this.str = e; + this.dict = e.dict; + const s = (this.colors = a.get('Colors') || 1), + o = (this.bits = a.get('BPC', 'BitsPerComponent') || 8), + c = (this.columns = a.get('Columns') || 1); + this.pixBytes = (s * o + 7) >> 3; + this.rowBytes = (c * s * o + 7) >> 3; + return this; + } + readBlockTiff() { + const e = this.rowBytes, + t = this.bufferLength, + a = this.ensureBuffer(t + e), + r = this.bits, + i = this.colors, + n = this.str.getBytes(e); + this.eof = !n.length; + if (this.eof) return; + let s, + o = 0, + c = 0, + l = 0, + h = 0, + u = t; + if (1 === r && 1 === i) + for (s = 0; s < e; ++s) { + let e = n[s] ^ o; + e ^= e >> 1; + e ^= e >> 2; + e ^= e >> 4; + o = (1 & e) << 7; + a[u++] = e; + } + else if (8 === r) { + for (s = 0; s < i; ++s) a[u++] = n[s]; + for (; s < e; ++s) { + a[u] = a[u - i] + n[s]; + u++; + } + } else if (16 === r) { + const t = 2 * i; + for (s = 0; s < t; ++s) a[u++] = n[s]; + for (; s < e; s += 2) { + const e = + ((255 & n[s]) << 8) + + (255 & n[s + 1]) + + ((255 & a[u - t]) << 8) + + (255 & a[u - t + 1]); + a[u++] = (e >> 8) & 255; + a[u++] = 255 & e; + } + } else { + const e = new Uint8Array(i + 1), + u = (1 << r) - 1; + let d = 0, + f = t; + const g = this.columns; + for (s = 0; s < g; ++s) + for (let t = 0; t < i; ++t) { + if (l < r) { + o = (o << 8) | (255 & n[d++]); + l += 8; + } + e[t] = (e[t] + (o >> (l - r))) & u; + l -= r; + c = (c << r) | e[t]; + h += r; + if (h >= 8) { + a[f++] = (c >> (h - 8)) & 255; + h -= 8; + } + } + h > 0 && (a[f++] = (c << (8 - h)) + (o & ((1 << (8 - h)) - 1))); + } + this.bufferLength += e; + } + readBlockPng() { + const e = this.rowBytes, + t = this.pixBytes, + a = this.str.getByte(), + r = this.str.getBytes(e); + this.eof = !r.length; + if (this.eof) return; + const i = this.bufferLength, + s = this.ensureBuffer(i + e); + let o = s.subarray(i - e, i); + 0 === o.length && (o = new Uint8Array(e)); + let c, + l, + h, + u = i; + switch (a) { + case 0: + for (c = 0; c < e; ++c) s[u++] = r[c]; + break; + case 1: + for (c = 0; c < t; ++c) s[u++] = r[c]; + for (; c < e; ++c) { + s[u] = (s[u - t] + r[c]) & 255; + u++; + } + break; + case 2: + for (c = 0; c < e; ++c) s[u++] = (o[c] + r[c]) & 255; + break; + case 3: + for (c = 0; c < t; ++c) s[u++] = (o[c] >> 1) + r[c]; + for (; c < e; ++c) { + s[u] = (((o[c] + s[u - t]) >> 1) + r[c]) & 255; + u++; + } + break; + case 4: + for (c = 0; c < t; ++c) { + l = o[c]; + h = r[c]; + s[u++] = l + h; + } + for (; c < e; ++c) { + l = o[c]; + const e = o[c - t], + a = s[u - t], + i = a + l - e; + let n = i - a; + n < 0 && (n = -n); + let d = i - l; + d < 0 && (d = -d); + let f = i - e; + f < 0 && (f = -f); + h = r[c]; + s[u++] = n <= d && n <= f ? a + h : d <= f ? l + h : e + h; + } + break; + default: + throw new n.FormatError(`Unsupported predictor: ${a}`); + } + this.bufferLength += e; + } + } + t.PredictorStream = PredictorStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.RunLengthStream = void 0; + var r = a(18); + class RunLengthStream extends r.DecodeStream { + constructor(e, t) { + super(t); + this.str = e; + this.dict = e.dict; + } + readBlock() { + const e = this.str.getBytes(2); + if (!e || e.length < 2 || 128 === e[0]) { + this.eof = !0; + return; + } + let t, + a = this.bufferLength, + r = e[0]; + if (r < 128) { + t = this.ensureBuffer(a + r + 1); + t[a++] = e[1]; + if (r > 0) { + const e = this.str.getBytes(r); + t.set(e, a); + a += r; + } + } else { + r = 257 - r; + const i = e[1]; + t = this.ensureBuffer(a + r + 1); + for (let e = 0; e < r; e++) t[a++] = i; + } + this.bufferLength = a; + } + } + t.RunLengthStream = RunLengthStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Font = t.ErrorFont = void 0; + var r = a(2), + i = a(35), + n = a(38), + s = a(40), + o = a(39), + c = a(37), + l = a(41), + h = a(42), + u = a(43), + d = a(44), + f = a(45), + g = a(46), + p = a(14), + m = a(47), + b = a(3), + y = a(8), + w = a(48); + const S = [ + [57344, 63743], + [1048576, 1114109], + ], + x = 1e3, + C = [ + 'ascent', + 'bbox', + 'black', + 'bold', + 'charProcOperatorList', + 'composite', + 'cssFontInfo', + 'data', + 'defaultVMetrics', + 'defaultWidth', + 'descent', + 'fallbackName', + 'fontMatrix', + 'isInvalidPDFjsFont', + 'isType3Font', + 'italic', + 'loadedName', + 'mimetype', + 'missingFile', + 'name', + 'remeasure', + 'subtype', + 'type', + 'vertical', + ], + k = [ + 'cMap', + 'defaultEncoding', + 'differences', + 'isMonospace', + 'isSerifFont', + 'isSymbolicFont', + 'seacMap', + 'toFontChar', + 'toUnicode', + 'vmetrics', + 'widths', + ]; + function adjustWidths(e) { + if (!e.fontMatrix) return; + if (e.fontMatrix[0] === r.FONT_IDENTITY_MATRIX[0]) return; + const t = 0.001 / e.fontMatrix[0], + a = e.widths; + for (const e in a) a[e] *= t; + e.defaultWidth *= t; + } + function amendFallbackToUnicode(e) { + if (!e.fallbackToUnicode) return; + if (e.toUnicode instanceof h.IdentityToUnicodeMap) return; + const t = []; + for (const a in e.fallbackToUnicode) + e.toUnicode.has(a) || (t[a] = e.fallbackToUnicode[a]); + t.length > 0 && e.toUnicode.amend(t); + } + class Glyph { + constructor(e, t, a, r, i, n, s, o, c) { + this.originalCharCode = e; + this.fontChar = t; + this.unicode = a; + this.accent = r; + this.width = i; + this.vmetric = n; + this.operatorListId = s; + this.isSpace = o; + this.isInFont = c; + } + get category() { + return (0, r.shadow)( + this, + 'category', + (0, s.getCharUnicodeCategory)(this.unicode), + !0, + ); + } + } + function int16(e, t) { + return (e << 8) + t; + } + function writeSignedInt16(e, t, a) { + e[t + 1] = a; + e[t] = a >>> 8; + } + function signedInt16(e, t) { + const a = (e << 8) + t; + return 32768 & a ? a - 65536 : a; + } + function string16(e) { + return String.fromCharCode((e >> 8) & 255, 255 & e); + } + function safeString16(e) { + e > 32767 ? (e = 32767) : e < -32768 && (e = -32768); + return String.fromCharCode((e >> 8) & 255, 255 & e); + } + function isTrueTypeCollectionFile(e) { + const t = e.peekBytes(4); + return 'ttcf' === (0, r.bytesToString)(t); + } + function getFontFileType(e, { type: t, subtype: a, composite: i }) { + let n, s; + if ( + (function isTrueTypeFile(e) { + const t = e.peekBytes(4); + return 65536 === (0, b.readUint32)(t, 0) || 'true' === (0, r.bytesToString)(t); + })(e) || + isTrueTypeCollectionFile(e) + ) + n = i ? 'CIDFontType2' : 'TrueType'; + else if ( + (function isOpenTypeFile(e) { + const t = e.peekBytes(4); + return 'OTTO' === (0, r.bytesToString)(t); + })(e) + ) + n = i ? 'CIDFontType2' : 'OpenType'; + else if ( + (function isType1File(e) { + const t = e.peekBytes(2); + return (37 === t[0] && 33 === t[1]) || (128 === t[0] && 1 === t[1]); + })(e) + ) + n = i ? 'CIDFontType0' : 'MMType1' === t ? 'MMType1' : 'Type1'; + else if ( + (function isCFFFile(e) { + const t = e.peekBytes(4); + return t[0] >= 1 && t[3] >= 1 && t[3] <= 4; + })(e) + ) + if (i) { + n = 'CIDFontType0'; + s = 'CIDFontType0C'; + } else { + n = 'MMType1' === t ? 'MMType1' : 'Type1'; + s = 'Type1C'; + } + else { + (0, r.warn)('getFontFileType: Unable to detect correct font file Type/Subtype.'); + n = t; + s = a; + } + return [n, s]; + } + function applyStandardFontGlyphMap(e, t) { + for (const a in t) e[+a] = t[a]; + } + function buildToFontChar(e, t, a) { + const r = []; + let i; + for (let a = 0, n = e.length; a < n; a++) { + i = (0, s.getUnicodeForGlyph)(e[a], t); + -1 !== i && (r[a] = i); + } + for (const e in a) { + i = (0, s.getUnicodeForGlyph)(a[e], t); + -1 !== i && (r[+e] = i); + } + return r; + } + function isMacNameRecord(e) { + return 1 === e.platform && 0 === e.encoding && 0 === e.language; + } + function isWinNameRecord(e) { + return 3 === e.platform && 1 === e.encoding && 1033 === e.language; + } + function convertCidString(e, t, a = !1) { + switch (t.length) { + case 1: + return t.charCodeAt(0); + case 2: + return (t.charCodeAt(0) << 8) | t.charCodeAt(1); + } + const i = `Unsupported CID string (charCode ${e}): "${t}".`; + if (a) throw new r.FormatError(i); + (0, r.warn)(i); + return t; + } + function adjustMapping(e, t, a, i) { + const n = Object.create(null), + s = new Map(), + o = [], + c = new Set(); + let l = 0; + let h = S[l][0], + u = S[l][1]; + for (let f in e) { + f |= 0; + let g = e[f]; + if (!t(g)) continue; + if (h > u) { + l++; + if (l >= S.length) { + (0, r.warn)('Ran out of space in font private use area.'); + break; + } + h = S[l][0]; + u = S[l][1]; + } + const p = h++; + 0 === g && (g = a); + let m = i.get(f); + 'string' == typeof m && (m = m.codePointAt(0)); + if ( + m && + !((d = m), (S[0][0] <= d && d <= S[0][1]) || (S[1][0] <= d && d <= S[1][1])) && + !c.has(g) + ) { + s.set(m, g); + c.add(g); + } + n[p] = g; + o[f] = p; + } + var d; + return { + toFontChar: o, + charCodeToGlyphId: n, + toUnicodeExtraMap: s, + nextAvailableFontCharCode: h, + }; + } + function createCmapTable(e, t, a) { + const i = (function getRanges(e, t, a) { + const r = []; + for (const t in e) e[t] >= a || r.push({ fontCharCode: 0 | t, glyphId: e[t] }); + if (t) for (const [e, i] of t) i >= a || r.push({ fontCharCode: e, glyphId: i }); + 0 === r.length && r.push({ fontCharCode: 0, glyphId: 0 }); + r.sort(function fontGetRangesSort(e, t) { + return e.fontCharCode - t.fontCharCode; + }); + const i = [], + n = r.length; + for (let e = 0; e < n; ) { + const t = r[e].fontCharCode, + a = [r[e].glyphId]; + ++e; + let s = t; + for (; e < n && s + 1 === r[e].fontCharCode; ) { + a.push(r[e].glyphId); + ++s; + ++e; + if (65535 === s) break; + } + i.push([t, s, a]); + } + return i; + })(e, t, a), + n = i.at(-1)[1] > 65535 ? 2 : 1; + let s, + o, + c, + l, + h = '\0\0' + string16(n) + '\0\0' + (0, r.string32)(4 + 8 * n); + for (s = i.length - 1; s >= 0 && !(i[s][0] <= 65535); --s); + const u = s + 1; + i[s][0] < 65535 && 65535 === i[s][1] && (i[s][1] = 65534); + const d = i[s][1] < 65535 ? 1 : 0, + f = u + d, + g = m.OpenTypeFileBuilder.getSearchParams(f, 2); + let p, + b, + y, + w, + S = '', + x = '', + C = '', + k = '', + v = '', + F = 0; + for (s = 0, o = u; s < o; s++) { + p = i[s]; + b = p[0]; + y = p[1]; + S += string16(b); + x += string16(y); + w = p[2]; + let e = !0; + for (c = 1, l = w.length; c < l; ++c) + if (w[c] !== w[c - 1] + 1) { + e = !1; + break; + } + if (e) { + C += string16((w[0] - b) & 65535); + k += string16(0); + } else { + const e = 2 * (f - s) + 2 * F; + F += y - b + 1; + C += string16(0); + k += string16(e); + for (c = 0, l = w.length; c < l; ++c) v += string16(w[c]); + } + } + if (d > 0) { + x += 'ÿÿ'; + S += 'ÿÿ'; + C += '\0'; + k += '\0\0'; + } + const O = + '\0\0' + + string16(2 * f) + + string16(g.range) + + string16(g.entry) + + string16(g.rangeShift) + + x + + '\0\0' + + S + + C + + k + + v; + let T = '', + M = ''; + if (n > 1) { + h += '\0\0\n' + (0, r.string32)(4 + 8 * n + 4 + O.length); + T = ''; + for (s = 0, o = i.length; s < o; s++) { + p = i[s]; + b = p[0]; + w = p[2]; + let e = w[0]; + for (c = 1, l = w.length; c < l; ++c) + if (w[c] !== w[c - 1] + 1) { + y = p[0] + c - 1; + T += (0, r.string32)(b) + (0, r.string32)(y) + (0, r.string32)(e); + b = y + 1; + e = w[c]; + } + T += (0, r.string32)(b) + (0, r.string32)(p[1]) + (0, r.string32)(e); + } + M = + '\0\f\0\0' + + (0, r.string32)(T.length + 16) + + '\0\0\0\0' + + (0, r.string32)(T.length / 12); + } + return h + '\0' + string16(O.length + 4) + O + M + T; + } + function createOS2Table(e, t, a) { + a ||= { unitsPerEm: 0, yMax: 0, yMin: 0, ascent: 0, descent: 0 }; + let i = 0, + n = 0, + o = 0, + c = 0, + l = null, + h = 0, + u = -1; + if (t) { + for (let e in t) { + e |= 0; + (l > e || !l) && (l = e); + h < e && (h = e); + u = (0, s.getUnicodeRangeFor)(e, u); + if (u < 32) i |= 1 << u; + else if (u < 64) n |= 1 << (u - 32); + else if (u < 96) o |= 1 << (u - 64); + else { + if (!(u < 123)) + throw new r.FormatError( + 'Unicode ranges Bits > 123 are reserved for internal usage', + ); + c |= 1 << (u - 96); + } + } + h > 65535 && (h = 65535); + } else { + l = 0; + h = 255; + } + const d = e.bbox || [0, 0, 0, 0], + f = a.unitsPerEm || 1 / (e.fontMatrix || r.FONT_IDENTITY_MATRIX)[0], + g = e.ascentScaled ? 1 : f / x, + p = a.ascent || Math.round(g * (e.ascent || d[3])); + let m = a.descent || Math.round(g * (e.descent || d[1])); + m > 0 && e.descent > 0 && d[1] < 0 && (m = -m); + const b = a.yMax || p, + y = -a.yMin || -m; + return ( + '\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0' + + String.fromCharCode(e.fixedPitch ? 9 : 0) + + '\0\0\0\0\0\0' + + (0, r.string32)(i) + + (0, r.string32)(n) + + (0, r.string32)(o) + + (0, r.string32)(c) + + '*21*' + + string16(e.italicAngle ? 1 : 0) + + string16(l || e.firstChar) + + string16(h || e.lastChar) + + string16(p) + + string16(m) + + '\0d' + + string16(b) + + string16(y) + + '\0\0\0\0\0\0\0\0' + + string16(e.xHeight) + + string16(e.capHeight) + + string16(0) + + string16(l || e.firstChar) + + '\0' + ); + } + function createPostTable(e) { + const t = Math.floor(65536 * e.italicAngle); + return ( + '\0\0\0' + + (0, r.string32)(t) + + '\0\0\0\0' + + (0, r.string32)(e.fixedPitch ? 1 : 0) + + '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' + ); + } + function createPostscriptName(e) { + return e.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g, '').slice(0, 63); + } + function createNameTable(e, t) { + t || (t = [[], []]); + const a = [ + t[0][0] || 'Original licence', + t[0][1] || e, + t[0][2] || 'Unknown', + t[0][3] || 'uniqueID', + t[0][4] || e, + t[0][5] || 'Version 0.11', + t[0][6] || createPostscriptName(e), + t[0][7] || 'Unknown', + t[0][8] || 'Unknown', + t[0][9] || 'Unknown', + ], + r = []; + let i, n, s, o, c; + for (i = 0, n = a.length; i < n; i++) { + c = t[1][i] || a[i]; + const e = []; + for (s = 0, o = c.length; s < o; s++) e.push(string16(c.charCodeAt(s))); + r.push(e.join('')); + } + const l = [a, r], + h = ['\0', '\0'], + u = ['\0\0', '\0'], + d = ['\0\0', '\t'], + f = a.length * h.length; + let g = '\0\0' + string16(f) + string16(12 * f + 6), + p = 0; + for (i = 0, n = h.length; i < n; i++) { + const e = l[i]; + for (s = 0, o = e.length; s < o; s++) { + c = e[s]; + g += h[i] + u[i] + d[i] + string16(s) + string16(c.length) + string16(p); + p += c.length; + } + } + g += a.join('') + r.join(''); + return g; + } + t.Font = class Font { + constructor(e, t, a) { + this.name = e; + this.psName = null; + this.mimetype = null; + this.disableFontFace = !1; + this.loadedName = a.loadedName; + this.isType3Font = a.isType3Font; + this.missingFile = !1; + this.cssFontInfo = a.cssFontInfo; + this._charsCache = Object.create(null); + this._glyphCache = Object.create(null); + let i = !!(a.flags & n.FontFlags.Serif); + if (!i && !a.isSimulatedFlags) { + const t = e.replaceAll(/[,_]/g, '-').split('-')[0], + a = (0, l.getSerifFonts)(); + for (const e of t.split('+')) + if (a[e]) { + i = !0; + break; + } + } + this.isSerifFont = i; + this.isSymbolicFont = !!(a.flags & n.FontFlags.Symbolic); + this.isMonospace = !!(a.flags & n.FontFlags.FixedPitch); + let { type: s, subtype: o } = a; + this.type = s; + this.subtype = o; + const c = e.match(/^InvalidPDFjsFont_(.*)_\d+$/); + this.isInvalidPDFjsFont = !!c; + this.isInvalidPDFjsFont + ? (this.fallbackName = c[1]) + : this.isMonospace + ? (this.fallbackName = 'monospace') + : this.isSerifFont + ? (this.fallbackName = 'serif') + : (this.fallbackName = 'sans-serif'); + this.differences = a.differences; + this.widths = a.widths; + this.defaultWidth = a.defaultWidth; + this.composite = a.composite; + this.cMap = a.cMap; + this.capHeight = a.capHeight / x; + this.ascent = a.ascent / x; + this.descent = a.descent / x; + this.lineHeight = this.ascent - this.descent; + this.fontMatrix = a.fontMatrix; + this.bbox = a.bbox; + this.defaultEncoding = a.defaultEncoding; + this.toUnicode = a.toUnicode; + this.toFontChar = []; + if ('Type3' === a.type) { + for (let e = 0; e < 256; e++) + this.toFontChar[e] = this.differences[e] || a.defaultEncoding[e]; + return; + } + this.cidEncoding = a.cidEncoding || ''; + this.vertical = !!a.vertical; + if (this.vertical) { + this.vmetrics = a.vmetrics; + this.defaultVMetrics = a.defaultVMetrics; + } + if (!t || t.isEmpty) { + t && (0, r.warn)('Font file is empty in "' + e + '" (' + this.loadedName + ')'); + this.fallbackToSystemFont(a); + return; + } + [s, o] = getFontFileType(t, a); + (s === this.type && o === this.subtype) || + (0, r.info)( + `Inconsistent font file Type/SubType, expected: ${this.type}/${this.subtype} but found: ${s}/${o}.`, + ); + let h; + try { + switch (s) { + case 'MMType1': + (0, r.info)('MMType1 font (' + e + '), falling back to Type1.'); + case 'Type1': + case 'CIDFontType0': + this.mimetype = 'font/opentype'; + const i = + 'Type1C' === o || 'CIDFontType0C' === o + ? new u.CFFFont(t, a) + : new w.Type1Font(e, t, a); + adjustWidths(a); + h = this.convert(e, i, a); + break; + case 'OpenType': + case 'TrueType': + case 'CIDFontType2': + this.mimetype = 'font/opentype'; + h = this.checkAndRepair(e, t, a); + if (this.isOpenType) { + adjustWidths(a); + s = 'OpenType'; + } + break; + default: + throw new r.FormatError(`Font ${s} is not supported`); + } + } catch (e) { + (0, r.warn)(e); + this.fallbackToSystemFont(a); + return; + } + amendFallbackToUnicode(a); + this.data = h; + this.type = s; + this.subtype = o; + this.fontMatrix = a.fontMatrix; + this.widths = a.widths; + this.defaultWidth = a.defaultWidth; + this.toUnicode = a.toUnicode; + this.seacMap = a.seacMap; + } + get renderer() { + const e = d.FontRendererFactory.create(this, n.SEAC_ANALYSIS_ENABLED); + return (0, r.shadow)(this, 'renderer', e); + } + exportData(e = !1) { + const t = e ? [...C, ...k] : C, + a = Object.create(null); + let r, i; + for (r of t) { + i = this[r]; + void 0 !== i && (a[r] = i); + } + return a; + } + fallbackToSystemFont(e) { + this.missingFile = !0; + const { name: t, type: a } = this; + let i = (0, n.normalizeFontName)(t); + const u = (0, l.getStdFontMap)(), + d = (0, l.getNonStdFontMap)(), + g = !!u[i], + p = !(!d[i] || !u[d[i]]); + i = u[i] || d[i] || i; + const m = (0, f.getFontBasicMetrics)()[i]; + if (m) { + isNaN(this.ascent) && (this.ascent = m.ascent / x); + isNaN(this.descent) && (this.descent = m.descent / x); + isNaN(this.capHeight) && (this.capHeight = m.capHeight / x); + } + this.bold = /bold/gi.test(i); + this.italic = /oblique|italic/gi.test(i); + this.black = /Black/g.test(t); + const b = /Narrow/g.test(t); + this.remeasure = (!g || b) && Object.keys(this.widths).length > 0; + if ((g || p) && 'CIDFontType2' === a && this.cidEncoding.startsWith('Identity-')) { + const a = e.cidToGidMap, + r = []; + applyStandardFontGlyphMap(r, (0, l.getGlyphMapForStandardFonts)()); + /Arial-?Black/i.test(t) + ? applyStandardFontGlyphMap(r, (0, l.getSupplementalGlyphMapForArialBlack)()) + : /Calibri/i.test(t) && + applyStandardFontGlyphMap(r, (0, l.getSupplementalGlyphMapForCalibri)()); + if (a) { + for (const e in r) { + const t = r[e]; + void 0 !== a[t] && (r[+e] = a[t]); + } + a.length !== this.toUnicode.length && + e.hasIncludedToUnicodeMap && + this.toUnicode instanceof h.IdentityToUnicodeMap && + this.toUnicode.forEach(function (e, t) { + const i = r[e]; + void 0 === a[i] && (r[+e] = t); + }); + } + this.toUnicode instanceof h.IdentityToUnicodeMap || + this.toUnicode.forEach(function (e, t) { + r[+e] = t; + }); + this.toFontChar = r; + this.toUnicode = new h.ToUnicodeMap(r); + } else if (/Symbol/i.test(i)) + this.toFontChar = buildToFontChar( + c.SymbolSetEncoding, + (0, o.getGlyphsUnicode)(), + this.differences, + ); + else if (/Dingbats/i.test(i)) { + /Wingdings/i.test(t) && + (0, r.warn)('Non-embedded Wingdings font, falling back to ZapfDingbats.'); + this.toFontChar = buildToFontChar( + c.ZapfDingbatsEncoding, + (0, o.getDingbatsGlyphsUnicode)(), + this.differences, + ); + } else if (g) { + const e = buildToFontChar( + this.defaultEncoding, + (0, o.getGlyphsUnicode)(), + this.differences, + ); + 'CIDFontType2' !== a || + this.cidEncoding.startsWith('Identity-') || + this.toUnicode instanceof h.IdentityToUnicodeMap || + this.toUnicode.forEach(function (t, a) { + e[+t] = a; + }); + this.toFontChar = e; + } else { + const e = (0, o.getGlyphsUnicode)(), + a = []; + this.toUnicode.forEach((t, r) => { + if (!this.composite) { + const a = this.differences[t] || this.defaultEncoding[t], + i = (0, s.getUnicodeForGlyph)(a, e); + -1 !== i && (r = i); + } + a[+t] = r; + }); + this.composite && + this.toUnicode instanceof h.IdentityToUnicodeMap && + /Tahoma|Verdana/i.test(t) && + applyStandardFontGlyphMap(a, (0, l.getGlyphMapForStandardFonts)()); + this.toFontChar = a; + } + amendFallbackToUnicode(e); + this.loadedName = i.split('-')[0]; + } + checkAndRepair(e, t, a) { + const s = [ + 'OS/2', + 'cmap', + 'head', + 'hhea', + 'hmtx', + 'maxp', + 'name', + 'post', + 'loca', + 'glyf', + 'fpgm', + 'prep', + 'cvt ', + 'CFF ', + ]; + function readTables(e, t) { + const a = Object.create(null); + a['OS/2'] = null; + a.cmap = null; + a.head = null; + a.hhea = null; + a.hmtx = null; + a.maxp = null; + a.name = null; + a.post = null; + for (let r = 0; r < t; r++) { + const t = readTableEntry(e); + s.includes(t.tag) && 0 !== t.length && (a[t.tag] = t); + } + return a; + } + function readTableEntry(e) { + const t = e.getString(4), + a = e.getInt32() >>> 0, + r = e.getInt32() >>> 0, + i = e.getInt32() >>> 0, + n = e.pos; + e.pos = e.start || 0; + e.skip(r); + const s = e.getBytes(i); + e.pos = n; + if ('head' === t) { + s[8] = s[9] = s[10] = s[11] = 0; + s[17] |= 32; + } + return { tag: t, checksum: a, length: i, offset: r, data: s }; + } + function readOpenTypeHeader(e) { + return { + version: e.getString(4), + numTables: e.getUint16(), + searchRange: e.getUint16(), + entrySelector: e.getUint16(), + rangeShift: e.getUint16(), + }; + } + function sanitizeGlyph(e, t, a, r, i, n) { + const s = { length: 0, sizeOfInstructions: 0 }; + if (a - t <= 12) return s; + const o = e.subarray(t, a); + let c = signedInt16(o[0], o[1]); + if (c < 0) { + c = -1; + writeSignedInt16(o, 0, c); + r.set(o, i); + s.length = o.length; + return s; + } + let l, + h = 10, + u = 0; + for (l = 0; l < c; l++) { + u = ((o[h] << 8) | o[h + 1]) + 1; + h += 2; + } + const d = h, + f = (o[h] << 8) | o[h + 1]; + s.sizeOfInstructions = f; + h += 2 + f; + const g = h; + let p = 0; + for (l = 0; l < u; l++) { + const e = o[h++]; + 192 & e && (o[h - 1] = 63 & e); + let t = 2; + 2 & e ? (t = 1) : 16 & e && (t = 0); + let a = 2; + 4 & e ? (a = 1) : 32 & e && (a = 0); + const r = t + a; + p += r; + if (8 & e) { + const e = o[h++]; + l += e; + p += e * r; + } + } + if (0 === p) return s; + let m = h + p; + if (m > o.length) return s; + if (!n && f > 0) { + r.set(o.subarray(0, d), i); + r.set([0, 0], i + d); + r.set(o.subarray(g, m), i + d + 2); + m -= f; + o.length - m > 3 && (m = (m + 3) & -4); + s.length = m; + return s; + } + if (o.length - m > 3) { + m = (m + 3) & -4; + r.set(o.subarray(0, m), i); + s.length = m; + return s; + } + r.set(o, i); + s.length = o.length; + return s; + } + function readNameTable(e) { + const a = (t.start || 0) + e.offset; + t.pos = a; + const r = [[], []], + i = [], + n = e.length, + s = a + n; + if (0 !== t.getUint16() || n < 6) return [r, i]; + const o = t.getUint16(), + c = t.getUint16(); + let l, h; + for (l = 0; l < o && t.pos + 12 <= s; l++) { + const e = { + platform: t.getUint16(), + encoding: t.getUint16(), + language: t.getUint16(), + name: t.getUint16(), + length: t.getUint16(), + offset: t.getUint16(), + }; + (isMacNameRecord(e) || isWinNameRecord(e)) && i.push(e); + } + for (l = 0, h = i.length; l < h; l++) { + const e = i[l]; + if (e.length <= 0) continue; + const n = a + c + e.offset; + if (n + e.length > s) continue; + t.pos = n; + const o = e.name; + if (e.encoding) { + let a = ''; + for (let r = 0, i = e.length; r < i; r += 2) + a += String.fromCharCode(t.getUint16()); + r[1][o] = a; + } else r[0][o] = t.getString(e.length); + } + return [r, i]; + } + const l = [ + 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 sanitizeTTProgram(e, t) { + let a, + i, + n, + s, + o, + c = e.data, + h = 0, + u = 0, + d = 0; + const f = [], + g = [], + p = []; + let m = t.tooComplexToFollowFunctions, + b = !1, + y = 0, + w = 0; + for (let e = c.length; h < e; ) { + const e = c[h++]; + if (64 === e) { + i = c[h++]; + if (b || w) h += i; + else for (a = 0; a < i; a++) f.push(c[h++]); + } else if (65 === e) { + i = c[h++]; + if (b || w) h += 2 * i; + else + for (a = 0; a < i; a++) { + n = c[h++]; + f.push((n << 8) | c[h++]); + } + } else if (176 == (248 & e)) { + i = e - 176 + 1; + if (b || w) h += i; + else for (a = 0; a < i; a++) f.push(c[h++]); + } else if (184 == (248 & e)) { + i = e - 184 + 1; + if (b || w) h += 2 * i; + else + for (a = 0; a < i; a++) { + n = c[h++]; + f.push((n << 8) | c[h++]); + } + } else if (43 !== e || m) + if (44 !== e || m) { + if (45 === e) + if (b) { + b = !1; + u = h; + } else { + o = g.pop(); + if (!o) { + (0, r.warn)('TT: ENDF bad stack'); + t.hintsValid = !1; + return; + } + s = p.pop(); + c = o.data; + h = o.i; + t.functionsStackDeltas[s] = f.length - o.stackTop; + } + else if (137 === e) { + if (b || w) { + (0, r.warn)('TT: nested IDEFs not allowed'); + m = !0; + } + b = !0; + d = h; + } else if (88 === e) ++y; + else if (27 === e) w = y; + else if (89 === e) { + w === y && (w = 0); + --y; + } else if (28 === e && !b && !w) { + const e = f.at(-1); + e > 0 && (h += e - 1); + } + } else { + if (b || w) { + (0, r.warn)('TT: nested FDEFs not allowed'); + m = !0; + } + b = !0; + d = h; + s = f.pop(); + t.functionsDefined[s] = { data: c, i: h }; + } + else if (!b && !w) { + s = f.at(-1); + if (isNaN(s)) (0, r.info)('TT: CALL empty stack (or invalid entry).'); + else { + t.functionsUsed[s] = !0; + if (s in t.functionsStackDeltas) { + const e = f.length + t.functionsStackDeltas[s]; + if (e < 0) { + (0, r.warn)('TT: CALL invalid functions stack delta.'); + t.hintsValid = !1; + return; + } + f.length = e; + } else if (s in t.functionsDefined && !p.includes(s)) { + g.push({ data: c, i: h, stackTop: f.length - 1 }); + p.push(s); + o = t.functionsDefined[s]; + if (!o) { + (0, r.warn)('TT: CALL non-existent function'); + t.hintsValid = !1; + return; + } + c = o.data; + h = o.i; + } + } + } + if (!b && !w) { + let t = 0; + e <= 142 ? (t = l[e]) : e >= 192 && e <= 223 ? (t = -1) : e >= 224 && (t = -2); + if (e >= 113 && e <= 117) { + i = f.pop(); + isNaN(i) || (t = 2 * -i); + } + for (; t < 0 && f.length > 0; ) { + f.pop(); + t++; + } + for (; t > 0; ) { + f.push(NaN); + t--; + } + } + } + t.tooComplexToFollowFunctions = m; + const S = [c]; + h > c.length && S.push(new Uint8Array(h - c.length)); + if (d > u) { + (0, r.warn)('TT: complementing a missing function tail'); + S.push(new Uint8Array([34, 45])); + } + !(function foldTTTable(e, t) { + if (t.length > 1) { + let a, + r, + i = 0; + for (a = 0, r = t.length; a < r; a++) i += t[a].length; + i = (i + 3) & -4; + const n = new Uint8Array(i); + let s = 0; + for (a = 0, r = t.length; a < r; a++) { + n.set(t[a], s); + s += t[a].length; + } + e.data = n; + e.length = i; + } + })(e, S); + } + let d, f, b, w; + if (isTrueTypeCollectionFile((t = new y.Stream(new Uint8Array(t.getBytes()))))) { + const e = (function readTrueTypeCollectionData(e, t) { + const { numFonts: a, offsetTable: i } = (function readTrueTypeCollectionHeader( + e, + ) { + const t = e.getString(4); + (0, r.assert)('ttcf' === t, 'Must be a TrueType Collection font.'); + const a = e.getUint16(), + i = e.getUint16(), + n = e.getInt32() >>> 0, + s = []; + for (let t = 0; t < n; t++) s.push(e.getInt32() >>> 0); + const o = { + ttcTag: t, + majorVersion: a, + minorVersion: i, + numFonts: n, + offsetTable: s, + }; + switch (a) { + case 1: + return o; + case 2: + o.dsigTag = e.getInt32() >>> 0; + o.dsigLength = e.getInt32() >>> 0; + o.dsigOffset = e.getInt32() >>> 0; + return o; + } + throw new r.FormatError(`Invalid TrueType Collection majorVersion: ${a}.`); + })(e), + n = t.split('+'); + let s; + for (let o = 0; o < a; o++) { + e.pos = (e.start || 0) + i[o]; + const a = readOpenTypeHeader(e), + c = readTables(e, a.numTables); + if (!c.name) + throw new r.FormatError( + 'TrueType Collection font must contain a "name" table.', + ); + const [l] = readNameTable(c.name); + for (let e = 0, r = l.length; e < r; e++) + for (let r = 0, i = l[e].length; r < i; r++) { + const i = l[e][r] && l[e][r].replaceAll(/\s/g, ''); + if (i) { + if (i === t) return { header: a, tables: c }; + if (!(n.length < 2)) + for (const e of n) i === e && (s = { name: e, header: a, tables: c }); + } + } + } + if (s) { + (0, r.warn)( + `TrueType Collection does not contain "${t}" font, falling back to "${s.name}" font instead.`, + ); + return { header: s.header, tables: s.tables }; + } + throw new r.FormatError(`TrueType Collection does not contain "${t}" font.`); + })(t, this.name); + d = e.header; + f = e.tables; + } else { + d = readOpenTypeHeader(t); + f = readTables(t, d.numTables); + } + const S = !f['CFF ']; + if (S) { + if (!f.loca) throw new r.FormatError('Required "loca" table is not found'); + if (!f.glyf) { + (0, r.warn)('Required "glyf" table is not found -- trying to recover.'); + f.glyf = { tag: 'glyf', data: new Uint8Array(0) }; + } + this.isOpenType = !1; + } else { + const t = + a.composite && + ((a.cidToGidMap || []).length > 0 || !(a.cMap instanceof p.IdentityCMap)); + if (('OTTO' === d.version && !t) || !f.head || !f.hhea || !f.maxp || !f.post) { + w = new y.Stream(f['CFF '].data); + b = new u.CFFFont(w, a); + adjustWidths(a); + return this.convert(e, b, a); + } + delete f.glyf; + delete f.loca; + delete f.fpgm; + delete f.prep; + delete f['cvt ']; + this.isOpenType = !0; + } + if (!f.maxp) throw new r.FormatError('Required "maxp" table is not found'); + t.pos = (t.start || 0) + f.maxp.offset; + const x = t.getInt32(), + C = t.getUint16(); + if (a.scaleFactors && a.scaleFactors.length === C && S) { + const { scaleFactors: e } = a, + t = int16(f.head.data[50], f.head.data[51]), + r = new g.GlyfTable({ + glyfTable: f.glyf.data, + isGlyphLocationsLong: t, + locaTable: f.loca.data, + numGlyphs: C, + }); + r.scale(e); + const { glyf: i, loca: n, isLocationLong: s } = r.write(); + f.glyf.data = i; + f.loca.data = n; + if (s !== !!t) { + f.head.data[50] = 0; + f.head.data[51] = s ? 1 : 0; + } + const o = f.hmtx.data; + for (let t = 0; t < C; t++) { + const a = 4 * t, + r = Math.round(e[t] * int16(o[a], o[a + 1])); + o[a] = (r >> 8) & 255; + o[a + 1] = 255 & r; + writeSignedInt16(o, a + 2, Math.round(e[t] * signedInt16(o[a + 2], o[a + 3]))); + } + } + let k = C + 1, + v = !0; + if (k > 65535) { + v = !1; + k = C; + (0, r.warn)('Not enough space in glyfs to duplicate first glyph.'); + } + let F = 0, + O = 0; + if (x >= 65536 && f.maxp.length >= 22) { + t.pos += 8; + if (t.getUint16() > 2) { + f.maxp.data[14] = 0; + f.maxp.data[15] = 2; + } + t.pos += 4; + F = t.getUint16(); + t.pos += 4; + O = t.getUint16(); + } + f.maxp.data[4] = k >> 8; + f.maxp.data[5] = 255 & k; + const T = (function sanitizeTTPrograms(e, t, a, i) { + const n = { + functionsDefined: [], + functionsUsed: [], + functionsStackDeltas: [], + tooComplexToFollowFunctions: !1, + hintsValid: !0, + }; + e && sanitizeTTProgram(e, n); + t && sanitizeTTProgram(t, n); + e && + (function checkInvalidFunctions(e, t) { + if (!e.tooComplexToFollowFunctions) + if (e.functionsDefined.length > t) { + (0, r.warn)('TT: more functions defined than expected'); + e.hintsValid = !1; + } else + for (let a = 0, i = e.functionsUsed.length; a < i; a++) { + if (a > t) { + (0, r.warn)('TT: invalid function id: ' + a); + e.hintsValid = !1; + return; + } + if (e.functionsUsed[a] && !e.functionsDefined[a]) { + (0, r.warn)('TT: undefined function: ' + a); + e.hintsValid = !1; + return; + } + } + })(n, i); + if (a && 1 & a.length) { + const e = new Uint8Array(a.length + 1); + e.set(a.data); + a.data = e; + } + return n.hintsValid; + })(f.fpgm, f.prep, f['cvt '], F); + if (!T) { + delete f.fpgm; + delete f.prep; + delete f['cvt ']; + } + !(function sanitizeMetrics(e, t, a, i, n, s) { + if (!t) { + a && (a.data = null); + return; + } + e.pos = (e.start || 0) + t.offset; + e.pos += 4; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + const o = e.getUint16(); + e.pos += 8; + e.pos += 2; + let c = e.getUint16(); + if (0 !== o) { + if (!(2 & int16(i.data[44], i.data[45]))) { + t.data[22] = 0; + t.data[23] = 0; + } + } + if (c > n) { + (0, r.info)( + `The numOfMetrics (${c}) should not be greater than the numGlyphs (${n}).`, + ); + c = n; + t.data[34] = (65280 & c) >> 8; + t.data[35] = 255 & c; + } + const l = n - c - ((a.length - 4 * c) >> 1); + if (l > 0) { + const e = new Uint8Array(a.length + 2 * l); + e.set(a.data); + if (s) { + e[a.length] = a.data[2]; + e[a.length + 1] = a.data[3]; + } + a.data = e; + } + })(t, f.hhea, f.hmtx, f.head, k, v); + if (!f.head) throw new r.FormatError('Required "head" table is not found'); + !(function sanitizeHead(e, t, a) { + const i = e.data, + n = (function int32(e, t, a, r) { + return (e << 24) + (t << 16) + (a << 8) + r; + })(i[0], i[1], i[2], i[3]); + if (n >> 16 != 1) { + (0, r.info)('Attempting to fix invalid version in head table: ' + n); + i[0] = 0; + i[1] = 1; + i[2] = 0; + i[3] = 0; + } + const s = int16(i[50], i[51]); + if (s < 0 || s > 1) { + (0, r.info)('Attempting to fix invalid indexToLocFormat in head table: ' + s); + const e = t + 1; + if (a === e << 1) { + i[50] = 0; + i[51] = 0; + } else { + if (a !== e << 2) + throw new r.FormatError('Could not fix indexToLocFormat: ' + s); + i[50] = 0; + i[51] = 1; + } + } + })(f.head, C, S ? f.loca.length : 0); + let M = Object.create(null); + if (S) { + const e = int16(f.head.data[50], f.head.data[51]), + t = (function sanitizeGlyphLocations(e, t, a, r, i, n, s) { + let o, c, l; + if (r) { + o = 4; + c = function fontItemDecodeLong(e, t) { + return (e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]; + }; + l = function fontItemEncodeLong(e, t, a) { + e[t] = (a >>> 24) & 255; + e[t + 1] = (a >> 16) & 255; + e[t + 2] = (a >> 8) & 255; + e[t + 3] = 255 & a; + }; + } else { + o = 2; + c = function fontItemDecode(e, t) { + return (e[t] << 9) | (e[t + 1] << 1); + }; + l = function fontItemEncode(e, t, a) { + e[t] = (a >> 9) & 255; + e[t + 1] = (a >> 1) & 255; + }; + } + const h = n ? a + 1 : a, + u = o * (1 + h), + d = new Uint8Array(u); + d.set(e.data.subarray(0, u)); + e.data = d; + const f = t.data, + g = f.length, + p = new Uint8Array(g); + let m, b; + const y = []; + for (m = 0, b = 0; m < a + 1; m++, b += o) { + let e = c(d, b); + e > g && (e = g); + y.push({ index: m, offset: e, endOffset: 0 }); + } + y.sort((e, t) => e.offset - t.offset); + for (m = 0; m < a; m++) y[m].endOffset = y[m + 1].offset; + y.sort((e, t) => e.index - t.index); + for (m = 0; m < a; m++) { + const { offset: e, endOffset: t } = y[m]; + if (0 !== e || 0 !== t) break; + const a = y[m + 1].offset; + if (0 !== a) { + y[m].endOffset = a; + break; + } + } + const w = Object.create(null); + let S = 0; + l(d, 0, S); + for (m = 0, b = o; m < a; m++, b += o) { + const e = sanitizeGlyph(f, y[m].offset, y[m].endOffset, p, S, i), + t = e.length; + 0 === t && (w[m] = !0); + e.sizeOfInstructions > s && (s = e.sizeOfInstructions); + S += t; + l(d, b, S); + } + if (0 === S) { + const e = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]); + for (m = 0, b = o; m < h; m++, b += o) l(d, b, e.length); + t.data = e; + } else if (n) { + const a = c(d, o); + if (p.length > a + S) t.data = p.subarray(0, a + S); + else { + t.data = new Uint8Array(a + S); + t.data.set(p.subarray(0, S)); + } + t.data.set(p.subarray(0, a), S); + l(e.data, d.length - o, S + a); + } else t.data = p.subarray(0, S); + return { missingGlyphs: w, maxSizeOfInstructions: s }; + })(f.loca, f.glyf, C, e, T, v, O); + M = t.missingGlyphs; + if (x >= 65536 && f.maxp.length >= 22) { + f.maxp.data[26] = t.maxSizeOfInstructions >> 8; + f.maxp.data[27] = 255 & t.maxSizeOfInstructions; + } + } + if (!f.hhea) throw new r.FormatError('Required "hhea" table is not found'); + if (0 === f.hhea.data[10] && 0 === f.hhea.data[11]) { + f.hhea.data[10] = 255; + f.hhea.data[11] = 255; + } + const E = { + unitsPerEm: int16(f.head.data[18], f.head.data[19]), + yMax: int16(f.head.data[42], f.head.data[43]), + yMin: signedInt16(f.head.data[38], f.head.data[39]), + ascent: signedInt16(f.hhea.data[4], f.hhea.data[5]), + descent: signedInt16(f.hhea.data[6], f.hhea.data[7]), + lineGap: signedInt16(f.hhea.data[8], f.hhea.data[9]), + }; + this.ascent = E.ascent / E.unitsPerEm; + this.descent = E.descent / E.unitsPerEm; + this.lineGap = E.lineGap / E.unitsPerEm; + if (this.cssFontInfo && this.cssFontInfo.lineHeight) { + this.lineHeight = this.cssFontInfo.metrics.lineHeight; + this.lineGap = this.cssFontInfo.metrics.lineGap; + } else this.lineHeight = this.ascent - this.descent + this.lineGap; + f.post && + (function readPostScriptTable(e, a, i) { + const s = (t.start || 0) + e.offset; + t.pos = s; + const o = s + e.length, + c = t.getInt32(); + t.skip(28); + let l, + h, + u = !0; + switch (c) { + case 65536: + l = n.MacStandardGlyphOrdering; + break; + case 131072: + const e = t.getUint16(); + if (e !== i) { + u = !1; + break; + } + const s = []; + for (h = 0; h < e; ++h) { + const e = t.getUint16(); + if (e >= 32768) { + u = !1; + break; + } + s.push(e); + } + if (!u) break; + const d = [], + f = []; + for (; t.pos < o; ) { + const e = t.getByte(); + f.length = e; + for (h = 0; h < e; ++h) f[h] = String.fromCharCode(t.getByte()); + d.push(f.join('')); + } + l = []; + for (h = 0; h < e; ++h) { + const e = s[h]; + e < 258 ? l.push(n.MacStandardGlyphOrdering[e]) : l.push(d[e - 258]); + } + break; + case 196608: + break; + default: + (0, r.warn)('Unknown/unsupported post table version ' + c); + u = !1; + a.defaultEncoding && (l = a.defaultEncoding); + } + a.glyphNames = l; + return u; + })(f.post, a, C); + f.post = { tag: 'post', data: createPostTable(a) }; + const D = []; + function hasGlyph(e) { + return !M[e]; + } + if (a.composite) { + const e = a.cidToGidMap || [], + t = 0 === e.length; + a.cMap.forEach(function (a, i) { + 'string' == typeof i && (i = convertCidString(a, i, !0)); + if (i > 65535) throw new r.FormatError('Max size of CID is 65,535'); + let n = -1; + t ? (n = i) : void 0 !== e[i] && (n = e[i]); + n >= 0 && n < C && hasGlyph(n) && (D[a] = n); + }); + } else { + const e = (function readCmapTable(e, t, a, i) { + if (!e) { + (0, r.warn)('No cmap table available.'); + return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; + } + let n, + s = (t.start || 0) + e.offset; + t.pos = s; + t.skip(2); + const o = t.getUint16(); + let c, + l = !1; + for (let e = 0; e < o; e++) { + const r = t.getUint16(), + n = t.getUint16(), + s = t.getInt32() >>> 0; + let h = !1; + if (!c || c.platformId !== r || c.encodingId !== n) { + if (0 !== r || (0 !== n && 1 !== n && 3 !== n)) + if (1 === r && 0 === n) h = !0; + else if (3 !== r || 1 !== n || (!i && c)) { + if (a && 3 === r && 0 === n) { + h = !0; + let a = !0; + if (e < o - 1) { + const e = t.peekBytes(2); + int16(e[0], e[1]) < r && (a = !1); + } + a && (l = !0); + } + } else { + h = !0; + a || (l = !0); + } + else h = !0; + h && (c = { platformId: r, encodingId: n, offset: s }); + if (l) break; + } + } + c && (t.pos = s + c.offset); + if (!c || -1 === t.peekByte()) { + (0, r.warn)('Could not find a preferred cmap table.'); + return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; + } + const h = t.getUint16(); + let u = !1; + const d = []; + let f, g; + if (0 === h) { + t.skip(4); + for (f = 0; f < 256; f++) { + const e = t.getByte(); + e && d.push({ charCode: f, glyphId: e }); + } + u = !0; + } else if (2 === h) { + t.skip(4); + const e = []; + let a = 0; + for (let r = 0; r < 256; r++) { + const r = t.getUint16() >> 3; + e.push(r); + a = Math.max(r, a); + } + const r = []; + for (let e = 0; e <= a; e++) + r.push({ + firstCode: t.getUint16(), + entryCount: t.getUint16(), + idDelta: signedInt16(t.getByte(), t.getByte()), + idRangePos: t.pos + t.getUint16(), + }); + for (let a = 0; a < 256; a++) + if (0 === e[a]) { + t.pos = r[0].idRangePos + 2 * a; + g = t.getUint16(); + d.push({ charCode: a, glyphId: g }); + } else { + const i = r[e[a]]; + for (f = 0; f < i.entryCount; f++) { + const e = (a << 8) + f + i.firstCode; + t.pos = i.idRangePos + 2 * f; + g = t.getUint16(); + 0 !== g && (g = (g + i.idDelta) % 65536); + d.push({ charCode: e, glyphId: g }); + } + } + } else if (4 === h) { + t.skip(4); + const e = t.getUint16() >> 1; + t.skip(6); + const a = []; + let r; + for (r = 0; r < e; r++) a.push({ end: t.getUint16() }); + t.skip(2); + for (r = 0; r < e; r++) a[r].start = t.getUint16(); + for (r = 0; r < e; r++) a[r].delta = t.getUint16(); + let i, + o = 0; + for (r = 0; r < e; r++) { + n = a[r]; + const s = t.getUint16(); + if (s) { + i = (s >> 1) - (e - r); + n.offsetIndex = i; + o = Math.max(o, i + n.end - n.start + 1); + } else n.offsetIndex = -1; + } + const c = []; + for (f = 0; f < o; f++) c.push(t.getUint16()); + for (r = 0; r < e; r++) { + n = a[r]; + s = n.start; + const e = n.end, + t = n.delta; + i = n.offsetIndex; + for (f = s; f <= e; f++) + if (65535 !== f) { + g = i < 0 ? f : c[i + f - s]; + g = (g + t) & 65535; + d.push({ charCode: f, glyphId: g }); + } + } + } else if (6 === h) { + t.skip(4); + const e = t.getUint16(), + a = t.getUint16(); + for (f = 0; f < a; f++) { + g = t.getUint16(); + const a = e + f; + d.push({ charCode: a, glyphId: g }); + } + } else { + if (12 !== h) { + (0, r.warn)('cmap table has unsupported format: ' + h); + return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; + } + { + t.skip(10); + const e = t.getInt32() >>> 0; + for (f = 0; f < e; f++) { + const e = t.getInt32() >>> 0, + a = t.getInt32() >>> 0; + let r = t.getInt32() >>> 0; + for (let t = e; t <= a; t++) d.push({ charCode: t, glyphId: r++ }); + } + } + } + d.sort(function (e, t) { + return e.charCode - t.charCode; + }); + for (let e = 1; e < d.length; e++) + if (d[e - 1].charCode === d[e].charCode) { + d.splice(e, 1); + e--; + } + return { + platformId: c.platformId, + encodingId: c.encodingId, + mappings: d, + hasShortCmap: u, + }; + })(f.cmap, t, this.isSymbolicFont, a.hasEncoding), + i = e.platformId, + s = e.encodingId, + l = e.mappings; + let u = [], + d = !1; + !a.hasEncoding || + ('MacRomanEncoding' !== a.baseEncodingName && + 'WinAnsiEncoding' !== a.baseEncodingName) || + (u = (0, c.getEncoding)(a.baseEncodingName)); + if ( + a.hasEncoding && + !this.isSymbolicFont && + ((3 === i && 1 === s) || (1 === i && 0 === s)) + ) { + const e = (0, o.getGlyphsUnicode)(); + for (let t = 0; t < 256; t++) { + let r; + r = + void 0 !== this.differences[t] + ? this.differences[t] + : u.length && '' !== u[t] + ? u[t] + : c.StandardEncoding[t]; + if (!r) continue; + const o = (0, n.recoverGlyphName)(r, e); + let d; + 3 === i && 1 === s + ? (d = e[o]) + : 1 === i && 0 === s && (d = c.MacRomanEncoding.indexOf(o)); + if (void 0 === d) { + if ( + !a.glyphNames && + a.hasIncludedToUnicodeMap && + !(this.toUnicode instanceof h.IdentityToUnicodeMap) + ) { + const e = this.toUnicode.get(t); + e && (d = e.codePointAt(0)); + } + if (void 0 === d) continue; + } + for (const e of l) + if (e.charCode === d) { + D[t] = e.glyphId; + break; + } + } + } else if (0 === i) { + for (const e of l) D[e.charCode] = e.glyphId; + d = !0; + } else + for (const e of l) { + let t = e.charCode; + 3 === i && t >= 61440 && t <= 61695 && (t &= 255); + D[t] = e.glyphId; + } + if (a.glyphNames && (u.length || this.differences.length)) + for (let e = 0; e < 256; ++e) { + if (!d && void 0 !== D[e]) continue; + const t = this.differences[e] || u[e]; + if (!t) continue; + const r = a.glyphNames.indexOf(t); + r > 0 && hasGlyph(r) && (D[e] = r); + } + } + 0 === D.length && (D[0] = 0); + let N = k - 1; + v || (N = 0); + if (!a.cssFontInfo) { + const e = adjustMapping(D, hasGlyph, N, this.toUnicode); + this.toFontChar = e.toFontChar; + f.cmap = { + tag: 'cmap', + data: createCmapTable(e.charCodeToGlyphId, e.toUnicodeExtraMap, k), + }; + (f['OS/2'] && + (function validateOS2Table(e, t) { + t.pos = (t.start || 0) + e.offset; + const a = t.getUint16(); + t.skip(60); + const r = t.getUint16(); + if (a < 4 && 768 & r) return !1; + if (t.getUint16() > t.getUint16()) return !1; + t.skip(6); + if (0 === t.getUint16()) return !1; + e.data[8] = e.data[9] = 0; + return !0; + })(f['OS/2'], t)) || + (f['OS/2'] = { tag: 'OS/2', data: createOS2Table(a, e.charCodeToGlyphId, E) }); + } + if (!S) + try { + w = new y.Stream(f['CFF '].data); + b = new i.CFFParser(w, a, n.SEAC_ANALYSIS_ENABLED).parse(); + b.duplicateFirstGlyph(); + const e = new i.CFFCompiler(b); + f['CFF '].data = e.compile(); + } catch (e) { + (0, r.warn)('Failed to compile font ' + a.loadedName); + } + if (f.name) { + const [t, r] = readNameTable(f.name); + f.name.data = createNameTable(e, t); + this.psName = t[0][6] || null; + a.composite || + (function adjustTrueTypeToUnicode(e, t, a) { + if (e.isInternalFont) return; + if (e.hasIncludedToUnicodeMap) return; + if (e.hasEncoding) return; + if (e.toUnicode instanceof h.IdentityToUnicodeMap) return; + if (!t) return; + if (0 === a.length) return; + if (e.defaultEncoding === c.WinAnsiEncoding) return; + for (const e of a) if (!isWinNameRecord(e)) return; + const r = c.WinAnsiEncoding, + i = [], + n = (0, o.getGlyphsUnicode)(); + for (const e in r) { + const t = r[e]; + if ('' === t) continue; + const a = n[t]; + void 0 !== a && (i[e] = String.fromCharCode(a)); + } + i.length > 0 && e.toUnicode.amend(i); + })(a, this.isSymbolicFont, r); + } else f.name = { tag: 'name', data: createNameTable(this.name) }; + const R = new m.OpenTypeFileBuilder(d.version); + for (const e in f) R.addTable(e, f[e].data); + return R.toArray(); + } + convert(e, t, a) { + a.fixedPitch = !1; + a.builtInEncoding && + (function adjustType1ToUnicode(e, t) { + if (e.isInternalFont) return; + if (e.hasIncludedToUnicodeMap) return; + if (t === e.defaultEncoding) return; + if (e.toUnicode instanceof h.IdentityToUnicodeMap) return; + const a = [], + r = (0, o.getGlyphsUnicode)(); + for (const i in t) { + if (e.hasEncoding && (e.baseEncodingName || void 0 !== e.differences[i])) + continue; + const n = t[i], + o = (0, s.getUnicodeForGlyph)(n, r); + -1 !== o && (a[i] = String.fromCharCode(o)); + } + a.length > 0 && e.toUnicode.amend(a); + })(a, a.builtInEncoding); + let i = 1; + t instanceof u.CFFFont && (i = t.numGlyphs - 1); + const l = t.getGlyphMapping(a); + let d = null, + f = l, + g = null; + if (!a.cssFontInfo) { + d = adjustMapping(l, t.hasGlyphId.bind(t), i, this.toUnicode); + this.toFontChar = d.toFontChar; + f = d.charCodeToGlyphId; + g = d.toUnicodeExtraMap; + } + const p = t.numGlyphs; + function getCharCodes(e, t) { + let a = null; + for (const r in e) t === e[r] && (a ||= []).push(0 | r); + return a; + } + function createCharCode(e, t) { + for (const a in e) if (t === e[a]) return 0 | a; + d.charCodeToGlyphId[d.nextAvailableFontCharCode] = t; + return d.nextAvailableFontCharCode++; + } + const b = t.seacs; + if (d && n.SEAC_ANALYSIS_ENABLED && b && b.length) { + const e = a.fontMatrix || r.FONT_IDENTITY_MATRIX, + i = t.getCharset(), + n = Object.create(null); + for (let t in b) { + t |= 0; + const a = b[t], + r = c.StandardEncoding[a[2]], + s = c.StandardEncoding[a[3]], + o = i.indexOf(r), + h = i.indexOf(s); + if (o < 0 || h < 0) continue; + const u = { + x: a[0] * e[0] + a[1] * e[2] + e[4], + y: a[0] * e[1] + a[1] * e[3] + e[5], + }, + f = getCharCodes(l, t); + if (f) + for (const e of f) { + const t = d.charCodeToGlyphId, + a = createCharCode(t, o), + r = createCharCode(t, h); + n[e] = { baseFontCharCode: a, accentFontCharCode: r, accentOffset: u }; + } + } + a.seacMap = n; + } + const y = 1 / (a.fontMatrix || r.FONT_IDENTITY_MATRIX)[0], + w = new m.OpenTypeFileBuilder('OTTO'); + w.addTable('CFF ', t.data); + w.addTable('OS/2', createOS2Table(a, f)); + w.addTable('cmap', createCmapTable(f, g, p)); + w.addTable( + 'head', + '\0\0\0\0\0\0\0\0\0\0_<õ\0\0' + + safeString16(y) + + "\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0" + + safeString16(a.descent) + + 'ÿ' + + safeString16(a.ascent) + + string16(a.italicAngle ? 2 : 0) + + '\0\0\0\0\0\0\0', + ); + w.addTable( + 'hhea', + '\0\0\0' + + safeString16(a.ascent) + + safeString16(a.descent) + + '\0\0ÿÿ\0\0\0\0\0\0' + + safeString16(a.capHeight) + + safeString16(Math.tan(a.italicAngle) * a.xHeight) + + '\0\0\0\0\0\0\0\0\0\0\0\0' + + string16(p), + ); + w.addTable( + 'hmtx', + (function fontFieldsHmtx() { + const e = t.charstrings, + a = t.cff ? t.cff.widths : null; + let r = '\0\0\0\0'; + for (let t = 1, i = p; t < i; t++) { + let i = 0; + if (e) { + const a = e[t - 1]; + i = 'width' in a ? a.width : 0; + } else a && (i = Math.ceil(a[t] || 0)); + r += string16(i) + string16(0); + } + return r; + })(), + ); + w.addTable('maxp', '\0\0P\0' + string16(p)); + w.addTable('name', createNameTable(e)); + w.addTable('post', createPostTable(a)); + return w.toArray(); + } + get spaceWidth() { + const e = ['space', 'minus', 'one', 'i', 'I']; + let t; + for (const a of e) { + if (a in this.widths) { + t = this.widths[a]; + break; + } + const e = (0, o.getGlyphsUnicode)()[a]; + let r = 0; + if (this.composite && this.cMap.contains(e)) { + r = this.cMap.lookup(e); + 'string' == typeof r && (r = convertCidString(e, r)); + } + !r && this.toUnicode && (r = this.toUnicode.charCodeOf(e)); + r <= 0 && (r = e); + t = this.widths[r]; + if (t) break; + } + return (0, r.shadow)(this, 'spaceWidth', t || this.defaultWidth); + } + _charToGlyph(e, t = !1) { + let a, + i, + n, + o = this._glyphCache[e]; + if (o && o.isSpace === t) return o; + let c = e; + if (this.cMap && this.cMap.contains(e)) { + c = this.cMap.lookup(e); + 'string' == typeof c && (c = convertCidString(e, c)); + } + i = this.widths[c]; + 'number' != typeof i && (i = this.defaultWidth); + const l = this.vmetrics && this.vmetrics[c]; + let h = this.toUnicode.get(e) || e; + 'number' == typeof h && (h = String.fromCharCode(h)); + let u = void 0 !== this.toFontChar[e]; + a = this.toFontChar[e] || e; + if (this.missingFile) { + const t = this.differences[e] || this.defaultEncoding[e]; + ('.notdef' !== t && '' !== t) || 'Type1' !== this.type || (a = 32); + a = (0, s.mapSpecialUnicodeValues)(a); + } + this.isType3Font && (n = a); + let d = null; + if (this.seacMap && this.seacMap[e]) { + u = !0; + const t = this.seacMap[e]; + a = t.baseFontCharCode; + d = { + fontChar: String.fromCodePoint(t.accentFontCharCode), + offset: t.accentOffset, + }; + } + let f = ''; + 'number' == typeof a && + (a <= 1114111 + ? (f = String.fromCodePoint(a)) + : (0, r.warn)(`charToGlyph - invalid fontCharCode: ${a}`)); + o = new Glyph(e, f, h, d, i, l, n, t, u); + return (this._glyphCache[e] = o); + } + charsToGlyphs(e) { + let t = this._charsCache[e]; + if (t) return t; + t = []; + if (this.cMap) { + const a = Object.create(null), + r = e.length; + let i = 0; + for (; i < r; ) { + this.cMap.readCharCode(e, i, a); + const { charcode: r, length: n } = a; + i += n; + const s = this._charToGlyph(r, 1 === n && 32 === e.charCodeAt(i - 1)); + t.push(s); + } + } else + for (let a = 0, r = e.length; a < r; ++a) { + const r = e.charCodeAt(a), + i = this._charToGlyph(r, 32 === r); + t.push(i); + } + return (this._charsCache[e] = t); + } + getCharPositions(e) { + const t = []; + if (this.cMap) { + const a = Object.create(null); + let r = 0; + for (; r < e.length; ) { + this.cMap.readCharCode(e, r, a); + const i = a.length; + t.push([r, r + i]); + r += i; + } + } else for (let a = 0, r = e.length; a < r; ++a) t.push([a, a + 1]); + return t; + } + get glyphCacheValues() { + return Object.values(this._glyphCache); + } + encodeString(e) { + const t = [], + a = [], + hasCurrentBufErrors = () => t.length % 2 == 1, + r = + this.toUnicode instanceof h.IdentityToUnicodeMap + ? (e) => this.toUnicode.charCodeOf(e) + : (e) => this.toUnicode.charCodeOf(String.fromCodePoint(e)); + for (let i = 0, n = e.length; i < n; i++) { + const n = e.codePointAt(i); + n > 55295 && (n < 57344 || n > 65533) && i++; + if (this.toUnicode) { + const e = r(n); + if (-1 !== e) { + if (hasCurrentBufErrors()) { + t.push(a.join('')); + a.length = 0; + } + for (let t = (this.cMap ? this.cMap.getCharCodeLength(e) : 1) - 1; t >= 0; t--) + a.push(String.fromCharCode((e >> (8 * t)) & 255)); + continue; + } + } + if (!hasCurrentBufErrors()) { + t.push(a.join('')); + a.length = 0; + } + a.push(String.fromCodePoint(n)); + } + t.push(a.join('')); + return t; + } + }; + t.ErrorFont = class ErrorFont { + constructor(e) { + this.error = e; + this.loadedName = 'g_font_error'; + this.missingFile = !0; + } + charsToGlyphs() { + return []; + } + encodeString(e) { + return [e]; + } + exportData(e = !1) { + return { error: this.error }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CFFTopDict = + t.CFFStrings = + t.CFFStandardStrings = + t.CFFPrivateDict = + t.CFFParser = + t.CFFIndex = + t.CFFHeader = + t.CFFFDSelect = + t.CFFCompiler = + t.CFFCharset = + t.CFF = + void 0; + var r = a(2), + i = a(36), + n = a(37); + const s = [ + '.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', + ]; + t.CFFStandardStrings = s; + const o = 391, + c = [ + null, + { id: 'hstem', min: 2, stackClearing: !0, stem: !0 }, + null, + { id: 'vstem', min: 2, stackClearing: !0, stem: !0 }, + { id: 'vmoveto', min: 1, stackClearing: !0 }, + { id: 'rlineto', min: 2, resetStack: !0 }, + { id: 'hlineto', min: 1, resetStack: !0 }, + { id: 'vlineto', min: 1, resetStack: !0 }, + { id: 'rrcurveto', min: 6, resetStack: !0 }, + null, + { id: 'callsubr', min: 1, undefStack: !0 }, + { id: 'return', min: 0, undefStack: !0 }, + null, + null, + { id: 'endchar', min: 0, stackClearing: !0 }, + null, + null, + null, + { id: 'hstemhm', min: 2, stackClearing: !0, stem: !0 }, + { id: 'hintmask', min: 0, stackClearing: !0 }, + { id: 'cntrmask', min: 0, stackClearing: !0 }, + { id: 'rmoveto', min: 2, stackClearing: !0 }, + { id: 'hmoveto', min: 1, stackClearing: !0 }, + { id: 'vstemhm', min: 2, stackClearing: !0, stem: !0 }, + { id: 'rcurveline', min: 8, resetStack: !0 }, + { id: 'rlinecurve', min: 8, resetStack: !0 }, + { id: 'vvcurveto', min: 4, resetStack: !0 }, + { id: 'hhcurveto', min: 4, resetStack: !0 }, + null, + { id: 'callgsubr', min: 1, undefStack: !0 }, + { id: 'vhcurveto', min: 4, resetStack: !0 }, + { id: 'hvcurveto', min: 4, resetStack: !0 }, + ], + l = [ + 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(e, t) { + e[t - 2] = e[t - 2] + e[t - 1]; + }, + }, + { + id: 'sub', + min: 2, + stackDelta: -1, + stackFn(e, t) { + e[t - 2] = e[t - 2] - e[t - 1]; + }, + }, + { + id: 'div', + min: 2, + stackDelta: -1, + stackFn(e, t) { + e[t - 2] = e[t - 2] / e[t - 1]; + }, + }, + null, + { + id: 'neg', + min: 1, + stackDelta: 0, + stackFn(e, t) { + e[t - 1] = -e[t - 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(e, t) { + e[t - 2] = e[t - 2] * e[t - 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: !0 }, + { id: 'flex', min: 13, resetStack: !0 }, + { id: 'hflex1', min: 9, resetStack: !0 }, + { id: 'flex1', min: 11, resetStack: !0 }, + ]; + t.CFFParser = class CFFParser { + constructor(e, t, a) { + this.bytes = e.getBytes(); + this.properties = t; + this.seacAnalysisEnabled = !!a; + } + parse() { + const e = this.properties, + t = new CFF(); + this.cff = t; + const a = this.parseHeader(), + r = this.parseIndex(a.endPos), + i = this.parseIndex(r.endPos), + n = this.parseIndex(i.endPos), + s = this.parseIndex(n.endPos), + o = this.parseDict(i.obj.get(0)), + c = this.createDict(CFFTopDict, o, t.strings); + t.header = a.obj; + t.names = this.parseNameIndex(r.obj); + t.strings = this.parseStringIndex(n.obj); + t.topDict = c; + t.globalSubrIndex = s.obj; + this.parsePrivateDict(t.topDict); + t.isCIDFont = c.hasName('ROS'); + const l = c.getByName('CharStrings'), + h = this.parseIndex(l).obj, + u = c.getByName('FontMatrix'); + u && (e.fontMatrix = u); + const d = c.getByName('FontBBox'); + if (d) { + e.ascent = Math.max(d[3], d[1]); + e.descent = Math.min(d[1], d[3]); + e.ascentScaled = !0; + } + let f, g; + if (t.isCIDFont) { + const e = this.parseIndex(c.getByName('FDArray')).obj; + for (let a = 0, r = e.count; a < r; ++a) { + const r = e.get(a), + i = this.createDict(CFFTopDict, this.parseDict(r), t.strings); + this.parsePrivateDict(i); + t.fdArray.push(i); + } + g = null; + f = this.parseCharsets(c.getByName('charset'), h.count, t.strings, !0); + t.fdSelect = this.parseFDSelect(c.getByName('FDSelect'), h.count); + } else { + f = this.parseCharsets(c.getByName('charset'), h.count, t.strings, !1); + g = this.parseEncoding(c.getByName('Encoding'), e, t.strings, f.charset); + } + t.charset = f; + t.encoding = g; + const p = this.parseCharStrings({ + charStrings: h, + localSubrIndex: c.privateDict.subrsIndex, + globalSubrIndex: s.obj, + fdSelect: t.fdSelect, + fdArray: t.fdArray, + privateDict: c.privateDict, + }); + t.charStrings = p.charStrings; + t.seacs = p.seacs; + t.widths = p.widths; + return t; + } + parseHeader() { + let e = this.bytes; + const t = e.length; + let a = 0; + for (; a < t && 1 !== e[a]; ) ++a; + if (a >= t) throw new r.FormatError('Invalid CFF header'); + if (0 !== a) { + (0, r.info)('cff data is shifted'); + e = e.subarray(a); + this.bytes = e; + } + const i = e[0], + n = e[1], + s = e[2], + o = e[3]; + return { obj: new CFFHeader(i, n, s, o), endPos: s }; + } + parseDict(e) { + let t = 0; + function parseOperand() { + let a = e[t++]; + if (30 === a) + return (function parseFloatOperand() { + let a = ''; + const r = 15, + i = [ + '0', + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '.', + 'E', + 'E-', + null, + '-', + ], + n = e.length; + for (; t < n; ) { + const n = e[t++], + s = n >> 4, + o = 15 & n; + if (s === r) break; + a += i[s]; + if (o === r) break; + a += i[o]; + } + return parseFloat(a); + })(); + if (28 === a) { + a = e[t++]; + a = ((a << 24) | (e[t++] << 16)) >> 16; + return a; + } + if (29 === a) { + a = e[t++]; + a = (a << 8) | e[t++]; + a = (a << 8) | e[t++]; + a = (a << 8) | e[t++]; + return a; + } + if (a >= 32 && a <= 246) return a - 139; + if (a >= 247 && a <= 250) return 256 * (a - 247) + e[t++] + 108; + if (a >= 251 && a <= 254) return -256 * (a - 251) - e[t++] - 108; + (0, r.warn)('CFFParser_parseDict: "' + a + '" is a reserved command.'); + return NaN; + } + let a = []; + const i = []; + t = 0; + const n = e.length; + for (; t < n; ) { + let r = e[t]; + if (r <= 21) { + 12 === r && (r = (r << 8) | e[++t]); + i.push([r, a]); + a = []; + ++t; + } else a.push(parseOperand()); + } + return i; + } + parseIndex(e) { + const t = new CFFIndex(), + a = this.bytes, + r = (a[e++] << 8) | a[e++], + i = []; + let n, + s, + o = e; + if (0 !== r) { + const t = a[e++], + c = e + (r + 1) * t - 1; + for (n = 0, s = r + 1; n < s; ++n) { + let r = 0; + for (let i = 0; i < t; ++i) { + r <<= 8; + r += a[e++]; + } + i.push(c + r); + } + o = i[r]; + } + for (n = 0, s = i.length - 1; n < s; ++n) { + const e = i[n], + r = i[n + 1]; + t.add(a.subarray(e, r)); + } + return { obj: t, endPos: o }; + } + parseNameIndex(e) { + const t = []; + for (let a = 0, i = e.count; a < i; ++a) { + const i = e.get(a); + t.push((0, r.bytesToString)(i)); + } + return t; + } + parseStringIndex(e) { + const t = new CFFStrings(); + for (let a = 0, i = e.count; a < i; ++a) { + const i = e.get(a); + t.add((0, r.bytesToString)(i)); + } + return t; + } + createDict(e, t, a) { + const r = new e(a); + for (const [e, a] of t) r.setByKey(e, a); + return r; + } + parseCharString(e, t, a, i) { + if (!t || e.callDepth > 10) return !1; + let n = e.stackSize; + const s = e.stack; + let o = t.length; + for (let h = 0; h < o; ) { + const u = t[h++]; + let d = null; + if (12 === u) { + const e = t[h++]; + if (0 === e) { + t[h - 2] = 139; + t[h - 1] = 22; + n = 0; + } else d = l[e]; + } else if (28 === u) { + s[n] = ((t[h] << 24) | (t[h + 1] << 16)) >> 16; + h += 2; + n++; + } else if (14 === u) { + if (n >= 4) { + n -= 4; + if (this.seacAnalysisEnabled) { + e.seac = s.slice(n, n + 4); + return !1; + } + } + d = c[u]; + } else if (u >= 32 && u <= 246) { + s[n] = u - 139; + n++; + } else if (u >= 247 && u <= 254) { + s[n] = u < 251 ? ((u - 247) << 8) + t[h] + 108 : -((u - 251) << 8) - t[h] - 108; + h++; + n++; + } else if (255 === u) { + s[n] = ((t[h] << 24) | (t[h + 1] << 16) | (t[h + 2] << 8) | t[h + 3]) / 65536; + h += 4; + n++; + } else if (19 === u || 20 === u) { + e.hints += n >> 1; + h += (e.hints + 7) >> 3; + n %= 2; + d = c[u]; + } else { + if (10 === u || 29 === u) { + let t; + t = 10 === u ? a : i; + if (!t) { + d = c[u]; + (0, r.warn)('Missing subrsIndex for ' + d.id); + return !1; + } + let o = 32768; + t.count < 1240 ? (o = 107) : t.count < 33900 && (o = 1131); + const l = s[--n] + o; + if (l < 0 || l >= t.count || isNaN(l)) { + d = c[u]; + (0, r.warn)('Out of bounds subrIndex for ' + d.id); + return !1; + } + e.stackSize = n; + e.callDepth++; + if (!this.parseCharString(e, t.get(l), a, i)) return !1; + e.callDepth--; + n = e.stackSize; + continue; + } + if (11 === u) { + e.stackSize = n; + return !0; + } + if (0 === u && h === t.length) { + t[h - 1] = 14; + d = c[14]; + } else { + if (9 === u) { + t.copyWithin(h - 1, h, -1); + h -= 1; + o -= 1; + continue; + } + d = c[u]; + } + } + if (d) { + if (d.stem) { + e.hints += n >> 1; + if (3 === u || 23 === u) e.hasVStems = !0; + else if (e.hasVStems && (1 === u || 18 === u)) { + (0, r.warn)('CFF stem hints are in wrong order'); + t[h - 1] = 1 === u ? 3 : 23; + } + } + if ('min' in d && !e.undefStack && n < d.min) { + (0, r.warn)( + 'Not enough parameters for ' + + d.id + + '; actual: ' + + n + + ', expected: ' + + d.min, + ); + if (0 === n) { + t[h - 1] = 14; + return !0; + } + return !1; + } + if (e.firstStackClearing && d.stackClearing) { + e.firstStackClearing = !1; + n -= d.min; + n >= 2 && d.stem + ? (n %= 2) + : n > 1 && + (0, r.warn)('Found too many parameters for stack-clearing command'); + n > 0 && (e.width = s[n - 1]); + } + if ('stackDelta' in d) { + 'stackFn' in d && d.stackFn(s, n); + n += d.stackDelta; + } else if (d.stackClearing) n = 0; + else if (d.resetStack) { + n = 0; + e.undefStack = !1; + } else if (d.undefStack) { + n = 0; + e.undefStack = !0; + e.firstStackClearing = !1; + } + } + } + o < t.length && t.fill(14, o); + e.stackSize = n; + return !0; + } + parseCharStrings({ + charStrings: e, + localSubrIndex: t, + globalSubrIndex: a, + fdSelect: i, + fdArray: n, + privateDict: s, + }) { + const o = [], + c = [], + l = e.count; + for (let h = 0; h < l; h++) { + const l = e.get(h), + u = { + callDepth: 0, + stackSize: 0, + stack: [], + undefStack: !0, + hints: 0, + firstStackClearing: !0, + seac: null, + width: null, + hasVStems: !1, + }; + let d = !0, + f = null, + g = s; + if (i && n.length) { + const e = i.getFDIndex(h); + if (-1 === e) { + (0, r.warn)('Glyph index is not in fd select.'); + d = !1; + } + if (e >= n.length) { + (0, r.warn)('Invalid fd index for glyph index.'); + d = !1; + } + if (d) { + g = n[e].privateDict; + f = g.subrsIndex; + } + } else t && (f = t); + d && (d = this.parseCharString(u, l, f, a)); + if (null !== u.width) { + const e = g.getByName('nominalWidthX'); + c[h] = e + u.width; + } else { + const e = g.getByName('defaultWidthX'); + c[h] = e; + } + null !== u.seac && (o[h] = u.seac); + d || e.set(h, new Uint8Array([14])); + } + return { charStrings: e, seacs: o, widths: c }; + } + emptyPrivateDictionary(e) { + const t = this.createDict(CFFPrivateDict, [], e.strings); + e.setByKey(18, [0, 0]); + e.privateDict = t; + } + parsePrivateDict(e) { + if (!e.hasName('Private')) { + this.emptyPrivateDictionary(e); + return; + } + const t = e.getByName('Private'); + if (!Array.isArray(t) || 2 !== t.length) { + e.removeByName('Private'); + return; + } + const a = t[0], + r = t[1]; + if (0 === a || r >= this.bytes.length) { + this.emptyPrivateDictionary(e); + return; + } + const i = r + a, + n = this.bytes.subarray(r, i), + s = this.parseDict(n), + o = this.createDict(CFFPrivateDict, s, e.strings); + e.privateDict = o; + 0 === o.getByName('ExpansionFactor') && o.setByName('ExpansionFactor', 0.06); + if (!o.getByName('Subrs')) return; + const c = o.getByName('Subrs'), + l = r + c; + if (0 === c || l >= this.bytes.length) { + this.emptyPrivateDictionary(e); + return; + } + const h = this.parseIndex(l); + o.subrsIndex = h.obj; + } + parseCharsets(e, t, a, n) { + if (0 === e) return new CFFCharset(!0, d.ISO_ADOBE, i.ISOAdobeCharset); + if (1 === e) return new CFFCharset(!0, d.EXPERT, i.ExpertCharset); + if (2 === e) return new CFFCharset(!0, d.EXPERT_SUBSET, i.ExpertSubsetCharset); + const s = this.bytes, + o = e, + c = s[e++], + l = [n ? 0 : '.notdef']; + let h, u, f; + t -= 1; + switch (c) { + case 0: + for (f = 0; f < t; f++) { + h = (s[e++] << 8) | s[e++]; + l.push(n ? h : a.get(h)); + } + break; + case 1: + for (; l.length <= t; ) { + h = (s[e++] << 8) | s[e++]; + u = s[e++]; + for (f = 0; f <= u; f++) l.push(n ? h++ : a.get(h++)); + } + break; + case 2: + for (; l.length <= t; ) { + h = (s[e++] << 8) | s[e++]; + u = (s[e++] << 8) | s[e++]; + for (f = 0; f <= u; f++) l.push(n ? h++ : a.get(h++)); + } + break; + default: + throw new r.FormatError('Unknown charset format'); + } + const g = e, + p = s.subarray(o, g); + return new CFFCharset(!1, c, l, p); + } + parseEncoding(e, t, a, i) { + const s = Object.create(null), + o = this.bytes; + let c, + l, + h, + u = !1, + d = null; + if (0 === e || 1 === e) { + u = !0; + c = e; + const t = e ? n.ExpertEncoding : n.StandardEncoding; + for (l = 0, h = i.length; l < h; l++) { + const e = t.indexOf(i[l]); + -1 !== e && (s[e] = l); + } + } else { + const t = e; + c = o[e++]; + switch (127 & c) { + case 0: + const t = o[e++]; + for (l = 1; l <= t; l++) s[o[e++]] = l; + break; + case 1: + const a = o[e++]; + let i = 1; + for (l = 0; l < a; l++) { + const t = o[e++], + a = o[e++]; + for (let e = t; e <= t + a; e++) s[e] = i++; + } + break; + default: + throw new r.FormatError(`Unknown encoding format: ${c} in CFF`); + } + const n = e; + if (128 & c) { + o[t] &= 127; + !(function readSupplement() { + const t = o[e++]; + for (l = 0; l < t; l++) { + const t = o[e++], + r = (o[e++] << 8) + (255 & o[e++]); + s[t] = i.indexOf(a.get(r)); + } + })(); + } + d = o.subarray(t, n); + } + c &= 127; + return new CFFEncoding(u, c, s, d); + } + parseFDSelect(e, t) { + const a = this.bytes, + i = a[e++], + n = []; + let s; + switch (i) { + case 0: + for (s = 0; s < t; ++s) { + const t = a[e++]; + n.push(t); + } + break; + case 3: + const o = (a[e++] << 8) | a[e++]; + for (s = 0; s < o; ++s) { + let t = (a[e++] << 8) | a[e++]; + if (0 === s && 0 !== t) { + (0, r.warn)( + 'parseFDSelect: The first range must have a first GID of 0 -- trying to recover.', + ); + t = 0; + } + const i = a[e++], + o = (a[e] << 8) | a[e + 1]; + for (let e = t; e < o; ++e) n.push(i); + } + e += 2; + break; + default: + throw new r.FormatError(`parseFDSelect: Unknown format "${i}".`); + } + if (n.length !== t) throw new r.FormatError('parseFDSelect: Invalid font data.'); + return new CFFFDSelect(i, n); + } + }; + class CFF { + constructor() { + this.header = null; + this.names = []; + this.topDict = null; + this.strings = new CFFStrings(); + this.globalSubrIndex = null; + this.encoding = null; + this.charset = null; + this.charStrings = null; + this.fdArray = []; + this.fdSelect = null; + this.isCIDFont = !1; + } + duplicateFirstGlyph() { + if (this.charStrings.count >= 65535) { + (0, r.warn)('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) { + if (e < 0 || e >= this.charStrings.count) return !1; + return this.charStrings.get(e).length > 0; + } + } + t.CFF = CFF; + class CFFHeader { + constructor(e, t, a, r) { + this.major = e; + this.minor = t; + this.hdrSize = a; + this.offSize = r; + } + } + t.CFFHeader = CFFHeader; + class CFFStrings { + constructor() { + this.strings = []; + } + get(e) { + return e >= 0 && e <= 390 + ? s[e] + : e - o <= this.strings.length + ? this.strings[e - o] + : s[0]; + } + getSID(e) { + let t = s.indexOf(e); + if (-1 !== t) return t; + t = this.strings.indexOf(e); + return -1 !== t ? t + o : -1; + } + add(e) { + this.strings.push(e); + } + get count() { + return this.strings.length; + } + } + t.CFFStrings = CFFStrings; + class CFFIndex { + constructor() { + this.objects = []; + this.length = 0; + } + add(e) { + this.length += e.length; + this.objects.push(e); + } + set(e, t) { + this.length += t.length - this.objects[e].length; + this.objects[e] = t; + } + get(e) { + return this.objects[e]; + } + get count() { + return this.objects.length; + } + } + t.CFFIndex = CFFIndex; + class CFFDict { + constructor(e, t) { + 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 = t; + this.values = Object.create(null); + } + setByKey(e, t) { + if (!(e in this.keyToNameMap)) return !1; + if (0 === t.length) return !0; + for (const a of t) + if (isNaN(a)) { + (0, r.warn)(`Invalid CFFDict value: "${t}" for key "${e}".`); + return !0; + } + const a = this.types[e]; + ('num' !== a && 'sid' !== a && 'offset' !== a) || (t = t[0]); + this.values[e] = t; + return !0; + } + setByName(e, t) { + if (!(e in this.nameToKeyMap)) + throw new r.FormatError(`Invalid dictionary name "${e}"`); + this.values[this.nameToKeyMap[e]] = t; + } + hasName(e) { + return this.nameToKeyMap[e] in this.values; + } + getByName(e) { + if (!(e in this.nameToKeyMap)) + throw new r.FormatError(`Invalid dictionary name ${e}"`); + const t = this.nameToKeyMap[e]; + return t in this.values ? this.values[t] : this.defaults[t]; + } + removeByName(e) { + delete this.values[this.nameToKeyMap[e]]; + } + static createTables(e) { + const t = { + keyToNameMap: {}, + nameToKeyMap: {}, + defaults: {}, + types: {}, + opcodes: {}, + order: [], + }; + for (const a of e) { + const e = Array.isArray(a[0]) ? (a[0][0] << 8) + a[0][1] : a[0]; + t.keyToNameMap[e] = a[1]; + t.nameToKeyMap[a[1]] = e; + t.types[e] = a[2]; + t.defaults[e] = a[3]; + t.opcodes[e] = Array.isArray(a[0]) ? a[0] : [a[0]]; + t.order.push(e); + } + return t; + } + } + const h = [ + [[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'], + [0.001, 0, 0, 0.001, 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], + ]; + class CFFTopDict extends CFFDict { + static get tables() { + return (0, r.shadow)(this, 'tables', this.createTables(h)); + } + constructor(e) { + super(CFFTopDict.tables, e); + this.privateDict = null; + } + } + t.CFFTopDict = CFFTopDict; + const u = [ + [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], + ]; + class CFFPrivateDict extends CFFDict { + static get tables() { + return (0, r.shadow)(this, 'tables', this.createTables(u)); + } + constructor(e) { + super(CFFPrivateDict.tables, e); + this.subrsIndex = null; + } + } + t.CFFPrivateDict = CFFPrivateDict; + const d = { ISO_ADOBE: 0, EXPERT: 1, EXPERT_SUBSET: 2 }; + class CFFCharset { + constructor(e, t, a, r) { + this.predefined = e; + this.format = t; + this.charset = a; + this.raw = r; + } + } + t.CFFCharset = CFFCharset; + class CFFEncoding { + constructor(e, t, a, r) { + this.predefined = e; + this.format = t; + this.encoding = a; + this.raw = r; + } + } + class CFFFDSelect { + constructor(e, t) { + this.format = e; + this.fdSelect = t; + } + getFDIndex(e) { + return e < 0 || e >= this.fdSelect.length ? -1 : this.fdSelect[e]; + } + } + t.CFFFDSelect = CFFFDSelect; + class CFFOffsetTracker { + constructor() { + this.offsets = Object.create(null); + } + isTracking(e) { + return e in this.offsets; + } + track(e, t) { + if (e in this.offsets) throw new r.FormatError(`Already tracking location of ${e}`); + this.offsets[e] = t; + } + offset(e) { + for (const t in this.offsets) this.offsets[t] += e; + } + setEntryLocation(e, t, a) { + if (!(e in this.offsets)) throw new r.FormatError(`Not tracking location of ${e}`); + const i = a.data, + n = this.offsets[e]; + for (let e = 0, a = t.length; e < a; ++e) { + const a = 5 * e + n, + s = a + 1, + o = a + 2, + c = a + 3, + l = a + 4; + if (29 !== i[a] || 0 !== i[s] || 0 !== i[o] || 0 !== i[c] || 0 !== i[l]) + throw new r.FormatError('writing to an offset that is not empty'); + const h = t[e]; + i[a] = 29; + i[s] = (h >> 24) & 255; + i[o] = (h >> 16) & 255; + i[c] = (h >> 8) & 255; + i[l] = 255 & h; + } + } + } + class CFFCompiler { + constructor(e) { + this.cff = e; + } + compile() { + const e = this.cff, + t = { + data: [], + length: 0, + add(e) { + e.length <= 65536 ? this.data.push(...e) : (this.data = this.data.concat(e)); + this.length = this.data.length; + }, + }, + a = this.compileHeader(e.header); + t.add(a); + const i = this.compileNameIndex(e.names); + t.add(i); + if (e.isCIDFont && e.topDict.hasName('FontMatrix')) { + const t = e.topDict.getByName('FontMatrix'); + e.topDict.removeByName('FontMatrix'); + for (const a of e.fdArray) { + let e = t.slice(0); + a.hasName('FontMatrix') && (e = r.Util.transform(e, a.getByName('FontMatrix'))); + a.setByName('FontMatrix', e); + } + } + const n = e.topDict.getByName('XUID'); + n && n.length > 16 && e.topDict.removeByName('XUID'); + e.topDict.setByName('charset', 0); + let s = this.compileTopDicts([e.topDict], t.length, e.isCIDFont); + t.add(s.output); + const o = s.trackers[0], + c = this.compileStringIndex(e.strings.strings); + t.add(c); + const l = this.compileIndex(e.globalSubrIndex); + t.add(l); + if (e.encoding && e.topDict.hasName('Encoding')) + if (e.encoding.predefined) o.setEntryLocation('Encoding', [e.encoding.format], t); + else { + const a = this.compileEncoding(e.encoding); + o.setEntryLocation('Encoding', [t.length], t); + t.add(a); + } + const h = this.compileCharset(e.charset, e.charStrings.count, e.strings, e.isCIDFont); + o.setEntryLocation('charset', [t.length], t); + t.add(h); + const u = this.compileCharStrings(e.charStrings); + o.setEntryLocation('CharStrings', [t.length], t); + t.add(u); + if (e.isCIDFont) { + o.setEntryLocation('FDSelect', [t.length], t); + const a = this.compileFDSelect(e.fdSelect); + t.add(a); + s = this.compileTopDicts(e.fdArray, t.length, !0); + o.setEntryLocation('FDArray', [t.length], t); + t.add(s.output); + const r = s.trackers; + this.compilePrivateDicts(e.fdArray, r, t); + } + this.compilePrivateDicts([e.topDict], [o], t); + t.add([0]); + return t.data; + } + encodeNumber(e) { + return Number.isInteger(e) ? this.encodeInteger(e) : this.encodeFloat(e); + } + static get EncodeFloatRegExp() { + return (0, r.shadow)( + this, + 'EncodeFloatRegExp', + /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/, + ); + } + encodeFloat(e) { + let t = e.toString(); + const a = CFFCompiler.EncodeFloatRegExp.exec(t); + if (a) { + const r = parseFloat('1e' + ((a[2] ? +a[2] : 0) + a[1].length)); + t = (Math.round(e * r) / r).toString(); + } + let r, + i, + n = ''; + for (r = 0, i = t.length; r < i; ++r) { + const e = t[r]; + n += + 'e' === e ? ('-' === t[++r] ? 'c' : 'b') : '.' === e ? 'a' : '-' === e ? 'e' : e; + } + n += 1 & n.length ? 'f' : 'ff'; + const s = [30]; + for (r = 0, i = n.length; r < i; r += 2) s.push(parseInt(n.substring(r, r + 2), 16)); + return s; + } + encodeInteger(e) { + let t; + t = + e >= -107 && e <= 107 + ? [e + 139] + : e >= 108 && e <= 1131 + ? [247 + ((e -= 108) >> 8), 255 & e] + : e >= -1131 && e <= -108 + ? [251 + ((e = -e - 108) >> 8), 255 & e] + : e >= -32768 && e <= 32767 + ? [28, (e >> 8) & 255, 255 & e] + : [29, (e >> 24) & 255, (e >> 16) & 255, (e >> 8) & 255, 255 & e]; + return t; + } + compileHeader(e) { + return [e.major, e.minor, 4, e.offSize]; + } + compileNameIndex(e) { + const t = new CFFIndex(); + for (const a of e) { + const e = Math.min(a.length, 127); + let i = new Array(e); + for (let t = 0; t < e; t++) { + let e = a[t]; + (e < '!' || + e > '~' || + '[' === e || + ']' === e || + '(' === e || + ')' === e || + '{' === e || + '}' === e || + '<' === e || + '>' === e || + '/' === e || + '%' === e) && + (e = '_'); + i[t] = e; + } + i = i.join(''); + '' === i && (i = 'Bad_Font_Name'); + t.add((0, r.stringToBytes)(i)); + } + return this.compileIndex(t); + } + compileTopDicts(e, t, a) { + const r = []; + let i = new CFFIndex(); + for (const n of e) { + if (a) { + n.removeByName('CIDFontVersion'); + n.removeByName('CIDFontRevision'); + n.removeByName('CIDFontType'); + n.removeByName('CIDCount'); + n.removeByName('UIDBase'); + } + const e = new CFFOffsetTracker(), + s = this.compileDict(n, e); + r.push(e); + i.add(s); + e.offset(t); + } + i = this.compileIndex(i, r); + return { trackers: r, output: i }; + } + compilePrivateDicts(e, t, a) { + for (let i = 0, n = e.length; i < n; ++i) { + const n = e[i], + s = n.privateDict; + if (!s || !n.hasName('Private')) + throw new r.FormatError('There must be a private dictionary.'); + const o = new CFFOffsetTracker(), + c = this.compileDict(s, o); + let l = a.length; + o.offset(l); + c.length || (l = 0); + t[i].setEntryLocation('Private', [c.length, l], a); + a.add(c); + if (s.subrsIndex && s.hasName('Subrs')) { + const e = this.compileIndex(s.subrsIndex); + o.setEntryLocation('Subrs', [c.length], a); + a.add(e); + } + } + } + compileDict(e, t) { + const a = []; + for (const i of e.order) { + if (!(i in e.values)) continue; + let n = e.values[i], + s = e.types[i]; + Array.isArray(s) || (s = [s]); + Array.isArray(n) || (n = [n]); + if (0 !== n.length) { + for (let o = 0, c = s.length; o < c; ++o) { + const c = s[o], + l = n[o]; + switch (c) { + case 'num': + case 'sid': + a.push(...this.encodeNumber(l)); + break; + case 'offset': + const s = e.keyToNameMap[i]; + t.isTracking(s) || t.track(s, a.length); + a.push(29, 0, 0, 0, 0); + break; + case 'array': + case 'delta': + a.push(...this.encodeNumber(l)); + for (let e = 1, t = n.length; e < t; ++e) + a.push(...this.encodeNumber(n[e])); + break; + default: + throw new r.FormatError(`Unknown data type of ${c}`); + } + } + a.push(...e.opcodes[i]); + } + } + return a; + } + compileStringIndex(e) { + const t = new CFFIndex(); + for (const a of e) t.add((0, r.stringToBytes)(a)); + return this.compileIndex(t); + } + compileCharStrings(e) { + const t = new CFFIndex(); + for (let a = 0; a < e.count; a++) { + const r = e.get(a); + 0 !== r.length ? t.add(r) : t.add(new Uint8Array([139, 14])); + } + return this.compileIndex(t); + } + compileCharset(e, t, a, i) { + let n; + const s = t - 1; + if (i) n = new Uint8Array([2, 0, 0, (s >> 8) & 255, 255 & s]); + else { + n = new Uint8Array(1 + 2 * s); + n[0] = 0; + let t = 0; + const i = e.charset.length; + let o = !1; + for (let s = 1; s < n.length; s += 2) { + let c = 0; + if (t < i) { + const i = e.charset[t++]; + c = a.getSID(i); + if (-1 === c) { + c = 0; + if (!o) { + o = !0; + (0, r.warn)(`Couldn't find ${i} in CFF strings`); + } + } + } + n[s] = (c >> 8) & 255; + n[s + 1] = 255 & c; + } + } + return this.compileTypedArray(n); + } + compileEncoding(e) { + return this.compileTypedArray(e.raw); + } + compileFDSelect(e) { + const t = e.format; + let a, r; + switch (t) { + case 0: + a = new Uint8Array(1 + e.fdSelect.length); + a[0] = t; + for (r = 0; r < e.fdSelect.length; r++) a[r + 1] = e.fdSelect[r]; + break; + case 3: + const i = 0; + let n = e.fdSelect[0]; + const s = [t, 0, 0, (i >> 8) & 255, 255 & i, n]; + for (r = 1; r < e.fdSelect.length; r++) { + const t = e.fdSelect[r]; + if (t !== n) { + s.push((r >> 8) & 255, 255 & r, t); + n = t; + } + } + const o = (s.length - 3) / 3; + s[1] = (o >> 8) & 255; + s[2] = 255 & o; + s.push((r >> 8) & 255, 255 & r); + a = new Uint8Array(s); + } + return this.compileTypedArray(a); + } + compileTypedArray(e) { + return Array.from(e); + } + compileIndex(e, t = []) { + const a = e.objects, + r = a.length; + if (0 === r) return [0, 0]; + const i = [(r >> 8) & 255, 255 & r]; + let n, + s, + o = 1; + for (n = 0; n < r; ++n) o += a[n].length; + s = o < 256 ? 1 : o < 65536 ? 2 : o < 16777216 ? 3 : 4; + i.push(s); + let c = 1; + for (n = 0; n < r + 1; n++) { + 1 === s + ? i.push(255 & c) + : 2 === s + ? i.push((c >> 8) & 255, 255 & c) + : 3 === s + ? i.push((c >> 16) & 255, (c >> 8) & 255, 255 & c) + : i.push((c >>> 24) & 255, (c >> 16) & 255, (c >> 8) & 255, 255 & c); + a[n] && (c += a[n].length); + } + for (n = 0; n < r; n++) { + t[n] && t[n].offset(i.length); + i.push(...a[n]); + } + return i; + } + } + t.CFFCompiler = CFFCompiler; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ISOAdobeCharset = t.ExpertSubsetCharset = t.ExpertCharset = void 0; + t.ISOAdobeCharset = [ + '.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', + ]; + t.ExpertCharset = [ + '.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', + ]; + t.ExpertSubsetCharset = [ + '.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', + ]; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ZapfDingbatsEncoding = + t.WinAnsiEncoding = + t.SymbolSetEncoding = + t.StandardEncoding = + t.MacRomanEncoding = + t.ExpertEncoding = + void 0; + t.getEncoding = function getEncoding(e) { + switch (e) { + case 'WinAnsiEncoding': + return s; + case 'StandardEncoding': + return n; + case 'MacRomanEncoding': + return i; + case 'SymbolSetEncoding': + return o; + case 'ZapfDingbatsEncoding': + return c; + case 'ExpertEncoding': + return a; + case 'MacExpertEncoding': + return r; + default: + return null; + } + }; + const a = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + ]; + t.ExpertEncoding = a; + const r = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + '', + '', + '', + '', + ], + i = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + ]; + t.MacRomanEncoding = i; + const n = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + '', + '', + '', + '', + ]; + t.StandardEncoding = n; + const s = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + ]; + t.WinAnsiEncoding = s; + const o = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + '', + ]; + t.SymbolSetEncoding = o; + const c = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + '', + ]; + t.ZapfDingbatsEncoding = c; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.SEAC_ANALYSIS_ENABLED = t.MacStandardGlyphOrdering = t.FontFlags = void 0; + t.normalizeFontName = function normalizeFontName(e) { + return e.replaceAll(/[,_]/g, '-').replaceAll(/\s/g, ''); + }; + t.recoverGlyphName = recoverGlyphName; + t.type1FontGlyphMapping = function type1FontGlyphMapping(e, t, a) { + const n = Object.create(null); + let s, c, l; + const h = !!(e.flags & o.Symbolic); + if (e.isInternalFont) { + l = t; + for (c = 0; c < l.length; c++) { + s = a.indexOf(l[c]); + n[c] = s >= 0 ? s : 0; + } + } else if (e.baseEncodingName) { + l = (0, r.getEncoding)(e.baseEncodingName); + for (c = 0; c < l.length; c++) { + s = a.indexOf(l[c]); + n[c] = s >= 0 ? s : 0; + } + } else if (h) for (c in t) n[c] = t[c]; + else { + l = r.StandardEncoding; + for (c = 0; c < l.length; c++) { + s = a.indexOf(l[c]); + n[c] = s >= 0 ? s : 0; + } + } + const u = e.differences; + let d; + if (u) + for (c in u) { + const e = u[c]; + s = a.indexOf(e); + if (-1 === s) { + d || (d = (0, i.getGlyphsUnicode)()); + const t = recoverGlyphName(e, d); + t !== e && (s = a.indexOf(t)); + } + n[c] = s >= 0 ? s : 0; + } + return n; + }; + var r = a(37), + i = a(39), + n = a(40), + s = a(2); + t.SEAC_ANALYSIS_ENABLED = !0; + const o = { + FixedPitch: 1, + Serif: 2, + Symbolic: 4, + Script: 8, + Nonsymbolic: 32, + Italic: 64, + AllCap: 65536, + SmallCap: 131072, + ForceBold: 262144, + }; + t.FontFlags = o; + t.MacStandardGlyphOrdering = [ + '.notdef', + '.null', + 'nonmarkingreturn', + 'space', + 'exclam', + 'quotedbl', + 'numbersign', + 'dollar', + 'percent', + 'ampersand', + 'quotesingle', + 'parenleft', + 'parenright', + 'asterisk', + 'plus', + 'comma', + 'hyphen', + 'period', + 'slash', + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'colon', + 'semicolon', + 'less', + 'equal', + 'greater', + 'question', + 'at', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + 'bracketleft', + 'backslash', + 'bracketright', + 'asciicircum', + 'underscore', + 'grave', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'braceleft', + 'bar', + 'braceright', + 'asciitilde', + 'Adieresis', + 'Aring', + 'Ccedilla', + 'Eacute', + 'Ntilde', + 'Odieresis', + 'Udieresis', + 'aacute', + 'agrave', + 'acircumflex', + 'adieresis', + 'atilde', + 'aring', + 'ccedilla', + 'eacute', + 'egrave', + 'ecircumflex', + 'edieresis', + 'iacute', + 'igrave', + 'icircumflex', + 'idieresis', + 'ntilde', + 'oacute', + 'ograve', + 'ocircumflex', + 'odieresis', + 'otilde', + 'uacute', + 'ugrave', + 'ucircumflex', + 'udieresis', + 'dagger', + 'degree', + 'cent', + 'sterling', + 'section', + 'bullet', + 'paragraph', + 'germandbls', + 'registered', + 'copyright', + 'trademark', + 'acute', + 'dieresis', + 'notequal', + 'AE', + 'Oslash', + 'infinity', + 'plusminus', + 'lessequal', + 'greaterequal', + 'yen', + 'mu', + 'partialdiff', + 'summation', + 'product', + 'pi', + 'integral', + 'ordfeminine', + 'ordmasculine', + 'Omega', + 'ae', + 'oslash', + 'questiondown', + 'exclamdown', + 'logicalnot', + 'radical', + 'florin', + 'approxequal', + 'Delta', + 'guillemotleft', + 'guillemotright', + 'ellipsis', + 'nonbreakingspace', + 'Agrave', + 'Atilde', + 'Otilde', + 'OE', + 'oe', + 'endash', + 'emdash', + 'quotedblleft', + 'quotedblright', + 'quoteleft', + 'quoteright', + 'divide', + 'lozenge', + 'ydieresis', + 'Ydieresis', + 'fraction', + 'currency', + 'guilsinglleft', + 'guilsinglright', + 'fi', + 'fl', + 'daggerdbl', + 'periodcentered', + 'quotesinglbase', + 'quotedblbase', + 'perthousand', + 'Acircumflex', + 'Ecircumflex', + 'Aacute', + 'Edieresis', + 'Egrave', + 'Iacute', + 'Icircumflex', + 'Idieresis', + 'Igrave', + 'Oacute', + 'Ocircumflex', + 'apple', + 'Ograve', + 'Uacute', + 'Ucircumflex', + 'Ugrave', + 'dotlessi', + 'circumflex', + 'tilde', + 'macron', + 'breve', + 'dotaccent', + 'ring', + 'cedilla', + 'hungarumlaut', + 'ogonek', + 'caron', + 'Lslash', + 'lslash', + 'Scaron', + 'scaron', + 'Zcaron', + 'zcaron', + 'brokenbar', + 'Eth', + 'eth', + 'Yacute', + 'yacute', + 'Thorn', + 'thorn', + 'minus', + 'multiply', + 'onesuperior', + 'twosuperior', + 'threesuperior', + 'onehalf', + 'onequarter', + 'threequarters', + 'franc', + 'Gbreve', + 'gbreve', + 'Idotaccent', + 'Scedilla', + 'scedilla', + 'Cacute', + 'cacute', + 'Ccaron', + 'ccaron', + 'dcroat', + ]; + function recoverGlyphName(e, t) { + if (void 0 !== t[e]) return e; + const a = (0, n.getUnicodeForGlyph)(e, t); + if (-1 !== a) for (const e in t) if (t[e] === a) return e; + (0, s.info)('Unable to recover a standard glyph name for: ' + e); + return e; + } + }, + (e, t, a) => { + a.r(t); + a.d(t, { getDingbatsGlyphsUnicode: () => n, getGlyphsUnicode: () => i }); + var r = a(3); + const i = (0, r.getLookupTableFactory)(function (e) { + e.A = 65; + e.AE = 198; + e.AEacute = 508; + e.AEmacron = 482; + e.AEsmall = 63462; + e.Aacute = 193; + e.Aacutesmall = 63457; + e.Abreve = 258; + e.Abreveacute = 7854; + e.Abrevecyrillic = 1232; + e.Abrevedotbelow = 7862; + e.Abrevegrave = 7856; + e.Abrevehookabove = 7858; + e.Abrevetilde = 7860; + e.Acaron = 461; + e.Acircle = 9398; + e.Acircumflex = 194; + e.Acircumflexacute = 7844; + e.Acircumflexdotbelow = 7852; + e.Acircumflexgrave = 7846; + e.Acircumflexhookabove = 7848; + e.Acircumflexsmall = 63458; + e.Acircumflextilde = 7850; + e.Acute = 63177; + e.Acutesmall = 63412; + e.Acyrillic = 1040; + e.Adblgrave = 512; + e.Adieresis = 196; + e.Adieresiscyrillic = 1234; + e.Adieresismacron = 478; + e.Adieresissmall = 63460; + e.Adotbelow = 7840; + e.Adotmacron = 480; + e.Agrave = 192; + e.Agravesmall = 63456; + e.Ahookabove = 7842; + e.Aiecyrillic = 1236; + e.Ainvertedbreve = 514; + e.Alpha = 913; + e.Alphatonos = 902; + e.Amacron = 256; + e.Amonospace = 65313; + e.Aogonek = 260; + e.Aring = 197; + e.Aringacute = 506; + e.Aringbelow = 7680; + e.Aringsmall = 63461; + e.Asmall = 63329; + e.Atilde = 195; + e.Atildesmall = 63459; + e.Aybarmenian = 1329; + e.B = 66; + e.Bcircle = 9399; + e.Bdotaccent = 7682; + e.Bdotbelow = 7684; + e.Becyrillic = 1041; + e.Benarmenian = 1330; + e.Beta = 914; + e.Bhook = 385; + e.Blinebelow = 7686; + e.Bmonospace = 65314; + e.Brevesmall = 63220; + e.Bsmall = 63330; + e.Btopbar = 386; + e.C = 67; + e.Caarmenian = 1342; + e.Cacute = 262; + e.Caron = 63178; + e.Caronsmall = 63221; + e.Ccaron = 268; + e.Ccedilla = 199; + e.Ccedillaacute = 7688; + e.Ccedillasmall = 63463; + e.Ccircle = 9400; + e.Ccircumflex = 264; + e.Cdot = 266; + e.Cdotaccent = 266; + e.Cedillasmall = 63416; + e.Chaarmenian = 1353; + e.Cheabkhasiancyrillic = 1212; + e.Checyrillic = 1063; + e.Chedescenderabkhasiancyrillic = 1214; + e.Chedescendercyrillic = 1206; + e.Chedieresiscyrillic = 1268; + e.Cheharmenian = 1347; + e.Chekhakassiancyrillic = 1227; + e.Cheverticalstrokecyrillic = 1208; + e.Chi = 935; + e.Chook = 391; + e.Circumflexsmall = 63222; + e.Cmonospace = 65315; + e.Coarmenian = 1361; + e.Csmall = 63331; + e.D = 68; + e.DZ = 497; + e.DZcaron = 452; + e.Daarmenian = 1332; + e.Dafrican = 393; + e.Dcaron = 270; + e.Dcedilla = 7696; + e.Dcircle = 9401; + e.Dcircumflexbelow = 7698; + e.Dcroat = 272; + e.Ddotaccent = 7690; + e.Ddotbelow = 7692; + e.Decyrillic = 1044; + e.Deicoptic = 1006; + e.Delta = 8710; + e.Deltagreek = 916; + e.Dhook = 394; + e.Dieresis = 63179; + e.DieresisAcute = 63180; + e.DieresisGrave = 63181; + e.Dieresissmall = 63400; + e.Digammagreek = 988; + e.Djecyrillic = 1026; + e.Dlinebelow = 7694; + e.Dmonospace = 65316; + e.Dotaccentsmall = 63223; + e.Dslash = 272; + e.Dsmall = 63332; + e.Dtopbar = 395; + e.Dz = 498; + e.Dzcaron = 453; + e.Dzeabkhasiancyrillic = 1248; + e.Dzecyrillic = 1029; + e.Dzhecyrillic = 1039; + e.E = 69; + e.Eacute = 201; + e.Eacutesmall = 63465; + e.Ebreve = 276; + e.Ecaron = 282; + e.Ecedillabreve = 7708; + e.Echarmenian = 1333; + e.Ecircle = 9402; + e.Ecircumflex = 202; + e.Ecircumflexacute = 7870; + e.Ecircumflexbelow = 7704; + e.Ecircumflexdotbelow = 7878; + e.Ecircumflexgrave = 7872; + e.Ecircumflexhookabove = 7874; + e.Ecircumflexsmall = 63466; + e.Ecircumflextilde = 7876; + e.Ecyrillic = 1028; + e.Edblgrave = 516; + e.Edieresis = 203; + e.Edieresissmall = 63467; + e.Edot = 278; + e.Edotaccent = 278; + e.Edotbelow = 7864; + e.Efcyrillic = 1060; + e.Egrave = 200; + e.Egravesmall = 63464; + e.Eharmenian = 1335; + e.Ehookabove = 7866; + e.Eightroman = 8551; + e.Einvertedbreve = 518; + e.Eiotifiedcyrillic = 1124; + e.Elcyrillic = 1051; + e.Elevenroman = 8554; + e.Emacron = 274; + e.Emacronacute = 7702; + e.Emacrongrave = 7700; + e.Emcyrillic = 1052; + e.Emonospace = 65317; + e.Encyrillic = 1053; + e.Endescendercyrillic = 1186; + e.Eng = 330; + e.Enghecyrillic = 1188; + e.Enhookcyrillic = 1223; + e.Eogonek = 280; + e.Eopen = 400; + e.Epsilon = 917; + e.Epsilontonos = 904; + e.Ercyrillic = 1056; + e.Ereversed = 398; + e.Ereversedcyrillic = 1069; + e.Escyrillic = 1057; + e.Esdescendercyrillic = 1194; + e.Esh = 425; + e.Esmall = 63333; + e.Eta = 919; + e.Etarmenian = 1336; + e.Etatonos = 905; + e.Eth = 208; + e.Ethsmall = 63472; + e.Etilde = 7868; + e.Etildebelow = 7706; + e.Euro = 8364; + e.Ezh = 439; + e.Ezhcaron = 494; + e.Ezhreversed = 440; + e.F = 70; + e.Fcircle = 9403; + e.Fdotaccent = 7710; + e.Feharmenian = 1366; + e.Feicoptic = 996; + e.Fhook = 401; + e.Fitacyrillic = 1138; + e.Fiveroman = 8548; + e.Fmonospace = 65318; + e.Fourroman = 8547; + e.Fsmall = 63334; + e.G = 71; + e.GBsquare = 13191; + e.Gacute = 500; + e.Gamma = 915; + e.Gammaafrican = 404; + e.Gangiacoptic = 1002; + e.Gbreve = 286; + e.Gcaron = 486; + e.Gcedilla = 290; + e.Gcircle = 9404; + e.Gcircumflex = 284; + e.Gcommaaccent = 290; + e.Gdot = 288; + e.Gdotaccent = 288; + e.Gecyrillic = 1043; + e.Ghadarmenian = 1346; + e.Ghemiddlehookcyrillic = 1172; + e.Ghestrokecyrillic = 1170; + e.Gheupturncyrillic = 1168; + e.Ghook = 403; + e.Gimarmenian = 1331; + e.Gjecyrillic = 1027; + e.Gmacron = 7712; + e.Gmonospace = 65319; + e.Grave = 63182; + e.Gravesmall = 63328; + e.Gsmall = 63335; + e.Gsmallhook = 667; + e.Gstroke = 484; + e.H = 72; + e.H18533 = 9679; + e.H18543 = 9642; + e.H18551 = 9643; + e.H22073 = 9633; + e.HPsquare = 13259; + e.Haabkhasiancyrillic = 1192; + e.Hadescendercyrillic = 1202; + e.Hardsigncyrillic = 1066; + e.Hbar = 294; + e.Hbrevebelow = 7722; + e.Hcedilla = 7720; + e.Hcircle = 9405; + e.Hcircumflex = 292; + e.Hdieresis = 7718; + e.Hdotaccent = 7714; + e.Hdotbelow = 7716; + e.Hmonospace = 65320; + e.Hoarmenian = 1344; + e.Horicoptic = 1e3; + e.Hsmall = 63336; + e.Hungarumlaut = 63183; + e.Hungarumlautsmall = 63224; + e.Hzsquare = 13200; + e.I = 73; + e.IAcyrillic = 1071; + e.IJ = 306; + e.IUcyrillic = 1070; + e.Iacute = 205; + e.Iacutesmall = 63469; + e.Ibreve = 300; + e.Icaron = 463; + e.Icircle = 9406; + e.Icircumflex = 206; + e.Icircumflexsmall = 63470; + e.Icyrillic = 1030; + e.Idblgrave = 520; + e.Idieresis = 207; + e.Idieresisacute = 7726; + e.Idieresiscyrillic = 1252; + e.Idieresissmall = 63471; + e.Idot = 304; + e.Idotaccent = 304; + e.Idotbelow = 7882; + e.Iebrevecyrillic = 1238; + e.Iecyrillic = 1045; + e.Ifraktur = 8465; + e.Igrave = 204; + e.Igravesmall = 63468; + e.Ihookabove = 7880; + e.Iicyrillic = 1048; + e.Iinvertedbreve = 522; + e.Iishortcyrillic = 1049; + e.Imacron = 298; + e.Imacroncyrillic = 1250; + e.Imonospace = 65321; + e.Iniarmenian = 1339; + e.Iocyrillic = 1025; + e.Iogonek = 302; + e.Iota = 921; + e.Iotaafrican = 406; + e.Iotadieresis = 938; + e.Iotatonos = 906; + e.Ismall = 63337; + e.Istroke = 407; + e.Itilde = 296; + e.Itildebelow = 7724; + e.Izhitsacyrillic = 1140; + e.Izhitsadblgravecyrillic = 1142; + e.J = 74; + e.Jaarmenian = 1345; + e.Jcircle = 9407; + e.Jcircumflex = 308; + e.Jecyrillic = 1032; + e.Jheharmenian = 1355; + e.Jmonospace = 65322; + e.Jsmall = 63338; + e.K = 75; + e.KBsquare = 13189; + e.KKsquare = 13261; + e.Kabashkircyrillic = 1184; + e.Kacute = 7728; + e.Kacyrillic = 1050; + e.Kadescendercyrillic = 1178; + e.Kahookcyrillic = 1219; + e.Kappa = 922; + e.Kastrokecyrillic = 1182; + e.Kaverticalstrokecyrillic = 1180; + e.Kcaron = 488; + e.Kcedilla = 310; + e.Kcircle = 9408; + e.Kcommaaccent = 310; + e.Kdotbelow = 7730; + e.Keharmenian = 1364; + e.Kenarmenian = 1343; + e.Khacyrillic = 1061; + e.Kheicoptic = 998; + e.Khook = 408; + e.Kjecyrillic = 1036; + e.Klinebelow = 7732; + e.Kmonospace = 65323; + e.Koppacyrillic = 1152; + e.Koppagreek = 990; + e.Ksicyrillic = 1134; + e.Ksmall = 63339; + e.L = 76; + e.LJ = 455; + e.LL = 63167; + e.Lacute = 313; + e.Lambda = 923; + e.Lcaron = 317; + e.Lcedilla = 315; + e.Lcircle = 9409; + e.Lcircumflexbelow = 7740; + e.Lcommaaccent = 315; + e.Ldot = 319; + e.Ldotaccent = 319; + e.Ldotbelow = 7734; + e.Ldotbelowmacron = 7736; + e.Liwnarmenian = 1340; + e.Lj = 456; + e.Ljecyrillic = 1033; + e.Llinebelow = 7738; + e.Lmonospace = 65324; + e.Lslash = 321; + e.Lslashsmall = 63225; + e.Lsmall = 63340; + e.M = 77; + e.MBsquare = 13190; + e.Macron = 63184; + e.Macronsmall = 63407; + e.Macute = 7742; + e.Mcircle = 9410; + e.Mdotaccent = 7744; + e.Mdotbelow = 7746; + e.Menarmenian = 1348; + e.Mmonospace = 65325; + e.Msmall = 63341; + e.Mturned = 412; + e.Mu = 924; + e.N = 78; + e.NJ = 458; + e.Nacute = 323; + e.Ncaron = 327; + e.Ncedilla = 325; + e.Ncircle = 9411; + e.Ncircumflexbelow = 7754; + e.Ncommaaccent = 325; + e.Ndotaccent = 7748; + e.Ndotbelow = 7750; + e.Nhookleft = 413; + e.Nineroman = 8552; + e.Nj = 459; + e.Njecyrillic = 1034; + e.Nlinebelow = 7752; + e.Nmonospace = 65326; + e.Nowarmenian = 1350; + e.Nsmall = 63342; + e.Ntilde = 209; + e.Ntildesmall = 63473; + e.Nu = 925; + e.O = 79; + e.OE = 338; + e.OEsmall = 63226; + e.Oacute = 211; + e.Oacutesmall = 63475; + e.Obarredcyrillic = 1256; + e.Obarreddieresiscyrillic = 1258; + e.Obreve = 334; + e.Ocaron = 465; + e.Ocenteredtilde = 415; + e.Ocircle = 9412; + e.Ocircumflex = 212; + e.Ocircumflexacute = 7888; + e.Ocircumflexdotbelow = 7896; + e.Ocircumflexgrave = 7890; + e.Ocircumflexhookabove = 7892; + e.Ocircumflexsmall = 63476; + e.Ocircumflextilde = 7894; + e.Ocyrillic = 1054; + e.Odblacute = 336; + e.Odblgrave = 524; + e.Odieresis = 214; + e.Odieresiscyrillic = 1254; + e.Odieresissmall = 63478; + e.Odotbelow = 7884; + e.Ogoneksmall = 63227; + e.Ograve = 210; + e.Ogravesmall = 63474; + e.Oharmenian = 1365; + e.Ohm = 8486; + e.Ohookabove = 7886; + e.Ohorn = 416; + e.Ohornacute = 7898; + e.Ohorndotbelow = 7906; + e.Ohorngrave = 7900; + e.Ohornhookabove = 7902; + e.Ohorntilde = 7904; + e.Ohungarumlaut = 336; + e.Oi = 418; + e.Oinvertedbreve = 526; + e.Omacron = 332; + e.Omacronacute = 7762; + e.Omacrongrave = 7760; + e.Omega = 8486; + e.Omegacyrillic = 1120; + e.Omegagreek = 937; + e.Omegaroundcyrillic = 1146; + e.Omegatitlocyrillic = 1148; + e.Omegatonos = 911; + e.Omicron = 927; + e.Omicrontonos = 908; + e.Omonospace = 65327; + e.Oneroman = 8544; + e.Oogonek = 490; + e.Oogonekmacron = 492; + e.Oopen = 390; + e.Oslash = 216; + e.Oslashacute = 510; + e.Oslashsmall = 63480; + e.Osmall = 63343; + e.Ostrokeacute = 510; + e.Otcyrillic = 1150; + e.Otilde = 213; + e.Otildeacute = 7756; + e.Otildedieresis = 7758; + e.Otildesmall = 63477; + e.P = 80; + e.Pacute = 7764; + e.Pcircle = 9413; + e.Pdotaccent = 7766; + e.Pecyrillic = 1055; + e.Peharmenian = 1354; + e.Pemiddlehookcyrillic = 1190; + e.Phi = 934; + e.Phook = 420; + e.Pi = 928; + e.Piwrarmenian = 1363; + e.Pmonospace = 65328; + e.Psi = 936; + e.Psicyrillic = 1136; + e.Psmall = 63344; + e.Q = 81; + e.Qcircle = 9414; + e.Qmonospace = 65329; + e.Qsmall = 63345; + e.R = 82; + e.Raarmenian = 1356; + e.Racute = 340; + e.Rcaron = 344; + e.Rcedilla = 342; + e.Rcircle = 9415; + e.Rcommaaccent = 342; + e.Rdblgrave = 528; + e.Rdotaccent = 7768; + e.Rdotbelow = 7770; + e.Rdotbelowmacron = 7772; + e.Reharmenian = 1360; + e.Rfraktur = 8476; + e.Rho = 929; + e.Ringsmall = 63228; + e.Rinvertedbreve = 530; + e.Rlinebelow = 7774; + e.Rmonospace = 65330; + e.Rsmall = 63346; + e.Rsmallinverted = 641; + e.Rsmallinvertedsuperior = 694; + e.S = 83; + e.SF010000 = 9484; + e.SF020000 = 9492; + e.SF030000 = 9488; + e.SF040000 = 9496; + e.SF050000 = 9532; + e.SF060000 = 9516; + e.SF070000 = 9524; + e.SF080000 = 9500; + e.SF090000 = 9508; + e.SF100000 = 9472; + e.SF110000 = 9474; + e.SF190000 = 9569; + e.SF200000 = 9570; + e.SF210000 = 9558; + e.SF220000 = 9557; + e.SF230000 = 9571; + e.SF240000 = 9553; + e.SF250000 = 9559; + e.SF260000 = 9565; + e.SF270000 = 9564; + e.SF280000 = 9563; + e.SF360000 = 9566; + e.SF370000 = 9567; + e.SF380000 = 9562; + e.SF390000 = 9556; + e.SF400000 = 9577; + e.SF410000 = 9574; + e.SF420000 = 9568; + e.SF430000 = 9552; + e.SF440000 = 9580; + e.SF450000 = 9575; + e.SF460000 = 9576; + e.SF470000 = 9572; + e.SF480000 = 9573; + e.SF490000 = 9561; + e.SF500000 = 9560; + e.SF510000 = 9554; + e.SF520000 = 9555; + e.SF530000 = 9579; + e.SF540000 = 9578; + e.Sacute = 346; + e.Sacutedotaccent = 7780; + e.Sampigreek = 992; + e.Scaron = 352; + e.Scarondotaccent = 7782; + e.Scaronsmall = 63229; + e.Scedilla = 350; + e.Schwa = 399; + e.Schwacyrillic = 1240; + e.Schwadieresiscyrillic = 1242; + e.Scircle = 9416; + e.Scircumflex = 348; + e.Scommaaccent = 536; + e.Sdotaccent = 7776; + e.Sdotbelow = 7778; + e.Sdotbelowdotaccent = 7784; + e.Seharmenian = 1357; + e.Sevenroman = 8550; + e.Shaarmenian = 1351; + e.Shacyrillic = 1064; + e.Shchacyrillic = 1065; + e.Sheicoptic = 994; + e.Shhacyrillic = 1210; + e.Shimacoptic = 1004; + e.Sigma = 931; + e.Sixroman = 8549; + e.Smonospace = 65331; + e.Softsigncyrillic = 1068; + e.Ssmall = 63347; + e.Stigmagreek = 986; + e.T = 84; + e.Tau = 932; + e.Tbar = 358; + e.Tcaron = 356; + e.Tcedilla = 354; + e.Tcircle = 9417; + e.Tcircumflexbelow = 7792; + e.Tcommaaccent = 354; + e.Tdotaccent = 7786; + e.Tdotbelow = 7788; + e.Tecyrillic = 1058; + e.Tedescendercyrillic = 1196; + e.Tenroman = 8553; + e.Tetsecyrillic = 1204; + e.Theta = 920; + e.Thook = 428; + e.Thorn = 222; + e.Thornsmall = 63486; + e.Threeroman = 8546; + e.Tildesmall = 63230; + e.Tiwnarmenian = 1359; + e.Tlinebelow = 7790; + e.Tmonospace = 65332; + e.Toarmenian = 1337; + e.Tonefive = 444; + e.Tonesix = 388; + e.Tonetwo = 423; + e.Tretroflexhook = 430; + e.Tsecyrillic = 1062; + e.Tshecyrillic = 1035; + e.Tsmall = 63348; + e.Twelveroman = 8555; + e.Tworoman = 8545; + e.U = 85; + e.Uacute = 218; + e.Uacutesmall = 63482; + e.Ubreve = 364; + e.Ucaron = 467; + e.Ucircle = 9418; + e.Ucircumflex = 219; + e.Ucircumflexbelow = 7798; + e.Ucircumflexsmall = 63483; + e.Ucyrillic = 1059; + e.Udblacute = 368; + e.Udblgrave = 532; + e.Udieresis = 220; + e.Udieresisacute = 471; + e.Udieresisbelow = 7794; + e.Udieresiscaron = 473; + e.Udieresiscyrillic = 1264; + e.Udieresisgrave = 475; + e.Udieresismacron = 469; + e.Udieresissmall = 63484; + e.Udotbelow = 7908; + e.Ugrave = 217; + e.Ugravesmall = 63481; + e.Uhookabove = 7910; + e.Uhorn = 431; + e.Uhornacute = 7912; + e.Uhorndotbelow = 7920; + e.Uhorngrave = 7914; + e.Uhornhookabove = 7916; + e.Uhorntilde = 7918; + e.Uhungarumlaut = 368; + e.Uhungarumlautcyrillic = 1266; + e.Uinvertedbreve = 534; + e.Ukcyrillic = 1144; + e.Umacron = 362; + e.Umacroncyrillic = 1262; + e.Umacrondieresis = 7802; + e.Umonospace = 65333; + e.Uogonek = 370; + e.Upsilon = 933; + e.Upsilon1 = 978; + e.Upsilonacutehooksymbolgreek = 979; + e.Upsilonafrican = 433; + e.Upsilondieresis = 939; + e.Upsilondieresishooksymbolgreek = 980; + e.Upsilonhooksymbol = 978; + e.Upsilontonos = 910; + e.Uring = 366; + e.Ushortcyrillic = 1038; + e.Usmall = 63349; + e.Ustraightcyrillic = 1198; + e.Ustraightstrokecyrillic = 1200; + e.Utilde = 360; + e.Utildeacute = 7800; + e.Utildebelow = 7796; + e.V = 86; + e.Vcircle = 9419; + e.Vdotbelow = 7806; + e.Vecyrillic = 1042; + e.Vewarmenian = 1358; + e.Vhook = 434; + e.Vmonospace = 65334; + e.Voarmenian = 1352; + e.Vsmall = 63350; + e.Vtilde = 7804; + e.W = 87; + e.Wacute = 7810; + e.Wcircle = 9420; + e.Wcircumflex = 372; + e.Wdieresis = 7812; + e.Wdotaccent = 7814; + e.Wdotbelow = 7816; + e.Wgrave = 7808; + e.Wmonospace = 65335; + e.Wsmall = 63351; + e.X = 88; + e.Xcircle = 9421; + e.Xdieresis = 7820; + e.Xdotaccent = 7818; + e.Xeharmenian = 1341; + e.Xi = 926; + e.Xmonospace = 65336; + e.Xsmall = 63352; + e.Y = 89; + e.Yacute = 221; + e.Yacutesmall = 63485; + e.Yatcyrillic = 1122; + e.Ycircle = 9422; + e.Ycircumflex = 374; + e.Ydieresis = 376; + e.Ydieresissmall = 63487; + e.Ydotaccent = 7822; + e.Ydotbelow = 7924; + e.Yericyrillic = 1067; + e.Yerudieresiscyrillic = 1272; + e.Ygrave = 7922; + e.Yhook = 435; + e.Yhookabove = 7926; + e.Yiarmenian = 1349; + e.Yicyrillic = 1031; + e.Yiwnarmenian = 1362; + e.Ymonospace = 65337; + e.Ysmall = 63353; + e.Ytilde = 7928; + e.Yusbigcyrillic = 1130; + e.Yusbigiotifiedcyrillic = 1132; + e.Yuslittlecyrillic = 1126; + e.Yuslittleiotifiedcyrillic = 1128; + e.Z = 90; + e.Zaarmenian = 1334; + e.Zacute = 377; + e.Zcaron = 381; + e.Zcaronsmall = 63231; + e.Zcircle = 9423; + e.Zcircumflex = 7824; + e.Zdot = 379; + e.Zdotaccent = 379; + e.Zdotbelow = 7826; + e.Zecyrillic = 1047; + e.Zedescendercyrillic = 1176; + e.Zedieresiscyrillic = 1246; + e.Zeta = 918; + e.Zhearmenian = 1338; + e.Zhebrevecyrillic = 1217; + e.Zhecyrillic = 1046; + e.Zhedescendercyrillic = 1174; + e.Zhedieresiscyrillic = 1244; + e.Zlinebelow = 7828; + e.Zmonospace = 65338; + e.Zsmall = 63354; + e.Zstroke = 437; + e.a = 97; + e.aabengali = 2438; + e.aacute = 225; + e.aadeva = 2310; + e.aagujarati = 2694; + e.aagurmukhi = 2566; + e.aamatragurmukhi = 2622; + e.aarusquare = 13059; + e.aavowelsignbengali = 2494; + e.aavowelsigndeva = 2366; + e.aavowelsigngujarati = 2750; + e.abbreviationmarkarmenian = 1375; + e.abbreviationsigndeva = 2416; + e.abengali = 2437; + e.abopomofo = 12570; + e.abreve = 259; + e.abreveacute = 7855; + e.abrevecyrillic = 1233; + e.abrevedotbelow = 7863; + e.abrevegrave = 7857; + e.abrevehookabove = 7859; + e.abrevetilde = 7861; + e.acaron = 462; + e.acircle = 9424; + e.acircumflex = 226; + e.acircumflexacute = 7845; + e.acircumflexdotbelow = 7853; + e.acircumflexgrave = 7847; + e.acircumflexhookabove = 7849; + e.acircumflextilde = 7851; + e.acute = 180; + e.acutebelowcmb = 791; + e.acutecmb = 769; + e.acutecomb = 769; + e.acutedeva = 2388; + e.acutelowmod = 719; + e.acutetonecmb = 833; + e.acyrillic = 1072; + e.adblgrave = 513; + e.addakgurmukhi = 2673; + e.adeva = 2309; + e.adieresis = 228; + e.adieresiscyrillic = 1235; + e.adieresismacron = 479; + e.adotbelow = 7841; + e.adotmacron = 481; + e.ae = 230; + e.aeacute = 509; + e.aekorean = 12624; + e.aemacron = 483; + e.afii00208 = 8213; + e.afii08941 = 8356; + e.afii10017 = 1040; + e.afii10018 = 1041; + e.afii10019 = 1042; + e.afii10020 = 1043; + e.afii10021 = 1044; + e.afii10022 = 1045; + e.afii10023 = 1025; + e.afii10024 = 1046; + e.afii10025 = 1047; + e.afii10026 = 1048; + e.afii10027 = 1049; + e.afii10028 = 1050; + e.afii10029 = 1051; + e.afii10030 = 1052; + e.afii10031 = 1053; + e.afii10032 = 1054; + e.afii10033 = 1055; + e.afii10034 = 1056; + e.afii10035 = 1057; + e.afii10036 = 1058; + e.afii10037 = 1059; + e.afii10038 = 1060; + e.afii10039 = 1061; + e.afii10040 = 1062; + e.afii10041 = 1063; + e.afii10042 = 1064; + e.afii10043 = 1065; + e.afii10044 = 1066; + e.afii10045 = 1067; + e.afii10046 = 1068; + e.afii10047 = 1069; + e.afii10048 = 1070; + e.afii10049 = 1071; + e.afii10050 = 1168; + e.afii10051 = 1026; + e.afii10052 = 1027; + e.afii10053 = 1028; + e.afii10054 = 1029; + e.afii10055 = 1030; + e.afii10056 = 1031; + e.afii10057 = 1032; + e.afii10058 = 1033; + e.afii10059 = 1034; + e.afii10060 = 1035; + e.afii10061 = 1036; + e.afii10062 = 1038; + e.afii10063 = 63172; + e.afii10064 = 63173; + e.afii10065 = 1072; + e.afii10066 = 1073; + e.afii10067 = 1074; + e.afii10068 = 1075; + e.afii10069 = 1076; + e.afii10070 = 1077; + e.afii10071 = 1105; + e.afii10072 = 1078; + e.afii10073 = 1079; + e.afii10074 = 1080; + e.afii10075 = 1081; + e.afii10076 = 1082; + e.afii10077 = 1083; + e.afii10078 = 1084; + e.afii10079 = 1085; + e.afii10080 = 1086; + e.afii10081 = 1087; + e.afii10082 = 1088; + e.afii10083 = 1089; + e.afii10084 = 1090; + e.afii10085 = 1091; + e.afii10086 = 1092; + e.afii10087 = 1093; + e.afii10088 = 1094; + e.afii10089 = 1095; + e.afii10090 = 1096; + e.afii10091 = 1097; + e.afii10092 = 1098; + e.afii10093 = 1099; + e.afii10094 = 1100; + e.afii10095 = 1101; + e.afii10096 = 1102; + e.afii10097 = 1103; + e.afii10098 = 1169; + e.afii10099 = 1106; + e.afii10100 = 1107; + e.afii10101 = 1108; + e.afii10102 = 1109; + e.afii10103 = 1110; + e.afii10104 = 1111; + e.afii10105 = 1112; + e.afii10106 = 1113; + e.afii10107 = 1114; + e.afii10108 = 1115; + e.afii10109 = 1116; + e.afii10110 = 1118; + e.afii10145 = 1039; + e.afii10146 = 1122; + e.afii10147 = 1138; + e.afii10148 = 1140; + e.afii10192 = 63174; + e.afii10193 = 1119; + e.afii10194 = 1123; + e.afii10195 = 1139; + e.afii10196 = 1141; + e.afii10831 = 63175; + e.afii10832 = 63176; + e.afii10846 = 1241; + e.afii299 = 8206; + e.afii300 = 8207; + e.afii301 = 8205; + e.afii57381 = 1642; + e.afii57388 = 1548; + e.afii57392 = 1632; + e.afii57393 = 1633; + e.afii57394 = 1634; + e.afii57395 = 1635; + e.afii57396 = 1636; + e.afii57397 = 1637; + e.afii57398 = 1638; + e.afii57399 = 1639; + e.afii57400 = 1640; + e.afii57401 = 1641; + e.afii57403 = 1563; + e.afii57407 = 1567; + e.afii57409 = 1569; + e.afii57410 = 1570; + e.afii57411 = 1571; + e.afii57412 = 1572; + e.afii57413 = 1573; + e.afii57414 = 1574; + e.afii57415 = 1575; + e.afii57416 = 1576; + e.afii57417 = 1577; + e.afii57418 = 1578; + e.afii57419 = 1579; + e.afii57420 = 1580; + e.afii57421 = 1581; + e.afii57422 = 1582; + e.afii57423 = 1583; + e.afii57424 = 1584; + e.afii57425 = 1585; + e.afii57426 = 1586; + e.afii57427 = 1587; + e.afii57428 = 1588; + e.afii57429 = 1589; + e.afii57430 = 1590; + e.afii57431 = 1591; + e.afii57432 = 1592; + e.afii57433 = 1593; + e.afii57434 = 1594; + e.afii57440 = 1600; + e.afii57441 = 1601; + e.afii57442 = 1602; + e.afii57443 = 1603; + e.afii57444 = 1604; + e.afii57445 = 1605; + e.afii57446 = 1606; + e.afii57448 = 1608; + e.afii57449 = 1609; + e.afii57450 = 1610; + e.afii57451 = 1611; + e.afii57452 = 1612; + e.afii57453 = 1613; + e.afii57454 = 1614; + e.afii57455 = 1615; + e.afii57456 = 1616; + e.afii57457 = 1617; + e.afii57458 = 1618; + e.afii57470 = 1607; + e.afii57505 = 1700; + e.afii57506 = 1662; + e.afii57507 = 1670; + e.afii57508 = 1688; + e.afii57509 = 1711; + e.afii57511 = 1657; + e.afii57512 = 1672; + e.afii57513 = 1681; + e.afii57514 = 1722; + e.afii57519 = 1746; + e.afii57534 = 1749; + e.afii57636 = 8362; + e.afii57645 = 1470; + e.afii57658 = 1475; + e.afii57664 = 1488; + e.afii57665 = 1489; + e.afii57666 = 1490; + e.afii57667 = 1491; + e.afii57668 = 1492; + e.afii57669 = 1493; + e.afii57670 = 1494; + e.afii57671 = 1495; + e.afii57672 = 1496; + e.afii57673 = 1497; + e.afii57674 = 1498; + e.afii57675 = 1499; + e.afii57676 = 1500; + e.afii57677 = 1501; + e.afii57678 = 1502; + e.afii57679 = 1503; + e.afii57680 = 1504; + e.afii57681 = 1505; + e.afii57682 = 1506; + e.afii57683 = 1507; + e.afii57684 = 1508; + e.afii57685 = 1509; + e.afii57686 = 1510; + e.afii57687 = 1511; + e.afii57688 = 1512; + e.afii57689 = 1513; + e.afii57690 = 1514; + e.afii57694 = 64298; + e.afii57695 = 64299; + e.afii57700 = 64331; + e.afii57705 = 64287; + e.afii57716 = 1520; + e.afii57717 = 1521; + e.afii57718 = 1522; + e.afii57723 = 64309; + e.afii57793 = 1460; + e.afii57794 = 1461; + e.afii57795 = 1462; + e.afii57796 = 1467; + e.afii57797 = 1464; + e.afii57798 = 1463; + e.afii57799 = 1456; + e.afii57800 = 1458; + e.afii57801 = 1457; + e.afii57802 = 1459; + e.afii57803 = 1474; + e.afii57804 = 1473; + e.afii57806 = 1465; + e.afii57807 = 1468; + e.afii57839 = 1469; + e.afii57841 = 1471; + e.afii57842 = 1472; + e.afii57929 = 700; + e.afii61248 = 8453; + e.afii61289 = 8467; + e.afii61352 = 8470; + e.afii61573 = 8236; + e.afii61574 = 8237; + e.afii61575 = 8238; + e.afii61664 = 8204; + e.afii63167 = 1645; + e.afii64937 = 701; + e.agrave = 224; + e.agujarati = 2693; + e.agurmukhi = 2565; + e.ahiragana = 12354; + e.ahookabove = 7843; + e.aibengali = 2448; + e.aibopomofo = 12574; + e.aideva = 2320; + e.aiecyrillic = 1237; + e.aigujarati = 2704; + e.aigurmukhi = 2576; + e.aimatragurmukhi = 2632; + e.ainarabic = 1593; + e.ainfinalarabic = 65226; + e.aininitialarabic = 65227; + e.ainmedialarabic = 65228; + e.ainvertedbreve = 515; + e.aivowelsignbengali = 2504; + e.aivowelsigndeva = 2376; + e.aivowelsigngujarati = 2760; + e.akatakana = 12450; + e.akatakanahalfwidth = 65393; + e.akorean = 12623; + e.alef = 1488; + e.alefarabic = 1575; + e.alefdageshhebrew = 64304; + e.aleffinalarabic = 65166; + e.alefhamzaabovearabic = 1571; + e.alefhamzaabovefinalarabic = 65156; + e.alefhamzabelowarabic = 1573; + e.alefhamzabelowfinalarabic = 65160; + e.alefhebrew = 1488; + e.aleflamedhebrew = 64335; + e.alefmaddaabovearabic = 1570; + e.alefmaddaabovefinalarabic = 65154; + e.alefmaksuraarabic = 1609; + e.alefmaksurafinalarabic = 65264; + e.alefmaksurainitialarabic = 65267; + e.alefmaksuramedialarabic = 65268; + e.alefpatahhebrew = 64302; + e.alefqamatshebrew = 64303; + e.aleph = 8501; + e.allequal = 8780; + e.alpha = 945; + e.alphatonos = 940; + e.amacron = 257; + e.amonospace = 65345; + e.ampersand = 38; + e.ampersandmonospace = 65286; + e.ampersandsmall = 63270; + e.amsquare = 13250; + e.anbopomofo = 12578; + e.angbopomofo = 12580; + e.angbracketleft = 12296; + e.angbracketright = 12297; + e.angkhankhuthai = 3674; + e.angle = 8736; + e.anglebracketleft = 12296; + e.anglebracketleftvertical = 65087; + e.anglebracketright = 12297; + e.anglebracketrightvertical = 65088; + e.angleleft = 9001; + e.angleright = 9002; + e.angstrom = 8491; + e.anoteleia = 903; + e.anudattadeva = 2386; + e.anusvarabengali = 2434; + e.anusvaradeva = 2306; + e.anusvaragujarati = 2690; + e.aogonek = 261; + e.apaatosquare = 13056; + e.aparen = 9372; + e.apostrophearmenian = 1370; + e.apostrophemod = 700; + e.apple = 63743; + e.approaches = 8784; + e.approxequal = 8776; + e.approxequalorimage = 8786; + e.approximatelyequal = 8773; + e.araeaekorean = 12686; + e.araeakorean = 12685; + e.arc = 8978; + e.arighthalfring = 7834; + e.aring = 229; + e.aringacute = 507; + e.aringbelow = 7681; + e.arrowboth = 8596; + e.arrowdashdown = 8675; + e.arrowdashleft = 8672; + e.arrowdashright = 8674; + e.arrowdashup = 8673; + e.arrowdblboth = 8660; + e.arrowdbldown = 8659; + e.arrowdblleft = 8656; + e.arrowdblright = 8658; + e.arrowdblup = 8657; + e.arrowdown = 8595; + e.arrowdownleft = 8601; + e.arrowdownright = 8600; + e.arrowdownwhite = 8681; + e.arrowheaddownmod = 709; + e.arrowheadleftmod = 706; + e.arrowheadrightmod = 707; + e.arrowheadupmod = 708; + e.arrowhorizex = 63719; + e.arrowleft = 8592; + e.arrowleftdbl = 8656; + e.arrowleftdblstroke = 8653; + e.arrowleftoverright = 8646; + e.arrowleftwhite = 8678; + e.arrowright = 8594; + e.arrowrightdblstroke = 8655; + e.arrowrightheavy = 10142; + e.arrowrightoverleft = 8644; + e.arrowrightwhite = 8680; + e.arrowtableft = 8676; + e.arrowtabright = 8677; + e.arrowup = 8593; + e.arrowupdn = 8597; + e.arrowupdnbse = 8616; + e.arrowupdownbase = 8616; + e.arrowupleft = 8598; + e.arrowupleftofdown = 8645; + e.arrowupright = 8599; + e.arrowupwhite = 8679; + e.arrowvertex = 63718; + e.asciicircum = 94; + e.asciicircummonospace = 65342; + e.asciitilde = 126; + e.asciitildemonospace = 65374; + e.ascript = 593; + e.ascriptturned = 594; + e.asmallhiragana = 12353; + e.asmallkatakana = 12449; + e.asmallkatakanahalfwidth = 65383; + e.asterisk = 42; + e.asteriskaltonearabic = 1645; + e.asteriskarabic = 1645; + e.asteriskmath = 8727; + e.asteriskmonospace = 65290; + e.asterisksmall = 65121; + e.asterism = 8258; + e.asuperior = 63209; + e.asymptoticallyequal = 8771; + e.at = 64; + e.atilde = 227; + e.atmonospace = 65312; + e.atsmall = 65131; + e.aturned = 592; + e.aubengali = 2452; + e.aubopomofo = 12576; + e.audeva = 2324; + e.augujarati = 2708; + e.augurmukhi = 2580; + e.aulengthmarkbengali = 2519; + e.aumatragurmukhi = 2636; + e.auvowelsignbengali = 2508; + e.auvowelsigndeva = 2380; + e.auvowelsigngujarati = 2764; + e.avagrahadeva = 2365; + e.aybarmenian = 1377; + e.ayin = 1506; + e.ayinaltonehebrew = 64288; + e.ayinhebrew = 1506; + e.b = 98; + e.babengali = 2476; + e.backslash = 92; + e.backslashmonospace = 65340; + e.badeva = 2348; + e.bagujarati = 2732; + e.bagurmukhi = 2604; + e.bahiragana = 12400; + e.bahtthai = 3647; + e.bakatakana = 12496; + e.bar = 124; + e.barmonospace = 65372; + e.bbopomofo = 12549; + e.bcircle = 9425; + e.bdotaccent = 7683; + e.bdotbelow = 7685; + e.beamedsixteenthnotes = 9836; + e.because = 8757; + e.becyrillic = 1073; + e.beharabic = 1576; + e.behfinalarabic = 65168; + e.behinitialarabic = 65169; + e.behiragana = 12409; + e.behmedialarabic = 65170; + e.behmeeminitialarabic = 64671; + e.behmeemisolatedarabic = 64520; + e.behnoonfinalarabic = 64621; + e.bekatakana = 12505; + e.benarmenian = 1378; + e.bet = 1489; + e.beta = 946; + e.betasymbolgreek = 976; + e.betdagesh = 64305; + e.betdageshhebrew = 64305; + e.bethebrew = 1489; + e.betrafehebrew = 64332; + e.bhabengali = 2477; + e.bhadeva = 2349; + e.bhagujarati = 2733; + e.bhagurmukhi = 2605; + e.bhook = 595; + e.bihiragana = 12403; + e.bikatakana = 12499; + e.bilabialclick = 664; + e.bindigurmukhi = 2562; + e.birusquare = 13105; + e.blackcircle = 9679; + e.blackdiamond = 9670; + e.blackdownpointingtriangle = 9660; + e.blackleftpointingpointer = 9668; + e.blackleftpointingtriangle = 9664; + e.blacklenticularbracketleft = 12304; + e.blacklenticularbracketleftvertical = 65083; + e.blacklenticularbracketright = 12305; + e.blacklenticularbracketrightvertical = 65084; + e.blacklowerlefttriangle = 9699; + e.blacklowerrighttriangle = 9698; + e.blackrectangle = 9644; + e.blackrightpointingpointer = 9658; + e.blackrightpointingtriangle = 9654; + e.blacksmallsquare = 9642; + e.blacksmilingface = 9787; + e.blacksquare = 9632; + e.blackstar = 9733; + e.blackupperlefttriangle = 9700; + e.blackupperrighttriangle = 9701; + e.blackuppointingsmalltriangle = 9652; + e.blackuppointingtriangle = 9650; + e.blank = 9251; + e.blinebelow = 7687; + e.block = 9608; + e.bmonospace = 65346; + e.bobaimaithai = 3610; + e.bohiragana = 12412; + e.bokatakana = 12508; + e.bparen = 9373; + e.bqsquare = 13251; + e.braceex = 63732; + e.braceleft = 123; + e.braceleftbt = 63731; + e.braceleftmid = 63730; + e.braceleftmonospace = 65371; + e.braceleftsmall = 65115; + e.bracelefttp = 63729; + e.braceleftvertical = 65079; + e.braceright = 125; + e.bracerightbt = 63742; + e.bracerightmid = 63741; + e.bracerightmonospace = 65373; + e.bracerightsmall = 65116; + e.bracerighttp = 63740; + e.bracerightvertical = 65080; + e.bracketleft = 91; + e.bracketleftbt = 63728; + e.bracketleftex = 63727; + e.bracketleftmonospace = 65339; + e.bracketlefttp = 63726; + e.bracketright = 93; + e.bracketrightbt = 63739; + e.bracketrightex = 63738; + e.bracketrightmonospace = 65341; + e.bracketrighttp = 63737; + e.breve = 728; + e.brevebelowcmb = 814; + e.brevecmb = 774; + e.breveinvertedbelowcmb = 815; + e.breveinvertedcmb = 785; + e.breveinverteddoublecmb = 865; + e.bridgebelowcmb = 810; + e.bridgeinvertedbelowcmb = 826; + e.brokenbar = 166; + e.bstroke = 384; + e.bsuperior = 63210; + e.btopbar = 387; + e.buhiragana = 12406; + e.bukatakana = 12502; + e.bullet = 8226; + e.bulletinverse = 9688; + e.bulletoperator = 8729; + e.bullseye = 9678; + e.c = 99; + e.caarmenian = 1390; + e.cabengali = 2458; + e.cacute = 263; + e.cadeva = 2330; + e.cagujarati = 2714; + e.cagurmukhi = 2586; + e.calsquare = 13192; + e.candrabindubengali = 2433; + e.candrabinducmb = 784; + e.candrabindudeva = 2305; + e.candrabindugujarati = 2689; + e.capslock = 8682; + e.careof = 8453; + e.caron = 711; + e.caronbelowcmb = 812; + e.caroncmb = 780; + e.carriagereturn = 8629; + e.cbopomofo = 12568; + e.ccaron = 269; + e.ccedilla = 231; + e.ccedillaacute = 7689; + e.ccircle = 9426; + e.ccircumflex = 265; + e.ccurl = 597; + e.cdot = 267; + e.cdotaccent = 267; + e.cdsquare = 13253; + e.cedilla = 184; + e.cedillacmb = 807; + e.cent = 162; + e.centigrade = 8451; + e.centinferior = 63199; + e.centmonospace = 65504; + e.centoldstyle = 63394; + e.centsuperior = 63200; + e.chaarmenian = 1401; + e.chabengali = 2459; + e.chadeva = 2331; + e.chagujarati = 2715; + e.chagurmukhi = 2587; + e.chbopomofo = 12564; + e.cheabkhasiancyrillic = 1213; + e.checkmark = 10003; + e.checyrillic = 1095; + e.chedescenderabkhasiancyrillic = 1215; + e.chedescendercyrillic = 1207; + e.chedieresiscyrillic = 1269; + e.cheharmenian = 1395; + e.chekhakassiancyrillic = 1228; + e.cheverticalstrokecyrillic = 1209; + e.chi = 967; + e.chieuchacirclekorean = 12919; + e.chieuchaparenkorean = 12823; + e.chieuchcirclekorean = 12905; + e.chieuchkorean = 12618; + e.chieuchparenkorean = 12809; + e.chochangthai = 3594; + e.chochanthai = 3592; + e.chochingthai = 3593; + e.chochoethai = 3596; + e.chook = 392; + e.cieucacirclekorean = 12918; + e.cieucaparenkorean = 12822; + e.cieuccirclekorean = 12904; + e.cieuckorean = 12616; + e.cieucparenkorean = 12808; + e.cieucuparenkorean = 12828; + e.circle = 9675; + e.circlecopyrt = 169; + e.circlemultiply = 8855; + e.circleot = 8857; + e.circleplus = 8853; + e.circlepostalmark = 12342; + e.circlewithlefthalfblack = 9680; + e.circlewithrighthalfblack = 9681; + e.circumflex = 710; + e.circumflexbelowcmb = 813; + e.circumflexcmb = 770; + e.clear = 8999; + e.clickalveolar = 450; + e.clickdental = 448; + e.clicklateral = 449; + e.clickretroflex = 451; + e.club = 9827; + e.clubsuitblack = 9827; + e.clubsuitwhite = 9831; + e.cmcubedsquare = 13220; + e.cmonospace = 65347; + e.cmsquaredsquare = 13216; + e.coarmenian = 1409; + e.colon = 58; + e.colonmonetary = 8353; + e.colonmonospace = 65306; + e.colonsign = 8353; + e.colonsmall = 65109; + e.colontriangularhalfmod = 721; + e.colontriangularmod = 720; + e.comma = 44; + e.commaabovecmb = 787; + e.commaaboverightcmb = 789; + e.commaaccent = 63171; + e.commaarabic = 1548; + e.commaarmenian = 1373; + e.commainferior = 63201; + e.commamonospace = 65292; + e.commareversedabovecmb = 788; + e.commareversedmod = 701; + e.commasmall = 65104; + e.commasuperior = 63202; + e.commaturnedabovecmb = 786; + e.commaturnedmod = 699; + e.compass = 9788; + e.congruent = 8773; + e.contourintegral = 8750; + e.control = 8963; + e.controlACK = 6; + e.controlBEL = 7; + e.controlBS = 8; + e.controlCAN = 24; + e.controlCR = 13; + e.controlDC1 = 17; + e.controlDC2 = 18; + e.controlDC3 = 19; + e.controlDC4 = 20; + e.controlDEL = 127; + e.controlDLE = 16; + e.controlEM = 25; + e.controlENQ = 5; + e.controlEOT = 4; + e.controlESC = 27; + e.controlETB = 23; + e.controlETX = 3; + e.controlFF = 12; + e.controlFS = 28; + e.controlGS = 29; + e.controlHT = 9; + e.controlLF = 10; + e.controlNAK = 21; + e.controlNULL = 0; + e.controlRS = 30; + e.controlSI = 15; + e.controlSO = 14; + e.controlSOT = 2; + e.controlSTX = 1; + e.controlSUB = 26; + e.controlSYN = 22; + e.controlUS = 31; + e.controlVT = 11; + e.copyright = 169; + e.copyrightsans = 63721; + e.copyrightserif = 63193; + e.cornerbracketleft = 12300; + e.cornerbracketlefthalfwidth = 65378; + e.cornerbracketleftvertical = 65089; + e.cornerbracketright = 12301; + e.cornerbracketrighthalfwidth = 65379; + e.cornerbracketrightvertical = 65090; + e.corporationsquare = 13183; + e.cosquare = 13255; + e.coverkgsquare = 13254; + e.cparen = 9374; + e.cruzeiro = 8354; + e.cstretched = 663; + e.curlyand = 8911; + e.curlyor = 8910; + e.currency = 164; + e.cyrBreve = 63185; + e.cyrFlex = 63186; + e.cyrbreve = 63188; + e.cyrflex = 63189; + e.d = 100; + e.daarmenian = 1380; + e.dabengali = 2470; + e.dadarabic = 1590; + e.dadeva = 2342; + e.dadfinalarabic = 65214; + e.dadinitialarabic = 65215; + e.dadmedialarabic = 65216; + e.dagesh = 1468; + e.dageshhebrew = 1468; + e.dagger = 8224; + e.daggerdbl = 8225; + e.dagujarati = 2726; + e.dagurmukhi = 2598; + e.dahiragana = 12384; + e.dakatakana = 12480; + e.dalarabic = 1583; + e.dalet = 1491; + e.daletdagesh = 64307; + e.daletdageshhebrew = 64307; + e.dalethebrew = 1491; + e.dalfinalarabic = 65194; + e.dammaarabic = 1615; + e.dammalowarabic = 1615; + e.dammatanaltonearabic = 1612; + e.dammatanarabic = 1612; + e.danda = 2404; + e.dargahebrew = 1447; + e.dargalefthebrew = 1447; + e.dasiapneumatacyrilliccmb = 1157; + e.dblGrave = 63187; + e.dblanglebracketleft = 12298; + e.dblanglebracketleftvertical = 65085; + e.dblanglebracketright = 12299; + e.dblanglebracketrightvertical = 65086; + e.dblarchinvertedbelowcmb = 811; + e.dblarrowleft = 8660; + e.dblarrowright = 8658; + e.dbldanda = 2405; + e.dblgrave = 63190; + e.dblgravecmb = 783; + e.dblintegral = 8748; + e.dbllowline = 8215; + e.dbllowlinecmb = 819; + e.dbloverlinecmb = 831; + e.dblprimemod = 698; + e.dblverticalbar = 8214; + e.dblverticallineabovecmb = 782; + e.dbopomofo = 12553; + e.dbsquare = 13256; + e.dcaron = 271; + e.dcedilla = 7697; + e.dcircle = 9427; + e.dcircumflexbelow = 7699; + e.dcroat = 273; + e.ddabengali = 2465; + e.ddadeva = 2337; + e.ddagujarati = 2721; + e.ddagurmukhi = 2593; + e.ddalarabic = 1672; + e.ddalfinalarabic = 64393; + e.dddhadeva = 2396; + e.ddhabengali = 2466; + e.ddhadeva = 2338; + e.ddhagujarati = 2722; + e.ddhagurmukhi = 2594; + e.ddotaccent = 7691; + e.ddotbelow = 7693; + e.decimalseparatorarabic = 1643; + e.decimalseparatorpersian = 1643; + e.decyrillic = 1076; + e.degree = 176; + e.dehihebrew = 1453; + e.dehiragana = 12391; + e.deicoptic = 1007; + e.dekatakana = 12487; + e.deleteleft = 9003; + e.deleteright = 8998; + e.delta = 948; + e.deltaturned = 397; + e.denominatorminusonenumeratorbengali = 2552; + e.dezh = 676; + e.dhabengali = 2471; + e.dhadeva = 2343; + e.dhagujarati = 2727; + e.dhagurmukhi = 2599; + e.dhook = 599; + e.dialytikatonos = 901; + e.dialytikatonoscmb = 836; + e.diamond = 9830; + e.diamondsuitwhite = 9826; + e.dieresis = 168; + e.dieresisacute = 63191; + e.dieresisbelowcmb = 804; + e.dieresiscmb = 776; + e.dieresisgrave = 63192; + e.dieresistonos = 901; + e.dihiragana = 12386; + e.dikatakana = 12482; + e.dittomark = 12291; + e.divide = 247; + e.divides = 8739; + e.divisionslash = 8725; + e.djecyrillic = 1106; + e.dkshade = 9619; + e.dlinebelow = 7695; + e.dlsquare = 13207; + e.dmacron = 273; + e.dmonospace = 65348; + e.dnblock = 9604; + e.dochadathai = 3598; + e.dodekthai = 3604; + e.dohiragana = 12393; + e.dokatakana = 12489; + e.dollar = 36; + e.dollarinferior = 63203; + e.dollarmonospace = 65284; + e.dollaroldstyle = 63268; + e.dollarsmall = 65129; + e.dollarsuperior = 63204; + e.dong = 8363; + e.dorusquare = 13094; + e.dotaccent = 729; + e.dotaccentcmb = 775; + e.dotbelowcmb = 803; + e.dotbelowcomb = 803; + e.dotkatakana = 12539; + e.dotlessi = 305; + e.dotlessj = 63166; + e.dotlessjstrokehook = 644; + e.dotmath = 8901; + e.dottedcircle = 9676; + e.doubleyodpatah = 64287; + e.doubleyodpatahhebrew = 64287; + e.downtackbelowcmb = 798; + e.downtackmod = 725; + e.dparen = 9375; + e.dsuperior = 63211; + e.dtail = 598; + e.dtopbar = 396; + e.duhiragana = 12389; + e.dukatakana = 12485; + e.dz = 499; + e.dzaltone = 675; + e.dzcaron = 454; + e.dzcurl = 677; + e.dzeabkhasiancyrillic = 1249; + e.dzecyrillic = 1109; + e.dzhecyrillic = 1119; + e.e = 101; + e.eacute = 233; + e.earth = 9793; + e.ebengali = 2447; + e.ebopomofo = 12572; + e.ebreve = 277; + e.ecandradeva = 2317; + e.ecandragujarati = 2701; + e.ecandravowelsigndeva = 2373; + e.ecandravowelsigngujarati = 2757; + e.ecaron = 283; + e.ecedillabreve = 7709; + e.echarmenian = 1381; + e.echyiwnarmenian = 1415; + e.ecircle = 9428; + e.ecircumflex = 234; + e.ecircumflexacute = 7871; + e.ecircumflexbelow = 7705; + e.ecircumflexdotbelow = 7879; + e.ecircumflexgrave = 7873; + e.ecircumflexhookabove = 7875; + e.ecircumflextilde = 7877; + e.ecyrillic = 1108; + e.edblgrave = 517; + e.edeva = 2319; + e.edieresis = 235; + e.edot = 279; + e.edotaccent = 279; + e.edotbelow = 7865; + e.eegurmukhi = 2575; + e.eematragurmukhi = 2631; + e.efcyrillic = 1092; + e.egrave = 232; + e.egujarati = 2703; + e.eharmenian = 1383; + e.ehbopomofo = 12573; + e.ehiragana = 12360; + e.ehookabove = 7867; + e.eibopomofo = 12575; + e.eight = 56; + e.eightarabic = 1640; + e.eightbengali = 2542; + e.eightcircle = 9319; + e.eightcircleinversesansserif = 10129; + e.eightdeva = 2414; + e.eighteencircle = 9329; + e.eighteenparen = 9349; + e.eighteenperiod = 9369; + e.eightgujarati = 2798; + e.eightgurmukhi = 2670; + e.eighthackarabic = 1640; + e.eighthangzhou = 12328; + e.eighthnotebeamed = 9835; + e.eightideographicparen = 12839; + e.eightinferior = 8328; + e.eightmonospace = 65304; + e.eightoldstyle = 63288; + e.eightparen = 9339; + e.eightperiod = 9359; + e.eightpersian = 1784; + e.eightroman = 8567; + e.eightsuperior = 8312; + e.eightthai = 3672; + e.einvertedbreve = 519; + e.eiotifiedcyrillic = 1125; + e.ekatakana = 12456; + e.ekatakanahalfwidth = 65396; + e.ekonkargurmukhi = 2676; + e.ekorean = 12628; + e.elcyrillic = 1083; + e.element = 8712; + e.elevencircle = 9322; + e.elevenparen = 9342; + e.elevenperiod = 9362; + e.elevenroman = 8570; + e.ellipsis = 8230; + e.ellipsisvertical = 8942; + e.emacron = 275; + e.emacronacute = 7703; + e.emacrongrave = 7701; + e.emcyrillic = 1084; + e.emdash = 8212; + e.emdashvertical = 65073; + e.emonospace = 65349; + e.emphasismarkarmenian = 1371; + e.emptyset = 8709; + e.enbopomofo = 12579; + e.encyrillic = 1085; + e.endash = 8211; + e.endashvertical = 65074; + e.endescendercyrillic = 1187; + e.eng = 331; + e.engbopomofo = 12581; + e.enghecyrillic = 1189; + e.enhookcyrillic = 1224; + e.enspace = 8194; + e.eogonek = 281; + e.eokorean = 12627; + e.eopen = 603; + e.eopenclosed = 666; + e.eopenreversed = 604; + e.eopenreversedclosed = 606; + e.eopenreversedhook = 605; + e.eparen = 9376; + e.epsilon = 949; + e.epsilontonos = 941; + e.equal = 61; + e.equalmonospace = 65309; + e.equalsmall = 65126; + e.equalsuperior = 8316; + e.equivalence = 8801; + e.erbopomofo = 12582; + e.ercyrillic = 1088; + e.ereversed = 600; + e.ereversedcyrillic = 1101; + e.escyrillic = 1089; + e.esdescendercyrillic = 1195; + e.esh = 643; + e.eshcurl = 646; + e.eshortdeva = 2318; + e.eshortvowelsigndeva = 2374; + e.eshreversedloop = 426; + e.eshsquatreversed = 645; + e.esmallhiragana = 12359; + e.esmallkatakana = 12455; + e.esmallkatakanahalfwidth = 65386; + e.estimated = 8494; + e.esuperior = 63212; + e.eta = 951; + e.etarmenian = 1384; + e.etatonos = 942; + e.eth = 240; + e.etilde = 7869; + e.etildebelow = 7707; + e.etnahtafoukhhebrew = 1425; + e.etnahtafoukhlefthebrew = 1425; + e.etnahtahebrew = 1425; + e.etnahtalefthebrew = 1425; + e.eturned = 477; + e.eukorean = 12641; + e.euro = 8364; + e.evowelsignbengali = 2503; + e.evowelsigndeva = 2375; + e.evowelsigngujarati = 2759; + e.exclam = 33; + e.exclamarmenian = 1372; + e.exclamdbl = 8252; + e.exclamdown = 161; + e.exclamdownsmall = 63393; + e.exclammonospace = 65281; + e.exclamsmall = 63265; + e.existential = 8707; + e.ezh = 658; + e.ezhcaron = 495; + e.ezhcurl = 659; + e.ezhreversed = 441; + e.ezhtail = 442; + e.f = 102; + e.fadeva = 2398; + e.fagurmukhi = 2654; + e.fahrenheit = 8457; + e.fathaarabic = 1614; + e.fathalowarabic = 1614; + e.fathatanarabic = 1611; + e.fbopomofo = 12552; + e.fcircle = 9429; + e.fdotaccent = 7711; + e.feharabic = 1601; + e.feharmenian = 1414; + e.fehfinalarabic = 65234; + e.fehinitialarabic = 65235; + e.fehmedialarabic = 65236; + e.feicoptic = 997; + e.female = 9792; + e.ff = 64256; + e.f_f = 64256; + e.ffi = 64259; + e.f_f_i = 64259; + e.ffl = 64260; + e.f_f_l = 64260; + e.fi = 64257; + e.f_i = 64257; + e.fifteencircle = 9326; + e.fifteenparen = 9346; + e.fifteenperiod = 9366; + e.figuredash = 8210; + e.filledbox = 9632; + e.filledrect = 9644; + e.finalkaf = 1498; + e.finalkafdagesh = 64314; + e.finalkafdageshhebrew = 64314; + e.finalkafhebrew = 1498; + e.finalmem = 1501; + e.finalmemhebrew = 1501; + e.finalnun = 1503; + e.finalnunhebrew = 1503; + e.finalpe = 1507; + e.finalpehebrew = 1507; + e.finaltsadi = 1509; + e.finaltsadihebrew = 1509; + e.firsttonechinese = 713; + e.fisheye = 9673; + e.fitacyrillic = 1139; + e.five = 53; + e.fivearabic = 1637; + e.fivebengali = 2539; + e.fivecircle = 9316; + e.fivecircleinversesansserif = 10126; + e.fivedeva = 2411; + e.fiveeighths = 8541; + e.fivegujarati = 2795; + e.fivegurmukhi = 2667; + e.fivehackarabic = 1637; + e.fivehangzhou = 12325; + e.fiveideographicparen = 12836; + e.fiveinferior = 8325; + e.fivemonospace = 65301; + e.fiveoldstyle = 63285; + e.fiveparen = 9336; + e.fiveperiod = 9356; + e.fivepersian = 1781; + e.fiveroman = 8564; + e.fivesuperior = 8309; + e.fivethai = 3669; + e.fl = 64258; + e.f_l = 64258; + e.florin = 402; + e.fmonospace = 65350; + e.fmsquare = 13209; + e.fofanthai = 3615; + e.fofathai = 3613; + e.fongmanthai = 3663; + e.forall = 8704; + e.four = 52; + e.fourarabic = 1636; + e.fourbengali = 2538; + e.fourcircle = 9315; + e.fourcircleinversesansserif = 10125; + e.fourdeva = 2410; + e.fourgujarati = 2794; + e.fourgurmukhi = 2666; + e.fourhackarabic = 1636; + e.fourhangzhou = 12324; + e.fourideographicparen = 12835; + e.fourinferior = 8324; + e.fourmonospace = 65300; + e.fournumeratorbengali = 2551; + e.fouroldstyle = 63284; + e.fourparen = 9335; + e.fourperiod = 9355; + e.fourpersian = 1780; + e.fourroman = 8563; + e.foursuperior = 8308; + e.fourteencircle = 9325; + e.fourteenparen = 9345; + e.fourteenperiod = 9365; + e.fourthai = 3668; + e.fourthtonechinese = 715; + e.fparen = 9377; + e.fraction = 8260; + e.franc = 8355; + e.g = 103; + e.gabengali = 2455; + e.gacute = 501; + e.gadeva = 2327; + e.gafarabic = 1711; + e.gaffinalarabic = 64403; + e.gafinitialarabic = 64404; + e.gafmedialarabic = 64405; + e.gagujarati = 2711; + e.gagurmukhi = 2583; + e.gahiragana = 12364; + e.gakatakana = 12460; + e.gamma = 947; + e.gammalatinsmall = 611; + e.gammasuperior = 736; + e.gangiacoptic = 1003; + e.gbopomofo = 12557; + e.gbreve = 287; + e.gcaron = 487; + e.gcedilla = 291; + e.gcircle = 9430; + e.gcircumflex = 285; + e.gcommaaccent = 291; + e.gdot = 289; + e.gdotaccent = 289; + e.gecyrillic = 1075; + e.gehiragana = 12370; + e.gekatakana = 12466; + e.geometricallyequal = 8785; + e.gereshaccenthebrew = 1436; + e.gereshhebrew = 1523; + e.gereshmuqdamhebrew = 1437; + e.germandbls = 223; + e.gershayimaccenthebrew = 1438; + e.gershayimhebrew = 1524; + e.getamark = 12307; + e.ghabengali = 2456; + e.ghadarmenian = 1394; + e.ghadeva = 2328; + e.ghagujarati = 2712; + e.ghagurmukhi = 2584; + e.ghainarabic = 1594; + e.ghainfinalarabic = 65230; + e.ghaininitialarabic = 65231; + e.ghainmedialarabic = 65232; + e.ghemiddlehookcyrillic = 1173; + e.ghestrokecyrillic = 1171; + e.gheupturncyrillic = 1169; + e.ghhadeva = 2394; + e.ghhagurmukhi = 2650; + e.ghook = 608; + e.ghzsquare = 13203; + e.gihiragana = 12366; + e.gikatakana = 12462; + e.gimarmenian = 1379; + e.gimel = 1490; + e.gimeldagesh = 64306; + e.gimeldageshhebrew = 64306; + e.gimelhebrew = 1490; + e.gjecyrillic = 1107; + e.glottalinvertedstroke = 446; + e.glottalstop = 660; + e.glottalstopinverted = 662; + e.glottalstopmod = 704; + e.glottalstopreversed = 661; + e.glottalstopreversedmod = 705; + e.glottalstopreversedsuperior = 740; + e.glottalstopstroke = 673; + e.glottalstopstrokereversed = 674; + e.gmacron = 7713; + e.gmonospace = 65351; + e.gohiragana = 12372; + e.gokatakana = 12468; + e.gparen = 9378; + e.gpasquare = 13228; + e.gradient = 8711; + e.grave = 96; + e.gravebelowcmb = 790; + e.gravecmb = 768; + e.gravecomb = 768; + e.gravedeva = 2387; + e.gravelowmod = 718; + e.gravemonospace = 65344; + e.gravetonecmb = 832; + e.greater = 62; + e.greaterequal = 8805; + e.greaterequalorless = 8923; + e.greatermonospace = 65310; + e.greaterorequivalent = 8819; + e.greaterorless = 8823; + e.greateroverequal = 8807; + e.greatersmall = 65125; + e.gscript = 609; + e.gstroke = 485; + e.guhiragana = 12368; + e.guillemotleft = 171; + e.guillemotright = 187; + e.guilsinglleft = 8249; + e.guilsinglright = 8250; + e.gukatakana = 12464; + e.guramusquare = 13080; + e.gysquare = 13257; + e.h = 104; + e.haabkhasiancyrillic = 1193; + e.haaltonearabic = 1729; + e.habengali = 2489; + e.hadescendercyrillic = 1203; + e.hadeva = 2361; + e.hagujarati = 2745; + e.hagurmukhi = 2617; + e.haharabic = 1581; + e.hahfinalarabic = 65186; + e.hahinitialarabic = 65187; + e.hahiragana = 12399; + e.hahmedialarabic = 65188; + e.haitusquare = 13098; + e.hakatakana = 12495; + e.hakatakanahalfwidth = 65418; + e.halantgurmukhi = 2637; + e.hamzaarabic = 1569; + e.hamzalowarabic = 1569; + e.hangulfiller = 12644; + e.hardsigncyrillic = 1098; + e.harpoonleftbarbup = 8636; + e.harpoonrightbarbup = 8640; + e.hasquare = 13258; + e.hatafpatah = 1458; + e.hatafpatah16 = 1458; + e.hatafpatah23 = 1458; + e.hatafpatah2f = 1458; + e.hatafpatahhebrew = 1458; + e.hatafpatahnarrowhebrew = 1458; + e.hatafpatahquarterhebrew = 1458; + e.hatafpatahwidehebrew = 1458; + e.hatafqamats = 1459; + e.hatafqamats1b = 1459; + e.hatafqamats28 = 1459; + e.hatafqamats34 = 1459; + e.hatafqamatshebrew = 1459; + e.hatafqamatsnarrowhebrew = 1459; + e.hatafqamatsquarterhebrew = 1459; + e.hatafqamatswidehebrew = 1459; + e.hatafsegol = 1457; + e.hatafsegol17 = 1457; + e.hatafsegol24 = 1457; + e.hatafsegol30 = 1457; + e.hatafsegolhebrew = 1457; + e.hatafsegolnarrowhebrew = 1457; + e.hatafsegolquarterhebrew = 1457; + e.hatafsegolwidehebrew = 1457; + e.hbar = 295; + e.hbopomofo = 12559; + e.hbrevebelow = 7723; + e.hcedilla = 7721; + e.hcircle = 9431; + e.hcircumflex = 293; + e.hdieresis = 7719; + e.hdotaccent = 7715; + e.hdotbelow = 7717; + e.he = 1492; + e.heart = 9829; + e.heartsuitblack = 9829; + e.heartsuitwhite = 9825; + e.hedagesh = 64308; + e.hedageshhebrew = 64308; + e.hehaltonearabic = 1729; + e.heharabic = 1607; + e.hehebrew = 1492; + e.hehfinalaltonearabic = 64423; + e.hehfinalalttwoarabic = 65258; + e.hehfinalarabic = 65258; + e.hehhamzaabovefinalarabic = 64421; + e.hehhamzaaboveisolatedarabic = 64420; + e.hehinitialaltonearabic = 64424; + e.hehinitialarabic = 65259; + e.hehiragana = 12408; + e.hehmedialaltonearabic = 64425; + e.hehmedialarabic = 65260; + e.heiseierasquare = 13179; + e.hekatakana = 12504; + e.hekatakanahalfwidth = 65421; + e.hekutaarusquare = 13110; + e.henghook = 615; + e.herutusquare = 13113; + e.het = 1495; + e.hethebrew = 1495; + e.hhook = 614; + e.hhooksuperior = 689; + e.hieuhacirclekorean = 12923; + e.hieuhaparenkorean = 12827; + e.hieuhcirclekorean = 12909; + e.hieuhkorean = 12622; + e.hieuhparenkorean = 12813; + e.hihiragana = 12402; + e.hikatakana = 12498; + e.hikatakanahalfwidth = 65419; + e.hiriq = 1460; + e.hiriq14 = 1460; + e.hiriq21 = 1460; + e.hiriq2d = 1460; + e.hiriqhebrew = 1460; + e.hiriqnarrowhebrew = 1460; + e.hiriqquarterhebrew = 1460; + e.hiriqwidehebrew = 1460; + e.hlinebelow = 7830; + e.hmonospace = 65352; + e.hoarmenian = 1392; + e.hohipthai = 3627; + e.hohiragana = 12411; + e.hokatakana = 12507; + e.hokatakanahalfwidth = 65422; + e.holam = 1465; + e.holam19 = 1465; + e.holam26 = 1465; + e.holam32 = 1465; + e.holamhebrew = 1465; + e.holamnarrowhebrew = 1465; + e.holamquarterhebrew = 1465; + e.holamwidehebrew = 1465; + e.honokhukthai = 3630; + e.hookabovecomb = 777; + e.hookcmb = 777; + e.hookpalatalizedbelowcmb = 801; + e.hookretroflexbelowcmb = 802; + e.hoonsquare = 13122; + e.horicoptic = 1001; + e.horizontalbar = 8213; + e.horncmb = 795; + e.hotsprings = 9832; + e.house = 8962; + e.hparen = 9379; + e.hsuperior = 688; + e.hturned = 613; + e.huhiragana = 12405; + e.huiitosquare = 13107; + e.hukatakana = 12501; + e.hukatakanahalfwidth = 65420; + e.hungarumlaut = 733; + e.hungarumlautcmb = 779; + e.hv = 405; + e.hyphen = 45; + e.hypheninferior = 63205; + e.hyphenmonospace = 65293; + e.hyphensmall = 65123; + e.hyphensuperior = 63206; + e.hyphentwo = 8208; + e.i = 105; + e.iacute = 237; + e.iacyrillic = 1103; + e.ibengali = 2439; + e.ibopomofo = 12583; + e.ibreve = 301; + e.icaron = 464; + e.icircle = 9432; + e.icircumflex = 238; + e.icyrillic = 1110; + e.idblgrave = 521; + e.ideographearthcircle = 12943; + e.ideographfirecircle = 12939; + e.ideographicallianceparen = 12863; + e.ideographiccallparen = 12858; + e.ideographiccentrecircle = 12965; + e.ideographicclose = 12294; + e.ideographiccomma = 12289; + e.ideographiccommaleft = 65380; + e.ideographiccongratulationparen = 12855; + e.ideographiccorrectcircle = 12963; + e.ideographicearthparen = 12847; + e.ideographicenterpriseparen = 12861; + e.ideographicexcellentcircle = 12957; + e.ideographicfestivalparen = 12864; + e.ideographicfinancialcircle = 12950; + e.ideographicfinancialparen = 12854; + e.ideographicfireparen = 12843; + e.ideographichaveparen = 12850; + e.ideographichighcircle = 12964; + e.ideographiciterationmark = 12293; + e.ideographiclaborcircle = 12952; + e.ideographiclaborparen = 12856; + e.ideographicleftcircle = 12967; + e.ideographiclowcircle = 12966; + e.ideographicmedicinecircle = 12969; + e.ideographicmetalparen = 12846; + e.ideographicmoonparen = 12842; + e.ideographicnameparen = 12852; + e.ideographicperiod = 12290; + e.ideographicprintcircle = 12958; + e.ideographicreachparen = 12867; + e.ideographicrepresentparen = 12857; + e.ideographicresourceparen = 12862; + e.ideographicrightcircle = 12968; + e.ideographicsecretcircle = 12953; + e.ideographicselfparen = 12866; + e.ideographicsocietyparen = 12851; + e.ideographicspace = 12288; + e.ideographicspecialparen = 12853; + e.ideographicstockparen = 12849; + e.ideographicstudyparen = 12859; + e.ideographicsunparen = 12848; + e.ideographicsuperviseparen = 12860; + e.ideographicwaterparen = 12844; + e.ideographicwoodparen = 12845; + e.ideographiczero = 12295; + e.ideographmetalcircle = 12942; + e.ideographmooncircle = 12938; + e.ideographnamecircle = 12948; + e.ideographsuncircle = 12944; + e.ideographwatercircle = 12940; + e.ideographwoodcircle = 12941; + e.ideva = 2311; + e.idieresis = 239; + e.idieresisacute = 7727; + e.idieresiscyrillic = 1253; + e.idotbelow = 7883; + e.iebrevecyrillic = 1239; + e.iecyrillic = 1077; + e.ieungacirclekorean = 12917; + e.ieungaparenkorean = 12821; + e.ieungcirclekorean = 12903; + e.ieungkorean = 12615; + e.ieungparenkorean = 12807; + e.igrave = 236; + e.igujarati = 2695; + e.igurmukhi = 2567; + e.ihiragana = 12356; + e.ihookabove = 7881; + e.iibengali = 2440; + e.iicyrillic = 1080; + e.iideva = 2312; + e.iigujarati = 2696; + e.iigurmukhi = 2568; + e.iimatragurmukhi = 2624; + e.iinvertedbreve = 523; + e.iishortcyrillic = 1081; + e.iivowelsignbengali = 2496; + e.iivowelsigndeva = 2368; + e.iivowelsigngujarati = 2752; + e.ij = 307; + e.ikatakana = 12452; + e.ikatakanahalfwidth = 65394; + e.ikorean = 12643; + e.ilde = 732; + e.iluyhebrew = 1452; + e.imacron = 299; + e.imacroncyrillic = 1251; + e.imageorapproximatelyequal = 8787; + e.imatragurmukhi = 2623; + e.imonospace = 65353; + e.increment = 8710; + e.infinity = 8734; + e.iniarmenian = 1387; + e.integral = 8747; + e.integralbottom = 8993; + e.integralbt = 8993; + e.integralex = 63733; + e.integraltop = 8992; + e.integraltp = 8992; + e.intersection = 8745; + e.intisquare = 13061; + e.invbullet = 9688; + e.invcircle = 9689; + e.invsmileface = 9787; + e.iocyrillic = 1105; + e.iogonek = 303; + e.iota = 953; + e.iotadieresis = 970; + e.iotadieresistonos = 912; + e.iotalatin = 617; + e.iotatonos = 943; + e.iparen = 9380; + e.irigurmukhi = 2674; + e.ismallhiragana = 12355; + e.ismallkatakana = 12451; + e.ismallkatakanahalfwidth = 65384; + e.issharbengali = 2554; + e.istroke = 616; + e.isuperior = 63213; + e.iterationhiragana = 12445; + e.iterationkatakana = 12541; + e.itilde = 297; + e.itildebelow = 7725; + e.iubopomofo = 12585; + e.iucyrillic = 1102; + e.ivowelsignbengali = 2495; + e.ivowelsigndeva = 2367; + e.ivowelsigngujarati = 2751; + e.izhitsacyrillic = 1141; + e.izhitsadblgravecyrillic = 1143; + e.j = 106; + e.jaarmenian = 1393; + e.jabengali = 2460; + e.jadeva = 2332; + e.jagujarati = 2716; + e.jagurmukhi = 2588; + e.jbopomofo = 12560; + e.jcaron = 496; + e.jcircle = 9433; + e.jcircumflex = 309; + e.jcrossedtail = 669; + e.jdotlessstroke = 607; + e.jecyrillic = 1112; + e.jeemarabic = 1580; + e.jeemfinalarabic = 65182; + e.jeeminitialarabic = 65183; + e.jeemmedialarabic = 65184; + e.jeharabic = 1688; + e.jehfinalarabic = 64395; + e.jhabengali = 2461; + e.jhadeva = 2333; + e.jhagujarati = 2717; + e.jhagurmukhi = 2589; + e.jheharmenian = 1403; + e.jis = 12292; + e.jmonospace = 65354; + e.jparen = 9381; + e.jsuperior = 690; + e.k = 107; + e.kabashkircyrillic = 1185; + e.kabengali = 2453; + e.kacute = 7729; + e.kacyrillic = 1082; + e.kadescendercyrillic = 1179; + e.kadeva = 2325; + e.kaf = 1499; + e.kafarabic = 1603; + e.kafdagesh = 64315; + e.kafdageshhebrew = 64315; + e.kaffinalarabic = 65242; + e.kafhebrew = 1499; + e.kafinitialarabic = 65243; + e.kafmedialarabic = 65244; + e.kafrafehebrew = 64333; + e.kagujarati = 2709; + e.kagurmukhi = 2581; + e.kahiragana = 12363; + e.kahookcyrillic = 1220; + e.kakatakana = 12459; + e.kakatakanahalfwidth = 65398; + e.kappa = 954; + e.kappasymbolgreek = 1008; + e.kapyeounmieumkorean = 12657; + e.kapyeounphieuphkorean = 12676; + e.kapyeounpieupkorean = 12664; + e.kapyeounssangpieupkorean = 12665; + e.karoriisquare = 13069; + e.kashidaautoarabic = 1600; + e.kashidaautonosidebearingarabic = 1600; + e.kasmallkatakana = 12533; + e.kasquare = 13188; + e.kasraarabic = 1616; + e.kasratanarabic = 1613; + e.kastrokecyrillic = 1183; + e.katahiraprolongmarkhalfwidth = 65392; + e.kaverticalstrokecyrillic = 1181; + e.kbopomofo = 12558; + e.kcalsquare = 13193; + e.kcaron = 489; + e.kcedilla = 311; + e.kcircle = 9434; + e.kcommaaccent = 311; + e.kdotbelow = 7731; + e.keharmenian = 1412; + e.kehiragana = 12369; + e.kekatakana = 12465; + e.kekatakanahalfwidth = 65401; + e.kenarmenian = 1391; + e.kesmallkatakana = 12534; + e.kgreenlandic = 312; + e.khabengali = 2454; + e.khacyrillic = 1093; + e.khadeva = 2326; + e.khagujarati = 2710; + e.khagurmukhi = 2582; + e.khaharabic = 1582; + e.khahfinalarabic = 65190; + e.khahinitialarabic = 65191; + e.khahmedialarabic = 65192; + e.kheicoptic = 999; + e.khhadeva = 2393; + e.khhagurmukhi = 2649; + e.khieukhacirclekorean = 12920; + e.khieukhaparenkorean = 12824; + e.khieukhcirclekorean = 12906; + e.khieukhkorean = 12619; + e.khieukhparenkorean = 12810; + e.khokhaithai = 3586; + e.khokhonthai = 3589; + e.khokhuatthai = 3587; + e.khokhwaithai = 3588; + e.khomutthai = 3675; + e.khook = 409; + e.khorakhangthai = 3590; + e.khzsquare = 13201; + e.kihiragana = 12365; + e.kikatakana = 12461; + e.kikatakanahalfwidth = 65399; + e.kiroguramusquare = 13077; + e.kiromeetorusquare = 13078; + e.kirosquare = 13076; + e.kiyeokacirclekorean = 12910; + e.kiyeokaparenkorean = 12814; + e.kiyeokcirclekorean = 12896; + e.kiyeokkorean = 12593; + e.kiyeokparenkorean = 12800; + e.kiyeoksioskorean = 12595; + e.kjecyrillic = 1116; + e.klinebelow = 7733; + e.klsquare = 13208; + e.kmcubedsquare = 13222; + e.kmonospace = 65355; + e.kmsquaredsquare = 13218; + e.kohiragana = 12371; + e.kohmsquare = 13248; + e.kokaithai = 3585; + e.kokatakana = 12467; + e.kokatakanahalfwidth = 65402; + e.kooposquare = 13086; + e.koppacyrillic = 1153; + e.koreanstandardsymbol = 12927; + e.koroniscmb = 835; + e.kparen = 9382; + e.kpasquare = 13226; + e.ksicyrillic = 1135; + e.ktsquare = 13263; + e.kturned = 670; + e.kuhiragana = 12367; + e.kukatakana = 12463; + e.kukatakanahalfwidth = 65400; + e.kvsquare = 13240; + e.kwsquare = 13246; + e.l = 108; + e.labengali = 2482; + e.lacute = 314; + e.ladeva = 2354; + e.lagujarati = 2738; + e.lagurmukhi = 2610; + e.lakkhangyaothai = 3653; + e.lamaleffinalarabic = 65276; + e.lamalefhamzaabovefinalarabic = 65272; + e.lamalefhamzaaboveisolatedarabic = 65271; + e.lamalefhamzabelowfinalarabic = 65274; + e.lamalefhamzabelowisolatedarabic = 65273; + e.lamalefisolatedarabic = 65275; + e.lamalefmaddaabovefinalarabic = 65270; + e.lamalefmaddaaboveisolatedarabic = 65269; + e.lamarabic = 1604; + e.lambda = 955; + e.lambdastroke = 411; + e.lamed = 1500; + e.lameddagesh = 64316; + e.lameddageshhebrew = 64316; + e.lamedhebrew = 1500; + e.lamfinalarabic = 65246; + e.lamhahinitialarabic = 64714; + e.laminitialarabic = 65247; + e.lamjeeminitialarabic = 64713; + e.lamkhahinitialarabic = 64715; + e.lamlamhehisolatedarabic = 65010; + e.lammedialarabic = 65248; + e.lammeemhahinitialarabic = 64904; + e.lammeeminitialarabic = 64716; + e.largecircle = 9711; + e.lbar = 410; + e.lbelt = 620; + e.lbopomofo = 12556; + e.lcaron = 318; + e.lcedilla = 316; + e.lcircle = 9435; + e.lcircumflexbelow = 7741; + e.lcommaaccent = 316; + e.ldot = 320; + e.ldotaccent = 320; + e.ldotbelow = 7735; + e.ldotbelowmacron = 7737; + e.leftangleabovecmb = 794; + e.lefttackbelowcmb = 792; + e.less = 60; + e.lessequal = 8804; + e.lessequalorgreater = 8922; + e.lessmonospace = 65308; + e.lessorequivalent = 8818; + e.lessorgreater = 8822; + e.lessoverequal = 8806; + e.lesssmall = 65124; + e.lezh = 622; + e.lfblock = 9612; + e.lhookretroflex = 621; + e.lira = 8356; + e.liwnarmenian = 1388; + e.lj = 457; + e.ljecyrillic = 1113; + e.ll = 63168; + e.lladeva = 2355; + e.llagujarati = 2739; + e.llinebelow = 7739; + e.llladeva = 2356; + e.llvocalicbengali = 2529; + e.llvocalicdeva = 2401; + e.llvocalicvowelsignbengali = 2531; + e.llvocalicvowelsigndeva = 2403; + e.lmiddletilde = 619; + e.lmonospace = 65356; + e.lmsquare = 13264; + e.lochulathai = 3628; + e.logicaland = 8743; + e.logicalnot = 172; + e.logicalnotreversed = 8976; + e.logicalor = 8744; + e.lolingthai = 3621; + e.longs = 383; + e.lowlinecenterline = 65102; + e.lowlinecmb = 818; + e.lowlinedashed = 65101; + e.lozenge = 9674; + e.lparen = 9383; + e.lslash = 322; + e.lsquare = 8467; + e.lsuperior = 63214; + e.ltshade = 9617; + e.luthai = 3622; + e.lvocalicbengali = 2444; + e.lvocalicdeva = 2316; + e.lvocalicvowelsignbengali = 2530; + e.lvocalicvowelsigndeva = 2402; + e.lxsquare = 13267; + e.m = 109; + e.mabengali = 2478; + e.macron = 175; + e.macronbelowcmb = 817; + e.macroncmb = 772; + e.macronlowmod = 717; + e.macronmonospace = 65507; + e.macute = 7743; + e.madeva = 2350; + e.magujarati = 2734; + e.magurmukhi = 2606; + e.mahapakhhebrew = 1444; + e.mahapakhlefthebrew = 1444; + e.mahiragana = 12414; + e.maichattawalowleftthai = 63637; + e.maichattawalowrightthai = 63636; + e.maichattawathai = 3659; + e.maichattawaupperleftthai = 63635; + e.maieklowleftthai = 63628; + e.maieklowrightthai = 63627; + e.maiekthai = 3656; + e.maiekupperleftthai = 63626; + e.maihanakatleftthai = 63620; + e.maihanakatthai = 3633; + e.maitaikhuleftthai = 63625; + e.maitaikhuthai = 3655; + e.maitholowleftthai = 63631; + e.maitholowrightthai = 63630; + e.maithothai = 3657; + e.maithoupperleftthai = 63629; + e.maitrilowleftthai = 63634; + e.maitrilowrightthai = 63633; + e.maitrithai = 3658; + e.maitriupperleftthai = 63632; + e.maiyamokthai = 3654; + e.makatakana = 12510; + e.makatakanahalfwidth = 65423; + e.male = 9794; + e.mansyonsquare = 13127; + e.maqafhebrew = 1470; + e.mars = 9794; + e.masoracirclehebrew = 1455; + e.masquare = 13187; + e.mbopomofo = 12551; + e.mbsquare = 13268; + e.mcircle = 9436; + e.mcubedsquare = 13221; + e.mdotaccent = 7745; + e.mdotbelow = 7747; + e.meemarabic = 1605; + e.meemfinalarabic = 65250; + e.meeminitialarabic = 65251; + e.meemmedialarabic = 65252; + e.meemmeeminitialarabic = 64721; + e.meemmeemisolatedarabic = 64584; + e.meetorusquare = 13133; + e.mehiragana = 12417; + e.meizierasquare = 13182; + e.mekatakana = 12513; + e.mekatakanahalfwidth = 65426; + e.mem = 1502; + e.memdagesh = 64318; + e.memdageshhebrew = 64318; + e.memhebrew = 1502; + e.menarmenian = 1396; + e.merkhahebrew = 1445; + e.merkhakefulahebrew = 1446; + e.merkhakefulalefthebrew = 1446; + e.merkhalefthebrew = 1445; + e.mhook = 625; + e.mhzsquare = 13202; + e.middledotkatakanahalfwidth = 65381; + e.middot = 183; + e.mieumacirclekorean = 12914; + e.mieumaparenkorean = 12818; + e.mieumcirclekorean = 12900; + e.mieumkorean = 12609; + e.mieumpansioskorean = 12656; + e.mieumparenkorean = 12804; + e.mieumpieupkorean = 12654; + e.mieumsioskorean = 12655; + e.mihiragana = 12415; + e.mikatakana = 12511; + e.mikatakanahalfwidth = 65424; + e.minus = 8722; + e.minusbelowcmb = 800; + e.minuscircle = 8854; + e.minusmod = 727; + e.minusplus = 8723; + e.minute = 8242; + e.miribaarusquare = 13130; + e.mirisquare = 13129; + e.mlonglegturned = 624; + e.mlsquare = 13206; + e.mmcubedsquare = 13219; + e.mmonospace = 65357; + e.mmsquaredsquare = 13215; + e.mohiragana = 12418; + e.mohmsquare = 13249; + e.mokatakana = 12514; + e.mokatakanahalfwidth = 65427; + e.molsquare = 13270; + e.momathai = 3617; + e.moverssquare = 13223; + e.moverssquaredsquare = 13224; + e.mparen = 9384; + e.mpasquare = 13227; + e.mssquare = 13235; + e.msuperior = 63215; + e.mturned = 623; + e.mu = 181; + e.mu1 = 181; + e.muasquare = 13186; + e.muchgreater = 8811; + e.muchless = 8810; + e.mufsquare = 13196; + e.mugreek = 956; + e.mugsquare = 13197; + e.muhiragana = 12416; + e.mukatakana = 12512; + e.mukatakanahalfwidth = 65425; + e.mulsquare = 13205; + e.multiply = 215; + e.mumsquare = 13211; + e.munahhebrew = 1443; + e.munahlefthebrew = 1443; + e.musicalnote = 9834; + e.musicalnotedbl = 9835; + e.musicflatsign = 9837; + e.musicsharpsign = 9839; + e.mussquare = 13234; + e.muvsquare = 13238; + e.muwsquare = 13244; + e.mvmegasquare = 13241; + e.mvsquare = 13239; + e.mwmegasquare = 13247; + e.mwsquare = 13245; + e.n = 110; + e.nabengali = 2472; + e.nabla = 8711; + e.nacute = 324; + e.nadeva = 2344; + e.nagujarati = 2728; + e.nagurmukhi = 2600; + e.nahiragana = 12394; + e.nakatakana = 12490; + e.nakatakanahalfwidth = 65413; + e.napostrophe = 329; + e.nasquare = 13185; + e.nbopomofo = 12555; + e.nbspace = 160; + e.ncaron = 328; + e.ncedilla = 326; + e.ncircle = 9437; + e.ncircumflexbelow = 7755; + e.ncommaaccent = 326; + e.ndotaccent = 7749; + e.ndotbelow = 7751; + e.nehiragana = 12397; + e.nekatakana = 12493; + e.nekatakanahalfwidth = 65416; + e.newsheqelsign = 8362; + e.nfsquare = 13195; + e.ngabengali = 2457; + e.ngadeva = 2329; + e.ngagujarati = 2713; + e.ngagurmukhi = 2585; + e.ngonguthai = 3591; + e.nhiragana = 12435; + e.nhookleft = 626; + e.nhookretroflex = 627; + e.nieunacirclekorean = 12911; + e.nieunaparenkorean = 12815; + e.nieuncieuckorean = 12597; + e.nieuncirclekorean = 12897; + e.nieunhieuhkorean = 12598; + e.nieunkorean = 12596; + e.nieunpansioskorean = 12648; + e.nieunparenkorean = 12801; + e.nieunsioskorean = 12647; + e.nieuntikeutkorean = 12646; + e.nihiragana = 12395; + e.nikatakana = 12491; + e.nikatakanahalfwidth = 65414; + e.nikhahitleftthai = 63641; + e.nikhahitthai = 3661; + e.nine = 57; + e.ninearabic = 1641; + e.ninebengali = 2543; + e.ninecircle = 9320; + e.ninecircleinversesansserif = 10130; + e.ninedeva = 2415; + e.ninegujarati = 2799; + e.ninegurmukhi = 2671; + e.ninehackarabic = 1641; + e.ninehangzhou = 12329; + e.nineideographicparen = 12840; + e.nineinferior = 8329; + e.ninemonospace = 65305; + e.nineoldstyle = 63289; + e.nineparen = 9340; + e.nineperiod = 9360; + e.ninepersian = 1785; + e.nineroman = 8568; + e.ninesuperior = 8313; + e.nineteencircle = 9330; + e.nineteenparen = 9350; + e.nineteenperiod = 9370; + e.ninethai = 3673; + e.nj = 460; + e.njecyrillic = 1114; + e.nkatakana = 12531; + e.nkatakanahalfwidth = 65437; + e.nlegrightlong = 414; + e.nlinebelow = 7753; + e.nmonospace = 65358; + e.nmsquare = 13210; + e.nnabengali = 2467; + e.nnadeva = 2339; + e.nnagujarati = 2723; + e.nnagurmukhi = 2595; + e.nnnadeva = 2345; + e.nohiragana = 12398; + e.nokatakana = 12494; + e.nokatakanahalfwidth = 65417; + e.nonbreakingspace = 160; + e.nonenthai = 3603; + e.nonuthai = 3609; + e.noonarabic = 1606; + e.noonfinalarabic = 65254; + e.noonghunnaarabic = 1722; + e.noonghunnafinalarabic = 64415; + e.nooninitialarabic = 65255; + e.noonjeeminitialarabic = 64722; + e.noonjeemisolatedarabic = 64587; + e.noonmedialarabic = 65256; + e.noonmeeminitialarabic = 64725; + e.noonmeemisolatedarabic = 64590; + e.noonnoonfinalarabic = 64653; + e.notcontains = 8716; + e.notelement = 8713; + e.notelementof = 8713; + e.notequal = 8800; + e.notgreater = 8815; + e.notgreaternorequal = 8817; + e.notgreaternorless = 8825; + e.notidentical = 8802; + e.notless = 8814; + e.notlessnorequal = 8816; + e.notparallel = 8742; + e.notprecedes = 8832; + e.notsubset = 8836; + e.notsucceeds = 8833; + e.notsuperset = 8837; + e.nowarmenian = 1398; + e.nparen = 9385; + e.nssquare = 13233; + e.nsuperior = 8319; + e.ntilde = 241; + e.nu = 957; + e.nuhiragana = 12396; + e.nukatakana = 12492; + e.nukatakanahalfwidth = 65415; + e.nuktabengali = 2492; + e.nuktadeva = 2364; + e.nuktagujarati = 2748; + e.nuktagurmukhi = 2620; + e.numbersign = 35; + e.numbersignmonospace = 65283; + e.numbersignsmall = 65119; + e.numeralsigngreek = 884; + e.numeralsignlowergreek = 885; + e.numero = 8470; + e.nun = 1504; + e.nundagesh = 64320; + e.nundageshhebrew = 64320; + e.nunhebrew = 1504; + e.nvsquare = 13237; + e.nwsquare = 13243; + e.nyabengali = 2462; + e.nyadeva = 2334; + e.nyagujarati = 2718; + e.nyagurmukhi = 2590; + e.o = 111; + e.oacute = 243; + e.oangthai = 3629; + e.obarred = 629; + e.obarredcyrillic = 1257; + e.obarreddieresiscyrillic = 1259; + e.obengali = 2451; + e.obopomofo = 12571; + e.obreve = 335; + e.ocandradeva = 2321; + e.ocandragujarati = 2705; + e.ocandravowelsigndeva = 2377; + e.ocandravowelsigngujarati = 2761; + e.ocaron = 466; + e.ocircle = 9438; + e.ocircumflex = 244; + e.ocircumflexacute = 7889; + e.ocircumflexdotbelow = 7897; + e.ocircumflexgrave = 7891; + e.ocircumflexhookabove = 7893; + e.ocircumflextilde = 7895; + e.ocyrillic = 1086; + e.odblacute = 337; + e.odblgrave = 525; + e.odeva = 2323; + e.odieresis = 246; + e.odieresiscyrillic = 1255; + e.odotbelow = 7885; + e.oe = 339; + e.oekorean = 12634; + e.ogonek = 731; + e.ogonekcmb = 808; + e.ograve = 242; + e.ogujarati = 2707; + e.oharmenian = 1413; + e.ohiragana = 12362; + e.ohookabove = 7887; + e.ohorn = 417; + e.ohornacute = 7899; + e.ohorndotbelow = 7907; + e.ohorngrave = 7901; + e.ohornhookabove = 7903; + e.ohorntilde = 7905; + e.ohungarumlaut = 337; + e.oi = 419; + e.oinvertedbreve = 527; + e.okatakana = 12458; + e.okatakanahalfwidth = 65397; + e.okorean = 12631; + e.olehebrew = 1451; + e.omacron = 333; + e.omacronacute = 7763; + e.omacrongrave = 7761; + e.omdeva = 2384; + e.omega = 969; + e.omega1 = 982; + e.omegacyrillic = 1121; + e.omegalatinclosed = 631; + e.omegaroundcyrillic = 1147; + e.omegatitlocyrillic = 1149; + e.omegatonos = 974; + e.omgujarati = 2768; + e.omicron = 959; + e.omicrontonos = 972; + e.omonospace = 65359; + e.one = 49; + e.onearabic = 1633; + e.onebengali = 2535; + e.onecircle = 9312; + e.onecircleinversesansserif = 10122; + e.onedeva = 2407; + e.onedotenleader = 8228; + e.oneeighth = 8539; + e.onefitted = 63196; + e.onegujarati = 2791; + e.onegurmukhi = 2663; + e.onehackarabic = 1633; + e.onehalf = 189; + e.onehangzhou = 12321; + e.oneideographicparen = 12832; + e.oneinferior = 8321; + e.onemonospace = 65297; + e.onenumeratorbengali = 2548; + e.oneoldstyle = 63281; + e.oneparen = 9332; + e.oneperiod = 9352; + e.onepersian = 1777; + e.onequarter = 188; + e.oneroman = 8560; + e.onesuperior = 185; + e.onethai = 3665; + e.onethird = 8531; + e.oogonek = 491; + e.oogonekmacron = 493; + e.oogurmukhi = 2579; + e.oomatragurmukhi = 2635; + e.oopen = 596; + e.oparen = 9386; + e.openbullet = 9702; + e.option = 8997; + e.ordfeminine = 170; + e.ordmasculine = 186; + e.orthogonal = 8735; + e.oshortdeva = 2322; + e.oshortvowelsigndeva = 2378; + e.oslash = 248; + e.oslashacute = 511; + e.osmallhiragana = 12361; + e.osmallkatakana = 12457; + e.osmallkatakanahalfwidth = 65387; + e.ostrokeacute = 511; + e.osuperior = 63216; + e.otcyrillic = 1151; + e.otilde = 245; + e.otildeacute = 7757; + e.otildedieresis = 7759; + e.oubopomofo = 12577; + e.overline = 8254; + e.overlinecenterline = 65098; + e.overlinecmb = 773; + e.overlinedashed = 65097; + e.overlinedblwavy = 65100; + e.overlinewavy = 65099; + e.overscore = 175; + e.ovowelsignbengali = 2507; + e.ovowelsigndeva = 2379; + e.ovowelsigngujarati = 2763; + e.p = 112; + e.paampssquare = 13184; + e.paasentosquare = 13099; + e.pabengali = 2474; + e.pacute = 7765; + e.padeva = 2346; + e.pagedown = 8671; + e.pageup = 8670; + e.pagujarati = 2730; + e.pagurmukhi = 2602; + e.pahiragana = 12401; + e.paiyannoithai = 3631; + e.pakatakana = 12497; + e.palatalizationcyrilliccmb = 1156; + e.palochkacyrillic = 1216; + e.pansioskorean = 12671; + e.paragraph = 182; + e.parallel = 8741; + e.parenleft = 40; + e.parenleftaltonearabic = 64830; + e.parenleftbt = 63725; + e.parenleftex = 63724; + e.parenleftinferior = 8333; + e.parenleftmonospace = 65288; + e.parenleftsmall = 65113; + e.parenleftsuperior = 8317; + e.parenlefttp = 63723; + e.parenleftvertical = 65077; + e.parenright = 41; + e.parenrightaltonearabic = 64831; + e.parenrightbt = 63736; + e.parenrightex = 63735; + e.parenrightinferior = 8334; + e.parenrightmonospace = 65289; + e.parenrightsmall = 65114; + e.parenrightsuperior = 8318; + e.parenrighttp = 63734; + e.parenrightvertical = 65078; + e.partialdiff = 8706; + e.paseqhebrew = 1472; + e.pashtahebrew = 1433; + e.pasquare = 13225; + e.patah = 1463; + e.patah11 = 1463; + e.patah1d = 1463; + e.patah2a = 1463; + e.patahhebrew = 1463; + e.patahnarrowhebrew = 1463; + e.patahquarterhebrew = 1463; + e.patahwidehebrew = 1463; + e.pazerhebrew = 1441; + e.pbopomofo = 12550; + e.pcircle = 9439; + e.pdotaccent = 7767; + e.pe = 1508; + e.pecyrillic = 1087; + e.pedagesh = 64324; + e.pedageshhebrew = 64324; + e.peezisquare = 13115; + e.pefinaldageshhebrew = 64323; + e.peharabic = 1662; + e.peharmenian = 1402; + e.pehebrew = 1508; + e.pehfinalarabic = 64343; + e.pehinitialarabic = 64344; + e.pehiragana = 12410; + e.pehmedialarabic = 64345; + e.pekatakana = 12506; + e.pemiddlehookcyrillic = 1191; + e.perafehebrew = 64334; + e.percent = 37; + e.percentarabic = 1642; + e.percentmonospace = 65285; + e.percentsmall = 65130; + e.period = 46; + e.periodarmenian = 1417; + e.periodcentered = 183; + e.periodhalfwidth = 65377; + e.periodinferior = 63207; + e.periodmonospace = 65294; + e.periodsmall = 65106; + e.periodsuperior = 63208; + e.perispomenigreekcmb = 834; + e.perpendicular = 8869; + e.perthousand = 8240; + e.peseta = 8359; + e.pfsquare = 13194; + e.phabengali = 2475; + e.phadeva = 2347; + e.phagujarati = 2731; + e.phagurmukhi = 2603; + e.phi = 966; + e.phi1 = 981; + e.phieuphacirclekorean = 12922; + e.phieuphaparenkorean = 12826; + e.phieuphcirclekorean = 12908; + e.phieuphkorean = 12621; + e.phieuphparenkorean = 12812; + e.philatin = 632; + e.phinthuthai = 3642; + e.phisymbolgreek = 981; + e.phook = 421; + e.phophanthai = 3614; + e.phophungthai = 3612; + e.phosamphaothai = 3616; + e.pi = 960; + e.pieupacirclekorean = 12915; + e.pieupaparenkorean = 12819; + e.pieupcieuckorean = 12662; + e.pieupcirclekorean = 12901; + e.pieupkiyeokkorean = 12658; + e.pieupkorean = 12610; + e.pieupparenkorean = 12805; + e.pieupsioskiyeokkorean = 12660; + e.pieupsioskorean = 12612; + e.pieupsiostikeutkorean = 12661; + e.pieupthieuthkorean = 12663; + e.pieuptikeutkorean = 12659; + e.pihiragana = 12404; + e.pikatakana = 12500; + e.pisymbolgreek = 982; + e.piwrarmenian = 1411; + e.plus = 43; + e.plusbelowcmb = 799; + e.pluscircle = 8853; + e.plusminus = 177; + e.plusmod = 726; + e.plusmonospace = 65291; + e.plussmall = 65122; + e.plussuperior = 8314; + e.pmonospace = 65360; + e.pmsquare = 13272; + e.pohiragana = 12413; + e.pointingindexdownwhite = 9759; + e.pointingindexleftwhite = 9756; + e.pointingindexrightwhite = 9758; + e.pointingindexupwhite = 9757; + e.pokatakana = 12509; + e.poplathai = 3611; + e.postalmark = 12306; + e.postalmarkface = 12320; + e.pparen = 9387; + e.precedes = 8826; + e.prescription = 8478; + e.primemod = 697; + e.primereversed = 8245; + e.product = 8719; + e.projective = 8965; + e.prolongedkana = 12540; + e.propellor = 8984; + e.propersubset = 8834; + e.propersuperset = 8835; + e.proportion = 8759; + e.proportional = 8733; + e.psi = 968; + e.psicyrillic = 1137; + e.psilipneumatacyrilliccmb = 1158; + e.pssquare = 13232; + e.puhiragana = 12407; + e.pukatakana = 12503; + e.pvsquare = 13236; + e.pwsquare = 13242; + e.q = 113; + e.qadeva = 2392; + e.qadmahebrew = 1448; + e.qafarabic = 1602; + e.qaffinalarabic = 65238; + e.qafinitialarabic = 65239; + e.qafmedialarabic = 65240; + e.qamats = 1464; + e.qamats10 = 1464; + e.qamats1a = 1464; + e.qamats1c = 1464; + e.qamats27 = 1464; + e.qamats29 = 1464; + e.qamats33 = 1464; + e.qamatsde = 1464; + e.qamatshebrew = 1464; + e.qamatsnarrowhebrew = 1464; + e.qamatsqatanhebrew = 1464; + e.qamatsqatannarrowhebrew = 1464; + e.qamatsqatanquarterhebrew = 1464; + e.qamatsqatanwidehebrew = 1464; + e.qamatsquarterhebrew = 1464; + e.qamatswidehebrew = 1464; + e.qarneyparahebrew = 1439; + e.qbopomofo = 12561; + e.qcircle = 9440; + e.qhook = 672; + e.qmonospace = 65361; + e.qof = 1511; + e.qofdagesh = 64327; + e.qofdageshhebrew = 64327; + e.qofhebrew = 1511; + e.qparen = 9388; + e.quarternote = 9833; + e.qubuts = 1467; + e.qubuts18 = 1467; + e.qubuts25 = 1467; + e.qubuts31 = 1467; + e.qubutshebrew = 1467; + e.qubutsnarrowhebrew = 1467; + e.qubutsquarterhebrew = 1467; + e.qubutswidehebrew = 1467; + e.question = 63; + e.questionarabic = 1567; + e.questionarmenian = 1374; + e.questiondown = 191; + e.questiondownsmall = 63423; + e.questiongreek = 894; + e.questionmonospace = 65311; + e.questionsmall = 63295; + e.quotedbl = 34; + e.quotedblbase = 8222; + e.quotedblleft = 8220; + e.quotedblmonospace = 65282; + e.quotedblprime = 12318; + e.quotedblprimereversed = 12317; + e.quotedblright = 8221; + e.quoteleft = 8216; + e.quoteleftreversed = 8219; + e.quotereversed = 8219; + e.quoteright = 8217; + e.quoterightn = 329; + e.quotesinglbase = 8218; + e.quotesingle = 39; + e.quotesinglemonospace = 65287; + e.r = 114; + e.raarmenian = 1404; + e.rabengali = 2480; + e.racute = 341; + e.radeva = 2352; + e.radical = 8730; + e.radicalex = 63717; + e.radoverssquare = 13230; + e.radoverssquaredsquare = 13231; + e.radsquare = 13229; + e.rafe = 1471; + e.rafehebrew = 1471; + e.ragujarati = 2736; + e.ragurmukhi = 2608; + e.rahiragana = 12425; + e.rakatakana = 12521; + e.rakatakanahalfwidth = 65431; + e.ralowerdiagonalbengali = 2545; + e.ramiddlediagonalbengali = 2544; + e.ramshorn = 612; + e.ratio = 8758; + e.rbopomofo = 12566; + e.rcaron = 345; + e.rcedilla = 343; + e.rcircle = 9441; + e.rcommaaccent = 343; + e.rdblgrave = 529; + e.rdotaccent = 7769; + e.rdotbelow = 7771; + e.rdotbelowmacron = 7773; + e.referencemark = 8251; + e.reflexsubset = 8838; + e.reflexsuperset = 8839; + e.registered = 174; + e.registersans = 63720; + e.registerserif = 63194; + e.reharabic = 1585; + e.reharmenian = 1408; + e.rehfinalarabic = 65198; + e.rehiragana = 12428; + e.rekatakana = 12524; + e.rekatakanahalfwidth = 65434; + e.resh = 1512; + e.reshdageshhebrew = 64328; + e.reshhebrew = 1512; + e.reversedtilde = 8765; + e.reviahebrew = 1431; + e.reviamugrashhebrew = 1431; + e.revlogicalnot = 8976; + e.rfishhook = 638; + e.rfishhookreversed = 639; + e.rhabengali = 2525; + e.rhadeva = 2397; + e.rho = 961; + e.rhook = 637; + e.rhookturned = 635; + e.rhookturnedsuperior = 693; + e.rhosymbolgreek = 1009; + e.rhotichookmod = 734; + e.rieulacirclekorean = 12913; + e.rieulaparenkorean = 12817; + e.rieulcirclekorean = 12899; + e.rieulhieuhkorean = 12608; + e.rieulkiyeokkorean = 12602; + e.rieulkiyeoksioskorean = 12649; + e.rieulkorean = 12601; + e.rieulmieumkorean = 12603; + e.rieulpansioskorean = 12652; + e.rieulparenkorean = 12803; + e.rieulphieuphkorean = 12607; + e.rieulpieupkorean = 12604; + e.rieulpieupsioskorean = 12651; + e.rieulsioskorean = 12605; + e.rieulthieuthkorean = 12606; + e.rieultikeutkorean = 12650; + e.rieulyeorinhieuhkorean = 12653; + e.rightangle = 8735; + e.righttackbelowcmb = 793; + e.righttriangle = 8895; + e.rihiragana = 12426; + e.rikatakana = 12522; + e.rikatakanahalfwidth = 65432; + e.ring = 730; + e.ringbelowcmb = 805; + e.ringcmb = 778; + e.ringhalfleft = 703; + e.ringhalfleftarmenian = 1369; + e.ringhalfleftbelowcmb = 796; + e.ringhalfleftcentered = 723; + e.ringhalfright = 702; + e.ringhalfrightbelowcmb = 825; + e.ringhalfrightcentered = 722; + e.rinvertedbreve = 531; + e.rittorusquare = 13137; + e.rlinebelow = 7775; + e.rlongleg = 636; + e.rlonglegturned = 634; + e.rmonospace = 65362; + e.rohiragana = 12429; + e.rokatakana = 12525; + e.rokatakanahalfwidth = 65435; + e.roruathai = 3619; + e.rparen = 9389; + e.rrabengali = 2524; + e.rradeva = 2353; + e.rragurmukhi = 2652; + e.rreharabic = 1681; + e.rrehfinalarabic = 64397; + e.rrvocalicbengali = 2528; + e.rrvocalicdeva = 2400; + e.rrvocalicgujarati = 2784; + e.rrvocalicvowelsignbengali = 2500; + e.rrvocalicvowelsigndeva = 2372; + e.rrvocalicvowelsigngujarati = 2756; + e.rsuperior = 63217; + e.rtblock = 9616; + e.rturned = 633; + e.rturnedsuperior = 692; + e.ruhiragana = 12427; + e.rukatakana = 12523; + e.rukatakanahalfwidth = 65433; + e.rupeemarkbengali = 2546; + e.rupeesignbengali = 2547; + e.rupiah = 63197; + e.ruthai = 3620; + e.rvocalicbengali = 2443; + e.rvocalicdeva = 2315; + e.rvocalicgujarati = 2699; + e.rvocalicvowelsignbengali = 2499; + e.rvocalicvowelsigndeva = 2371; + e.rvocalicvowelsigngujarati = 2755; + e.s = 115; + e.sabengali = 2488; + e.sacute = 347; + e.sacutedotaccent = 7781; + e.sadarabic = 1589; + e.sadeva = 2360; + e.sadfinalarabic = 65210; + e.sadinitialarabic = 65211; + e.sadmedialarabic = 65212; + e.sagujarati = 2744; + e.sagurmukhi = 2616; + e.sahiragana = 12373; + e.sakatakana = 12469; + e.sakatakanahalfwidth = 65403; + e.sallallahoualayhewasallamarabic = 65018; + e.samekh = 1505; + e.samekhdagesh = 64321; + e.samekhdageshhebrew = 64321; + e.samekhhebrew = 1505; + e.saraaathai = 3634; + e.saraaethai = 3649; + e.saraaimaimalaithai = 3652; + e.saraaimaimuanthai = 3651; + e.saraamthai = 3635; + e.saraathai = 3632; + e.saraethai = 3648; + e.saraiileftthai = 63622; + e.saraiithai = 3637; + e.saraileftthai = 63621; + e.saraithai = 3636; + e.saraothai = 3650; + e.saraueeleftthai = 63624; + e.saraueethai = 3639; + e.saraueleftthai = 63623; + e.sarauethai = 3638; + e.sarauthai = 3640; + e.sarauuthai = 3641; + e.sbopomofo = 12569; + e.scaron = 353; + e.scarondotaccent = 7783; + e.scedilla = 351; + e.schwa = 601; + e.schwacyrillic = 1241; + e.schwadieresiscyrillic = 1243; + e.schwahook = 602; + e.scircle = 9442; + e.scircumflex = 349; + e.scommaaccent = 537; + e.sdotaccent = 7777; + e.sdotbelow = 7779; + e.sdotbelowdotaccent = 7785; + e.seagullbelowcmb = 828; + e.second = 8243; + e.secondtonechinese = 714; + e.section = 167; + e.seenarabic = 1587; + e.seenfinalarabic = 65202; + e.seeninitialarabic = 65203; + e.seenmedialarabic = 65204; + e.segol = 1462; + e.segol13 = 1462; + e.segol1f = 1462; + e.segol2c = 1462; + e.segolhebrew = 1462; + e.segolnarrowhebrew = 1462; + e.segolquarterhebrew = 1462; + e.segoltahebrew = 1426; + e.segolwidehebrew = 1462; + e.seharmenian = 1405; + e.sehiragana = 12379; + e.sekatakana = 12475; + e.sekatakanahalfwidth = 65406; + e.semicolon = 59; + e.semicolonarabic = 1563; + e.semicolonmonospace = 65307; + e.semicolonsmall = 65108; + e.semivoicedmarkkana = 12444; + e.semivoicedmarkkanahalfwidth = 65439; + e.sentisquare = 13090; + e.sentosquare = 13091; + e.seven = 55; + e.sevenarabic = 1639; + e.sevenbengali = 2541; + e.sevencircle = 9318; + e.sevencircleinversesansserif = 10128; + e.sevendeva = 2413; + e.seveneighths = 8542; + e.sevengujarati = 2797; + e.sevengurmukhi = 2669; + e.sevenhackarabic = 1639; + e.sevenhangzhou = 12327; + e.sevenideographicparen = 12838; + e.seveninferior = 8327; + e.sevenmonospace = 65303; + e.sevenoldstyle = 63287; + e.sevenparen = 9338; + e.sevenperiod = 9358; + e.sevenpersian = 1783; + e.sevenroman = 8566; + e.sevensuperior = 8311; + e.seventeencircle = 9328; + e.seventeenparen = 9348; + e.seventeenperiod = 9368; + e.seventhai = 3671; + e.sfthyphen = 173; + e.shaarmenian = 1399; + e.shabengali = 2486; + e.shacyrillic = 1096; + e.shaddaarabic = 1617; + e.shaddadammaarabic = 64609; + e.shaddadammatanarabic = 64606; + e.shaddafathaarabic = 64608; + e.shaddakasraarabic = 64610; + e.shaddakasratanarabic = 64607; + e.shade = 9618; + e.shadedark = 9619; + e.shadelight = 9617; + e.shademedium = 9618; + e.shadeva = 2358; + e.shagujarati = 2742; + e.shagurmukhi = 2614; + e.shalshelethebrew = 1427; + e.shbopomofo = 12565; + e.shchacyrillic = 1097; + e.sheenarabic = 1588; + e.sheenfinalarabic = 65206; + e.sheeninitialarabic = 65207; + e.sheenmedialarabic = 65208; + e.sheicoptic = 995; + e.sheqel = 8362; + e.sheqelhebrew = 8362; + e.sheva = 1456; + e.sheva115 = 1456; + e.sheva15 = 1456; + e.sheva22 = 1456; + e.sheva2e = 1456; + e.shevahebrew = 1456; + e.shevanarrowhebrew = 1456; + e.shevaquarterhebrew = 1456; + e.shevawidehebrew = 1456; + e.shhacyrillic = 1211; + e.shimacoptic = 1005; + e.shin = 1513; + e.shindagesh = 64329; + e.shindageshhebrew = 64329; + e.shindageshshindot = 64300; + e.shindageshshindothebrew = 64300; + e.shindageshsindot = 64301; + e.shindageshsindothebrew = 64301; + e.shindothebrew = 1473; + e.shinhebrew = 1513; + e.shinshindot = 64298; + e.shinshindothebrew = 64298; + e.shinsindot = 64299; + e.shinsindothebrew = 64299; + e.shook = 642; + e.sigma = 963; + e.sigma1 = 962; + e.sigmafinal = 962; + e.sigmalunatesymbolgreek = 1010; + e.sihiragana = 12375; + e.sikatakana = 12471; + e.sikatakanahalfwidth = 65404; + e.siluqhebrew = 1469; + e.siluqlefthebrew = 1469; + e.similar = 8764; + e.sindothebrew = 1474; + e.siosacirclekorean = 12916; + e.siosaparenkorean = 12820; + e.sioscieuckorean = 12670; + e.sioscirclekorean = 12902; + e.sioskiyeokkorean = 12666; + e.sioskorean = 12613; + e.siosnieunkorean = 12667; + e.siosparenkorean = 12806; + e.siospieupkorean = 12669; + e.siostikeutkorean = 12668; + e.six = 54; + e.sixarabic = 1638; + e.sixbengali = 2540; + e.sixcircle = 9317; + e.sixcircleinversesansserif = 10127; + e.sixdeva = 2412; + e.sixgujarati = 2796; + e.sixgurmukhi = 2668; + e.sixhackarabic = 1638; + e.sixhangzhou = 12326; + e.sixideographicparen = 12837; + e.sixinferior = 8326; + e.sixmonospace = 65302; + e.sixoldstyle = 63286; + e.sixparen = 9337; + e.sixperiod = 9357; + e.sixpersian = 1782; + e.sixroman = 8565; + e.sixsuperior = 8310; + e.sixteencircle = 9327; + e.sixteencurrencydenominatorbengali = 2553; + e.sixteenparen = 9347; + e.sixteenperiod = 9367; + e.sixthai = 3670; + e.slash = 47; + e.slashmonospace = 65295; + e.slong = 383; + e.slongdotaccent = 7835; + e.smileface = 9786; + e.smonospace = 65363; + e.sofpasuqhebrew = 1475; + e.softhyphen = 173; + e.softsigncyrillic = 1100; + e.sohiragana = 12381; + e.sokatakana = 12477; + e.sokatakanahalfwidth = 65407; + e.soliduslongoverlaycmb = 824; + e.solidusshortoverlaycmb = 823; + e.sorusithai = 3625; + e.sosalathai = 3624; + e.sosothai = 3595; + e.sosuathai = 3626; + e.space = 32; + e.spacehackarabic = 32; + e.spade = 9824; + e.spadesuitblack = 9824; + e.spadesuitwhite = 9828; + e.sparen = 9390; + e.squarebelowcmb = 827; + e.squarecc = 13252; + e.squarecm = 13213; + e.squarediagonalcrosshatchfill = 9641; + e.squarehorizontalfill = 9636; + e.squarekg = 13199; + e.squarekm = 13214; + e.squarekmcapital = 13262; + e.squareln = 13265; + e.squarelog = 13266; + e.squaremg = 13198; + e.squaremil = 13269; + e.squaremm = 13212; + e.squaremsquared = 13217; + e.squareorthogonalcrosshatchfill = 9638; + e.squareupperlefttolowerrightfill = 9639; + e.squareupperrighttolowerleftfill = 9640; + e.squareverticalfill = 9637; + e.squarewhitewithsmallblack = 9635; + e.srsquare = 13275; + e.ssabengali = 2487; + e.ssadeva = 2359; + e.ssagujarati = 2743; + e.ssangcieuckorean = 12617; + e.ssanghieuhkorean = 12677; + e.ssangieungkorean = 12672; + e.ssangkiyeokkorean = 12594; + e.ssangnieunkorean = 12645; + e.ssangpieupkorean = 12611; + e.ssangsioskorean = 12614; + e.ssangtikeutkorean = 12600; + e.ssuperior = 63218; + e.sterling = 163; + e.sterlingmonospace = 65505; + e.strokelongoverlaycmb = 822; + e.strokeshortoverlaycmb = 821; + e.subset = 8834; + e.subsetnotequal = 8842; + e.subsetorequal = 8838; + e.succeeds = 8827; + e.suchthat = 8715; + e.suhiragana = 12377; + e.sukatakana = 12473; + e.sukatakanahalfwidth = 65405; + e.sukunarabic = 1618; + e.summation = 8721; + e.sun = 9788; + e.superset = 8835; + e.supersetnotequal = 8843; + e.supersetorequal = 8839; + e.svsquare = 13276; + e.syouwaerasquare = 13180; + e.t = 116; + e.tabengali = 2468; + e.tackdown = 8868; + e.tackleft = 8867; + e.tadeva = 2340; + e.tagujarati = 2724; + e.tagurmukhi = 2596; + e.taharabic = 1591; + e.tahfinalarabic = 65218; + e.tahinitialarabic = 65219; + e.tahiragana = 12383; + e.tahmedialarabic = 65220; + e.taisyouerasquare = 13181; + e.takatakana = 12479; + e.takatakanahalfwidth = 65408; + e.tatweelarabic = 1600; + e.tau = 964; + e.tav = 1514; + e.tavdages = 64330; + e.tavdagesh = 64330; + e.tavdageshhebrew = 64330; + e.tavhebrew = 1514; + e.tbar = 359; + e.tbopomofo = 12554; + e.tcaron = 357; + e.tccurl = 680; + e.tcedilla = 355; + e.tcheharabic = 1670; + e.tchehfinalarabic = 64379; + e.tchehinitialarabic = 64380; + e.tchehmedialarabic = 64381; + e.tcircle = 9443; + e.tcircumflexbelow = 7793; + e.tcommaaccent = 355; + e.tdieresis = 7831; + e.tdotaccent = 7787; + e.tdotbelow = 7789; + e.tecyrillic = 1090; + e.tedescendercyrillic = 1197; + e.teharabic = 1578; + e.tehfinalarabic = 65174; + e.tehhahinitialarabic = 64674; + e.tehhahisolatedarabic = 64524; + e.tehinitialarabic = 65175; + e.tehiragana = 12390; + e.tehjeeminitialarabic = 64673; + e.tehjeemisolatedarabic = 64523; + e.tehmarbutaarabic = 1577; + e.tehmarbutafinalarabic = 65172; + e.tehmedialarabic = 65176; + e.tehmeeminitialarabic = 64676; + e.tehmeemisolatedarabic = 64526; + e.tehnoonfinalarabic = 64627; + e.tekatakana = 12486; + e.tekatakanahalfwidth = 65411; + e.telephone = 8481; + e.telephoneblack = 9742; + e.telishagedolahebrew = 1440; + e.telishaqetanahebrew = 1449; + e.tencircle = 9321; + e.tenideographicparen = 12841; + e.tenparen = 9341; + e.tenperiod = 9361; + e.tenroman = 8569; + e.tesh = 679; + e.tet = 1496; + e.tetdagesh = 64312; + e.tetdageshhebrew = 64312; + e.tethebrew = 1496; + e.tetsecyrillic = 1205; + e.tevirhebrew = 1435; + e.tevirlefthebrew = 1435; + e.thabengali = 2469; + e.thadeva = 2341; + e.thagujarati = 2725; + e.thagurmukhi = 2597; + e.thalarabic = 1584; + e.thalfinalarabic = 65196; + e.thanthakhatlowleftthai = 63640; + e.thanthakhatlowrightthai = 63639; + e.thanthakhatthai = 3660; + e.thanthakhatupperleftthai = 63638; + e.theharabic = 1579; + e.thehfinalarabic = 65178; + e.thehinitialarabic = 65179; + e.thehmedialarabic = 65180; + e.thereexists = 8707; + e.therefore = 8756; + e.theta = 952; + e.theta1 = 977; + e.thetasymbolgreek = 977; + e.thieuthacirclekorean = 12921; + e.thieuthaparenkorean = 12825; + e.thieuthcirclekorean = 12907; + e.thieuthkorean = 12620; + e.thieuthparenkorean = 12811; + e.thirteencircle = 9324; + e.thirteenparen = 9344; + e.thirteenperiod = 9364; + e.thonangmonthothai = 3601; + e.thook = 429; + e.thophuthaothai = 3602; + e.thorn = 254; + e.thothahanthai = 3607; + e.thothanthai = 3600; + e.thothongthai = 3608; + e.thothungthai = 3606; + e.thousandcyrillic = 1154; + e.thousandsseparatorarabic = 1644; + e.thousandsseparatorpersian = 1644; + e.three = 51; + e.threearabic = 1635; + e.threebengali = 2537; + e.threecircle = 9314; + e.threecircleinversesansserif = 10124; + e.threedeva = 2409; + e.threeeighths = 8540; + e.threegujarati = 2793; + e.threegurmukhi = 2665; + e.threehackarabic = 1635; + e.threehangzhou = 12323; + e.threeideographicparen = 12834; + e.threeinferior = 8323; + e.threemonospace = 65299; + e.threenumeratorbengali = 2550; + e.threeoldstyle = 63283; + e.threeparen = 9334; + e.threeperiod = 9354; + e.threepersian = 1779; + e.threequarters = 190; + e.threequartersemdash = 63198; + e.threeroman = 8562; + e.threesuperior = 179; + e.threethai = 3667; + e.thzsquare = 13204; + e.tihiragana = 12385; + e.tikatakana = 12481; + e.tikatakanahalfwidth = 65409; + e.tikeutacirclekorean = 12912; + e.tikeutaparenkorean = 12816; + e.tikeutcirclekorean = 12898; + e.tikeutkorean = 12599; + e.tikeutparenkorean = 12802; + e.tilde = 732; + e.tildebelowcmb = 816; + e.tildecmb = 771; + e.tildecomb = 771; + e.tildedoublecmb = 864; + e.tildeoperator = 8764; + e.tildeoverlaycmb = 820; + e.tildeverticalcmb = 830; + e.timescircle = 8855; + e.tipehahebrew = 1430; + e.tipehalefthebrew = 1430; + e.tippigurmukhi = 2672; + e.titlocyrilliccmb = 1155; + e.tiwnarmenian = 1407; + e.tlinebelow = 7791; + e.tmonospace = 65364; + e.toarmenian = 1385; + e.tohiragana = 12392; + e.tokatakana = 12488; + e.tokatakanahalfwidth = 65412; + e.tonebarextrahighmod = 741; + e.tonebarextralowmod = 745; + e.tonebarhighmod = 742; + e.tonebarlowmod = 744; + e.tonebarmidmod = 743; + e.tonefive = 445; + e.tonesix = 389; + e.tonetwo = 424; + e.tonos = 900; + e.tonsquare = 13095; + e.topatakthai = 3599; + e.tortoiseshellbracketleft = 12308; + e.tortoiseshellbracketleftsmall = 65117; + e.tortoiseshellbracketleftvertical = 65081; + e.tortoiseshellbracketright = 12309; + e.tortoiseshellbracketrightsmall = 65118; + e.tortoiseshellbracketrightvertical = 65082; + e.totaothai = 3605; + e.tpalatalhook = 427; + e.tparen = 9391; + e.trademark = 8482; + e.trademarksans = 63722; + e.trademarkserif = 63195; + e.tretroflexhook = 648; + e.triagdn = 9660; + e.triaglf = 9668; + e.triagrt = 9658; + e.triagup = 9650; + e.ts = 678; + e.tsadi = 1510; + e.tsadidagesh = 64326; + e.tsadidageshhebrew = 64326; + e.tsadihebrew = 1510; + e.tsecyrillic = 1094; + e.tsere = 1461; + e.tsere12 = 1461; + e.tsere1e = 1461; + e.tsere2b = 1461; + e.tserehebrew = 1461; + e.tserenarrowhebrew = 1461; + e.tserequarterhebrew = 1461; + e.tserewidehebrew = 1461; + e.tshecyrillic = 1115; + e.tsuperior = 63219; + e.ttabengali = 2463; + e.ttadeva = 2335; + e.ttagujarati = 2719; + e.ttagurmukhi = 2591; + e.tteharabic = 1657; + e.ttehfinalarabic = 64359; + e.ttehinitialarabic = 64360; + e.ttehmedialarabic = 64361; + e.tthabengali = 2464; + e.tthadeva = 2336; + e.tthagujarati = 2720; + e.tthagurmukhi = 2592; + e.tturned = 647; + e.tuhiragana = 12388; + e.tukatakana = 12484; + e.tukatakanahalfwidth = 65410; + e.tusmallhiragana = 12387; + e.tusmallkatakana = 12483; + e.tusmallkatakanahalfwidth = 65391; + e.twelvecircle = 9323; + e.twelveparen = 9343; + e.twelveperiod = 9363; + e.twelveroman = 8571; + e.twentycircle = 9331; + e.twentyhangzhou = 21316; + e.twentyparen = 9351; + e.twentyperiod = 9371; + e.two = 50; + e.twoarabic = 1634; + e.twobengali = 2536; + e.twocircle = 9313; + e.twocircleinversesansserif = 10123; + e.twodeva = 2408; + e.twodotenleader = 8229; + e.twodotleader = 8229; + e.twodotleadervertical = 65072; + e.twogujarati = 2792; + e.twogurmukhi = 2664; + e.twohackarabic = 1634; + e.twohangzhou = 12322; + e.twoideographicparen = 12833; + e.twoinferior = 8322; + e.twomonospace = 65298; + e.twonumeratorbengali = 2549; + e.twooldstyle = 63282; + e.twoparen = 9333; + e.twoperiod = 9353; + e.twopersian = 1778; + e.tworoman = 8561; + e.twostroke = 443; + e.twosuperior = 178; + e.twothai = 3666; + e.twothirds = 8532; + e.u = 117; + e.uacute = 250; + e.ubar = 649; + e.ubengali = 2441; + e.ubopomofo = 12584; + e.ubreve = 365; + e.ucaron = 468; + e.ucircle = 9444; + e.ucircumflex = 251; + e.ucircumflexbelow = 7799; + e.ucyrillic = 1091; + e.udattadeva = 2385; + e.udblacute = 369; + e.udblgrave = 533; + e.udeva = 2313; + e.udieresis = 252; + e.udieresisacute = 472; + e.udieresisbelow = 7795; + e.udieresiscaron = 474; + e.udieresiscyrillic = 1265; + e.udieresisgrave = 476; + e.udieresismacron = 470; + e.udotbelow = 7909; + e.ugrave = 249; + e.ugujarati = 2697; + e.ugurmukhi = 2569; + e.uhiragana = 12358; + e.uhookabove = 7911; + e.uhorn = 432; + e.uhornacute = 7913; + e.uhorndotbelow = 7921; + e.uhorngrave = 7915; + e.uhornhookabove = 7917; + e.uhorntilde = 7919; + e.uhungarumlaut = 369; + e.uhungarumlautcyrillic = 1267; + e.uinvertedbreve = 535; + e.ukatakana = 12454; + e.ukatakanahalfwidth = 65395; + e.ukcyrillic = 1145; + e.ukorean = 12636; + e.umacron = 363; + e.umacroncyrillic = 1263; + e.umacrondieresis = 7803; + e.umatragurmukhi = 2625; + e.umonospace = 65365; + e.underscore = 95; + e.underscoredbl = 8215; + e.underscoremonospace = 65343; + e.underscorevertical = 65075; + e.underscorewavy = 65103; + e.union = 8746; + e.universal = 8704; + e.uogonek = 371; + e.uparen = 9392; + e.upblock = 9600; + e.upperdothebrew = 1476; + e.upsilon = 965; + e.upsilondieresis = 971; + e.upsilondieresistonos = 944; + e.upsilonlatin = 650; + e.upsilontonos = 973; + e.uptackbelowcmb = 797; + e.uptackmod = 724; + e.uragurmukhi = 2675; + e.uring = 367; + e.ushortcyrillic = 1118; + e.usmallhiragana = 12357; + e.usmallkatakana = 12453; + e.usmallkatakanahalfwidth = 65385; + e.ustraightcyrillic = 1199; + e.ustraightstrokecyrillic = 1201; + e.utilde = 361; + e.utildeacute = 7801; + e.utildebelow = 7797; + e.uubengali = 2442; + e.uudeva = 2314; + e.uugujarati = 2698; + e.uugurmukhi = 2570; + e.uumatragurmukhi = 2626; + e.uuvowelsignbengali = 2498; + e.uuvowelsigndeva = 2370; + e.uuvowelsigngujarati = 2754; + e.uvowelsignbengali = 2497; + e.uvowelsigndeva = 2369; + e.uvowelsigngujarati = 2753; + e.v = 118; + e.vadeva = 2357; + e.vagujarati = 2741; + e.vagurmukhi = 2613; + e.vakatakana = 12535; + e.vav = 1493; + e.vavdagesh = 64309; + e.vavdagesh65 = 64309; + e.vavdageshhebrew = 64309; + e.vavhebrew = 1493; + e.vavholam = 64331; + e.vavholamhebrew = 64331; + e.vavvavhebrew = 1520; + e.vavyodhebrew = 1521; + e.vcircle = 9445; + e.vdotbelow = 7807; + e.vecyrillic = 1074; + e.veharabic = 1700; + e.vehfinalarabic = 64363; + e.vehinitialarabic = 64364; + e.vehmedialarabic = 64365; + e.vekatakana = 12537; + e.venus = 9792; + e.verticalbar = 124; + e.verticallineabovecmb = 781; + e.verticallinebelowcmb = 809; + e.verticallinelowmod = 716; + e.verticallinemod = 712; + e.vewarmenian = 1406; + e.vhook = 651; + e.vikatakana = 12536; + e.viramabengali = 2509; + e.viramadeva = 2381; + e.viramagujarati = 2765; + e.visargabengali = 2435; + e.visargadeva = 2307; + e.visargagujarati = 2691; + e.vmonospace = 65366; + e.voarmenian = 1400; + e.voicediterationhiragana = 12446; + e.voicediterationkatakana = 12542; + e.voicedmarkkana = 12443; + e.voicedmarkkanahalfwidth = 65438; + e.vokatakana = 12538; + e.vparen = 9393; + e.vtilde = 7805; + e.vturned = 652; + e.vuhiragana = 12436; + e.vukatakana = 12532; + e.w = 119; + e.wacute = 7811; + e.waekorean = 12633; + e.wahiragana = 12431; + e.wakatakana = 12527; + e.wakatakanahalfwidth = 65436; + e.wakorean = 12632; + e.wasmallhiragana = 12430; + e.wasmallkatakana = 12526; + e.wattosquare = 13143; + e.wavedash = 12316; + e.wavyunderscorevertical = 65076; + e.wawarabic = 1608; + e.wawfinalarabic = 65262; + e.wawhamzaabovearabic = 1572; + e.wawhamzaabovefinalarabic = 65158; + e.wbsquare = 13277; + e.wcircle = 9446; + e.wcircumflex = 373; + e.wdieresis = 7813; + e.wdotaccent = 7815; + e.wdotbelow = 7817; + e.wehiragana = 12433; + e.weierstrass = 8472; + e.wekatakana = 12529; + e.wekorean = 12638; + e.weokorean = 12637; + e.wgrave = 7809; + e.whitebullet = 9702; + e.whitecircle = 9675; + e.whitecircleinverse = 9689; + e.whitecornerbracketleft = 12302; + e.whitecornerbracketleftvertical = 65091; + e.whitecornerbracketright = 12303; + e.whitecornerbracketrightvertical = 65092; + e.whitediamond = 9671; + e.whitediamondcontainingblacksmalldiamond = 9672; + e.whitedownpointingsmalltriangle = 9663; + e.whitedownpointingtriangle = 9661; + e.whiteleftpointingsmalltriangle = 9667; + e.whiteleftpointingtriangle = 9665; + e.whitelenticularbracketleft = 12310; + e.whitelenticularbracketright = 12311; + e.whiterightpointingsmalltriangle = 9657; + e.whiterightpointingtriangle = 9655; + e.whitesmallsquare = 9643; + e.whitesmilingface = 9786; + e.whitesquare = 9633; + e.whitestar = 9734; + e.whitetelephone = 9743; + e.whitetortoiseshellbracketleft = 12312; + e.whitetortoiseshellbracketright = 12313; + e.whiteuppointingsmalltriangle = 9653; + e.whiteuppointingtriangle = 9651; + e.wihiragana = 12432; + e.wikatakana = 12528; + e.wikorean = 12639; + e.wmonospace = 65367; + e.wohiragana = 12434; + e.wokatakana = 12530; + e.wokatakanahalfwidth = 65382; + e.won = 8361; + e.wonmonospace = 65510; + e.wowaenthai = 3623; + e.wparen = 9394; + e.wring = 7832; + e.wsuperior = 695; + e.wturned = 653; + e.wynn = 447; + e.x = 120; + e.xabovecmb = 829; + e.xbopomofo = 12562; + e.xcircle = 9447; + e.xdieresis = 7821; + e.xdotaccent = 7819; + e.xeharmenian = 1389; + e.xi = 958; + e.xmonospace = 65368; + e.xparen = 9395; + e.xsuperior = 739; + e.y = 121; + e.yaadosquare = 13134; + e.yabengali = 2479; + e.yacute = 253; + e.yadeva = 2351; + e.yaekorean = 12626; + e.yagujarati = 2735; + e.yagurmukhi = 2607; + e.yahiragana = 12420; + e.yakatakana = 12516; + e.yakatakanahalfwidth = 65428; + e.yakorean = 12625; + e.yamakkanthai = 3662; + e.yasmallhiragana = 12419; + e.yasmallkatakana = 12515; + e.yasmallkatakanahalfwidth = 65388; + e.yatcyrillic = 1123; + e.ycircle = 9448; + e.ycircumflex = 375; + e.ydieresis = 255; + e.ydotaccent = 7823; + e.ydotbelow = 7925; + e.yeharabic = 1610; + e.yehbarreearabic = 1746; + e.yehbarreefinalarabic = 64431; + e.yehfinalarabic = 65266; + e.yehhamzaabovearabic = 1574; + e.yehhamzaabovefinalarabic = 65162; + e.yehhamzaaboveinitialarabic = 65163; + e.yehhamzaabovemedialarabic = 65164; + e.yehinitialarabic = 65267; + e.yehmedialarabic = 65268; + e.yehmeeminitialarabic = 64733; + e.yehmeemisolatedarabic = 64600; + e.yehnoonfinalarabic = 64660; + e.yehthreedotsbelowarabic = 1745; + e.yekorean = 12630; + e.yen = 165; + e.yenmonospace = 65509; + e.yeokorean = 12629; + e.yeorinhieuhkorean = 12678; + e.yerahbenyomohebrew = 1450; + e.yerahbenyomolefthebrew = 1450; + e.yericyrillic = 1099; + e.yerudieresiscyrillic = 1273; + e.yesieungkorean = 12673; + e.yesieungpansioskorean = 12675; + e.yesieungsioskorean = 12674; + e.yetivhebrew = 1434; + e.ygrave = 7923; + e.yhook = 436; + e.yhookabove = 7927; + e.yiarmenian = 1397; + e.yicyrillic = 1111; + e.yikorean = 12642; + e.yinyang = 9775; + e.yiwnarmenian = 1410; + e.ymonospace = 65369; + e.yod = 1497; + e.yoddagesh = 64313; + e.yoddageshhebrew = 64313; + e.yodhebrew = 1497; + e.yodyodhebrew = 1522; + e.yodyodpatahhebrew = 64287; + e.yohiragana = 12424; + e.yoikorean = 12681; + e.yokatakana = 12520; + e.yokatakanahalfwidth = 65430; + e.yokorean = 12635; + e.yosmallhiragana = 12423; + e.yosmallkatakana = 12519; + e.yosmallkatakanahalfwidth = 65390; + e.yotgreek = 1011; + e.yoyaekorean = 12680; + e.yoyakorean = 12679; + e.yoyakthai = 3618; + e.yoyingthai = 3597; + e.yparen = 9396; + e.ypogegrammeni = 890; + e.ypogegrammenigreekcmb = 837; + e.yr = 422; + e.yring = 7833; + e.ysuperior = 696; + e.ytilde = 7929; + e.yturned = 654; + e.yuhiragana = 12422; + e.yuikorean = 12684; + e.yukatakana = 12518; + e.yukatakanahalfwidth = 65429; + e.yukorean = 12640; + e.yusbigcyrillic = 1131; + e.yusbigiotifiedcyrillic = 1133; + e.yuslittlecyrillic = 1127; + e.yuslittleiotifiedcyrillic = 1129; + e.yusmallhiragana = 12421; + e.yusmallkatakana = 12517; + e.yusmallkatakanahalfwidth = 65389; + e.yuyekorean = 12683; + e.yuyeokorean = 12682; + e.yyabengali = 2527; + e.yyadeva = 2399; + e.z = 122; + e.zaarmenian = 1382; + e.zacute = 378; + e.zadeva = 2395; + e.zagurmukhi = 2651; + e.zaharabic = 1592; + e.zahfinalarabic = 65222; + e.zahinitialarabic = 65223; + e.zahiragana = 12374; + e.zahmedialarabic = 65224; + e.zainarabic = 1586; + e.zainfinalarabic = 65200; + e.zakatakana = 12470; + e.zaqefgadolhebrew = 1429; + e.zaqefqatanhebrew = 1428; + e.zarqahebrew = 1432; + e.zayin = 1494; + e.zayindagesh = 64310; + e.zayindageshhebrew = 64310; + e.zayinhebrew = 1494; + e.zbopomofo = 12567; + e.zcaron = 382; + e.zcircle = 9449; + e.zcircumflex = 7825; + e.zcurl = 657; + e.zdot = 380; + e.zdotaccent = 380; + e.zdotbelow = 7827; + e.zecyrillic = 1079; + e.zedescendercyrillic = 1177; + e.zedieresiscyrillic = 1247; + e.zehiragana = 12380; + e.zekatakana = 12476; + e.zero = 48; + e.zeroarabic = 1632; + e.zerobengali = 2534; + e.zerodeva = 2406; + e.zerogujarati = 2790; + e.zerogurmukhi = 2662; + e.zerohackarabic = 1632; + e.zeroinferior = 8320; + e.zeromonospace = 65296; + e.zerooldstyle = 63280; + e.zeropersian = 1776; + e.zerosuperior = 8304; + e.zerothai = 3664; + e.zerowidthjoiner = 65279; + e.zerowidthnonjoiner = 8204; + e.zerowidthspace = 8203; + e.zeta = 950; + e.zhbopomofo = 12563; + e.zhearmenian = 1386; + e.zhebrevecyrillic = 1218; + e.zhecyrillic = 1078; + e.zhedescendercyrillic = 1175; + e.zhedieresiscyrillic = 1245; + e.zihiragana = 12376; + e.zikatakana = 12472; + e.zinorhebrew = 1454; + e.zlinebelow = 7829; + e.zmonospace = 65370; + e.zohiragana = 12382; + e.zokatakana = 12478; + e.zparen = 9397; + e.zretroflexhook = 656; + e.zstroke = 438; + e.zuhiragana = 12378; + e.zukatakana = 12474; + e['.notdef'] = 0; + e.angbracketleftbig = 9001; + e.angbracketleftBig = 9001; + e.angbracketleftbigg = 9001; + e.angbracketleftBigg = 9001; + e.angbracketrightBig = 9002; + e.angbracketrightbig = 9002; + e.angbracketrightBigg = 9002; + e.angbracketrightbigg = 9002; + e.arrowhookleft = 8618; + e.arrowhookright = 8617; + e.arrowlefttophalf = 8636; + e.arrowleftbothalf = 8637; + e.arrownortheast = 8599; + e.arrownorthwest = 8598; + e.arrowrighttophalf = 8640; + e.arrowrightbothalf = 8641; + e.arrowsoutheast = 8600; + e.arrowsouthwest = 8601; + e.backslashbig = 8726; + e.backslashBig = 8726; + e.backslashBigg = 8726; + e.backslashbigg = 8726; + e.bardbl = 8214; + e.bracehtipdownleft = 65079; + e.bracehtipdownright = 65079; + e.bracehtipupleft = 65080; + e.bracehtipupright = 65080; + e.braceleftBig = 123; + e.braceleftbig = 123; + e.braceleftbigg = 123; + e.braceleftBigg = 123; + e.bracerightBig = 125; + e.bracerightbig = 125; + e.bracerightbigg = 125; + e.bracerightBigg = 125; + e.bracketleftbig = 91; + e.bracketleftBig = 91; + e.bracketleftbigg = 91; + e.bracketleftBigg = 91; + e.bracketrightBig = 93; + e.bracketrightbig = 93; + e.bracketrightbigg = 93; + e.bracketrightBigg = 93; + e.ceilingleftbig = 8968; + e.ceilingleftBig = 8968; + e.ceilingleftBigg = 8968; + e.ceilingleftbigg = 8968; + e.ceilingrightbig = 8969; + e.ceilingrightBig = 8969; + e.ceilingrightbigg = 8969; + e.ceilingrightBigg = 8969; + e.circledotdisplay = 8857; + e.circledottext = 8857; + e.circlemultiplydisplay = 8855; + e.circlemultiplytext = 8855; + e.circleplusdisplay = 8853; + e.circleplustext = 8853; + e.contintegraldisplay = 8750; + e.contintegraltext = 8750; + e.coproductdisplay = 8720; + e.coproducttext = 8720; + e.floorleftBig = 8970; + e.floorleftbig = 8970; + e.floorleftbigg = 8970; + e.floorleftBigg = 8970; + e.floorrightbig = 8971; + e.floorrightBig = 8971; + e.floorrightBigg = 8971; + e.floorrightbigg = 8971; + e.hatwide = 770; + e.hatwider = 770; + e.hatwidest = 770; + e.intercal = 7488; + e.integraldisplay = 8747; + e.integraltext = 8747; + e.intersectiondisplay = 8898; + e.intersectiontext = 8898; + e.logicalanddisplay = 8743; + e.logicalandtext = 8743; + e.logicalordisplay = 8744; + e.logicalortext = 8744; + e.parenleftBig = 40; + e.parenleftbig = 40; + e.parenleftBigg = 40; + e.parenleftbigg = 40; + e.parenrightBig = 41; + e.parenrightbig = 41; + e.parenrightBigg = 41; + e.parenrightbigg = 41; + e.prime = 8242; + e.productdisplay = 8719; + e.producttext = 8719; + e.radicalbig = 8730; + e.radicalBig = 8730; + e.radicalBigg = 8730; + e.radicalbigg = 8730; + e.radicalbt = 8730; + e.radicaltp = 8730; + e.radicalvertex = 8730; + e.slashbig = 47; + e.slashBig = 47; + e.slashBigg = 47; + e.slashbigg = 47; + e.summationdisplay = 8721; + e.summationtext = 8721; + e.tildewide = 732; + e.tildewider = 732; + e.tildewidest = 732; + e.uniondisplay = 8899; + e.unionmultidisplay = 8846; + e.unionmultitext = 8846; + e.unionsqdisplay = 8852; + e.unionsqtext = 8852; + e.uniontext = 8899; + e.vextenddouble = 8741; + e.vextendsingle = 8739; + }), + n = (0, r.getLookupTableFactory)(function (e) { + e.space = 32; + e.a1 = 9985; + e.a2 = 9986; + e.a202 = 9987; + e.a3 = 9988; + e.a4 = 9742; + e.a5 = 9990; + e.a119 = 9991; + e.a118 = 9992; + e.a117 = 9993; + e.a11 = 9755; + e.a12 = 9758; + e.a13 = 9996; + e.a14 = 9997; + e.a15 = 9998; + e.a16 = 9999; + e.a105 = 1e4; + e.a17 = 10001; + e.a18 = 10002; + e.a19 = 10003; + e.a20 = 10004; + e.a21 = 10005; + e.a22 = 10006; + e.a23 = 10007; + e.a24 = 10008; + e.a25 = 10009; + e.a26 = 10010; + e.a27 = 10011; + e.a28 = 10012; + e.a6 = 10013; + e.a7 = 10014; + e.a8 = 10015; + e.a9 = 10016; + e.a10 = 10017; + e.a29 = 10018; + e.a30 = 10019; + e.a31 = 10020; + e.a32 = 10021; + e.a33 = 10022; + e.a34 = 10023; + e.a35 = 9733; + e.a36 = 10025; + e.a37 = 10026; + e.a38 = 10027; + e.a39 = 10028; + e.a40 = 10029; + e.a41 = 10030; + e.a42 = 10031; + e.a43 = 10032; + e.a44 = 10033; + e.a45 = 10034; + e.a46 = 10035; + e.a47 = 10036; + e.a48 = 10037; + e.a49 = 10038; + e.a50 = 10039; + e.a51 = 10040; + e.a52 = 10041; + e.a53 = 10042; + e.a54 = 10043; + e.a55 = 10044; + e.a56 = 10045; + e.a57 = 10046; + e.a58 = 10047; + e.a59 = 10048; + e.a60 = 10049; + e.a61 = 10050; + e.a62 = 10051; + e.a63 = 10052; + e.a64 = 10053; + e.a65 = 10054; + e.a66 = 10055; + e.a67 = 10056; + e.a68 = 10057; + e.a69 = 10058; + e.a70 = 10059; + e.a71 = 9679; + e.a72 = 10061; + e.a73 = 9632; + e.a74 = 10063; + e.a203 = 10064; + e.a75 = 10065; + e.a204 = 10066; + e.a76 = 9650; + e.a77 = 9660; + e.a78 = 9670; + e.a79 = 10070; + e.a81 = 9687; + e.a82 = 10072; + e.a83 = 10073; + e.a84 = 10074; + e.a97 = 10075; + e.a98 = 10076; + e.a99 = 10077; + e.a100 = 10078; + e.a101 = 10081; + e.a102 = 10082; + e.a103 = 10083; + e.a104 = 10084; + e.a106 = 10085; + e.a107 = 10086; + e.a108 = 10087; + e.a112 = 9827; + e.a111 = 9830; + e.a110 = 9829; + e.a109 = 9824; + e.a120 = 9312; + e.a121 = 9313; + e.a122 = 9314; + e.a123 = 9315; + e.a124 = 9316; + e.a125 = 9317; + e.a126 = 9318; + e.a127 = 9319; + e.a128 = 9320; + e.a129 = 9321; + e.a130 = 10102; + e.a131 = 10103; + e.a132 = 10104; + e.a133 = 10105; + e.a134 = 10106; + e.a135 = 10107; + e.a136 = 10108; + e.a137 = 10109; + e.a138 = 10110; + e.a139 = 10111; + e.a140 = 10112; + e.a141 = 10113; + e.a142 = 10114; + e.a143 = 10115; + e.a144 = 10116; + e.a145 = 10117; + e.a146 = 10118; + e.a147 = 10119; + e.a148 = 10120; + e.a149 = 10121; + e.a150 = 10122; + e.a151 = 10123; + e.a152 = 10124; + e.a153 = 10125; + e.a154 = 10126; + e.a155 = 10127; + e.a156 = 10128; + e.a157 = 10129; + e.a158 = 10130; + e.a159 = 10131; + e.a160 = 10132; + e.a161 = 8594; + e.a163 = 8596; + e.a164 = 8597; + e.a196 = 10136; + e.a165 = 10137; + e.a192 = 10138; + e.a166 = 10139; + e.a167 = 10140; + e.a168 = 10141; + e.a169 = 10142; + e.a170 = 10143; + e.a171 = 10144; + e.a172 = 10145; + e.a173 = 10146; + e.a162 = 10147; + e.a174 = 10148; + e.a175 = 10149; + e.a176 = 10150; + e.a177 = 10151; + e.a178 = 10152; + e.a179 = 10153; + e.a193 = 10154; + e.a180 = 10155; + e.a199 = 10156; + e.a181 = 10157; + e.a200 = 10158; + e.a182 = 10159; + e.a201 = 10161; + e.a183 = 10162; + e.a184 = 10163; + e.a197 = 10164; + e.a185 = 10165; + e.a194 = 10166; + e.a198 = 10167; + e.a186 = 10168; + e.a195 = 10169; + e.a187 = 10170; + e.a188 = 10171; + e.a189 = 10172; + e.a190 = 10173; + e.a191 = 10174; + e.a89 = 10088; + e.a90 = 10089; + e.a93 = 10090; + e.a94 = 10091; + e.a91 = 10092; + e.a92 = 10093; + e.a205 = 10094; + e.a85 = 10095; + e.a206 = 10096; + e.a86 = 10097; + e.a87 = 10098; + e.a88 = 10099; + e.a95 = 10100; + e.a96 = 10101; + e['.notdef'] = 0; + }); + }, + (e, t, a) => { + a.r(t); + a.d(t, { + clearUnicodeCaches: () => clearUnicodeCaches, + getCharUnicodeCategory: () => getCharUnicodeCategory, + getUnicodeForGlyph: () => getUnicodeForGlyph, + getUnicodeRangeFor: () => getUnicodeRangeFor, + mapSpecialUnicodeValues: () => mapSpecialUnicodeValues, + }); + const r = (0, a(3).getLookupTableFactory)(function (e) { + e[63721] = 169; + e[63193] = 169; + e[63720] = 174; + e[63194] = 174; + e[63722] = 8482; + e[63195] = 8482; + e[63729] = 9127; + e[63730] = 9128; + e[63731] = 9129; + e[63740] = 9131; + e[63741] = 9132; + e[63742] = 9133; + e[63726] = 9121; + e[63727] = 9122; + e[63728] = 9123; + e[63737] = 9124; + e[63738] = 9125; + e[63739] = 9126; + e[63723] = 9115; + e[63724] = 9116; + e[63725] = 9117; + e[63734] = 9118; + e[63735] = 9119; + e[63736] = 9120; + }); + function mapSpecialUnicodeValues(e) { + return e >= 65520 && e <= 65535 + ? 0 + : e >= 62976 && e <= 63743 + ? r()[e] || e + : 173 === e + ? 45 + : e; + } + function getUnicodeForGlyph(e, t) { + let a = t[e]; + if (void 0 !== a) return a; + if (!e) return -1; + if ('u' === e[0]) { + const t = e.length; + let r; + if (7 === t && 'n' === e[1] && 'i' === e[2]) r = e.substring(3); + else { + if (!(t >= 5 && t <= 7)) return -1; + r = e.substring(1); + } + if (r === r.toUpperCase()) { + a = parseInt(r, 16); + if (a >= 0) return a; + } + } + return -1; + } + const i = [ + [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], + ]; + function getUnicodeRangeFor(e, t = -1) { + if (-1 !== t) { + const a = i[t]; + for (let r = 0, i = a.length; r < i; r += 2) if (e >= a[r] && e <= a[r + 1]) return t; + } + for (let t = 0, a = i.length; t < a; t++) { + const a = i[t]; + for (let r = 0, i = a.length; r < i; r += 2) if (e >= a[r] && e <= a[r + 1]) return t; + } + return -1; + } + const n = new RegExp('^(\\s)|(\\p{Mn})|(\\p{Cf})$', 'u'), + s = new Map(); + function getCharUnicodeCategory(e) { + const t = s.get(e); + if (t) return t; + const a = e.match(n), + r = { + isWhitespace: !(!a || !a[1]), + isZeroWidthDiacritic: !(!a || !a[2]), + isInvisibleFormatMark: !(!a || !a[3]), + }; + s.set(e, r); + return r; + } + function clearUnicodeCaches() { + s.clear(); + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.getSerifFonts = + t.getNonStdFontMap = + t.getGlyphMapForStandardFonts = + t.getFontNameToFileMap = + void 0; + t.getStandardFontName = function getStandardFontName(e) { + const t = (0, i.normalizeFontName)(e); + return n()[t]; + }; + t.getSymbolsFonts = + t.getSupplementalGlyphMapForCalibri = + t.getSupplementalGlyphMapForArialBlack = + t.getStdFontMap = + void 0; + var r = a(3), + i = a(38); + const n = (0, r.getLookupTableFactory)(function (e) { + e['Times-Roman'] = 'Times-Roman'; + e.Helvetica = 'Helvetica'; + e.Courier = 'Courier'; + e.Symbol = 'Symbol'; + e['Times-Bold'] = 'Times-Bold'; + e['Helvetica-Bold'] = 'Helvetica-Bold'; + e['Courier-Bold'] = 'Courier-Bold'; + e.ZapfDingbats = 'ZapfDingbats'; + e['Times-Italic'] = 'Times-Italic'; + e['Helvetica-Oblique'] = 'Helvetica-Oblique'; + e['Courier-Oblique'] = 'Courier-Oblique'; + e['Times-BoldItalic'] = 'Times-BoldItalic'; + e['Helvetica-BoldOblique'] = 'Helvetica-BoldOblique'; + e['Courier-BoldOblique'] = 'Courier-BoldOblique'; + e.ArialNarrow = 'Helvetica'; + e['ArialNarrow-Bold'] = 'Helvetica-Bold'; + e['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique'; + e['ArialNarrow-Italic'] = 'Helvetica-Oblique'; + e.ArialBlack = 'Helvetica'; + e['ArialBlack-Bold'] = 'Helvetica-Bold'; + e['ArialBlack-BoldItalic'] = 'Helvetica-BoldOblique'; + e['ArialBlack-Italic'] = 'Helvetica-Oblique'; + e['Arial-Black'] = 'Helvetica'; + e['Arial-Black-Bold'] = 'Helvetica-Bold'; + e['Arial-Black-BoldItalic'] = 'Helvetica-BoldOblique'; + e['Arial-Black-Italic'] = 'Helvetica-Oblique'; + e.Arial = 'Helvetica'; + e['Arial-Bold'] = 'Helvetica-Bold'; + e['Arial-BoldItalic'] = 'Helvetica-BoldOblique'; + e['Arial-Italic'] = 'Helvetica-Oblique'; + e.ArialMT = 'Helvetica'; + e['Arial-BoldItalicMT'] = 'Helvetica-BoldOblique'; + e['Arial-BoldMT'] = 'Helvetica-Bold'; + e['Arial-ItalicMT'] = 'Helvetica-Oblique'; + e.ArialUnicodeMS = 'Helvetica'; + e['ArialUnicodeMS-Bold'] = 'Helvetica-Bold'; + e['ArialUnicodeMS-BoldItalic'] = 'Helvetica-BoldOblique'; + e['ArialUnicodeMS-Italic'] = 'Helvetica-Oblique'; + e['Courier-BoldItalic'] = 'Courier-BoldOblique'; + e['Courier-Italic'] = 'Courier-Oblique'; + e.CourierNew = 'Courier'; + e['CourierNew-Bold'] = 'Courier-Bold'; + e['CourierNew-BoldItalic'] = 'Courier-BoldOblique'; + e['CourierNew-Italic'] = 'Courier-Oblique'; + e['CourierNewPS-BoldItalicMT'] = 'Courier-BoldOblique'; + e['CourierNewPS-BoldMT'] = 'Courier-Bold'; + e['CourierNewPS-ItalicMT'] = 'Courier-Oblique'; + e.CourierNewPSMT = 'Courier'; + e['Helvetica-BoldItalic'] = 'Helvetica-BoldOblique'; + e['Helvetica-Italic'] = 'Helvetica-Oblique'; + e['Symbol-Bold'] = 'Symbol'; + e['Symbol-BoldItalic'] = 'Symbol'; + e['Symbol-Italic'] = 'Symbol'; + e.TimesNewRoman = 'Times-Roman'; + e['TimesNewRoman-Bold'] = 'Times-Bold'; + e['TimesNewRoman-BoldItalic'] = 'Times-BoldItalic'; + e['TimesNewRoman-Italic'] = 'Times-Italic'; + e.TimesNewRomanPS = 'Times-Roman'; + e['TimesNewRomanPS-Bold'] = 'Times-Bold'; + e['TimesNewRomanPS-BoldItalic'] = 'Times-BoldItalic'; + e['TimesNewRomanPS-BoldItalicMT'] = 'Times-BoldItalic'; + e['TimesNewRomanPS-BoldMT'] = 'Times-Bold'; + e['TimesNewRomanPS-Italic'] = 'Times-Italic'; + e['TimesNewRomanPS-ItalicMT'] = 'Times-Italic'; + e.TimesNewRomanPSMT = 'Times-Roman'; + e['TimesNewRomanPSMT-Bold'] = 'Times-Bold'; + e['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic'; + e['TimesNewRomanPSMT-Italic'] = 'Times-Italic'; + }); + t.getStdFontMap = n; + const s = (0, r.getLookupTableFactory)(function (e) { + e.Courier = 'FoxitFixed.pfb'; + e['Courier-Bold'] = 'FoxitFixedBold.pfb'; + e['Courier-BoldOblique'] = 'FoxitFixedBoldItalic.pfb'; + e['Courier-Oblique'] = 'FoxitFixedItalic.pfb'; + e.Helvetica = 'FoxitSans.pfb'; + e['Helvetica-Bold'] = 'FoxitSansBold.pfb'; + e['Helvetica-BoldOblique'] = 'FoxitSansBoldItalic.pfb'; + e['Helvetica-Oblique'] = 'FoxitSansItalic.pfb'; + e['Times-Roman'] = 'FoxitSerif.pfb'; + e['Times-Bold'] = 'FoxitSerifBold.pfb'; + e['Times-BoldItalic'] = 'FoxitSerifBoldItalic.pfb'; + e['Times-Italic'] = 'FoxitSerifItalic.pfb'; + e.Symbol = 'FoxitSymbol.pfb'; + e.ZapfDingbats = 'FoxitDingbats.pfb'; + e['LiberationSans-Regular'] = 'LiberationSans-Regular.ttf'; + e['LiberationSans-Bold'] = 'LiberationSans-Bold.ttf'; + e['LiberationSans-Italic'] = 'LiberationSans-Italic.ttf'; + e['LiberationSans-BoldItalic'] = 'LiberationSans-BoldItalic.ttf'; + }); + t.getFontNameToFileMap = s; + const o = (0, r.getLookupTableFactory)(function (e) { + e.Calibri = 'Helvetica'; + e['Calibri-Bold'] = 'Helvetica-Bold'; + e['Calibri-BoldItalic'] = 'Helvetica-BoldOblique'; + e['Calibri-Italic'] = 'Helvetica-Oblique'; + e.CenturyGothic = 'Helvetica'; + e['CenturyGothic-Bold'] = 'Helvetica-Bold'; + e['CenturyGothic-BoldItalic'] = 'Helvetica-BoldOblique'; + e['CenturyGothic-Italic'] = 'Helvetica-Oblique'; + e.ComicSansMS = 'Comic Sans MS'; + e['ComicSansMS-Bold'] = 'Comic Sans MS-Bold'; + e['ComicSansMS-BoldItalic'] = 'Comic Sans MS-BoldItalic'; + e['ComicSansMS-Italic'] = 'Comic Sans MS-Italic'; + e['ItcSymbol-Bold'] = 'Helvetica-Bold'; + e['ItcSymbol-BoldItalic'] = 'Helvetica-BoldOblique'; + e['ItcSymbol-Book'] = 'Helvetica'; + e['ItcSymbol-BookItalic'] = 'Helvetica-Oblique'; + e['ItcSymbol-Medium'] = 'Helvetica'; + e['ItcSymbol-MediumItalic'] = 'Helvetica-Oblique'; + e.LucidaConsole = 'Courier'; + e['LucidaConsole-Bold'] = 'Courier-Bold'; + e['LucidaConsole-BoldItalic'] = 'Courier-BoldOblique'; + e['LucidaConsole-Italic'] = 'Courier-Oblique'; + e['LucidaSans-Demi'] = 'Helvetica-Bold'; + e['MS-Gothic'] = 'MS Gothic'; + e['MS-Gothic-Bold'] = 'MS Gothic-Bold'; + e['MS-Gothic-BoldItalic'] = 'MS Gothic-BoldItalic'; + e['MS-Gothic-Italic'] = 'MS Gothic-Italic'; + e['MS-Mincho'] = 'MS Mincho'; + e['MS-Mincho-Bold'] = 'MS Mincho-Bold'; + e['MS-Mincho-BoldItalic'] = 'MS Mincho-BoldItalic'; + e['MS-Mincho-Italic'] = 'MS Mincho-Italic'; + e['MS-PGothic'] = 'MS PGothic'; + e['MS-PGothic-Bold'] = 'MS PGothic-Bold'; + e['MS-PGothic-BoldItalic'] = 'MS PGothic-BoldItalic'; + e['MS-PGothic-Italic'] = 'MS PGothic-Italic'; + e['MS-PMincho'] = 'MS PMincho'; + e['MS-PMincho-Bold'] = 'MS PMincho-Bold'; + e['MS-PMincho-BoldItalic'] = 'MS PMincho-BoldItalic'; + e['MS-PMincho-Italic'] = 'MS PMincho-Italic'; + e.NuptialScript = 'Times-Italic'; + e.SegoeUISymbol = 'Helvetica'; + e.Wingdings = 'ZapfDingbats'; + e['Wingdings-Regular'] = 'ZapfDingbats'; + }); + t.getNonStdFontMap = o; + const c = (0, r.getLookupTableFactory)(function (e) { + e['Adobe Jenson'] = !0; + e['Adobe Text'] = !0; + e.Albertus = !0; + e.Aldus = !0; + e.Alexandria = !0; + e.Algerian = !0; + e['American Typewriter'] = !0; + e.Antiqua = !0; + e.Apex = !0; + e.Arno = !0; + e.Aster = !0; + e.Aurora = !0; + e.Baskerville = !0; + e.Bell = !0; + e.Bembo = !0; + e['Bembo Schoolbook'] = !0; + e.Benguiat = !0; + e['Berkeley Old Style'] = !0; + e['Bernhard Modern'] = !0; + e['Berthold City'] = !0; + e.Bodoni = !0; + e['Bauer Bodoni'] = !0; + e['Book Antiqua'] = !0; + e.Bookman = !0; + e['Bordeaux Roman'] = !0; + e['Californian FB'] = !0; + e.Calisto = !0; + e.Calvert = !0; + e.Capitals = !0; + e.Cambria = !0; + e.Cartier = !0; + e.Caslon = !0; + e.Catull = !0; + e.Centaur = !0; + e['Century Old Style'] = !0; + e['Century Schoolbook'] = !0; + e.Chaparral = !0; + e['Charis SIL'] = !0; + e.Cheltenham = !0; + e['Cholla Slab'] = !0; + e.Clarendon = !0; + e.Clearface = !0; + e.Cochin = !0; + e.Colonna = !0; + e['Computer Modern'] = !0; + e['Concrete Roman'] = !0; + e.Constantia = !0; + e['Cooper Black'] = !0; + e.Corona = !0; + e.Ecotype = !0; + e.Egyptienne = !0; + e.Elephant = !0; + e.Excelsior = !0; + e.Fairfield = !0; + e['FF Scala'] = !0; + e.Folkard = !0; + e.Footlight = !0; + e.FreeSerif = !0; + e['Friz Quadrata'] = !0; + e.Garamond = !0; + e.Gentium = !0; + e.Georgia = !0; + e.Gloucester = !0; + e['Goudy Old Style'] = !0; + e['Goudy Schoolbook'] = !0; + e['Goudy Pro Font'] = !0; + e.Granjon = !0; + e['Guardian Egyptian'] = !0; + e.Heather = !0; + e.Hercules = !0; + e['High Tower Text'] = !0; + e.Hiroshige = !0; + e['Hoefler Text'] = !0; + e['Humana Serif'] = !0; + e.Imprint = !0; + e['Ionic No. 5'] = !0; + e.Janson = !0; + e.Joanna = !0; + e.Korinna = !0; + e.Lexicon = !0; + e.LiberationSerif = !0; + e['Liberation Serif'] = !0; + e['Linux Libertine'] = !0; + e.Literaturnaya = !0; + e.Lucida = !0; + e['Lucida Bright'] = !0; + e.Melior = !0; + e.Memphis = !0; + e.Miller = !0; + e.Minion = !0; + e.Modern = !0; + e['Mona Lisa'] = !0; + e['Mrs Eaves'] = !0; + e['MS Serif'] = !0; + e['Museo Slab'] = !0; + e['New York'] = !0; + e['Nimbus Roman'] = !0; + e['NPS Rawlinson Roadway'] = !0; + e.NuptialScript = !0; + e.Palatino = !0; + e.Perpetua = !0; + e.Plantin = !0; + e['Plantin Schoolbook'] = !0; + e.Playbill = !0; + e['Poor Richard'] = !0; + e['Rawlinson Roadway'] = !0; + e.Renault = !0; + e.Requiem = !0; + e.Rockwell = !0; + e.Roman = !0; + e['Rotis Serif'] = !0; + e.Sabon = !0; + e.Scala = !0; + e.Seagull = !0; + e.Sistina = !0; + e.Souvenir = !0; + e.STIX = !0; + e['Stone Informal'] = !0; + e['Stone Serif'] = !0; + e.Sylfaen = !0; + e.Times = !0; + e.Trajan = !0; + e['Trinité'] = !0; + e['Trump Mediaeval'] = !0; + e.Utopia = !0; + e['Vale Type'] = !0; + e['Bitstream Vera'] = !0; + e['Vera Serif'] = !0; + e.Versailles = !0; + e.Wanted = !0; + e.Weiss = !0; + e['Wide Latin'] = !0; + e.Windsor = !0; + e.XITS = !0; + }); + t.getSerifFonts = c; + const l = (0, r.getLookupTableFactory)(function (e) { + e.Dingbats = !0; + e.Symbol = !0; + e.ZapfDingbats = !0; + }); + t.getSymbolsFonts = l; + const h = (0, r.getLookupTableFactory)(function (e) { + e[2] = 10; + e[3] = 32; + e[4] = 33; + e[5] = 34; + e[6] = 35; + e[7] = 36; + e[8] = 37; + e[9] = 38; + e[10] = 39; + e[11] = 40; + e[12] = 41; + e[13] = 42; + e[14] = 43; + e[15] = 44; + e[16] = 45; + e[17] = 46; + e[18] = 47; + e[19] = 48; + e[20] = 49; + e[21] = 50; + e[22] = 51; + e[23] = 52; + e[24] = 53; + e[25] = 54; + e[26] = 55; + e[27] = 56; + e[28] = 57; + e[29] = 58; + e[30] = 894; + e[31] = 60; + e[32] = 61; + e[33] = 62; + e[34] = 63; + e[35] = 64; + e[36] = 65; + e[37] = 66; + e[38] = 67; + e[39] = 68; + e[40] = 69; + e[41] = 70; + e[42] = 71; + e[43] = 72; + e[44] = 73; + e[45] = 74; + e[46] = 75; + e[47] = 76; + e[48] = 77; + e[49] = 78; + e[50] = 79; + e[51] = 80; + e[52] = 81; + e[53] = 82; + e[54] = 83; + e[55] = 84; + e[56] = 85; + e[57] = 86; + e[58] = 87; + e[59] = 88; + e[60] = 89; + e[61] = 90; + e[62] = 91; + e[63] = 92; + e[64] = 93; + e[65] = 94; + e[66] = 95; + e[67] = 96; + e[68] = 97; + e[69] = 98; + e[70] = 99; + e[71] = 100; + e[72] = 101; + e[73] = 102; + e[74] = 103; + e[75] = 104; + e[76] = 105; + e[77] = 106; + e[78] = 107; + e[79] = 108; + e[80] = 109; + e[81] = 110; + e[82] = 111; + e[83] = 112; + e[84] = 113; + e[85] = 114; + e[86] = 115; + e[87] = 116; + e[88] = 117; + e[89] = 118; + e[90] = 119; + e[91] = 120; + e[92] = 121; + e[93] = 122; + e[94] = 123; + e[95] = 124; + e[96] = 125; + e[97] = 126; + e[98] = 196; + e[99] = 197; + e[100] = 199; + e[101] = 201; + e[102] = 209; + e[103] = 214; + e[104] = 220; + e[105] = 225; + e[106] = 224; + e[107] = 226; + e[108] = 228; + e[109] = 227; + e[110] = 229; + e[111] = 231; + e[112] = 233; + e[113] = 232; + e[114] = 234; + e[115] = 235; + e[116] = 237; + e[117] = 236; + e[118] = 238; + e[119] = 239; + e[120] = 241; + e[121] = 243; + e[122] = 242; + e[123] = 244; + e[124] = 246; + e[125] = 245; + e[126] = 250; + e[127] = 249; + e[128] = 251; + e[129] = 252; + e[130] = 8224; + e[131] = 176; + e[132] = 162; + e[133] = 163; + e[134] = 167; + e[135] = 8226; + e[136] = 182; + e[137] = 223; + e[138] = 174; + e[139] = 169; + e[140] = 8482; + e[141] = 180; + e[142] = 168; + e[143] = 8800; + e[144] = 198; + e[145] = 216; + e[146] = 8734; + e[147] = 177; + e[148] = 8804; + e[149] = 8805; + e[150] = 165; + e[151] = 181; + e[152] = 8706; + e[153] = 8721; + e[154] = 8719; + e[156] = 8747; + e[157] = 170; + e[158] = 186; + e[159] = 8486; + e[160] = 230; + e[161] = 248; + e[162] = 191; + e[163] = 161; + e[164] = 172; + e[165] = 8730; + e[166] = 402; + e[167] = 8776; + e[168] = 8710; + e[169] = 171; + e[170] = 187; + e[171] = 8230; + e[179] = 8220; + e[180] = 8221; + e[181] = 8216; + e[182] = 8217; + e[200] = 193; + e[203] = 205; + e[207] = 211; + e[210] = 218; + e[223] = 711; + e[224] = 321; + e[225] = 322; + e[226] = 352; + e[227] = 353; + e[228] = 381; + e[229] = 382; + e[233] = 221; + e[234] = 253; + e[252] = 263; + e[253] = 268; + e[254] = 269; + e[258] = 258; + e[260] = 260; + e[261] = 261; + e[265] = 280; + e[266] = 281; + e[267] = 282; + e[268] = 283; + e[269] = 313; + e[275] = 323; + e[276] = 324; + e[278] = 328; + e[283] = 344; + e[284] = 345; + e[285] = 346; + e[286] = 347; + e[292] = 367; + e[295] = 377; + e[296] = 378; + e[298] = 380; + e[305] = 963; + e[306] = 964; + e[307] = 966; + e[308] = 8215; + e[309] = 8252; + e[310] = 8319; + e[311] = 8359; + e[312] = 8592; + e[313] = 8593; + e[337] = 9552; + e[493] = 1039; + e[494] = 1040; + e[672] = 1488; + e[673] = 1489; + e[674] = 1490; + e[675] = 1491; + e[676] = 1492; + e[677] = 1493; + e[678] = 1494; + e[679] = 1495; + e[680] = 1496; + e[681] = 1497; + e[682] = 1498; + e[683] = 1499; + e[684] = 1500; + e[685] = 1501; + e[686] = 1502; + e[687] = 1503; + e[688] = 1504; + e[689] = 1505; + e[690] = 1506; + e[691] = 1507; + e[692] = 1508; + e[693] = 1509; + e[694] = 1510; + e[695] = 1511; + e[696] = 1512; + e[697] = 1513; + e[698] = 1514; + e[705] = 1524; + e[706] = 8362; + e[710] = 64288; + e[711] = 64298; + e[759] = 1617; + e[761] = 1776; + e[763] = 1778; + e[775] = 1652; + e[777] = 1764; + e[778] = 1780; + e[779] = 1781; + e[780] = 1782; + e[782] = 771; + e[783] = 64726; + e[786] = 8363; + e[788] = 8532; + e[790] = 768; + e[791] = 769; + e[792] = 768; + e[795] = 803; + e[797] = 64336; + e[798] = 64337; + e[799] = 64342; + e[800] = 64343; + e[801] = 64344; + e[802] = 64345; + e[803] = 64362; + e[804] = 64363; + e[805] = 64364; + e[2424] = 7821; + e[2425] = 7822; + e[2426] = 7823; + e[2427] = 7824; + e[2428] = 7825; + e[2429] = 7826; + e[2430] = 7827; + e[2433] = 7682; + e[2678] = 8045; + e[2679] = 8046; + e[2830] = 1552; + e[2838] = 686; + e[2840] = 751; + e[2842] = 753; + e[2843] = 754; + e[2844] = 755; + e[2846] = 757; + e[2856] = 767; + e[2857] = 848; + e[2858] = 849; + e[2862] = 853; + e[2863] = 854; + e[2864] = 855; + e[2865] = 861; + e[2866] = 862; + e[2906] = 7460; + e[2908] = 7462; + e[2909] = 7463; + e[2910] = 7464; + e[2912] = 7466; + e[2913] = 7467; + e[2914] = 7468; + e[2916] = 7470; + e[2917] = 7471; + e[2918] = 7472; + e[2920] = 7474; + e[2921] = 7475; + e[2922] = 7476; + e[2924] = 7478; + e[2925] = 7479; + e[2926] = 7480; + e[2928] = 7482; + e[2929] = 7483; + e[2930] = 7484; + e[2932] = 7486; + e[2933] = 7487; + e[2934] = 7488; + e[2936] = 7490; + e[2937] = 7491; + e[2938] = 7492; + e[2940] = 7494; + e[2941] = 7495; + e[2942] = 7496; + e[2944] = 7498; + e[2946] = 7500; + e[2948] = 7502; + e[2950] = 7504; + e[2951] = 7505; + e[2952] = 7506; + e[2954] = 7508; + e[2955] = 7509; + e[2956] = 7510; + e[2958] = 7512; + e[2959] = 7513; + e[2960] = 7514; + e[2962] = 7516; + e[2963] = 7517; + e[2964] = 7518; + e[2966] = 7520; + e[2967] = 7521; + e[2968] = 7522; + e[2970] = 7524; + e[2971] = 7525; + e[2972] = 7526; + e[2974] = 7528; + e[2975] = 7529; + e[2976] = 7530; + e[2978] = 1537; + e[2979] = 1538; + e[2980] = 1539; + e[2982] = 1549; + e[2983] = 1551; + e[2984] = 1552; + e[2986] = 1554; + e[2987] = 1555; + e[2988] = 1556; + e[2990] = 1623; + e[2991] = 1624; + e[2995] = 1775; + e[2999] = 1791; + e[3002] = 64290; + e[3003] = 64291; + e[3004] = 64292; + e[3006] = 64294; + e[3007] = 64295; + e[3008] = 64296; + e[3011] = 1900; + e[3014] = 8223; + e[3015] = 8244; + e[3017] = 7532; + e[3018] = 7533; + e[3019] = 7534; + e[3075] = 7590; + e[3076] = 7591; + e[3079] = 7594; + e[3080] = 7595; + e[3083] = 7598; + e[3084] = 7599; + e[3087] = 7602; + e[3088] = 7603; + e[3091] = 7606; + e[3092] = 7607; + e[3095] = 7610; + e[3096] = 7611; + e[3099] = 7614; + e[3100] = 7615; + e[3103] = 7618; + e[3104] = 7619; + e[3107] = 8337; + e[3108] = 8338; + e[3116] = 1884; + e[3119] = 1885; + e[3120] = 1885; + e[3123] = 1886; + e[3124] = 1886; + e[3127] = 1887; + e[3128] = 1887; + e[3131] = 1888; + e[3132] = 1888; + e[3135] = 1889; + e[3136] = 1889; + e[3139] = 1890; + e[3140] = 1890; + e[3143] = 1891; + e[3144] = 1891; + e[3147] = 1892; + e[3148] = 1892; + e[3153] = 580; + e[3154] = 581; + e[3157] = 584; + e[3158] = 585; + e[3161] = 588; + e[3162] = 589; + e[3165] = 891; + e[3166] = 892; + e[3169] = 1274; + e[3170] = 1275; + e[3173] = 1278; + e[3174] = 1279; + e[3181] = 7622; + e[3182] = 7623; + e[3282] = 11799; + e[3316] = 578; + e[3379] = 42785; + e[3393] = 1159; + e[3416] = 8377; + }); + t.getGlyphMapForStandardFonts = h; + const u = (0, r.getLookupTableFactory)(function (e) { + e[227] = 322; + e[264] = 261; + e[291] = 346; + }); + t.getSupplementalGlyphMapForArialBlack = u; + const d = (0, r.getLookupTableFactory)(function (e) { + e[1] = 32; + e[4] = 65; + e[5] = 192; + e[6] = 193; + e[9] = 196; + e[17] = 66; + e[18] = 67; + e[21] = 268; + e[24] = 68; + e[28] = 69; + e[29] = 200; + e[30] = 201; + e[32] = 282; + e[38] = 70; + e[39] = 71; + e[44] = 72; + e[47] = 73; + e[48] = 204; + e[49] = 205; + e[58] = 74; + e[60] = 75; + e[62] = 76; + e[68] = 77; + e[69] = 78; + e[75] = 79; + e[76] = 210; + e[80] = 214; + e[87] = 80; + e[89] = 81; + e[90] = 82; + e[92] = 344; + e[94] = 83; + e[97] = 352; + e[100] = 84; + e[104] = 85; + e[109] = 220; + e[115] = 86; + e[116] = 87; + e[121] = 88; + e[122] = 89; + e[124] = 221; + e[127] = 90; + e[129] = 381; + e[258] = 97; + e[259] = 224; + e[260] = 225; + e[263] = 228; + e[268] = 261; + e[271] = 98; + e[272] = 99; + e[273] = 263; + e[275] = 269; + e[282] = 100; + e[286] = 101; + e[287] = 232; + e[288] = 233; + e[290] = 283; + e[295] = 281; + e[296] = 102; + e[336] = 103; + e[346] = 104; + e[349] = 105; + e[350] = 236; + e[351] = 237; + e[361] = 106; + e[364] = 107; + e[367] = 108; + e[371] = 322; + e[373] = 109; + e[374] = 110; + e[381] = 111; + e[382] = 242; + e[383] = 243; + e[386] = 246; + e[393] = 112; + e[395] = 113; + e[396] = 114; + e[398] = 345; + e[400] = 115; + e[401] = 347; + e[403] = 353; + e[410] = 116; + e[437] = 117; + e[442] = 252; + e[448] = 118; + e[449] = 119; + e[454] = 120; + e[455] = 121; + e[457] = 253; + e[460] = 122; + e[462] = 382; + e[463] = 380; + e[853] = 44; + e[855] = 58; + e[856] = 46; + e[876] = 47; + e[878] = 45; + e[882] = 45; + e[894] = 40; + e[895] = 41; + e[896] = 91; + e[897] = 93; + e[923] = 64; + e[1004] = 48; + e[1005] = 49; + e[1006] = 50; + e[1007] = 51; + e[1008] = 52; + e[1009] = 53; + e[1010] = 54; + e[1011] = 55; + e[1012] = 56; + e[1013] = 57; + e[1081] = 37; + e[1085] = 43; + e[1086] = 45; + }); + t.getSupplementalGlyphMapForCalibri = d; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ToUnicodeMap = t.IdentityToUnicodeMap = void 0; + var r = a(2); + t.ToUnicodeMap = class ToUnicodeMap { + constructor(e = []) { + this._map = e; + } + get length() { + return this._map.length; + } + forEach(e) { + for (const t in this._map) e(t, this._map[t].charCodeAt(0)); + } + has(e) { + return void 0 !== this._map[e]; + } + get(e) { + return this._map[e]; + } + charCodeOf(e) { + const t = this._map; + if (t.length <= 65536) return t.indexOf(e); + for (const a in t) if (t[a] === e) return 0 | a; + return -1; + } + amend(e) { + for (const t in e) this._map[t] = e[t]; + } + }; + t.IdentityToUnicodeMap = class IdentityToUnicodeMap { + constructor(e, t) { + this.firstChar = e; + this.lastChar = t; + } + get length() { + return this.lastChar + 1 - this.firstChar; + } + forEach(e) { + for (let t = this.firstChar, a = this.lastChar; t <= a; t++) e(t, t); + } + 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) { + (0, r.unreachable)('Should not call amend()'); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CFFFont = void 0; + var r = a(35), + i = a(38), + n = a(2); + t.CFFFont = class CFFFont { + constructor(e, t) { + this.properties = t; + const a = new r.CFFParser(e, t, i.SEAC_ANALYSIS_ENABLED); + this.cff = a.parse(); + this.cff.duplicateFirstGlyph(); + const s = new r.CFFCompiler(this.cff); + this.seacs = this.cff.seacs; + try { + this.data = s.compile(); + } catch (a) { + (0, n.warn)('Failed to compile font ' + t.loadedName); + this.data = e; + } + this._createBuiltInEncoding(); + } + get numGlyphs() { + return this.cff.charStrings.count; + } + getCharset() { + return this.cff.charset.charset; + } + getGlyphMapping() { + const e = this.cff, + t = this.properties, + { cidToGidMap: a, cMap: r } = t, + n = e.charset.charset; + let s, o; + if (t.composite) { + let t, i; + if (a && a.length > 0) { + t = Object.create(null); + for (let e = 0, r = a.length; e < r; e++) { + const r = a[e]; + void 0 !== r && (t[r] = e); + } + } + s = Object.create(null); + if (e.isCIDFont) + for (o = 0; o < n.length; o++) { + const e = n[o]; + i = r.charCodeOf(e); + t && void 0 !== t[i] && (i = t[i]); + s[i] = o; + } + else + for (o = 0; o < e.charStrings.count; o++) { + i = r.charCodeOf(o); + s[i] = o; + } + return s; + } + let c = e.encoding ? e.encoding.encoding : null; + t.isInternalFont && (c = t.defaultEncoding); + s = (0, i.type1FontGlyphMapping)(t, c, n); + return s; + } + hasGlyphId(e) { + return this.cff.hasGlyphId(e); + } + _createBuiltInEncoding() { + const { charset: e, encoding: t } = this.cff; + if (!e || !t) return; + const a = e.charset, + r = t.encoding, + i = []; + for (const e in r) { + const t = r[e]; + if (t >= 0) { + const r = a[t]; + r && (i[e] = r); + } + } + i.length > 0 && (this.properties.builtInEncoding = i); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FontRendererFactory = void 0; + var r = a(2), + i = a(35), + n = a(39), + s = a(37), + o = a(8); + function getUint32(e, t) { + return ((e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]) >>> 0; + } + function getUint16(e, t) { + return (e[t] << 8) | e[t + 1]; + } + function getInt16(e, t) { + return ((e[t] << 24) | (e[t + 1] << 16)) >> 16; + } + function getInt8(e, t) { + return (e[t] << 24) >> 24; + } + function getFloat214(e, t) { + return getInt16(e, t) / 16384; + } + function getSubroutineBias(e) { + const t = e.length; + let a = 32768; + t < 1240 ? (a = 107) : t < 33900 && (a = 1131); + return a; + } + function parseCmap(e, t, a) { + const i = 1 === getUint16(e, t + 2) ? getUint32(e, t + 8) : getUint32(e, t + 16), + n = getUint16(e, t + i); + let s, o, c; + if (4 === n) { + getUint16(e, t + i + 2); + const a = getUint16(e, t + i + 6) >> 1; + o = t + i + 14; + s = []; + for (c = 0; c < a; c++, o += 2) s[c] = { end: getUint16(e, o) }; + o += 2; + for (c = 0; c < a; c++, o += 2) s[c].start = getUint16(e, o); + for (c = 0; c < a; c++, o += 2) s[c].idDelta = getUint16(e, o); + for (c = 0; c < a; c++, o += 2) { + let t = getUint16(e, o); + if (0 !== t) { + s[c].ids = []; + for (let a = 0, r = s[c].end - s[c].start + 1; a < r; a++) { + s[c].ids[a] = getUint16(e, o + t); + t += 2; + } + } + } + return s; + } + if (12 === n) { + const a = getUint32(e, t + i + 12); + o = t + i + 16; + s = []; + for (c = 0; c < a; c++) { + t = getUint32(e, o); + s.push({ start: t, end: getUint32(e, o + 4), idDelta: getUint32(e, o + 8) - t }); + o += 12; + } + return s; + } + throw new r.FormatError(`unsupported cmap: ${n}`); + } + function parseCff(e, t, a, r) { + const n = new i.CFFParser(new o.Stream(e, t, a - t), {}, r).parse(); + return { + glyphs: n.charStrings.objects, + subrs: + n.topDict.privateDict && + n.topDict.privateDict.subrsIndex && + n.topDict.privateDict.subrsIndex.objects, + gsubrs: n.globalSubrIndex && n.globalSubrIndex.objects, + isCFFCIDFont: n.isCIDFont, + fdSelect: n.fdSelect, + fdArray: n.fdArray, + }; + } + function lookupCmap(e, t) { + const a = t.codePointAt(0); + let r = 0, + i = 0, + n = e.length - 1; + for (; i < n; ) { + const t = (i + n + 1) >> 1; + a < e[t].start ? (n = t - 1) : (i = t); + } + e[i].start <= a && + a <= e[i].end && + (r = (e[i].idDelta + (e[i].ids ? e[i].ids[a - e[i].start] : a)) & 65535); + return { charCode: a, glyphId: r }; + } + function compileGlyf(e, t, a) { + function moveTo(e, a) { + t.push({ cmd: 'moveTo', args: [e, a] }); + } + function lineTo(e, a) { + t.push({ cmd: 'lineTo', args: [e, a] }); + } + function quadraticCurveTo(e, a, r, i) { + t.push({ cmd: 'quadraticCurveTo', args: [e, a, r, i] }); + } + let r = 0; + const i = getInt16(e, r); + let n, + s = 0, + o = 0; + r += 10; + if (i < 0) + do { + n = getUint16(e, r); + const i = getUint16(e, r + 2); + r += 4; + let c, l; + if (1 & n) { + if (2 & n) { + c = getInt16(e, r); + l = getInt16(e, r + 2); + } else { + c = getUint16(e, r); + l = getUint16(e, r + 2); + } + r += 4; + } else if (2 & n) { + c = getInt8(e, r++); + l = getInt8(e, r++); + } else { + c = e[r++]; + l = e[r++]; + } + if (2 & n) { + s = c; + o = l; + } else { + s = 0; + o = 0; + } + let h = 1, + u = 1, + d = 0, + f = 0; + if (8 & n) { + h = u = getFloat214(e, r); + r += 2; + } else if (64 & n) { + h = getFloat214(e, r); + u = getFloat214(e, r + 2); + r += 4; + } else if (128 & n) { + h = getFloat214(e, r); + d = getFloat214(e, r + 2); + f = getFloat214(e, r + 4); + u = getFloat214(e, r + 6); + r += 8; + } + const g = a.glyphs[i]; + if (g) { + t.push({ cmd: 'save' }, { cmd: 'transform', args: [h, d, f, u, s, o] }); + compileGlyf(g, t, a); + t.push({ cmd: 'restore' }); + } + } while (32 & n); + else { + const t = []; + let a, c; + for (a = 0; a < i; a++) { + t.push(getUint16(e, r)); + r += 2; + } + r += 2 + getUint16(e, r); + const l = t.at(-1) + 1, + h = []; + for (; h.length < l; ) { + n = e[r++]; + let t = 1; + 8 & n && (t += e[r++]); + for (; t-- > 0; ) h.push({ flags: n }); + } + for (a = 0; a < l; a++) { + switch (18 & h[a].flags) { + case 0: + s += getInt16(e, r); + r += 2; + break; + case 2: + s -= e[r++]; + break; + case 18: + s += e[r++]; + } + h[a].x = s; + } + for (a = 0; a < l; a++) { + switch (36 & h[a].flags) { + case 0: + o += getInt16(e, r); + r += 2; + break; + case 4: + o -= e[r++]; + break; + case 36: + o += e[r++]; + } + h[a].y = o; + } + let u = 0; + for (r = 0; r < i; r++) { + const e = t[r], + i = h.slice(u, e + 1); + if (1 & i[0].flags) i.push(i[0]); + else if (1 & i.at(-1).flags) i.unshift(i.at(-1)); + else { + const e = { + flags: 1, + x: (i[0].x + i.at(-1).x) / 2, + y: (i[0].y + i.at(-1).y) / 2, + }; + i.unshift(e); + i.push(e); + } + moveTo(i[0].x, i[0].y); + for (a = 1, c = i.length; a < c; a++) + if (1 & i[a].flags) lineTo(i[a].x, i[a].y); + else if (1 & i[a + 1].flags) { + quadraticCurveTo(i[a].x, i[a].y, i[a + 1].x, i[a + 1].y); + a++; + } else + quadraticCurveTo( + i[a].x, + i[a].y, + (i[a].x + i[a + 1].x) / 2, + (i[a].y + i[a + 1].y) / 2, + ); + u = e + 1; + } + } + } + function compileCharString(e, t, a, i) { + function moveTo(e, a) { + t.push({ cmd: 'moveTo', args: [e, a] }); + } + function lineTo(e, a) { + t.push({ cmd: 'lineTo', args: [e, a] }); + } + function bezierCurveTo(e, a, r, i, n, s) { + t.push({ cmd: 'bezierCurveTo', args: [e, a, r, i, n, s] }); + } + const n = []; + let o = 0, + c = 0, + l = 0; + !(function parse(e) { + let h = 0; + for (; h < e.length; ) { + let u, + d, + f, + g, + p, + m, + b, + y, + w, + S = !1, + x = e[h++]; + switch (x) { + case 1: + case 3: + case 18: + case 23: + l += n.length >> 1; + S = !0; + break; + case 4: + c += n.pop(); + moveTo(o, c); + S = !0; + break; + case 5: + for (; n.length > 0; ) { + o += n.shift(); + c += n.shift(); + lineTo(o, c); + } + break; + case 6: + for (; n.length > 0; ) { + o += n.shift(); + lineTo(o, c); + if (0 === n.length) break; + c += n.shift(); + lineTo(o, c); + } + break; + case 7: + for (; n.length > 0; ) { + c += n.shift(); + lineTo(o, c); + if (0 === n.length) break; + o += n.shift(); + lineTo(o, c); + } + break; + case 8: + for (; n.length > 0; ) { + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + } + break; + case 10: + y = n.pop(); + w = null; + if (a.isCFFCIDFont) { + const e = a.fdSelect.getFDIndex(i); + if (e >= 0 && e < a.fdArray.length) { + const t = a.fdArray[e]; + let r; + t.privateDict && + t.privateDict.subrsIndex && + (r = t.privateDict.subrsIndex.objects); + if (r) { + y += getSubroutineBias(r); + w = r[y]; + } + } else (0, r.warn)('Invalid fd index for glyph index.'); + } else w = a.subrs[y + a.subrsBias]; + w && parse(w); + break; + case 11: + return; + case 12: + x = e[h++]; + switch (x) { + case 34: + u = o + n.shift(); + d = u + n.shift(); + p = c + n.shift(); + o = d + n.shift(); + bezierCurveTo(u, c, d, p, o, p); + u = o + n.shift(); + d = u + n.shift(); + o = d + n.shift(); + bezierCurveTo(u, p, d, c, o, c); + break; + case 35: + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + n.pop(); + break; + case 36: + u = o + n.shift(); + p = c + n.shift(); + d = u + n.shift(); + m = p + n.shift(); + o = d + n.shift(); + bezierCurveTo(u, p, d, m, o, m); + u = o + n.shift(); + d = u + n.shift(); + b = m + n.shift(); + o = d + n.shift(); + bezierCurveTo(u, m, d, b, o, c); + break; + case 37: + const e = o, + t = c; + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d; + c = g; + Math.abs(o - e) > Math.abs(c - t) ? (o += n.shift()) : (c += n.shift()); + bezierCurveTo(u, f, d, g, o, c); + break; + default: + throw new r.FormatError(`unknown operator: 12 ${x}`); + } + break; + case 14: + if (n.length >= 4) { + const e = n.pop(), + r = n.pop(); + c = n.pop(); + o = n.pop(); + t.push({ cmd: 'save' }, { cmd: 'translate', args: [o, c] }); + let i = lookupCmap( + a.cmap, + String.fromCharCode(a.glyphNameMap[s.StandardEncoding[e]]), + ); + compileCharString(a.glyphs[i.glyphId], t, a, i.glyphId); + t.push({ cmd: 'restore' }); + i = lookupCmap( + a.cmap, + String.fromCharCode(a.glyphNameMap[s.StandardEncoding[r]]), + ); + compileCharString(a.glyphs[i.glyphId], t, a, i.glyphId); + } + return; + case 19: + case 20: + l += n.length >> 1; + h += (l + 7) >> 3; + S = !0; + break; + case 21: + c += n.pop(); + o += n.pop(); + moveTo(o, c); + S = !0; + break; + case 22: + o += n.pop(); + moveTo(o, c); + S = !0; + break; + case 24: + for (; n.length > 2; ) { + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + } + o += n.shift(); + c += n.shift(); + lineTo(o, c); + break; + case 25: + for (; n.length > 6; ) { + o += n.shift(); + c += n.shift(); + lineTo(o, c); + } + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + break; + case 26: + n.length % 2 && (o += n.shift()); + for (; n.length > 0; ) { + u = o; + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d; + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + } + break; + case 27: + n.length % 2 && (c += n.shift()); + for (; n.length > 0; ) { + u = o + n.shift(); + f = c; + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g; + bezierCurveTo(u, f, d, g, o, c); + } + break; + case 28: + n.push(((e[h] << 24) | (e[h + 1] << 16)) >> 16); + h += 2; + break; + case 29: + y = n.pop() + a.gsubrsBias; + w = a.gsubrs[y]; + w && parse(w); + break; + case 30: + for (; n.length > 0; ) { + u = o; + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + (1 === n.length ? n.shift() : 0); + bezierCurveTo(u, f, d, g, o, c); + if (0 === n.length) break; + u = o + n.shift(); + f = c; + d = u + n.shift(); + g = f + n.shift(); + c = g + n.shift(); + o = d + (1 === n.length ? n.shift() : 0); + bezierCurveTo(u, f, d, g, o, c); + } + break; + case 31: + for (; n.length > 0; ) { + u = o + n.shift(); + f = c; + d = u + n.shift(); + g = f + n.shift(); + c = g + n.shift(); + o = d + (1 === n.length ? n.shift() : 0); + bezierCurveTo(u, f, d, g, o, c); + if (0 === n.length) break; + u = o; + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + (1 === n.length ? n.shift() : 0); + bezierCurveTo(u, f, d, g, o, c); + } + break; + default: + if (x < 32) throw new r.FormatError(`unknown operator: ${x}`); + if (x < 247) n.push(x - 139); + else if (x < 251) n.push(256 * (x - 247) + e[h++] + 108); + else if (x < 255) n.push(256 * -(x - 251) - e[h++] - 108); + else { + n.push( + ((e[h] << 24) | (e[h + 1] << 16) | (e[h + 2] << 8) | e[h + 3]) / 65536, + ); + h += 4; + } + } + S && (n.length = 0); + } + })(e); + } + const c = []; + class CompiledFont { + constructor(e) { + this.constructor === CompiledFont && + (0, r.unreachable)('Cannot initialize CompiledFont.'); + this.fontMatrix = e; + this.compiledGlyphs = Object.create(null); + this.compiledCharCodeToGlyphId = Object.create(null); + } + getPathJs(e) { + const { charCode: t, glyphId: a } = lookupCmap(this.cmap, e); + let r = this.compiledGlyphs[a]; + if (!r) + try { + r = this.compileGlyph(this.glyphs[a], a); + this.compiledGlyphs[a] = r; + } catch (e) { + this.compiledGlyphs[a] = c; + void 0 === this.compiledCharCodeToGlyphId[t] && + (this.compiledCharCodeToGlyphId[t] = a); + throw e; + } + void 0 === this.compiledCharCodeToGlyphId[t] && + (this.compiledCharCodeToGlyphId[t] = a); + return r; + } + compileGlyph(e, t) { + if (!e || 0 === e.length || 14 === e[0]) return c; + let a = this.fontMatrix; + if (this.isCFFCIDFont) { + const e = this.fdSelect.getFDIndex(t); + if (e >= 0 && e < this.fdArray.length) { + a = this.fdArray[e].getByName('FontMatrix') || r.FONT_IDENTITY_MATRIX; + } else (0, r.warn)('Invalid fd index for glyph index.'); + } + const i = [ + { cmd: 'save' }, + { cmd: 'transform', args: a.slice() }, + { cmd: 'scale', args: ['size', '-size'] }, + ]; + this.compileGlyphImpl(e, i, t); + i.push({ cmd: 'restore' }); + return i; + } + compileGlyphImpl() { + (0, r.unreachable)('Children classes should implement this.'); + } + hasBuiltPath(e) { + const { charCode: t, glyphId: a } = lookupCmap(this.cmap, e); + return ( + void 0 !== this.compiledGlyphs[a] && void 0 !== this.compiledCharCodeToGlyphId[t] + ); + } + } + class TrueTypeCompiled extends CompiledFont { + constructor(e, t, a) { + super(a || [488e-6, 0, 0, 488e-6, 0, 0]); + this.glyphs = e; + this.cmap = t; + } + compileGlyphImpl(e, t) { + compileGlyf(e, t, this); + } + } + class Type2Compiled extends CompiledFont { + constructor(e, t, a, r) { + super(a || [0.001, 0, 0, 0.001, 0, 0]); + this.glyphs = e.glyphs; + this.gsubrs = e.gsubrs || []; + this.subrs = e.subrs || []; + this.cmap = t; + this.glyphNameMap = r || (0, n.getGlyphsUnicode)(); + this.gsubrsBias = getSubroutineBias(this.gsubrs); + this.subrsBias = getSubroutineBias(this.subrs); + this.isCFFCIDFont = e.isCFFCIDFont; + this.fdSelect = e.fdSelect; + this.fdArray = e.fdArray; + } + compileGlyphImpl(e, t, a) { + compileCharString(e, t, this, a); + } + } + t.FontRendererFactory = class FontRendererFactory { + static create(e, t) { + const a = new Uint8Array(e.data); + let i, n, s, o, c, l; + const h = getUint16(a, 4); + for (let e = 0, u = 12; e < h; e++, u += 16) { + const e = (0, r.bytesToString)(a.subarray(u, u + 4)), + h = getUint32(a, u + 8), + d = getUint32(a, u + 12); + switch (e) { + case 'cmap': + i = parseCmap(a, h); + break; + case 'glyf': + n = a.subarray(h, h + d); + break; + case 'loca': + s = a.subarray(h, h + d); + break; + case 'head': + l = getUint16(a, h + 18); + c = getUint16(a, h + 50); + break; + case 'CFF ': + o = parseCff(a, h, h + d, t); + } + } + if (n) { + const t = l ? [1 / l, 0, 0, 1 / l, 0, 0] : e.fontMatrix; + return new TrueTypeCompiled( + (function parseGlyfTable(e, t, a) { + let r, i; + if (a) { + r = 4; + i = getUint32; + } else { + r = 2; + i = (e, t) => 2 * getUint16(e, t); + } + const n = []; + let s = i(t, 0); + for (let a = r; a < t.length; a += r) { + const r = i(t, a); + n.push(e.subarray(s, r)); + s = r; + } + return n; + })(n, s, c), + i, + t, + ); + } + return new Type2Compiled(o, i, e.fontMatrix, e.glyphNameMap); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.getMetrics = t.getFontBasicMetrics = void 0; + var r = a(3); + const i = (0, r.getLookupTableFactory)(function (e) { + e.Courier = 600; + e['Courier-Bold'] = 600; + e['Courier-BoldOblique'] = 600; + e['Courier-Oblique'] = 600; + e.Helvetica = (0, r.getLookupTableFactory)(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; + }); + e['Helvetica-Bold'] = (0, r.getLookupTableFactory)(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; + }); + e['Helvetica-BoldOblique'] = (0, r.getLookupTableFactory)(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; + }); + e['Helvetica-Oblique'] = (0, r.getLookupTableFactory)(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; + }); + e.Symbol = (0, r.getLookupTableFactory)(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; + }); + e['Times-Roman'] = (0, r.getLookupTableFactory)(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; + }); + e['Times-Bold'] = (0, r.getLookupTableFactory)(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; + }); + e['Times-BoldItalic'] = (0, r.getLookupTableFactory)(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; + }); + e['Times-Italic'] = (0, r.getLookupTableFactory)(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; + }); + e.ZapfDingbats = (0, r.getLookupTableFactory)(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; + }); + }); + t.getMetrics = i; + const n = (0, r.getLookupTableFactory)(function (e) { + e.Courier = { ascent: 629, descent: -157, capHeight: 562, xHeight: -426 }; + e['Courier-Bold'] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 439 }; + e['Courier-Oblique'] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 }; + e['Courier-BoldOblique'] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 }; + e.Helvetica = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 }; + e['Helvetica-Bold'] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 532 }; + e['Helvetica-Oblique'] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 }; + e['Helvetica-BoldOblique'] = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 532, + }; + e['Times-Roman'] = { ascent: 683, descent: -217, capHeight: 662, xHeight: 450 }; + e['Times-Bold'] = { ascent: 683, descent: -217, capHeight: 676, xHeight: 461 }; + e['Times-Italic'] = { ascent: 683, descent: -217, capHeight: 653, xHeight: 441 }; + e['Times-BoldItalic'] = { ascent: 683, descent: -217, capHeight: 669, xHeight: 462 }; + e.Symbol = { + ascent: Math.NaN, + descent: Math.NaN, + capHeight: Math.NaN, + xHeight: Math.NaN, + }; + e.ZapfDingbats = { + ascent: Math.NaN, + descent: Math.NaN, + capHeight: Math.NaN, + xHeight: Math.NaN, + }; + }); + t.getFontBasicMetrics = n; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.GlyfTable = void 0; + t.GlyfTable = class GlyfTable { + constructor({ glyfTable: e, isGlyphLocationsLong: t, locaTable: a, numGlyphs: r }) { + this.glyphs = []; + const i = new DataView(a.buffer, a.byteOffset, a.byteLength), + n = new DataView(e.buffer, e.byteOffset, e.byteLength), + s = t ? 4 : 2; + let o = t ? i.getUint32(0) : 2 * i.getUint16(0), + c = 0; + for (let e = 0; e < r; e++) { + c += s; + const e = t ? i.getUint32(c) : 2 * i.getUint16(c); + if (e === o) { + this.glyphs.push(new Glyph({})); + continue; + } + const a = Glyph.parse(o, n); + this.glyphs.push(a); + o = e; + } + } + getSize() { + return this.glyphs.reduce((e, t) => e + ((t.getSize() + 3) & -4), 0); + } + write() { + const e = this.getSize(), + t = new DataView(new ArrayBuffer(e)), + a = e > 131070, + r = a ? 4 : 2, + i = new DataView(new ArrayBuffer((this.glyphs.length + 1) * r)); + a ? i.setUint32(0, 0) : i.setUint16(0, 0); + let n = 0, + s = 0; + for (const e of this.glyphs) { + n += e.write(n, t); + n = (n + 3) & -4; + s += r; + a ? i.setUint32(s, n) : i.setUint16(s, n >> 1); + } + return { + isLocationLong: a, + loca: new Uint8Array(i.buffer), + glyf: new Uint8Array(t.buffer), + }; + } + scale(e) { + for (let t = 0, a = this.glyphs.length; t < a; t++) this.glyphs[t].scale(e[t]); + } + }; + class Glyph { + constructor({ header: e = null, simple: t = null, composites: a = null }) { + this.header = e; + this.simple = t; + this.composites = a; + } + static parse(e, t) { + const [a, r] = GlyphHeader.parse(e, t); + e += a; + if (r.numberOfContours < 0) { + const a = []; + for (;;) { + const [r, i] = CompositeGlyph.parse(e, t); + e += r; + a.push(i); + if (!(32 & i.flags)) break; + } + return new Glyph({ header: r, composites: a }); + } + const i = SimpleGlyph.parse(e, t, r.numberOfContours); + return new Glyph({ header: r, simple: i }); + } + getSize() { + if (!this.header) return 0; + const e = this.simple + ? this.simple.getSize() + : this.composites.reduce((e, t) => e + t.getSize(), 0); + return this.header.getSize() + e; + } + write(e, t) { + if (!this.header) return 0; + const a = e; + e += this.header.write(e, t); + if (this.simple) e += this.simple.write(e, t); + else for (const a of this.composites) e += a.write(e, t); + return e - a; + } + scale(e) { + if (!this.header) return; + const t = (this.header.xMin + this.header.xMax) / 2; + this.header.scale(t, e); + if (this.simple) this.simple.scale(t, e); + else for (const a of this.composites) a.scale(t, e); + } + } + class GlyphHeader { + constructor({ numberOfContours: e, xMin: t, yMin: a, xMax: r, yMax: i }) { + this.numberOfContours = e; + this.xMin = t; + this.yMin = a; + this.xMax = r; + this.yMax = i; + } + static parse(e, t) { + return [ + 10, + new GlyphHeader({ + numberOfContours: t.getInt16(e), + xMin: t.getInt16(e + 2), + yMin: t.getInt16(e + 4), + xMax: t.getInt16(e + 6), + yMax: t.getInt16(e + 8), + }), + ]; + } + getSize() { + return 10; + } + write(e, t) { + t.setInt16(e, this.numberOfContours); + t.setInt16(e + 2, this.xMin); + t.setInt16(e + 4, this.yMin); + t.setInt16(e + 6, this.xMax); + t.setInt16(e + 8, this.yMax); + return 10; + } + scale(e, t) { + this.xMin = Math.round(e + (this.xMin - e) * t); + this.xMax = Math.round(e + (this.xMax - e) * t); + } + } + class Contour { + constructor({ flags: e, xCoordinates: t, yCoordinates: a }) { + this.xCoordinates = t; + this.yCoordinates = a; + this.flags = e; + } + } + class SimpleGlyph { + constructor({ contours: e, instructions: t }) { + this.contours = e; + this.instructions = t; + } + static parse(e, t, a) { + const r = []; + for (let i = 0; i < a; i++) { + const a = t.getUint16(e); + e += 2; + r.push(a); + } + const i = r[a - 1] + 1, + n = t.getUint16(e); + e += 2; + const s = new Uint8Array(t).slice(e, e + n); + e += n; + const o = []; + for (let a = 0; a < i; e++, a++) { + let r = t.getUint8(e); + o.push(r); + if (8 & r) { + const i = t.getUint8(++e); + r ^= 8; + for (let e = 0; e < i; e++) o.push(r); + a += i; + } + } + const c = []; + let l = [], + h = [], + u = []; + const d = []; + let f = 0, + g = 0; + for (let a = 0; a < i; a++) { + const i = o[a]; + if (2 & i) { + const a = t.getUint8(e++); + g += 16 & i ? a : -a; + l.push(g); + } else if (16 & i) l.push(g); + else { + g += t.getInt16(e); + e += 2; + l.push(g); + } + if (r[f] === a) { + f++; + c.push(l); + l = []; + } + } + g = 0; + f = 0; + for (let a = 0; a < i; a++) { + const i = o[a]; + if (4 & i) { + const a = t.getUint8(e++); + g += 32 & i ? a : -a; + h.push(g); + } else if (32 & i) h.push(g); + else { + g += t.getInt16(e); + e += 2; + h.push(g); + } + u.push((1 & i) | (64 & i)); + if (r[f] === a) { + l = c[f]; + f++; + d.push(new Contour({ flags: u, xCoordinates: l, yCoordinates: h })); + h = []; + u = []; + } + } + return new SimpleGlyph({ contours: d, instructions: s }); + } + getSize() { + let e = 2 * this.contours.length + 2 + this.instructions.length, + t = 0, + a = 0; + for (const r of this.contours) { + e += r.flags.length; + for (let i = 0, n = r.xCoordinates.length; i < n; i++) { + const n = r.xCoordinates[i], + s = r.yCoordinates[i]; + let o = Math.abs(n - t); + o > 255 ? (e += 2) : o > 0 && (e += 1); + t = n; + o = Math.abs(s - a); + o > 255 ? (e += 2) : o > 0 && (e += 1); + a = s; + } + } + return e; + } + write(e, t) { + const a = e, + r = [], + i = [], + n = []; + let s = 0, + o = 0; + for (const a of this.contours) { + for (let e = 0, t = a.xCoordinates.length; e < t; e++) { + let t = a.flags[e]; + const c = a.xCoordinates[e]; + let l = c - s; + if (0 === l) { + t |= 16; + r.push(0); + } else { + const e = Math.abs(l); + if (e <= 255) { + t |= l >= 0 ? 18 : 2; + r.push(e); + } else r.push(l); + } + s = c; + const h = a.yCoordinates[e]; + l = h - o; + if (0 === l) { + t |= 32; + i.push(0); + } else { + const e = Math.abs(l); + if (e <= 255) { + t |= l >= 0 ? 36 : 4; + i.push(e); + } else i.push(l); + } + o = h; + n.push(t); + } + t.setUint16(e, r.length - 1); + e += 2; + } + t.setUint16(e, this.instructions.length); + e += 2; + if (this.instructions.length) { + new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(this.instructions, e); + e += this.instructions.length; + } + for (const a of n) t.setUint8(e++, a); + for (let a = 0, i = r.length; a < i; a++) { + const i = r[a], + s = n[a]; + if (2 & s) t.setUint8(e++, i); + else if (!(16 & s)) { + t.setInt16(e, i); + e += 2; + } + } + for (let a = 0, r = i.length; a < r; a++) { + const r = i[a], + s = n[a]; + if (4 & s) t.setUint8(e++, r); + else if (!(32 & s)) { + t.setInt16(e, r); + e += 2; + } + } + return e - a; + } + scale(e, t) { + for (const a of this.contours) + if (0 !== a.xCoordinates.length) + for (let r = 0, i = a.xCoordinates.length; r < i; r++) + a.xCoordinates[r] = Math.round(e + (a.xCoordinates[r] - e) * t); + } + } + class CompositeGlyph { + constructor({ + flags: e, + glyphIndex: t, + argument1: a, + argument2: r, + transf: i, + instructions: n, + }) { + this.flags = e; + this.glyphIndex = t; + this.argument1 = a; + this.argument2 = r; + this.transf = i; + this.instructions = n; + } + static parse(e, t) { + const a = e, + r = []; + let i = t.getUint16(e); + const n = t.getUint16(e + 2); + e += 4; + let s, o; + if (1 & i) { + if (2 & i) { + s = t.getInt16(e); + o = t.getInt16(e + 2); + } else { + s = t.getUint16(e); + o = t.getUint16(e + 2); + } + e += 4; + i ^= 1; + } else { + if (2 & i) { + s = t.getInt8(e); + o = t.getInt8(e + 1); + } else { + s = t.getUint8(e); + o = t.getUint8(e + 1); + } + e += 2; + } + if (8 & i) { + r.push(t.getUint16(e)); + e += 2; + } else if (64 & i) { + r.push(t.getUint16(e), t.getUint16(e + 2)); + e += 4; + } else if (128 & i) { + r.push(t.getUint16(e), t.getUint16(e + 2), t.getUint16(e + 4), t.getUint16(e + 6)); + e += 8; + } + let c = null; + if (256 & i) { + const a = t.getUint16(e); + e += 2; + c = new Uint8Array(t).slice(e, e + a); + e += a; + } + return [ + e - a, + new CompositeGlyph({ + flags: i, + glyphIndex: n, + argument1: s, + argument2: o, + transf: r, + instructions: c, + }), + ]; + } + getSize() { + let e = 4 + 2 * this.transf.length; + 256 & this.flags && (e += 2 + this.instructions.length); + e += 2; + 2 & this.flags + ? (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); + return e; + } + write(e, t) { + const a = e; + 2 & this.flags + ? (this.argument1 >= -128 && + this.argument1 <= 127 && + this.argument2 >= -128 && + this.argument2 <= 127) || + (this.flags |= 1) + : (this.argument1 >= 0 && + this.argument1 <= 255 && + this.argument2 >= 0 && + this.argument2 <= 255) || + (this.flags |= 1); + t.setUint16(e, this.flags); + t.setUint16(e + 2, this.glyphIndex); + e += 4; + if (1 & this.flags) { + if (2 & this.flags) { + t.setInt16(e, this.argument1); + t.setInt16(e + 2, this.argument2); + } else { + t.setUint16(e, this.argument1); + t.setUint16(e + 2, this.argument2); + } + e += 4; + } else { + t.setUint8(e, this.argument1); + t.setUint8(e + 1, this.argument2); + e += 2; + } + if (256 & this.flags) { + t.setUint16(e, this.instructions.length); + e += 2; + if (this.instructions.length) { + new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(this.instructions, e); + e += this.instructions.length; + } + } + return e - a; + } + scale(e, t) {} + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.OpenTypeFileBuilder = void 0; + var r = a(3), + i = a(2); + function writeInt16(e, t, a) { + e[t] = (a >> 8) & 255; + e[t + 1] = 255 & a; + } + function writeInt32(e, t, a) { + e[t] = (a >> 24) & 255; + e[t + 1] = (a >> 16) & 255; + e[t + 2] = (a >> 8) & 255; + e[t + 3] = 255 & a; + } + function writeData(e, t, a) { + if (a instanceof Uint8Array) e.set(a, t); + else if ('string' == typeof a) + for (let r = 0, i = a.length; r < i; r++) e[t++] = 255 & a.charCodeAt(r); + else for (const r of a) e[t++] = 255 & r; + } + class OpenTypeFileBuilder { + constructor(e) { + this.sfnt = e; + this.tables = Object.create(null); + } + static getSearchParams(e, t) { + let a = 1, + r = 0; + for (; (a ^ e) > a; ) { + a <<= 1; + r++; + } + const i = a * t; + return { range: i, entry: r, rangeShift: t * e - i }; + } + toArray() { + let e = this.sfnt; + const t = this.tables, + a = Object.keys(t); + a.sort(); + const n = a.length; + let s, + o, + c, + l, + h, + u = 12 + 16 * n; + const d = [u]; + for (s = 0; s < n; s++) { + l = t[a[s]]; + u += ((l.length + 3) & -4) >>> 0; + d.push(u); + } + const f = new Uint8Array(u); + for (s = 0; s < n; s++) { + l = t[a[s]]; + writeData(f, d[s], l); + } + 'true' === e && (e = (0, i.string32)(65536)); + f[0] = 255 & e.charCodeAt(0); + f[1] = 255 & e.charCodeAt(1); + f[2] = 255 & e.charCodeAt(2); + f[3] = 255 & e.charCodeAt(3); + writeInt16(f, 4, n); + const g = OpenTypeFileBuilder.getSearchParams(n, 16); + writeInt16(f, 6, g.range); + writeInt16(f, 8, g.entry); + writeInt16(f, 10, g.rangeShift); + u = 12; + for (s = 0; s < n; s++) { + h = a[s]; + f[u] = 255 & h.charCodeAt(0); + f[u + 1] = 255 & h.charCodeAt(1); + f[u + 2] = 255 & h.charCodeAt(2); + f[u + 3] = 255 & h.charCodeAt(3); + let e = 0; + for (o = d[s], c = d[s + 1]; o < c; o += 4) { + e = (e + (0, r.readUint32)(f, o)) >>> 0; + } + writeInt32(f, u + 4, e); + writeInt32(f, u + 8, d[s]); + writeInt32(f, u + 12, t[h].length); + u += 16; + } + return f; + } + addTable(e, t) { + if (e in this.tables) throw new Error('Table ' + e + ' already exists'); + this.tables[e] = t; + } + } + t.OpenTypeFileBuilder = OpenTypeFileBuilder; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Type1Font = void 0; + var r = a(35), + i = a(2), + n = a(38), + s = a(3), + o = a(8), + c = a(49); + function findBlock(e, t, a) { + const r = e.length, + i = t.length, + n = r - i; + let o = a, + c = !1; + for (; o < n; ) { + let a = 0; + for (; a < i && e[o + a] === t[a]; ) a++; + if (a >= i) { + o += a; + for (; o < r && (0, s.isWhiteSpace)(e[o]); ) o++; + c = !0; + break; + } + o++; + } + return { found: c, length: o }; + } + t.Type1Font = class Type1Font { + constructor(e, t, a) { + let r = a.length1, + s = a.length2, + l = t.peekBytes(6); + const h = 128 === l[0] && 1 === l[1]; + if (h) { + t.skip(6); + r = (l[5] << 24) | (l[4] << 16) | (l[3] << 8) | l[2]; + } + const u = (function getHeaderBlock(e, t) { + const a = [101, 101, 120, 101, 99], + r = e.pos; + let n, s, c, l; + try { + n = e.getBytes(t); + s = n.length; + } catch (e) {} + if (s === t) { + c = findBlock(n, a, t - 2 * a.length); + if (c.found && c.length === t) return { stream: new o.Stream(n), length: t }; + } + (0, i.warn)('Invalid "Length1" property in Type1 font -- trying to recover.'); + e.pos = r; + for (;;) { + c = findBlock(e.peekBytes(2048), a, 0); + if (0 === c.length) break; + e.pos += c.length; + if (c.found) { + l = e.pos - r; + break; + } + } + e.pos = r; + if (l) return { stream: new o.Stream(e.getBytes(l)), length: l }; + (0, i.warn)('Unable to recover "Length1" property in Type1 font -- using as is.'); + return { stream: new o.Stream(e.getBytes(t)), length: t }; + })(t, r); + new c.Type1Parser(u.stream, !1, n.SEAC_ANALYSIS_ENABLED).extractFontHeader(a); + if (h) { + l = t.getBytes(6); + s = (l[5] << 24) | (l[4] << 16) | (l[3] << 8) | l[2]; + } + const d = (function getEexecBlock(e, t) { + const a = e.getBytes(); + if (0 === a.length) + throw new i.FormatError('getEexecBlock - no font program found.'); + return { stream: new o.Stream(a), length: a.length }; + })(t), + f = new c.Type1Parser(d.stream, !0, n.SEAC_ANALYSIS_ENABLED).extractFontProgram(a); + for (const e in f.properties) a[e] = f.properties[e]; + const g = f.charstrings, + p = this.getType2Charstrings(g), + m = this.getType2Subrs(f.subrs); + this.charstrings = g; + this.data = this.wrap(e, p, this.charstrings, m, a); + this.seacs = this.getSeacs(f.charstrings); + } + get numGlyphs() { + return this.charstrings.length + 1; + } + getCharset() { + const e = ['.notdef']; + for (const { glyphName: t } of this.charstrings) e.push(t); + return e; + } + getGlyphMapping(e) { + const t = this.charstrings; + if (e.composite) { + const a = Object.create(null); + for (let r = 0, i = t.length; r < i; r++) { + a[e.cMap.charCodeOf(r)] = r + 1; + } + return a; + } + const a = ['.notdef']; + let r, i; + for (i = 0; i < t.length; i++) a.push(t[i].glyphName); + const s = e.builtInEncoding; + if (s) { + r = Object.create(null); + for (const e in s) { + i = a.indexOf(s[e]); + i >= 0 && (r[e] = i); + } + } + return (0, n.type1FontGlyphMapping)(e, r, a); + } + hasGlyphId(e) { + if (e < 0 || e >= this.numGlyphs) return !1; + if (0 === e) return !0; + return this.charstrings[e - 1].charstring.length > 0; + } + getSeacs(e) { + const t = []; + for (let a = 0, r = e.length; a < r; a++) { + const r = e[a]; + r.seac && (t[a + 1] = r.seac); + } + return t; + } + getType2Charstrings(e) { + const t = []; + for (const a of e) t.push(a.charstring); + return t; + } + getType2Subrs(e) { + let t = 0; + const a = e.length; + t = a < 1133 ? 107 : a < 33769 ? 1131 : 32768; + const r = []; + let i; + for (i = 0; i < t; i++) r.push([11]); + for (i = 0; i < a; i++) r.push(e[i]); + return r; + } + wrap(e, t, a, i, n) { + const s = new r.CFF(); + s.header = new r.CFFHeader(1, 0, 4, 4); + s.names = [e]; + const o = new r.CFFTopDict(); + 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', n.fontMatrix); + o.setByName('FontBBox', n.bbox); + o.setByName('charset', null); + o.setByName('CharStrings', null); + o.setByName('Private', null); + s.topDict = o; + const c = new r.CFFStrings(); + c.add('Version 0.11'); + c.add('See original notice'); + c.add(e); + c.add(e); + c.add('Medium'); + s.strings = c; + s.globalSubrIndex = new r.CFFIndex(); + const l = t.length, + h = ['.notdef']; + let u, d; + for (u = 0; u < l; u++) { + const e = a[u].glyphName; + -1 === r.CFFStandardStrings.indexOf(e) && c.add(e); + h.push(e); + } + s.charset = new r.CFFCharset(!1, 0, h); + const f = new r.CFFIndex(); + f.add([139, 14]); + for (u = 0; u < l; u++) f.add(t[u]); + s.charStrings = f; + const g = new r.CFFPrivateDict(); + g.setByName('Subrs', null); + const p = [ + 'BlueValues', + 'OtherBlues', + 'FamilyBlues', + 'FamilyOtherBlues', + 'StemSnapH', + 'StemSnapV', + 'BlueShift', + 'BlueFuzz', + 'BlueScale', + 'LanguageGroup', + 'ExpansionFactor', + 'ForceBold', + 'StdHW', + 'StdVW', + ]; + for (u = 0, d = p.length; u < d; u++) { + const e = p[u]; + if (!(e in n.privateData)) continue; + const t = n.privateData[e]; + if (Array.isArray(t)) for (let e = t.length - 1; e > 0; e--) t[e] -= t[e - 1]; + g.setByName(e, t); + } + s.topDict.privateDict = g; + const m = new r.CFFIndex(); + for (u = 0, d = i.length; u < d; u++) m.add(i[u]); + g.subrsIndex = m; + return new r.CFFCompiler(s).compile(); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Type1Parser = void 0; + var r = a(37), + i = a(3), + n = a(8), + s = a(2); + const o = [4], + c = [5], + l = [6], + h = [7], + u = [8], + d = [12, 35], + f = [14], + g = [21], + p = [22], + m = [30], + b = [31]; + class Type1CharString { + constructor() { + this.width = 0; + this.lsb = 0; + this.flexing = !1; + this.output = []; + this.stack = []; + } + convert(e, t, a) { + const r = e.length; + let i, + n, + y, + w = !1; + for (let S = 0; S < r; S++) { + let r = e[S]; + if (r < 32) { + 12 === r && (r = (r << 8) + e[++S]); + switch (r) { + case 1: + case 3: + case 9: + case 3072: + case 3073: + case 3074: + case 3105: + this.stack = []; + break; + case 4: + if (this.flexing) { + if (this.stack.length < 1) { + w = !0; + break; + } + const e = this.stack.pop(); + this.stack.push(0, e); + break; + } + w = this.executeCommand(1, o); + break; + case 5: + w = this.executeCommand(2, c); + break; + case 6: + w = this.executeCommand(1, l); + break; + case 7: + w = this.executeCommand(1, h); + break; + case 8: + w = this.executeCommand(6, u); + break; + case 10: + if (this.stack.length < 1) { + w = !0; + break; + } + y = this.stack.pop(); + if (!t[y]) { + w = !0; + break; + } + w = this.convert(t[y], t, a); + break; + case 11: + return w; + case 13: + if (this.stack.length < 2) { + w = !0; + break; + } + i = this.stack.pop(); + n = this.stack.pop(); + this.lsb = n; + this.width = i; + this.stack.push(i, n); + w = this.executeCommand(2, p); + break; + case 14: + this.output.push(f[0]); + break; + case 21: + if (this.flexing) break; + w = this.executeCommand(2, g); + break; + case 22: + if (this.flexing) { + this.stack.push(0); + break; + } + w = this.executeCommand(1, p); + break; + case 30: + w = this.executeCommand(4, m); + break; + case 31: + w = this.executeCommand(4, b); + break; + case 3078: + if (a) { + const e = this.stack.at(-5); + this.seac = this.stack.splice(-4, 4); + this.seac[0] += this.lsb - e; + w = this.executeCommand(0, f); + } else w = this.executeCommand(4, f); + break; + case 3079: + if (this.stack.length < 4) { + w = !0; + break; + } + this.stack.pop(); + i = this.stack.pop(); + const e = this.stack.pop(); + n = this.stack.pop(); + this.lsb = n; + this.width = i; + this.stack.push(i, n, e); + w = this.executeCommand(3, g); + break; + case 3084: + if (this.stack.length < 2) { + w = !0; + break; + } + const S = this.stack.pop(), + x = this.stack.pop(); + this.stack.push(x / S); + break; + case 3088: + if (this.stack.length < 2) { + w = !0; + break; + } + y = this.stack.pop(); + const C = this.stack.pop(); + if (0 === y && 3 === C) { + const e = this.stack.splice(-17, 17); + this.stack.push( + e[2] + e[0], + e[3] + e[1], + e[4], + e[5], + e[6], + e[7], + e[8], + e[9], + e[10], + e[11], + e[12], + e[13], + e[14], + ); + w = this.executeCommand(13, d, !0); + this.flexing = !1; + this.stack.push(e[15], e[16]); + } else 1 === y && 0 === C && (this.flexing = !0); + break; + case 3089: + break; + default: + (0, s.warn)('Unknown type 1 charstring command of "' + r + '"'); + } + if (w) break; + } else { + r <= 246 + ? (r -= 139) + : (r = + r <= 250 + ? 256 * (r - 247) + e[++S] + 108 + : r <= 254 + ? -256 * (r - 251) - e[++S] - 108 + : ((255 & e[++S]) << 24) | + ((255 & e[++S]) << 16) | + ((255 & e[++S]) << 8) | + ((255 & e[++S]) << 0)); + this.stack.push(r); + } + } + return w; + } + executeCommand(e, t, a) { + const r = this.stack.length; + if (e > r) return !0; + const i = r - e; + for (let e = i; e < r; e++) { + let t = this.stack[e]; + if (Number.isInteger(t)) this.output.push(28, (t >> 8) & 255, 255 & t); + else { + t = (65536 * t) | 0; + this.output.push(255, (t >> 24) & 255, (t >> 16) & 255, (t >> 8) & 255, 255 & t); + } + } + this.output.push(...t); + a ? this.stack.splice(i, e) : (this.stack.length = 0); + return !1; + } + } + function isHexDigit(e) { + return (e >= 48 && e <= 57) || (e >= 65 && e <= 70) || (e >= 97 && e <= 102); + } + function decrypt(e, t, a) { + if (a >= e.length) return new Uint8Array(0); + let r, + i, + n = 0 | t; + for (r = 0; r < a; r++) n = (52845 * (e[r] + n) + 22719) & 65535; + const s = e.length - a, + o = new Uint8Array(s); + for (r = a, i = 0; i < s; r++, i++) { + const t = e[r]; + o[i] = t ^ (n >> 8); + n = (52845 * (t + n) + 22719) & 65535; + } + return o; + } + function isSpecial(e) { + return ( + 47 === e || 91 === e || 93 === e || 123 === e || 125 === e || 40 === e || 41 === e + ); + } + t.Type1Parser = class Type1Parser { + constructor(e, t, a) { + if (t) { + const t = e.getBytes(), + a = !( + (isHexDigit(t[0]) || (0, i.isWhiteSpace)(t[0])) && + isHexDigit(t[1]) && + isHexDigit(t[2]) && + isHexDigit(t[3]) && + isHexDigit(t[4]) && + isHexDigit(t[5]) && + isHexDigit(t[6]) && + isHexDigit(t[7]) + ); + e = new n.Stream( + a + ? decrypt(t, 55665, 4) + : (function decryptAscii(e, t, a) { + let r = 0 | t; + const i = e.length, + n = new Uint8Array(i >>> 1); + let s, o; + for (s = 0, o = 0; s < i; s++) { + const t = e[s]; + if (!isHexDigit(t)) continue; + s++; + let a; + for (; s < i && !isHexDigit((a = e[s])); ) s++; + if (s < i) { + const e = parseInt(String.fromCharCode(t, a), 16); + n[o++] = e ^ (r >> 8); + r = (52845 * (e + r) + 22719) & 65535; + } + } + return n.slice(a, o); + })(t, 55665, 4), + ); + } + this.seacAnalysisEnabled = !!a; + this.stream = e; + this.nextChar(); + } + readNumberArray() { + this.getToken(); + const e = []; + for (;;) { + const t = this.getToken(); + if (null === t || ']' === t || '}' === t) break; + e.push(parseFloat(t || 0)); + } + return e; + } + readNumber() { + const e = this.getToken(); + return parseFloat(e || 0); + } + readInt() { + const e = this.getToken(); + return 0 | parseInt(e || 0, 10); + } + readBoolean() { + return 'true' === this.getToken() ? 1 : 0; + } + nextChar() { + return (this.currentChar = this.stream.getByte()); + } + prevChar() { + this.stream.skip(-2); + return (this.currentChar = this.stream.getByte()); + } + getToken() { + let e = !1, + t = this.currentChar; + for (;;) { + if (-1 === t) return null; + if (e) (10 !== t && 13 !== t) || (e = !1); + else if (37 === t) e = !0; + else if (!(0, i.isWhiteSpace)(t)) break; + t = this.nextChar(); + } + if (isSpecial(t)) { + this.nextChar(); + return String.fromCharCode(t); + } + let a = ''; + do { + a += String.fromCharCode(t); + t = this.nextChar(); + } while (t >= 0 && !(0, i.isWhiteSpace)(t) && !isSpecial(t)); + return a; + } + readCharStrings(e, t) { + return -1 === t ? e : decrypt(e, 4330, t); + } + extractFontProgram(e) { + const t = this.stream, + a = [], + r = [], + i = Object.create(null); + i.lenIV = 4; + const n = { subrs: [], charstrings: [], properties: { privateData: i } }; + let s, o, c, l; + for (; null !== (s = this.getToken()); ) + if ('/' === s) { + s = this.getToken(); + switch (s) { + case 'CharStrings': + this.getToken(); + this.getToken(); + this.getToken(); + this.getToken(); + for (;;) { + s = this.getToken(); + if (null === s || 'end' === s) break; + if ('/' !== s) continue; + const e = this.getToken(); + o = this.readInt(); + this.getToken(); + c = o > 0 ? t.getBytes(o) : new Uint8Array(0); + l = n.properties.privateData.lenIV; + const a = this.readCharStrings(c, l); + this.nextChar(); + s = this.getToken(); + 'noaccess' === s ? this.getToken() : '/' === s && this.prevChar(); + r.push({ glyph: e, encoded: a }); + } + break; + case 'Subrs': + this.readInt(); + this.getToken(); + for (; 'dup' === this.getToken(); ) { + const e = this.readInt(); + o = this.readInt(); + this.getToken(); + c = o > 0 ? t.getBytes(o) : new Uint8Array(0); + l = n.properties.privateData.lenIV; + const r = this.readCharStrings(c, l); + this.nextChar(); + s = this.getToken(); + 'noaccess' === s && this.getToken(); + a[e] = r; + } + break; + case 'BlueValues': + case 'OtherBlues': + case 'FamilyBlues': + case 'FamilyOtherBlues': + const e = this.readNumberArray(); + e.length > 0 && e.length, 0; + break; + case 'StemSnapH': + case 'StemSnapV': + n.properties.privateData[s] = this.readNumberArray(); + break; + case 'StdHW': + case 'StdVW': + n.properties.privateData[s] = this.readNumberArray()[0]; + break; + case 'BlueShift': + case 'lenIV': + case 'BlueFuzz': + case 'BlueScale': + case 'LanguageGroup': + n.properties.privateData[s] = this.readNumber(); + break; + case 'ExpansionFactor': + n.properties.privateData[s] = this.readNumber() || 0.06; + break; + case 'ForceBold': + n.properties.privateData[s] = this.readBoolean(); + } + } + for (const { encoded: t, glyph: i } of r) { + const r = new Type1CharString(), + s = r.convert(t, a, this.seacAnalysisEnabled); + let o = r.output; + s && (o = [14]); + const c = { glyphName: i, charstring: o, width: r.width, lsb: r.lsb, seac: r.seac }; + '.notdef' === i ? n.charstrings.unshift(c) : n.charstrings.push(c); + if (e.builtInEncoding) { + const t = e.builtInEncoding.indexOf(i); + t > -1 && + void 0 === e.widths[t] && + t >= e.firstChar && + t <= e.lastChar && + (e.widths[t] = r.width); + } + } + return n; + } + extractFontHeader(e) { + let t; + for (; null !== (t = this.getToken()); ) + if ('/' === t) { + t = this.getToken(); + switch (t) { + case 'FontMatrix': + const a = this.readNumberArray(); + e.fontMatrix = a; + break; + case 'Encoding': + const i = this.getToken(); + let n; + if (/^\d+$/.test(i)) { + n = []; + const e = 0 | parseInt(i, 10); + this.getToken(); + for (let a = 0; a < e; a++) { + t = this.getToken(); + for (; 'dup' !== t && 'def' !== t; ) { + t = this.getToken(); + if (null === t) return; + } + if ('def' === t) break; + const e = this.readInt(); + this.getToken(); + const a = this.getToken(); + n[e] = a; + this.getToken(); + } + } else n = (0, r.getEncoding)(i); + e.builtInEncoding = n; + break; + case 'FontBBox': + const s = this.readNumberArray(); + e.ascent = Math.max(s[3], s[1]); + e.descent = Math.min(s[1], s[3]); + e.ascentScaled = !0; + } + } + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Pattern = void 0; + t.getTilingPatternIR = function getTilingPatternIR(e, t, a) { + const i = t.getArray('Matrix'), + n = r.Util.normalizeRect(t.getArray('BBox')), + s = t.get('XStep'), + o = t.get('YStep'), + c = t.get('PaintType'), + l = t.get('TilingType'); + if (n[2] - n[0] == 0 || n[3] - n[1] == 0) + throw new r.FormatError(`Invalid getTilingPatternIR /BBox array: [${n}].`); + return ['TilingPattern', a, e, i, n, s, o, c, l]; + }; + var r = a(2), + i = a(5), + n = a(12), + s = a(3); + const o = 2, + c = 3, + l = 4, + h = 5, + u = 6, + d = 7; + t.Pattern = class Pattern { + constructor() { + (0, r.unreachable)('Cannot initialize Pattern.'); + } + static parseShading(e, t, a, n, f) { + const g = e instanceof i.BaseStream ? e.dict : e, + p = g.get('ShadingType'); + try { + switch (p) { + case o: + case c: + return new RadialAxialShading(g, t, a, n, f); + case l: + case h: + case u: + case d: + return new MeshShading(e, t, a, n, f); + default: + throw new r.FormatError('Unsupported ShadingType: ' + p); + } + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.warn)(e); + return new DummyShading(); + } + } + }; + class BaseShading { + static SMALL_NUMBER = 1e-6; + constructor() { + this.constructor === BaseShading && + (0, r.unreachable)('Cannot initialize BaseShading.'); + } + getIR() { + (0, r.unreachable)('Abstract method `getIR` called.'); + } + } + class RadialAxialShading extends BaseShading { + constructor(e, t, a, i, s) { + super(); + this.coordsArr = e.getArray('Coords'); + this.shadingType = e.get('ShadingType'); + const o = n.ColorSpace.parse({ + cs: e.getRaw('CS') || e.getRaw('ColorSpace'), + xref: t, + resources: a, + pdfFunctionFactory: i, + localColorSpaceCache: s, + }), + l = e.getArray('BBox'); + Array.isArray(l) && 4 === l.length + ? (this.bbox = r.Util.normalizeRect(l)) + : (this.bbox = null); + let h = 0, + u = 1; + if (e.has('Domain')) { + const t = e.getArray('Domain'); + h = t[0]; + u = t[1]; + } + let d = !1, + f = !1; + if (e.has('Extend')) { + const t = e.getArray('Extend'); + d = t[0]; + f = t[1]; + } + if (!(this.shadingType !== c || (d && f))) { + const [e, t, a, i, n, s] = this.coordsArr, + o = Math.hypot(e - i, t - n); + a <= s + o && s <= a + o && (0, r.warn)('Unsupported radial gradient.'); + } + this.extendStart = d; + this.extendEnd = f; + const g = e.getRaw('Function'), + p = i.createFromArray(g), + m = (u - h) / 840, + b = (this.colorStops = []); + if (h >= u || m <= 0) { + (0, r.info)('Bad shading domain.'); + return; + } + const y = new Float32Array(o.numComps), + w = new Float32Array(1); + let S, + x = 0; + w[0] = h; + p(w, 0, y, 0); + let C = o.getRgb(y, 0); + const k = r.Util.makeHexColor(C[0], C[1], C[2]); + b.push([0, k]); + let v = 1; + w[0] = h + m; + p(w, 0, y, 0); + let F = o.getRgb(y, 0), + O = F[0] - C[0] + 1, + T = F[1] - C[1] + 1, + M = F[2] - C[2] + 1, + E = F[0] - C[0] - 1, + D = F[1] - C[1] - 1, + N = F[2] - C[2] - 1; + for (let e = 2; e < 840; e++) { + w[0] = h + e * m; + p(w, 0, y, 0); + S = o.getRgb(y, 0); + const t = e - x; + O = Math.min(O, (S[0] - C[0] + 1) / t); + T = Math.min(T, (S[1] - C[1] + 1) / t); + M = Math.min(M, (S[2] - C[2] + 1) / t); + E = Math.max(E, (S[0] - C[0] - 1) / t); + D = Math.max(D, (S[1] - C[1] - 1) / t); + N = Math.max(N, (S[2] - C[2] - 1) / t); + if (!(E <= O && D <= T && N <= M)) { + const e = r.Util.makeHexColor(F[0], F[1], F[2]); + b.push([v / 840, e]); + O = S[0] - F[0] + 1; + T = S[1] - F[1] + 1; + M = S[2] - F[2] + 1; + E = S[0] - F[0] - 1; + D = S[1] - F[1] - 1; + N = S[2] - F[2] - 1; + x = v; + C = F; + } + v = e; + F = S; + } + const R = r.Util.makeHexColor(F[0], F[1], F[2]); + b.push([1, R]); + let L = 'transparent'; + if (e.has('Background')) { + S = o.getRgb(e.get('Background'), 0); + L = r.Util.makeHexColor(S[0], S[1], S[2]); + } + if (!d) { + b.unshift([0, L]); + b[1][0] += BaseShading.SMALL_NUMBER; + } + if (!f) { + b.at(-1)[0] -= BaseShading.SMALL_NUMBER; + b.push([1, L]); + } + this.colorStops = b; + } + getIR() { + const e = this.coordsArr, + t = this.shadingType; + let a, i, n, s, l; + if (t === o) { + i = [e[0], e[1]]; + n = [e[2], e[3]]; + s = null; + l = null; + a = 'axial'; + } else if (t === c) { + i = [e[0], e[1]]; + n = [e[3], e[4]]; + s = e[2]; + l = e[5]; + a = 'radial'; + } else (0, r.unreachable)(`getPattern type unknown: ${t}`); + return ['RadialAxial', a, this.bbox, this.colorStops, i, n, s, l]; + } + } + class MeshStreamReader { + constructor(e, t) { + this.stream = e; + this.context = t; + this.buffer = 0; + this.bufferLength = 0; + const a = t.numComps; + this.tmpCompsBuf = new Float32Array(a); + const r = t.colorSpace.numComps; + this.tmpCsCompsBuf = t.colorFn ? new Float32Array(r) : this.tmpCompsBuf; + } + get hasData() { + if (this.stream.end) return this.stream.pos < this.stream.end; + if (this.bufferLength > 0) return !0; + const e = this.stream.getByte(); + if (e < 0) return !1; + this.buffer = e; + this.bufferLength = 8; + return !0; + } + readBits(e) { + let t = this.buffer, + a = this.bufferLength; + if (32 === e) { + if (0 === a) + return ( + ((this.stream.getByte() << 24) | + (this.stream.getByte() << 16) | + (this.stream.getByte() << 8) | + this.stream.getByte()) >>> + 0 + ); + t = + (t << 24) | + (this.stream.getByte() << 16) | + (this.stream.getByte() << 8) | + this.stream.getByte(); + const e = this.stream.getByte(); + this.buffer = e & ((1 << a) - 1); + return ((t << (8 - a)) | ((255 & e) >> a)) >>> 0; + } + if (8 === e && 0 === a) return this.stream.getByte(); + for (; a < e; ) { + t = (t << 8) | this.stream.getByte(); + a += 8; + } + a -= e; + this.bufferLength = a; + this.buffer = t & ((1 << a) - 1); + return t >> a; + } + align() { + this.buffer = 0; + this.bufferLength = 0; + } + readFlag() { + return this.readBits(this.context.bitsPerFlag); + } + readCoordinate() { + const e = this.context.bitsPerCoordinate, + t = this.readBits(e), + a = this.readBits(e), + r = this.context.decode, + i = e < 32 ? 1 / ((1 << e) - 1) : 2.3283064365386963e-10; + return [t * i * (r[1] - r[0]) + r[0], a * i * (r[3] - r[2]) + r[2]]; + } + readComponents() { + const e = this.context.numComps, + t = this.context.bitsPerComponent, + a = t < 32 ? 1 / ((1 << t) - 1) : 2.3283064365386963e-10, + r = this.context.decode, + i = this.tmpCompsBuf; + for (let n = 0, s = 4; n < e; n++, s += 2) { + const e = this.readBits(t); + i[n] = e * a * (r[s + 1] - r[s]) + r[s]; + } + const n = this.tmpCsCompsBuf; + this.context.colorFn && this.context.colorFn(i, 0, n, 0); + return this.context.colorSpace.getRgb(n, 0); + } + } + const f = (function getBClosure() { + const e = Object.create(null); + return function (t) { + return (e[t] ||= (function buildB(e) { + const t = []; + for (let a = 0; a <= e; a++) { + const r = a / e, + i = 1 - r; + t.push(new Float32Array([i * i * i, 3 * r * i * i, 3 * r * r * i, r * r * r])); + } + return t; + })(t)); + }; + })(); + class MeshShading extends BaseShading { + static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3; + static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20; + static TRIANGLE_DENSITY = 20; + constructor(e, t, a, s, o) { + super(); + if (!(e instanceof i.BaseStream)) + throw new r.FormatError('Mesh data is not a stream'); + const c = e.dict; + this.shadingType = c.get('ShadingType'); + const f = c.getArray('BBox'); + Array.isArray(f) && 4 === f.length + ? (this.bbox = r.Util.normalizeRect(f)) + : (this.bbox = null); + const g = n.ColorSpace.parse({ + cs: c.getRaw('CS') || c.getRaw('ColorSpace'), + xref: t, + resources: a, + pdfFunctionFactory: s, + localColorSpaceCache: o, + }); + this.background = c.has('Background') ? g.getRgb(c.get('Background'), 0) : null; + const p = c.getRaw('Function'), + m = p ? s.createFromArray(p) : null; + this.coords = []; + this.colors = []; + this.figures = []; + const b = { + bitsPerCoordinate: c.get('BitsPerCoordinate'), + bitsPerComponent: c.get('BitsPerComponent'), + bitsPerFlag: c.get('BitsPerFlag'), + decode: c.getArray('Decode'), + colorFn: m, + colorSpace: g, + numComps: m ? 1 : g.numComps, + }, + y = new MeshStreamReader(e, b); + let w = !1; + switch (this.shadingType) { + case l: + this._decodeType4Shading(y); + break; + case h: + const e = 0 | c.get('VerticesPerRow'); + if (e < 2) throw new r.FormatError('Invalid VerticesPerRow'); + this._decodeType5Shading(y, e); + break; + case u: + this._decodeType6Shading(y); + w = !0; + break; + case d: + this._decodeType7Shading(y); + w = !0; + break; + default: + (0, r.unreachable)('Unsupported mesh type.'); + } + if (w) { + this._updateBounds(); + for (let e = 0, t = this.figures.length; e < t; e++) this._buildFigureFromPatch(e); + } + this._updateBounds(); + this._packData(); + } + _decodeType4Shading(e) { + const t = this.coords, + a = this.colors, + i = [], + n = []; + let s = 0; + for (; e.hasData; ) { + const o = e.readFlag(), + c = e.readCoordinate(), + l = e.readComponents(); + if (0 === s) { + if (!(0 <= o && o <= 2)) throw new r.FormatError('Unknown type4 flag'); + switch (o) { + case 0: + s = 3; + break; + case 1: + n.push(n.at(-2), n.at(-1)); + s = 1; + break; + case 2: + n.push(n.at(-3), n.at(-1)); + s = 1; + } + i.push(o); + } + n.push(t.length); + t.push(c); + a.push(l); + s--; + e.align(); + } + this.figures.push({ + type: 'triangles', + coords: new Int32Array(n), + colors: new Int32Array(n), + }); + } + _decodeType5Shading(e, t) { + const a = this.coords, + r = this.colors, + i = []; + for (; e.hasData; ) { + const t = e.readCoordinate(), + n = e.readComponents(); + i.push(a.length); + a.push(t); + r.push(n); + } + this.figures.push({ + type: 'lattice', + coords: new Int32Array(i), + colors: new Int32Array(i), + verticesPerRow: t, + }); + } + _decodeType6Shading(e) { + const t = this.coords, + a = this.colors, + i = new Int32Array(16), + n = new Int32Array(4); + for (; e.hasData; ) { + const s = e.readFlag(); + if (!(0 <= s && s <= 3)) throw new r.FormatError('Unknown type6 flag'); + const o = t.length; + for (let a = 0, r = 0 !== s ? 8 : 12; a < r; a++) t.push(e.readCoordinate()); + const c = a.length; + for (let t = 0, r = 0 !== s ? 2 : 4; t < r; t++) a.push(e.readComponents()); + let l, h, u, d; + switch (s) { + 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; + n[2] = c + 1; + n[3] = c + 2; + n[0] = c; + n[1] = c + 3; + break; + case 1: + l = i[12]; + h = i[13]; + u = i[14]; + d = i[15]; + i[12] = d; + i[13] = o + 0; + i[14] = o + 1; + i[15] = o + 2; + i[8] = u; + i[11] = o + 3; + i[4] = h; + i[7] = o + 4; + i[0] = l; + i[1] = o + 7; + i[2] = o + 6; + i[3] = o + 5; + l = n[2]; + h = n[3]; + n[2] = h; + n[3] = c; + n[0] = l; + n[1] = c + 1; + break; + case 2: + l = i[15]; + h = 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] = h; + i[7] = o + 4; + i[0] = l; + i[1] = o + 7; + i[2] = o + 6; + i[3] = o + 5; + l = n[3]; + n[2] = n[1]; + n[3] = c; + n[0] = l; + n[1] = c + 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; + n[2] = n[0]; + n[3] = c; + n[0] = n[1]; + n[1] = c + 1; + } + i[5] = t.length; + t.push([ + (-4 * t[i[0]][0] - + t[i[15]][0] + + 6 * (t[i[4]][0] + t[i[1]][0]) - + 2 * (t[i[12]][0] + t[i[3]][0]) + + 3 * (t[i[13]][0] + t[i[7]][0])) / + 9, + (-4 * t[i[0]][1] - + t[i[15]][1] + + 6 * (t[i[4]][1] + t[i[1]][1]) - + 2 * (t[i[12]][1] + t[i[3]][1]) + + 3 * (t[i[13]][1] + t[i[7]][1])) / + 9, + ]); + i[6] = t.length; + t.push([ + (-4 * t[i[3]][0] - + t[i[12]][0] + + 6 * (t[i[2]][0] + t[i[7]][0]) - + 2 * (t[i[0]][0] + t[i[15]][0]) + + 3 * (t[i[4]][0] + t[i[14]][0])) / + 9, + (-4 * t[i[3]][1] - + t[i[12]][1] + + 6 * (t[i[2]][1] + t[i[7]][1]) - + 2 * (t[i[0]][1] + t[i[15]][1]) + + 3 * (t[i[4]][1] + t[i[14]][1])) / + 9, + ]); + i[9] = t.length; + t.push([ + (-4 * t[i[12]][0] - + t[i[3]][0] + + 6 * (t[i[8]][0] + t[i[13]][0]) - + 2 * (t[i[0]][0] + t[i[15]][0]) + + 3 * (t[i[11]][0] + t[i[1]][0])) / + 9, + (-4 * t[i[12]][1] - + t[i[3]][1] + + 6 * (t[i[8]][1] + t[i[13]][1]) - + 2 * (t[i[0]][1] + t[i[15]][1]) + + 3 * (t[i[11]][1] + t[i[1]][1])) / + 9, + ]); + i[10] = t.length; + t.push([ + (-4 * t[i[15]][0] - + t[i[0]][0] + + 6 * (t[i[11]][0] + t[i[14]][0]) - + 2 * (t[i[12]][0] + t[i[3]][0]) + + 3 * (t[i[2]][0] + t[i[8]][0])) / + 9, + (-4 * t[i[15]][1] - + t[i[0]][1] + + 6 * (t[i[11]][1] + t[i[14]][1]) - + 2 * (t[i[12]][1] + t[i[3]][1]) + + 3 * (t[i[2]][1] + t[i[8]][1])) / + 9, + ]); + this.figures.push({ + type: 'patch', + coords: new Int32Array(i), + colors: new Int32Array(n), + }); + } + } + _decodeType7Shading(e) { + const t = this.coords, + a = this.colors, + i = new Int32Array(16), + n = new Int32Array(4); + for (; e.hasData; ) { + const s = e.readFlag(); + if (!(0 <= s && s <= 3)) throw new r.FormatError('Unknown type7 flag'); + const o = t.length; + for (let a = 0, r = 0 !== s ? 12 : 16; a < r; a++) t.push(e.readCoordinate()); + const c = a.length; + for (let t = 0, r = 0 !== s ? 2 : 4; t < r; t++) a.push(e.readComponents()); + let l, h, u, d; + switch (s) { + 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; + n[2] = c + 1; + n[3] = c + 2; + n[0] = c; + n[1] = c + 3; + break; + case 1: + l = i[12]; + h = i[13]; + u = i[14]; + d = i[15]; + i[12] = d; + i[13] = o + 0; + i[14] = o + 1; + i[15] = o + 2; + i[8] = u; + i[9] = o + 9; + i[10] = o + 10; + i[11] = o + 3; + i[4] = h; + i[5] = o + 8; + i[6] = o + 11; + i[7] = o + 4; + i[0] = l; + i[1] = o + 7; + i[2] = o + 6; + i[3] = o + 5; + l = n[2]; + h = n[3]; + n[2] = h; + n[3] = c; + n[0] = l; + n[1] = c + 1; + break; + case 2: + l = i[15]; + h = 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] = h; + i[5] = o + 8; + i[6] = o + 11; + i[7] = o + 4; + i[0] = l; + i[1] = o + 7; + i[2] = o + 6; + i[3] = o + 5; + l = n[3]; + n[2] = n[1]; + n[3] = c; + n[0] = l; + n[1] = c + 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; + n[2] = n[0]; + n[3] = c; + n[0] = n[1]; + n[1] = c + 1; + } + this.figures.push({ + type: 'patch', + coords: new Int32Array(i), + colors: new Int32Array(n), + }); + } + } + _buildFigureFromPatch(e) { + const t = this.figures[e]; + (0, r.assert)('patch' === t.type, 'Unexpected patch mesh figure'); + const a = this.coords, + i = this.colors, + n = t.coords, + s = t.colors, + o = Math.min(a[n[0]][0], a[n[3]][0], a[n[12]][0], a[n[15]][0]), + c = Math.min(a[n[0]][1], a[n[3]][1], a[n[12]][1], a[n[15]][1]), + l = Math.max(a[n[0]][0], a[n[3]][0], a[n[12]][0], a[n[15]][0]), + h = Math.max(a[n[0]][1], a[n[3]][1], a[n[12]][1], a[n[15]][1]); + let u = Math.ceil( + ((l - o) * MeshShading.TRIANGLE_DENSITY) / (this.bounds[2] - this.bounds[0]), + ); + u = Math.max( + MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, + Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, u), + ); + let d = Math.ceil( + ((h - c) * MeshShading.TRIANGLE_DENSITY) / (this.bounds[3] - this.bounds[1]), + ); + d = Math.max( + MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, + Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, d), + ); + const g = u + 1, + p = new Int32Array((d + 1) * g), + m = new Int32Array((d + 1) * g); + let b = 0; + const y = new Uint8Array(3), + w = new Uint8Array(3), + S = i[s[0]], + x = i[s[1]], + C = i[s[2]], + k = i[s[3]], + v = f(d), + F = f(u); + for (let e = 0; e <= d; e++) { + y[0] = ((S[0] * (d - e) + C[0] * e) / d) | 0; + y[1] = ((S[1] * (d - e) + C[1] * e) / d) | 0; + y[2] = ((S[2] * (d - e) + C[2] * e) / d) | 0; + w[0] = ((x[0] * (d - e) + k[0] * e) / d) | 0; + w[1] = ((x[1] * (d - e) + k[1] * e) / d) | 0; + w[2] = ((x[2] * (d - e) + k[2] * e) / d) | 0; + for (let t = 0; t <= u; t++, b++) { + if (!((0 !== e && e !== d) || (0 !== t && t !== u))) continue; + let r = 0, + s = 0, + o = 0; + for (let i = 0; i <= 3; i++) + for (let c = 0; c <= 3; c++, o++) { + const l = v[e][i] * F[t][c]; + r += a[n[o]][0] * l; + s += a[n[o]][1] * l; + } + p[b] = a.length; + a.push([r, s]); + m[b] = i.length; + const c = new Uint8Array(3); + c[0] = ((y[0] * (u - t) + w[0] * t) / u) | 0; + c[1] = ((y[1] * (u - t) + w[1] * t) / u) | 0; + c[2] = ((y[2] * (u - t) + w[2] * t) / u) | 0; + i.push(c); + } + } + p[0] = n[0]; + m[0] = s[0]; + p[u] = n[3]; + m[u] = s[1]; + p[g * d] = n[12]; + m[g * d] = s[2]; + p[g * d + u] = n[15]; + m[g * d + u] = s[3]; + this.figures[e] = { type: 'lattice', coords: p, colors: m, verticesPerRow: g }; + } + _updateBounds() { + let e = this.coords[0][0], + t = this.coords[0][1], + a = e, + r = t; + for (let i = 1, n = this.coords.length; i < n; i++) { + const n = this.coords[i][0], + s = this.coords[i][1]; + e = e > n ? n : e; + t = t > s ? s : t; + a = a < n ? n : a; + r = r < s ? s : r; + } + this.bounds = [e, t, a, r]; + } + _packData() { + let e, t, a, r; + const i = this.coords, + n = new Float32Array(2 * i.length); + for (e = 0, a = 0, t = i.length; e < t; e++) { + const t = i[e]; + n[a++] = t[0]; + n[a++] = t[1]; + } + this.coords = n; + const s = this.colors, + o = new Uint8Array(3 * s.length); + for (e = 0, a = 0, t = s.length; e < t; e++) { + const t = s[e]; + o[a++] = t[0]; + o[a++] = t[1]; + o[a++] = t[2]; + } + this.colors = o; + const c = this.figures; + for (e = 0, t = c.length; e < t; e++) { + const t = c[e], + i = t.coords, + n = t.colors; + for (a = 0, r = i.length; a < r; a++) { + i[a] *= 2; + n[a] *= 3; + } + } + } + getIR() { + return [ + 'Mesh', + this.shadingType, + this.coords, + this.colors, + this.figures, + this.bounds, + this.bbox, + this.background, + ]; + } + } + class DummyShading extends BaseShading { + getIR() { + return ['Dummy']; + } + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.getXfaFontDict = function getXfaFontDict(e) { + const t = (function getXfaFontWidths(e) { + const t = getXfaFontName(e); + if (!t) return null; + const { baseWidths: a, baseMapping: r, factors: i } = t; + let n; + n = i ? a.map((e, t) => e * i[t]) : a; + let s, + o = -2; + const c = []; + for (const [e, t] of r.map((e, t) => [e, t]).sort(([e], [t]) => e - t)) + if (-1 !== e) + if (e === o + 1) { + s.push(n[t]); + o += 1; + } else { + o = e; + s = [n[t]]; + c.push(e, s); + } + return c; + })(e), + a = new i.Dict(null); + a.set('BaseFont', i.Name.get(e)); + a.set('Type', i.Name.get('Font')); + a.set('Subtype', i.Name.get('CIDFontType2')); + a.set('Encoding', i.Name.get('Identity-H')); + a.set('CIDToGIDMap', i.Name.get('Identity')); + a.set('W', t); + a.set('FirstChar', t[0]); + a.set('LastChar', t.at(-2) + t.at(-1).length - 1); + const r = new i.Dict(null); + a.set('FontDescriptor', r); + const n = new i.Dict(null); + n.set('Ordering', 'Identity'); + n.set('Registry', 'Adobe'); + n.set('Supplement', 0); + a.set('CIDSystemInfo', n); + return a; + }; + t.getXfaFontName = getXfaFontName; + var r = a(52), + i = a(4), + n = a(53), + s = a(54), + o = a(55), + c = a(56), + l = a(3), + h = a(38); + const u = (0, l.getLookupTableFactory)(function (e) { + e['MyriadPro-Regular'] = e['PdfJS-Fallback-Regular'] = { + name: 'LiberationSans-Regular', + factors: o.MyriadProRegularFactors, + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + metrics: o.MyriadProRegularMetrics, + }; + e['MyriadPro-Bold'] = e['PdfJS-Fallback-Bold'] = { + name: 'LiberationSans-Bold', + factors: o.MyriadProBoldFactors, + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + metrics: o.MyriadProBoldMetrics, + }; + e['MyriadPro-It'] = + e['MyriadPro-Italic'] = + e['PdfJS-Fallback-Italic'] = + { + name: 'LiberationSans-Italic', + factors: o.MyriadProItalicFactors, + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + metrics: o.MyriadProItalicMetrics, + }; + e['MyriadPro-BoldIt'] = + e['MyriadPro-BoldItalic'] = + e['PdfJS-Fallback-BoldItalic'] = + { + name: 'LiberationSans-BoldItalic', + factors: o.MyriadProBoldItalicFactors, + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + metrics: o.MyriadProBoldItalicMetrics, + }; + e.ArialMT = + e.Arial = + e['Arial-Regular'] = + { + name: 'LiberationSans-Regular', + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + }; + e['Arial-BoldMT'] = e['Arial-Bold'] = { + name: 'LiberationSans-Bold', + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + }; + e['Arial-ItalicMT'] = e['Arial-Italic'] = { + name: 'LiberationSans-Italic', + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + }; + e['Arial-BoldItalicMT'] = e['Arial-BoldItalic'] = { + name: 'LiberationSans-BoldItalic', + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + }; + e['Calibri-Regular'] = { + name: 'LiberationSans-Regular', + factors: r.CalibriRegularFactors, + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + metrics: r.CalibriRegularMetrics, + }; + e['Calibri-Bold'] = { + name: 'LiberationSans-Bold', + factors: r.CalibriBoldFactors, + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + metrics: r.CalibriBoldMetrics, + }; + e['Calibri-Italic'] = { + name: 'LiberationSans-Italic', + factors: r.CalibriItalicFactors, + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + metrics: r.CalibriItalicMetrics, + }; + e['Calibri-BoldItalic'] = { + name: 'LiberationSans-BoldItalic', + factors: r.CalibriBoldItalicFactors, + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + metrics: r.CalibriBoldItalicMetrics, + }; + e['Segoeui-Regular'] = { + name: 'LiberationSans-Regular', + factors: c.SegoeuiRegularFactors, + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + metrics: c.SegoeuiRegularMetrics, + }; + e['Segoeui-Bold'] = { + name: 'LiberationSans-Bold', + factors: c.SegoeuiBoldFactors, + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + metrics: c.SegoeuiBoldMetrics, + }; + e['Segoeui-Italic'] = { + name: 'LiberationSans-Italic', + factors: c.SegoeuiItalicFactors, + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + metrics: c.SegoeuiItalicMetrics, + }; + e['Segoeui-BoldItalic'] = { + name: 'LiberationSans-BoldItalic', + factors: c.SegoeuiBoldItalicFactors, + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + metrics: c.SegoeuiBoldItalicMetrics, + }; + e['Helvetica-Regular'] = e.Helvetica = { + name: 'LiberationSans-Regular', + factors: n.HelveticaRegularFactors, + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + metrics: n.HelveticaRegularMetrics, + }; + e['Helvetica-Bold'] = { + name: 'LiberationSans-Bold', + factors: n.HelveticaBoldFactors, + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + metrics: n.HelveticaBoldMetrics, + }; + e['Helvetica-Italic'] = { + name: 'LiberationSans-Italic', + factors: n.HelveticaItalicFactors, + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + metrics: n.HelveticaItalicMetrics, + }; + e['Helvetica-BoldItalic'] = { + name: 'LiberationSans-BoldItalic', + factors: n.HelveticaBoldItalicFactors, + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + metrics: n.HelveticaBoldItalicMetrics, + }; + }); + function getXfaFontName(e) { + const t = (0, h.normalizeFontName)(e); + return u()[t]; + } + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CalibriRegularMetrics = + t.CalibriRegularFactors = + t.CalibriItalicMetrics = + t.CalibriItalicFactors = + t.CalibriBoldMetrics = + t.CalibriBoldItalicMetrics = + t.CalibriBoldItalicFactors = + t.CalibriBoldFactors = + void 0; + t.CalibriBoldFactors = [ + 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, + ]; + t.CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 }; + t.CalibriBoldItalicFactors = [ + 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, + ]; + t.CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 }; + t.CalibriItalicFactors = [ + 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, + ]; + t.CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 }; + t.CalibriRegularFactors = [ + 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, + ]; + t.CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.HelveticaRegularMetrics = + t.HelveticaRegularFactors = + t.HelveticaItalicMetrics = + t.HelveticaItalicFactors = + t.HelveticaBoldMetrics = + t.HelveticaBoldItalicMetrics = + t.HelveticaBoldItalicFactors = + t.HelveticaBoldFactors = + void 0; + t.HelveticaBoldFactors = [ + 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, + ]; + t.HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + t.HelveticaBoldItalicFactors = [ + 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, + ]; + t.HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 }; + t.HelveticaItalicFactors = [ + 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, + ]; + t.HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 }; + t.HelveticaRegularFactors = [ + 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, + ]; + t.HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.LiberationSansRegularWidths = + t.LiberationSansRegularMapping = + t.LiberationSansItalicWidths = + t.LiberationSansItalicMapping = + t.LiberationSansBoldWidths = + t.LiberationSansBoldMapping = + t.LiberationSansBoldItalicWidths = + t.LiberationSansBoldItalicMapping = + void 0; + t.LiberationSansBoldWidths = [ + 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, + ]; + t.LiberationSansBoldMapping = [ + -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, + ]; + t.LiberationSansBoldItalicWidths = [ + 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, + ]; + t.LiberationSansBoldItalicMapping = [ + -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, + ]; + t.LiberationSansItalicWidths = [ + 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, + ]; + t.LiberationSansItalicMapping = [ + -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, + ]; + t.LiberationSansRegularWidths = [ + 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, + ]; + t.LiberationSansRegularMapping = [ + -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, + ]; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.MyriadProRegularMetrics = + t.MyriadProRegularFactors = + t.MyriadProItalicMetrics = + t.MyriadProItalicFactors = + t.MyriadProBoldMetrics = + t.MyriadProBoldItalicMetrics = + t.MyriadProBoldItalicFactors = + t.MyriadProBoldFactors = + void 0; + t.MyriadProBoldFactors = [ + 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, + ]; + t.MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + t.MyriadProBoldItalicFactors = [ + 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, + ]; + t.MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + t.MyriadProItalicFactors = [ + 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, + ]; + t.MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + t.MyriadProRegularFactors = [ + 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, + ]; + t.MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.SegoeuiRegularMetrics = + t.SegoeuiRegularFactors = + t.SegoeuiItalicMetrics = + t.SegoeuiItalicFactors = + t.SegoeuiBoldMetrics = + t.SegoeuiBoldItalicMetrics = + t.SegoeuiBoldItalicFactors = + t.SegoeuiBoldFactors = + void 0; + t.SegoeuiBoldFactors = [ + 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, + ]; + t.SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 }; + t.SegoeuiBoldItalicFactors = [ + 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, + ]; + t.SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 }; + t.SegoeuiItalicFactors = [ + 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, + ]; + t.SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 }; + t.SegoeuiRegularFactors = [ + 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, + ]; + t.SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PostScriptEvaluator = t.PostScriptCompiler = t.PDFFunctionFactory = void 0; + t.isPDFFunction = function isPDFFunction(e) { + let t; + if (e instanceof r.Dict) t = e; + else { + if (!(e instanceof s.BaseStream)) return !1; + t = e.dict; + } + return t.has('FunctionType'); + }; + var r = a(4), + i = a(2), + n = a(58), + s = a(5), + o = a(59); + t.PDFFunctionFactory = class PDFFunctionFactory { + constructor({ xref: e, isEvalSupported: t = !0 }) { + this.xref = e; + this.isEvalSupported = !1 !== t; + } + create(e) { + const t = this.getCached(e); + if (t) return t; + const a = PDFFunction.parse({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fn: e instanceof r.Ref ? this.xref.fetch(e) : e, + }); + this._cache(e, a); + return a; + } + createFromArray(e) { + const t = this.getCached(e); + if (t) return t; + const a = PDFFunction.parseArray({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fnObj: e instanceof r.Ref ? this.xref.fetch(e) : e, + }); + this._cache(e, a); + return a; + } + getCached(e) { + let t; + e instanceof r.Ref + ? (t = e) + : e instanceof r.Dict + ? (t = e.objId) + : e instanceof s.BaseStream && (t = e.dict && e.dict.objId); + if (t) { + const e = this._localFunctionCache.getByRef(t); + if (e) return e; + } + return null; + } + _cache(e, t) { + if (!t) + throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.'); + let a; + e instanceof r.Ref + ? (a = e) + : e instanceof r.Dict + ? (a = e.objId) + : e instanceof s.BaseStream && (a = e.dict && e.dict.objId); + a && this._localFunctionCache.set(null, a, t); + } + get _localFunctionCache() { + return (0, i.shadow)(this, '_localFunctionCache', new o.LocalFunctionCache()); + } + }; + function toNumberArray(e) { + if (!Array.isArray(e)) return null; + const t = e.length; + for (let a = 0; a < t; a++) + if ('number' != typeof e[a]) { + const a = new Array(t); + for (let r = 0; r < t; r++) a[r] = +e[r]; + return a; + } + return e; + } + class PDFFunction { + static getSampleArray(e, t, a, r) { + let i, + n, + s = 1; + for (i = 0, n = e.length; i < n; i++) s *= e[i]; + s *= t; + const o = new Array(s); + let c = 0, + l = 0; + const h = 1 / (2 ** a - 1), + u = r.getBytes((s * a + 7) / 8); + let d = 0; + for (i = 0; i < s; i++) { + for (; c < a; ) { + l <<= 8; + l |= u[d++]; + c += 8; + } + c -= a; + o[i] = (l >> c) * h; + l &= (1 << c) - 1; + } + return o; + } + static parse({ xref: e, isEvalSupported: t, fn: a }) { + const r = a.dict || a; + switch (r.get('FunctionType')) { + case 0: + return this.constructSampled({ xref: e, isEvalSupported: t, fn: a, dict: r }); + case 1: + break; + case 2: + return this.constructInterpolated({ xref: e, isEvalSupported: t, dict: r }); + case 3: + return this.constructStiched({ xref: e, isEvalSupported: t, dict: r }); + case 4: + return this.constructPostScript({ xref: e, isEvalSupported: t, fn: a, dict: r }); + } + throw new i.FormatError('Unknown type of function'); + } + static parseArray({ xref: e, isEvalSupported: t, fnObj: a }) { + if (!Array.isArray(a)) return this.parse({ xref: e, isEvalSupported: t, fn: a }); + const r = []; + for (const i of a) + r.push(this.parse({ xref: e, isEvalSupported: t, fn: e.fetchIfRef(i) })); + return function (e, t, a, i) { + for (let n = 0, s = r.length; n < s; n++) r[n](e, t, a, i + n); + }; + } + static constructSampled({ xref: e, isEvalSupported: t, fn: a, dict: r }) { + function toMultiArray(e) { + const t = e.length, + a = []; + let r = 0; + for (let i = 0; i < t; i += 2) a[r++] = [e[i], e[i + 1]]; + return a; + } + function interpolate(e, t, a, r, i) { + return r + ((i - r) / (a - t)) * (e - t); + } + let n = toNumberArray(r.getArray('Domain')), + s = toNumberArray(r.getArray('Range')); + if (!n || !s) throw new i.FormatError('No domain or range'); + const o = n.length / 2, + c = s.length / 2; + n = toMultiArray(n); + s = toMultiArray(s); + const l = toNumberArray(r.getArray('Size')), + h = r.get('BitsPerSample'), + u = r.get('Order') || 1; + 1 !== u && (0, i.info)('No support for cubic spline interpolation: ' + u); + let d = toNumberArray(r.getArray('Encode')); + if (d) d = toMultiArray(d); + else { + d = []; + for (let e = 0; e < o; ++e) d.push([0, l[e] - 1]); + } + let f = toNumberArray(r.getArray('Decode')); + f = f ? toMultiArray(f) : s; + const g = this.getSampleArray(l, c, h, a); + return function constructSampledFn(e, t, a, r) { + const i = 1 << o, + h = new Float64Array(i), + u = new Uint32Array(i); + let p, m; + for (m = 0; m < i; m++) h[m] = 1; + let b = c, + y = 1; + for (p = 0; p < o; ++p) { + const a = n[p][0], + r = n[p][1]; + let s = interpolate(Math.min(Math.max(e[t + p], a), r), a, r, d[p][0], d[p][1]); + const o = l[p]; + s = Math.min(Math.max(s, 0), o - 1); + const c = s < o - 1 ? Math.floor(s) : s - 1, + f = c + 1 - s, + g = s - c, + w = c * b, + S = w + b; + for (m = 0; m < i; m++) + if (m & y) { + h[m] *= g; + u[m] += S; + } else { + h[m] *= f; + u[m] += w; + } + b *= o; + y <<= 1; + } + for (m = 0; m < c; ++m) { + let e = 0; + for (p = 0; p < i; p++) e += g[u[p] + m] * h[p]; + e = interpolate(e, 0, 1, f[m][0], f[m][1]); + a[r + m] = Math.min(Math.max(e, s[m][0]), s[m][1]); + } + }; + } + static constructInterpolated({ xref: e, isEvalSupported: t, dict: a }) { + const r = toNumberArray(a.getArray('C0')) || [0], + i = toNumberArray(a.getArray('C1')) || [1], + n = a.get('N'), + s = []; + for (let e = 0, t = r.length; e < t; ++e) s.push(i[e] - r[e]); + const o = s.length; + return function constructInterpolatedFn(e, t, a, i) { + const c = 1 === n ? e[t] : e[t] ** n; + for (let e = 0; e < o; ++e) a[i + e] = r[e] + c * s[e]; + }; + } + static constructStiched({ xref: e, isEvalSupported: t, dict: a }) { + const r = toNumberArray(a.getArray('Domain')); + if (!r) throw new i.FormatError('No domain'); + if (1 !== r.length / 2) throw new i.FormatError('Bad domain for stiched function'); + const n = []; + for (const r of a.get('Functions')) + n.push(this.parse({ xref: e, isEvalSupported: t, fn: e.fetchIfRef(r) })); + const s = toNumberArray(a.getArray('Bounds')), + o = toNumberArray(a.getArray('Encode')), + c = new Float32Array(1); + return function constructStichedFn(e, t, a, i) { + const l = (function constructStichedFromIRClip(e, t, a) { + e > a ? (e = a) : e < t && (e = t); + return e; + })(e[t], r[0], r[1]), + h = s.length; + let u; + for (u = 0; u < h && !(l < s[u]); ++u); + let d = r[0]; + u > 0 && (d = s[u - 1]); + let f = r[1]; + u < s.length && (f = s[u]); + const g = o[2 * u], + p = o[2 * u + 1]; + c[0] = d === f ? g : g + ((l - d) * (p - g)) / (f - d); + n[u](c, 0, a, i); + }; + } + static constructPostScript({ xref: e, isEvalSupported: t, fn: a, dict: r }) { + const s = toNumberArray(r.getArray('Domain')), + o = toNumberArray(r.getArray('Range')); + if (!s) throw new i.FormatError('No domain.'); + if (!o) throw new i.FormatError('No range.'); + const c = new n.PostScriptLexer(a), + l = new n.PostScriptParser(c).parse(); + if (t && i.FeatureTest.isEvalSupported) { + const e = new PostScriptCompiler().compile(l, s, o); + if (e) return new Function('src', 'srcOffset', 'dest', 'destOffset', e); + } + (0, i.info)('Unable to compile PS function'); + const h = o.length >> 1, + u = s.length >> 1, + d = new PostScriptEvaluator(l), + f = Object.create(null); + let g = 8192; + const p = new Float32Array(u); + return function constructPostScriptFn(e, t, a, r) { + let i, + n, + s = ''; + const c = p; + for (i = 0; i < u; i++) { + n = e[t + i]; + c[i] = n; + s += n + '_'; + } + const l = f[s]; + if (void 0 !== l) { + a.set(l, r); + return; + } + const m = new Float32Array(h), + b = d.execute(c), + y = b.length - h; + for (i = 0; i < h; i++) { + n = b[y + i]; + let e = o[2 * i]; + if (n < e) n = e; + else { + e = o[2 * i + 1]; + n > e && (n = e); + } + m[i] = n; + } + if (g > 0) { + g--; + f[s] = m; + } + a.set(m, r); + }; + } + } + class PostScriptStack { + static MAX_STACK_SIZE = 100; + constructor(e) { + this.stack = e ? Array.from(e) : []; + } + push(e) { + if (this.stack.length >= PostScriptStack.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 >= PostScriptStack.MAX_STACK_SIZE) + throw new Error('PostScript function stack overflow.'); + const t = this.stack; + for (let a = t.length - e, r = e - 1; r >= 0; r--, a++) t.push(t[a]); + } + index(e) { + this.push(this.stack[this.stack.length - e - 1]); + } + roll(e, t) { + const a = this.stack, + r = a.length - e, + i = a.length - 1, + n = r + (t - Math.floor(t / e) * e); + for (let e = r, t = i; e < t; e++, t--) { + const r = a[e]; + a[e] = a[t]; + a[t] = r; + } + for (let e = r, t = n - 1; e < t; e++, t--) { + const r = a[e]; + a[e] = a[t]; + a[t] = r; + } + for (let e = n, t = i; e < t; e++, t--) { + const r = a[e]; + a[e] = a[t]; + a[t] = r; + } + } + } + class PostScriptEvaluator { + constructor(e) { + this.operators = e; + } + execute(e) { + const t = new PostScriptStack(e); + let a = 0; + const r = this.operators, + n = r.length; + let s, o, c; + for (; a < n; ) { + s = r[a++]; + if ('number' != typeof s) + switch (s) { + case 'jz': + c = t.pop(); + o = t.pop(); + o || (a = c); + break; + case 'j': + o = t.pop(); + a = o; + break; + case 'abs': + o = t.pop(); + t.push(Math.abs(o)); + break; + case 'add': + c = t.pop(); + o = t.pop(); + t.push(o + c); + break; + case 'and': + c = t.pop(); + o = t.pop(); + 'boolean' == typeof o && 'boolean' == typeof c + ? t.push(o && c) + : t.push(o & c); + break; + case 'atan': + c = t.pop(); + o = t.pop(); + o = (Math.atan2(o, c) / Math.PI) * 180; + o < 0 && (o += 360); + t.push(o); + break; + case 'bitshift': + c = t.pop(); + o = t.pop(); + o > 0 ? t.push(o << c) : t.push(o >> c); + break; + case 'ceiling': + o = t.pop(); + t.push(Math.ceil(o)); + break; + case 'copy': + o = t.pop(); + t.copy(o); + break; + case 'cos': + o = t.pop(); + t.push(Math.cos(((o % 360) / 180) * Math.PI)); + break; + case 'cvi': + o = 0 | t.pop(); + t.push(o); + break; + case 'cvr': + break; + case 'div': + c = t.pop(); + o = t.pop(); + t.push(o / c); + break; + case 'dup': + t.copy(1); + break; + case 'eq': + c = t.pop(); + o = t.pop(); + t.push(o === c); + break; + case 'exch': + t.roll(2, 1); + break; + case 'exp': + c = t.pop(); + o = t.pop(); + t.push(o ** c); + break; + case 'false': + t.push(!1); + break; + case 'floor': + o = t.pop(); + t.push(Math.floor(o)); + break; + case 'ge': + c = t.pop(); + o = t.pop(); + t.push(o >= c); + break; + case 'gt': + c = t.pop(); + o = t.pop(); + t.push(o > c); + break; + case 'idiv': + c = t.pop(); + o = t.pop(); + t.push((o / c) | 0); + break; + case 'index': + o = t.pop(); + t.index(o); + break; + case 'le': + c = t.pop(); + o = t.pop(); + t.push(o <= c); + break; + case 'ln': + o = t.pop(); + t.push(Math.log(o)); + break; + case 'log': + o = t.pop(); + t.push(Math.log(o) / Math.LN10); + break; + case 'lt': + c = t.pop(); + o = t.pop(); + t.push(o < c); + break; + case 'mod': + c = t.pop(); + o = t.pop(); + t.push(o % c); + break; + case 'mul': + c = t.pop(); + o = t.pop(); + t.push(o * c); + break; + case 'ne': + c = t.pop(); + o = t.pop(); + t.push(o !== c); + break; + case 'neg': + o = t.pop(); + t.push(-o); + break; + case 'not': + o = t.pop(); + 'boolean' == typeof o ? t.push(!o) : t.push(~o); + break; + case 'or': + c = t.pop(); + o = t.pop(); + 'boolean' == typeof o && 'boolean' == typeof c + ? t.push(o || c) + : t.push(o | c); + break; + case 'pop': + t.pop(); + break; + case 'roll': + c = t.pop(); + o = t.pop(); + t.roll(o, c); + break; + case 'round': + o = t.pop(); + t.push(Math.round(o)); + break; + case 'sin': + o = t.pop(); + t.push(Math.sin(((o % 360) / 180) * Math.PI)); + break; + case 'sqrt': + o = t.pop(); + t.push(Math.sqrt(o)); + break; + case 'sub': + c = t.pop(); + o = t.pop(); + t.push(o - c); + break; + case 'true': + t.push(!0); + break; + case 'truncate': + o = t.pop(); + o = o < 0 ? Math.ceil(o) : Math.floor(o); + t.push(o); + break; + case 'xor': + c = t.pop(); + o = t.pop(); + 'boolean' == typeof o && 'boolean' == typeof c + ? t.push(o !== c) + : t.push(o ^ c); + break; + default: + throw new i.FormatError(`Unknown operator ${s}`); + } + else t.push(s); + } + return t.stack; + } + } + t.PostScriptEvaluator = PostScriptEvaluator; + class AstNode { + constructor(e) { + this.type = e; + } + visit(e) { + (0, i.unreachable)('abstract method'); + } + } + class AstArgument extends AstNode { + constructor(e, t, a) { + super('args'); + this.index = e; + this.min = t; + this.max = a; + } + visit(e) { + e.visitArgument(this); + } + } + class AstLiteral extends AstNode { + constructor(e) { + super('literal'); + this.number = e; + this.min = e; + this.max = e; + } + visit(e) { + e.visitLiteral(this); + } + } + class AstBinaryOperation extends AstNode { + constructor(e, t, a, r, i) { + super('binary'); + this.op = e; + this.arg1 = t; + this.arg2 = a; + this.min = r; + this.max = i; + } + visit(e) { + e.visitBinaryOperation(this); + } + } + class AstMin extends AstNode { + constructor(e, t) { + super('max'); + this.arg = e; + this.min = e.min; + this.max = t; + } + visit(e) { + e.visitMin(this); + } + } + class AstVariable extends AstNode { + constructor(e, t, a) { + super('var'); + this.index = e; + this.min = t; + this.max = a; + } + visit(e) { + e.visitVariable(this); + } + } + class AstVariableDefinition extends AstNode { + constructor(e, t) { + super('definition'); + this.variable = e; + this.arg = t; + } + visit(e) { + e.visitVariableDefinition(this); + } + } + class ExpressionBuilderVisitor { + constructor() { + this.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(''); + } + } + function buildAddOperation(e, t) { + return 'literal' === t.type && 0 === t.number + ? e + : 'literal' === e.type && 0 === e.number + ? t + : 'literal' === t.type && 'literal' === e.type + ? new AstLiteral(e.number + t.number) + : new AstBinaryOperation('+', e, t, e.min + t.min, e.max + t.max); + } + function buildMulOperation(e, t) { + if ('literal' === t.type) { + if (0 === t.number) return new AstLiteral(0); + if (1 === t.number) return e; + if ('literal' === e.type) return new AstLiteral(e.number * t.number); + } + if ('literal' === e.type) { + if (0 === e.number) return new AstLiteral(0); + if (1 === e.number) return t; + } + const a = Math.min(e.min * t.min, e.min * t.max, e.max * t.min, e.max * t.max), + r = Math.max(e.min * t.min, e.min * t.max, e.max * t.min, e.max * t.max); + return new AstBinaryOperation('*', e, t, a, r); + } + function buildSubOperation(e, t) { + if ('literal' === t.type) { + if (0 === t.number) return e; + if ('literal' === e.type) return new AstLiteral(e.number - t.number); + } + return 'binary' === t.type && + '-' === t.op && + 'literal' === e.type && + 1 === e.number && + 'literal' === t.arg1.type && + 1 === t.arg1.number + ? t.arg2 + : new AstBinaryOperation('-', e, t, e.min - t.max, e.max - t.min); + } + function buildMinOperation(e, t) { + return e.min >= t ? new AstLiteral(t) : e.max <= t ? e : new AstMin(e, t); + } + class PostScriptCompiler { + compile(e, t, a) { + const r = [], + i = [], + n = t.length >> 1, + s = a.length >> 1; + let o, + c, + l, + h, + u, + d, + f, + g, + p = 0; + for (let e = 0; e < n; e++) r.push(new AstArgument(e, t[2 * e], t[2 * e + 1])); + for (let t = 0, a = e.length; t < a; t++) { + g = e[t]; + if ('number' != typeof g) + switch (g) { + case 'add': + if (r.length < 2) return null; + h = r.pop(); + l = r.pop(); + r.push(buildAddOperation(l, h)); + break; + case 'cvr': + if (r.length < 1) return null; + break; + case 'mul': + if (r.length < 2) return null; + h = r.pop(); + l = r.pop(); + r.push(buildMulOperation(l, h)); + break; + case 'sub': + if (r.length < 2) return null; + h = r.pop(); + l = r.pop(); + r.push(buildSubOperation(l, h)); + break; + case 'exch': + if (r.length < 2) return null; + u = r.pop(); + d = r.pop(); + r.push(u, d); + break; + case 'pop': + if (r.length < 1) return null; + r.pop(); + break; + case 'index': + if (r.length < 1) return null; + l = r.pop(); + if ('literal' !== l.type) return null; + o = l.number; + if (o < 0 || !Number.isInteger(o) || r.length < o) return null; + u = r[r.length - o - 1]; + if ('literal' === u.type || 'var' === u.type) { + r.push(u); + break; + } + f = new AstVariable(p++, u.min, u.max); + r[r.length - o - 1] = f; + r.push(f); + i.push(new AstVariableDefinition(f, u)); + break; + case 'dup': + if (r.length < 1) return null; + if ( + 'number' == typeof e[t + 1] && + 'gt' === e[t + 2] && + e[t + 3] === t + 7 && + 'jz' === e[t + 4] && + 'pop' === e[t + 5] && + e[t + 6] === e[t + 1] + ) { + l = r.pop(); + r.push(buildMinOperation(l, e[t + 1])); + t += 6; + break; + } + u = r.at(-1); + if ('literal' === u.type || 'var' === u.type) { + r.push(u); + break; + } + f = new AstVariable(p++, u.min, u.max); + r[r.length - 1] = f; + r.push(f); + i.push(new AstVariableDefinition(f, u)); + break; + case 'roll': + if (r.length < 2) return null; + h = r.pop(); + l = r.pop(); + if ('literal' !== h.type || 'literal' !== l.type) return null; + c = h.number; + o = l.number; + if (o <= 0 || !Number.isInteger(o) || !Number.isInteger(c) || r.length < o) + return null; + c = ((c % o) + o) % o; + if (0 === c) break; + r.push(...r.splice(r.length - o, o - c)); + break; + default: + return null; + } + else r.push(new AstLiteral(g)); + } + if (r.length !== s) return null; + const m = []; + for (const e of i) { + const t = new ExpressionBuilderVisitor(); + e.visit(t); + m.push(t.toString()); + } + for (let e = 0, t = r.length; e < t; e++) { + const t = r[e], + i = new ExpressionBuilderVisitor(); + t.visit(i); + const n = a[2 * e], + s = a[2 * e + 1], + o = [i.toString()]; + if (n > t.min) { + o.unshift('Math.max(', n, ', '); + o.push(')'); + } + if (s < t.max) { + o.unshift('Math.min(', s, ', '); + o.push(')'); + } + o.unshift('dest[destOffset + ', e, '] = '); + o.push(';'); + m.push(o.join('')); + } + return m.join('\n'); + } + } + t.PostScriptCompiler = PostScriptCompiler; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PostScriptParser = t.PostScriptLexer = void 0; + var r = a(2), + i = a(4), + n = a(3); + t.PostScriptParser = class 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) { + if (this.token.type === e) { + this.nextToken(); + return !0; + } + return !1; + } + expect(e) { + if (this.accept(e)) return !0; + throw new r.FormatError(`Unexpected symbol: found ${this.token.type} expected ${e}.`); + } + parse() { + this.nextToken(); + this.expect(s.LBRACE); + this.parseBlock(); + this.expect(s.RBRACE); + return this.operators; + } + parseBlock() { + for (;;) + if (this.accept(s.NUMBER)) this.operators.push(this.prev.value); + else if (this.accept(s.OPERATOR)) this.operators.push(this.prev.value); + else { + if (!this.accept(s.LBRACE)) return; + this.parseCondition(); + } + } + parseCondition() { + const e = this.operators.length; + this.operators.push(null, null); + this.parseBlock(); + this.expect(s.RBRACE); + if (this.accept(s.IF)) { + this.operators[e] = this.operators.length; + this.operators[e + 1] = 'jz'; + } else { + if (!this.accept(s.LBRACE)) + throw new r.FormatError('PS Function: error parsing conditional.'); + { + const t = this.operators.length; + this.operators.push(null, null); + const a = this.operators.length; + this.parseBlock(); + this.expect(s.RBRACE); + this.expect(s.IFELSE); + this.operators[t] = this.operators.length; + this.operators[t + 1] = 'j'; + this.operators[e] = a; + this.operators[e + 1] = 'jz'; + } + } + } + }; + const s = { LBRACE: 0, RBRACE: 1, NUMBER: 2, OPERATOR: 3, IF: 4, IFELSE: 5 }; + class PostScriptToken { + static get opCache() { + return (0, r.shadow)(this, 'opCache', Object.create(null)); + } + constructor(e, t) { + this.type = e; + this.value = t; + } + static getOperator(e) { + return (PostScriptToken.opCache[e] ||= new PostScriptToken(s.OPERATOR, e)); + } + static get LBRACE() { + return (0, r.shadow)(this, 'LBRACE', new PostScriptToken(s.LBRACE, '{')); + } + static get RBRACE() { + return (0, r.shadow)(this, 'RBRACE', new PostScriptToken(s.RBRACE, '}')); + } + static get IF() { + return (0, r.shadow)(this, 'IF', new PostScriptToken(s.IF, 'IF')); + } + static get IFELSE() { + return (0, r.shadow)(this, 'IFELSE', new PostScriptToken(s.IFELSE, 'IFELSE')); + } + } + t.PostScriptLexer = class PostScriptLexer { + constructor(e) { + this.stream = e; + this.nextChar(); + this.strBuf = []; + } + nextChar() { + return (this.currentChar = this.stream.getByte()); + } + getToken() { + let e = !1, + t = this.currentChar; + for (;;) { + if (t < 0) return i.EOF; + if (e) (10 !== t && 13 !== t) || (e = !1); + else if (37 === t) e = !0; + else if (!(0, n.isWhiteSpace)(t)) break; + t = this.nextChar(); + } + switch (0 | t) { + 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 PostScriptToken(s.NUMBER, this.getNumber()); + case 123: + this.nextChar(); + return PostScriptToken.LBRACE; + case 125: + this.nextChar(); + return PostScriptToken.RBRACE; + } + const a = this.strBuf; + a.length = 0; + a[0] = String.fromCharCode(t); + for ( + ; + (t = this.nextChar()) >= 0 && ((t >= 65 && t <= 90) || (t >= 97 && t <= 122)); + + ) + a.push(String.fromCharCode(t)); + const r = a.join(''); + switch (r.toLowerCase()) { + case 'if': + return PostScriptToken.IF; + case 'ifelse': + return PostScriptToken.IFELSE; + default: + return PostScriptToken.getOperator(r); + } + } + getNumber() { + let e = this.currentChar; + const t = this.strBuf; + t.length = 0; + t[0] = String.fromCharCode(e); + for (; (e = this.nextChar()) >= 0 && ((e >= 48 && e <= 57) || 45 === e || 46 === e); ) + t.push(String.fromCharCode(e)); + const a = parseFloat(t.join('')); + if (isNaN(a)) throw new r.FormatError(`Invalid floating point number: ${a}`); + return a; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.RegionalImageCache = + t.LocalTilingPatternCache = + t.LocalImageCache = + t.LocalGStateCache = + t.LocalFunctionCache = + t.LocalColorSpaceCache = + t.GlobalImageCache = + void 0; + var r = a(2), + i = a(4); + class BaseLocalCache { + constructor(e) { + this.constructor === BaseLocalCache && + (0, r.unreachable)('Cannot initialize BaseLocalCache.'); + this._onlyRefs = !0 === (e && e.onlyRefs); + if (!this._onlyRefs) { + this._nameRefMap = new Map(); + this._imageMap = new Map(); + } + this._imageCache = new i.RefSetCache(); + } + getByName(e) { + this._onlyRefs && (0, r.unreachable)('Should not call `getByName` method.'); + const t = this._nameRefMap.get(e); + return t ? this.getByRef(t) : this._imageMap.get(e) || null; + } + getByRef(e) { + return this._imageCache.get(e) || null; + } + set(e, t, a) { + (0, r.unreachable)('Abstract method `set` called.'); + } + } + t.LocalImageCache = class LocalImageCache extends BaseLocalCache { + set(e, t = null, a) { + if ('string' != typeof e) + throw new Error('LocalImageCache.set - expected "name" argument.'); + if (t) { + if (this._imageCache.has(t)) return; + this._nameRefMap.set(e, t); + this._imageCache.put(t, a); + } else this._imageMap.has(e) || this._imageMap.set(e, a); + } + }; + t.LocalColorSpaceCache = class LocalColorSpaceCache extends BaseLocalCache { + set(e = null, t = null, a) { + if ('string' != typeof e && !t) + throw new Error( + 'LocalColorSpaceCache.set - expected "name" and/or "ref" argument.', + ); + if (t) { + if (this._imageCache.has(t)) return; + null !== e && this._nameRefMap.set(e, t); + this._imageCache.put(t, a); + } else this._imageMap.has(e) || this._imageMap.set(e, a); + } + }; + t.LocalFunctionCache = class LocalFunctionCache extends BaseLocalCache { + constructor(e) { + super({ onlyRefs: !0 }); + } + set(e = null, t, a) { + if (!t) throw new Error('LocalFunctionCache.set - expected "ref" argument.'); + this._imageCache.has(t) || this._imageCache.put(t, a); + } + }; + t.LocalGStateCache = class LocalGStateCache extends BaseLocalCache { + set(e, t = null, a) { + if ('string' != typeof e) + throw new Error('LocalGStateCache.set - expected "name" argument.'); + if (t) { + if (this._imageCache.has(t)) return; + this._nameRefMap.set(e, t); + this._imageCache.put(t, a); + } else this._imageMap.has(e) || this._imageMap.set(e, a); + } + }; + t.LocalTilingPatternCache = class LocalTilingPatternCache extends BaseLocalCache { + constructor(e) { + super({ onlyRefs: !0 }); + } + set(e = null, t, a) { + if (!t) throw new Error('LocalTilingPatternCache.set - expected "ref" argument.'); + this._imageCache.has(t) || this._imageCache.put(t, a); + } + }; + t.RegionalImageCache = class RegionalImageCache extends BaseLocalCache { + constructor(e) { + super({ onlyRefs: !0 }); + } + set(e = null, t, a) { + if (!t) throw new Error('RegionalImageCache.set - expected "ref" argument.'); + this._imageCache.has(t) || this._imageCache.put(t, a); + } + }; + class GlobalImageCache { + static NUM_PAGES_THRESHOLD = 2; + static MIN_IMAGES_TO_CACHE = 10; + static MAX_BYTE_SIZE = 5 * r.MAX_IMAGE_SIZE_TO_CACHE; + constructor() { + this._refCache = new i.RefSetCache(); + this._imageCache = new i.RefSetCache(); + } + get _byteSize() { + let e = 0; + for (const t of this._imageCache) e += t.byteSize; + return e; + } + get _cacheLimitReached() { + return ( + !(this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) && + !(this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) + ); + } + shouldCache(e, t) { + let a = this._refCache.get(e); + if (!a) { + a = new Set(); + this._refCache.put(e, a); + } + a.add(t); + return ( + !(a.size < GlobalImageCache.NUM_PAGES_THRESHOLD) && + !(!this._imageCache.has(e) && this._cacheLimitReached) + ); + } + addByteSize(e, t) { + const a = this._imageCache.get(e); + a && (a.byteSize || (a.byteSize = t)); + } + getData(e, t) { + const a = this._refCache.get(e); + if (!a) return null; + if (a.size < GlobalImageCache.NUM_PAGES_THRESHOLD) return null; + const r = this._imageCache.get(e); + if (!r) return null; + a.add(t); + return r; + } + setData(e, t) { + if (!this._refCache.has(e)) + throw new Error( + 'GlobalImageCache.setData - expected "shouldCache" to have been called.', + ); + this._imageCache.has(e) || + (this._cacheLimitReached + ? (0, r.warn)('GlobalImageCache.setData - cache limit reached.') + : this._imageCache.put(e, t)); + } + clear(e = !1) { + e || this._refCache.clear(); + this._imageCache.clear(); + } + } + t.GlobalImageCache = GlobalImageCache; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.bidi = function bidi(e, t = -1, a = !1) { + let c = !0; + const l = e.length; + if (0 === l || a) return createBidiText(e, c, a); + s.length = l; + o.length = l; + let h, + u, + d = 0; + for (h = 0; h < l; ++h) { + s[h] = e.charAt(h); + const t = e.charCodeAt(h); + let a = 'L'; + if (t <= 255) a = i[t]; + else if (1424 <= t && t <= 1524) a = 'R'; + else if (1536 <= t && t <= 1791) { + a = n[255 & t]; + a || (0, r.warn)('Bidi: invalid Unicode character ' + t.toString(16)); + } else + ((1792 <= t && t <= 2220) || + (64336 <= t && t <= 65023) || + (65136 <= t && t <= 65279)) && + (a = 'AL'); + ('R' !== a && 'AL' !== a && 'AN' !== a) || d++; + o[h] = a; + } + if (0 === d) { + c = !0; + return createBidiText(e, c); + } + if (-1 === t) + if (d / l < 0.3 && l > 4) { + c = !0; + t = 0; + } else { + c = !1; + t = 1; + } + const f = []; + for (h = 0; h < l; ++h) f[h] = t; + const g = isOdd(t) ? 'R' : 'L', + p = g, + m = p; + let b, + y = p; + for (h = 0; h < l; ++h) 'NSM' === o[h] ? (o[h] = y) : (y = o[h]); + y = p; + for (h = 0; h < l; ++h) { + b = o[h]; + 'EN' === b + ? (o[h] = 'AL' === y ? 'AN' : 'EN') + : ('R' !== b && 'L' !== b && 'AL' !== b) || (y = b); + } + for (h = 0; h < l; ++h) { + b = o[h]; + 'AL' === b && (o[h] = 'R'); + } + for (h = 1; h < l - 1; ++h) { + 'ES' === o[h] && 'EN' === o[h - 1] && 'EN' === o[h + 1] && (o[h] = 'EN'); + 'CS' !== o[h] || + ('EN' !== o[h - 1] && 'AN' !== o[h - 1]) || + o[h + 1] !== o[h - 1] || + (o[h] = o[h - 1]); + } + for (h = 0; h < l; ++h) + if ('EN' === o[h]) { + for (let e = h - 1; e >= 0 && 'ET' === o[e]; --e) o[e] = 'EN'; + for (let e = h + 1; e < l && 'ET' === o[e]; ++e) o[e] = 'EN'; + } + for (h = 0; h < l; ++h) { + b = o[h]; + ('WS' !== b && 'ES' !== b && 'ET' !== b && 'CS' !== b) || (o[h] = 'ON'); + } + y = p; + for (h = 0; h < l; ++h) { + b = o[h]; + 'EN' === b ? (o[h] = 'L' === y ? 'L' : 'EN') : ('R' !== b && 'L' !== b) || (y = b); + } + for (h = 0; h < l; ++h) + if ('ON' === o[h]) { + const e = findUnequal(o, h + 1, 'ON'); + let t = p; + h > 0 && (t = o[h - 1]); + let a = m; + e + 1 < l && (a = o[e + 1]); + 'L' !== t && (t = 'R'); + 'L' !== a && (a = 'R'); + t === a && setValues(o, h, e, t); + h = e - 1; + } + for (h = 0; h < l; ++h) 'ON' === o[h] && (o[h] = g); + for (h = 0; h < l; ++h) { + b = o[h]; + isEven(f[h]) + ? 'R' === b + ? (f[h] += 1) + : ('AN' !== b && 'EN' !== b) || (f[h] += 2) + : ('L' !== b && 'AN' !== b && 'EN' !== b) || (f[h] += 1); + } + let w, + S = -1, + x = 99; + for (h = 0, u = f.length; h < u; ++h) { + w = f[h]; + S < w && (S = w); + x > w && isOdd(w) && (x = w); + } + for (w = S; w >= x; --w) { + let e = -1; + for (h = 0, u = f.length; h < u; ++h) + if (f[h] < w) { + if (e >= 0) { + reverseValues(s, e, h); + e = -1; + } + } else e < 0 && (e = h); + e >= 0 && reverseValues(s, e, f.length); + } + for (h = 0, u = s.length; h < u; ++h) { + const e = s[h]; + ('<' !== e && '>' !== e) || (s[h] = ''); + } + return createBidiText(s.join(''), c); + }; + var r = a(2); + const i = [ + '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', + ], + n = [ + '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', + ]; + function isOdd(e) { + return 0 != (1 & e); + } + function isEven(e) { + return 0 == (1 & e); + } + function findUnequal(e, t, a) { + let r, i; + for (r = t, i = e.length; r < i; ++r) if (e[r] !== a) return r; + return r; + } + function setValues(e, t, a, r) { + for (let i = t; i < a; ++i) e[i] = r; + } + function reverseValues(e, t, a) { + for (let r = t, i = a - 1; r < i; ++r, --i) { + const t = e[r]; + e[r] = e[i]; + e[i] = t; + } + } + function createBidiText(e, t, a = !1) { + let r = 'ltr'; + a ? (r = 'ttb') : t || (r = 'rtl'); + return { str: e, dir: r }; + } + const s = [], + o = []; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ImageResizer = void 0; + var r = a(2); + class ImageResizer { + constructor(e, t) { + this._imgData = e; + this._isMask = t; + } + static needsToBeResized(e, t) { + if (e <= this._goodSquareLength && t <= this._goodSquareLength) return !1; + const { MAX_DIM: a } = this; + if (e > a || t > a) return !0; + const r = e * t; + if (this._hasMaxArea) return r > this.MAX_AREA; + if (r < this._goodSquareLength ** 2) return !1; + if (this._areGoodDims(e, t)) { + this._goodSquareLength = Math.max( + this._goodSquareLength, + Math.floor(Math.sqrt(e * t)), + ); + return !1; + } + this._goodSquareLength = this._guessMax(this._goodSquareLength, a, 128, 0); + return r > (this.MAX_AREA = this._goodSquareLength ** 2); + } + static get MAX_DIM() { + return (0, r.shadow)(this, 'MAX_DIM', this._guessMax(2048, 65537, 0, 1)); + } + static get MAX_AREA() { + this._hasMaxArea = !0; + return (0, r.shadow)( + this, + 'MAX_AREA', + this._guessMax(ImageResizer._goodSquareLength, this.MAX_DIM, 128, 0) ** 2, + ); + } + static set MAX_AREA(e) { + if (e >= 0) { + this._hasMaxArea = !0; + (0, r.shadow)(this, 'MAX_AREA', e); + } + } + static setMaxArea(e) { + this._hasMaxArea || (this.MAX_AREA = e >> 2); + } + static _areGoodDims(e, t) { + try { + const a = new OffscreenCanvas(e, t), + r = a.getContext('2d'); + r.fillRect(0, 0, 1, 1); + const i = r.getImageData(0, 0, 1, 1).data[3]; + a.width = a.height = 1; + return 0 !== i; + } catch (e) { + return !1; + } + } + static _guessMax(e, t, a, r) { + for (; e + a + 1 < t; ) { + const a = Math.floor((e + t) / 2), + i = r || a; + this._areGoodDims(a, i) ? (e = a) : (t = a); + } + return e; + } + static async createImage(e, t = !1) { + return new ImageResizer(e, t)._createImage(); + } + async _createImage() { + const e = this._encodeBMP(), + t = new Blob([e.buffer], { type: 'image/bmp' }), + a = createImageBitmap(t), + { MAX_AREA: r, MAX_DIM: i } = ImageResizer, + { _imgData: n } = this, + { width: s, height: o } = n, + c = Math.max(s / i, o / i, Math.sqrt((s * o) / r)), + l = Math.max(c, 2), + h = Math.round(10 * (c + 1.25)) / 10 / l, + u = Math.floor(Math.log2(h)), + d = new Array(u + 2).fill(2); + d[0] = l; + d.splice(-1, 1, h / (1 << u)); + let f = s, + g = o, + p = await a; + for (const e of d) { + const t = f, + a = g; + f = Math.floor(f / e) - 1; + g = Math.floor(g / e) - 1; + const r = new OffscreenCanvas(f, g); + r.getContext('2d').drawImage(p, 0, 0, t, a, 0, 0, f, g); + p = r.transferToImageBitmap(); + } + n.data = null; + n.bitmap = p; + n.width = f; + n.height = g; + return n; + } + _encodeBMP() { + const { width: e, height: t, kind: a } = this._imgData; + let i, + n = this._imgData.data, + s = new Uint8Array(0), + o = s, + c = 0; + switch (a) { + case r.ImageKind.GRAYSCALE_1BPP: { + i = 1; + s = new Uint8Array( + this._isMask + ? [255, 255, 255, 255, 0, 0, 0, 0] + : [0, 0, 0, 0, 255, 255, 255, 255], + ); + const a = (e + 7) >> 3, + r = (a + 3) & -4; + if (a !== r) { + const e = new Uint8Array(r * t); + let i = 0; + for (let s = 0, o = t * a; s < o; s += a, i += r) + e.set(n.subarray(s, s + a), i); + n = e; + } + break; + } + case r.ImageKind.RGB_24BPP: + i = 24; + if (3 & e) { + const a = 3 * e, + r = (a + 3) & -4, + i = r - a, + s = new Uint8Array(r * t); + let o = 0; + for (let e = 0, r = t * a; e < r; e += a) { + const t = n.subarray(e, e + a); + for (let e = 0; e < a; e += 3) { + s[o++] = t[e + 2]; + s[o++] = t[e + 1]; + s[o++] = t[e]; + } + o += i; + } + n = s; + } else + for (let e = 0, t = n.length; e < t; e += 3) { + const t = n[e]; + n[e] = n[e + 2]; + n[e + 2] = t; + } + break; + case r.ImageKind.RGBA_32BPP: + i = 32; + c = 3; + o = new Uint8Array(68); + const a = new DataView(o.buffer); + if (r.FeatureTest.isLittleEndian) { + a.setUint32(0, 255, !0); + a.setUint32(4, 65280, !0); + a.setUint32(8, 16711680, !0); + a.setUint32(12, 4278190080, !0); + } else { + a.setUint32(0, 4278190080, !0); + a.setUint32(4, 16711680, !0); + a.setUint32(8, 65280, !0); + a.setUint32(12, 255, !0); + } + break; + default: + throw new Error('invalid format'); + } + let l = 0; + const h = 40 + o.length, + u = 14 + h + s.length + n.length, + d = new Uint8Array(u), + f = new DataView(d.buffer); + f.setUint16(l, 19778, !0); + l += 2; + f.setUint32(l, u, !0); + l += 4; + f.setUint32(l, 0, !0); + l += 4; + f.setUint32(l, 14 + h + s.length, !0); + l += 4; + f.setUint32(l, h, !0); + l += 4; + f.setInt32(l, e, !0); + l += 4; + f.setInt32(l, -t, !0); + l += 4; + f.setUint16(l, 1, !0); + l += 2; + f.setUint16(l, i, !0); + l += 2; + f.setUint32(l, c, !0); + l += 4; + f.setUint32(l, 0, !0); + l += 4; + f.setInt32(l, 0, !0); + l += 4; + f.setInt32(l, 0, !0); + l += 4; + f.setUint32(l, s.length / 4, !0); + l += 4; + f.setUint32(l, 0, !0); + l += 4; + d.set(o, l); + l += o.length; + d.set(s, l); + l += s.length; + d.set(n, l); + return d; + } + } + t.ImageResizer = ImageResizer; + ImageResizer._goodSquareLength = 2048; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.MurmurHash3_64 = void 0; + var r = a(2); + const i = 3285377520, + n = 4294901760, + s = 65535; + t.MurmurHash3_64 = class MurmurHash3_64 { + constructor(e) { + this.h1 = e ? 4294967295 & e : i; + this.h2 = e ? 4294967295 & e : i; + } + update(e) { + let t, a; + if ('string' == typeof e) { + t = new Uint8Array(2 * e.length); + a = 0; + for (let r = 0, i = e.length; r < i; r++) { + const i = e.charCodeAt(r); + if (i <= 255) t[a++] = i; + else { + t[a++] = i >>> 8; + t[a++] = 255 & i; + } + } + } else { + if (!(0, r.isArrayBuffer)(e)) + throw new Error( + 'Wrong data format in MurmurHash3_64_update. Input must be a string or array.', + ); + t = e.slice(); + a = t.byteLength; + } + const i = a >> 2, + o = a - 4 * i, + c = new Uint32Array(t.buffer, 0, i); + let l = 0, + h = 0, + u = this.h1, + d = this.h2; + const f = 3432918353, + g = 461845907, + p = 11601, + m = 13715; + for (let e = 0; e < i; e++) + if (1 & e) { + l = c[e]; + l = ((l * f) & n) | ((l * p) & s); + l = (l << 15) | (l >>> 17); + l = ((l * g) & n) | ((l * m) & s); + u ^= l; + u = (u << 13) | (u >>> 19); + u = 5 * u + 3864292196; + } else { + h = c[e]; + h = ((h * f) & n) | ((h * p) & s); + h = (h << 15) | (h >>> 17); + h = ((h * g) & n) | ((h * m) & s); + d ^= h; + d = (d << 13) | (d >>> 19); + d = 5 * d + 3864292196; + } + l = 0; + switch (o) { + case 3: + l ^= t[4 * i + 2] << 16; + case 2: + l ^= t[4 * i + 1] << 8; + case 1: + l ^= t[4 * i]; + l = ((l * f) & n) | ((l * p) & s); + l = (l << 15) | (l >>> 17); + l = ((l * g) & n) | ((l * m) & s); + 1 & i ? (u ^= l) : (d ^= l); + } + this.h1 = u; + this.h2 = d; + } + hexdigest() { + let e = this.h1, + t = this.h2; + e ^= t >>> 1; + e = ((3981806797 * e) & n) | ((36045 * e) & s); + t = ((4283543511 * t) & n) | (((2950163797 * ((t << 16) | (e >>> 16))) & n) >>> 16); + e ^= t >>> 1; + e = ((444984403 * e) & n) | ((60499 * e) & s); + t = ((3301882366 * t) & n) | (((3120437893 * ((t << 16) | (e >>> 16))) & n) >>> 16); + e ^= t >>> 1; + return ( + (e >>> 0).toString(16).padStart(8, '0') + (t >>> 0).toString(16).padStart(8, '0') + ); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.OperatorList = void 0; + var r = a(2); + function addState(e, t, a, r, i) { + let n = e; + for (let e = 0, a = t.length - 1; e < a; e++) { + const a = t[e]; + n = n[a] ||= []; + } + n[t.at(-1)] = { checkFn: a, iterateFn: r, processFn: i }; + } + const i = []; + addState( + i, + [r.OPS.save, r.OPS.transform, r.OPS.paintInlineImageXObject, r.OPS.restore], + null, + function iterateInlineImageGroup(e, t) { + const a = e.fnArray, + i = (t - (e.iCurr - 3)) % 4; + switch (i) { + case 0: + return a[t] === r.OPS.save; + case 1: + return a[t] === r.OPS.transform; + case 2: + return a[t] === r.OPS.paintInlineImageXObject; + case 3: + return a[t] === r.OPS.restore; + } + throw new Error(`iterateInlineImageGroup - invalid pos: ${i}`); + }, + function foundInlineImageGroup(e, t) { + const a = e.fnArray, + i = e.argsArray, + n = e.iCurr, + s = n - 3, + o = n - 2, + c = n - 1, + l = Math.min(Math.floor((t - s) / 4), 200); + if (l < 10) return t - ((t - s) % 4); + let h = 0; + const u = []; + let d = 0, + f = 1, + g = 1; + for (let e = 0; e < l; e++) { + const t = i[o + (e << 2)], + a = i[c + (e << 2)][0]; + if (f + a.width > 1e3) { + h = Math.max(h, f); + g += d + 2; + f = 0; + d = 0; + } + u.push({ transform: t, x: f, y: g, w: a.width, h: a.height }); + f += a.width + 2; + d = Math.max(d, a.height); + } + const p = Math.max(h, f) + 1, + m = g + d + 1, + b = new Uint8Array(p * m * 4), + y = p << 2; + for (let e = 0; e < l; e++) { + const t = i[c + (e << 2)][0].data, + a = u[e].w << 2; + let r = 0, + n = (u[e].x + u[e].y * p) << 2; + b.set(t.subarray(0, a), n - y); + for (let i = 0, s = u[e].h; i < s; i++) { + b.set(t.subarray(r, r + a), n); + r += a; + n += y; + } + b.set(t.subarray(r - a, r), n); + for (; n >= 0; ) { + t[n - 4] = t[n]; + t[n - 3] = t[n + 1]; + t[n - 2] = t[n + 2]; + t[n - 1] = t[n + 3]; + t[n + a] = t[n + a - 4]; + t[n + a + 1] = t[n + a - 3]; + t[n + a + 2] = t[n + a - 2]; + t[n + a + 3] = t[n + a - 1]; + n -= y; + } + } + const w = { width: p, height: m }; + if (e.isOffscreenCanvasSupported) { + const e = new OffscreenCanvas(p, m); + e.getContext('2d').putImageData( + new ImageData(new Uint8ClampedArray(b.buffer), p, m), + 0, + 0, + ); + w.bitmap = e.transferToImageBitmap(); + w.data = null; + } else { + w.kind = r.ImageKind.RGBA_32BPP; + w.data = b; + } + a.splice(s, 4 * l, r.OPS.paintInlineImageXObjectGroup); + i.splice(s, 4 * l, [w, u]); + return s + 1; + }, + ); + addState( + i, + [r.OPS.save, r.OPS.transform, r.OPS.paintImageMaskXObject, r.OPS.restore], + null, + function iterateImageMaskGroup(e, t) { + const a = e.fnArray, + i = (t - (e.iCurr - 3)) % 4; + switch (i) { + case 0: + return a[t] === r.OPS.save; + case 1: + return a[t] === r.OPS.transform; + case 2: + return a[t] === r.OPS.paintImageMaskXObject; + case 3: + return a[t] === r.OPS.restore; + } + throw new Error(`iterateImageMaskGroup - invalid pos: ${i}`); + }, + function foundImageMaskGroup(e, t) { + const a = e.fnArray, + i = e.argsArray, + n = e.iCurr, + s = n - 3, + o = n - 2, + c = n - 1; + let l = Math.floor((t - s) / 4); + if (l < 10) return t - ((t - s) % 4); + let h, + u, + d = !1; + const f = i[c][0], + g = i[o][0], + p = i[o][1], + m = i[o][2], + b = i[o][3]; + if (p === m) { + d = !0; + h = o + 4; + let e = c + 4; + for (let t = 1; t < l; t++, h += 4, e += 4) { + u = i[h]; + if (i[e][0] !== f || u[0] !== g || u[1] !== p || u[2] !== m || u[3] !== b) { + t < 10 ? (d = !1) : (l = t); + break; + } + } + } + if (d) { + l = Math.min(l, 1e3); + const e = new Float32Array(2 * l); + h = o; + for (let t = 0; t < l; t++, h += 4) { + u = i[h]; + e[t << 1] = u[4]; + e[1 + (t << 1)] = u[5]; + } + a.splice(s, 4 * l, r.OPS.paintImageMaskXObjectRepeat); + i.splice(s, 4 * l, [f, g, p, m, b, e]); + } else { + l = Math.min(l, 100); + const e = []; + for (let t = 0; t < l; t++) { + u = i[o + (t << 2)]; + const a = i[c + (t << 2)][0]; + e.push({ + data: a.data, + width: a.width, + height: a.height, + interpolate: a.interpolate, + count: a.count, + transform: u, + }); + } + a.splice(s, 4 * l, r.OPS.paintImageMaskXObjectGroup); + i.splice(s, 4 * l, [e]); + } + return s + 1; + }, + ); + addState( + i, + [r.OPS.save, r.OPS.transform, r.OPS.paintImageXObject, r.OPS.restore], + function (e) { + const t = e.argsArray, + a = e.iCurr - 2; + return 0 === t[a][1] && 0 === t[a][2]; + }, + function iterateImageGroup(e, t) { + const a = e.fnArray, + i = e.argsArray, + n = (t - (e.iCurr - 3)) % 4; + switch (n) { + case 0: + return a[t] === r.OPS.save; + case 1: + if (a[t] !== r.OPS.transform) return !1; + const n = e.iCurr - 2, + s = i[n][0], + o = i[n][3]; + return i[t][0] === s && 0 === i[t][1] && 0 === i[t][2] && i[t][3] === o; + case 2: + if (a[t] !== r.OPS.paintImageXObject) return !1; + const c = i[e.iCurr - 1][0]; + return i[t][0] === c; + case 3: + return a[t] === r.OPS.restore; + } + throw new Error(`iterateImageGroup - invalid pos: ${n}`); + }, + function (e, t) { + const a = e.fnArray, + i = e.argsArray, + n = e.iCurr, + s = n - 3, + o = n - 2, + c = i[n - 1][0], + l = i[o][0], + h = i[o][3], + u = Math.min(Math.floor((t - s) / 4), 1e3); + if (u < 3) return t - ((t - s) % 4); + const d = new Float32Array(2 * u); + let f = o; + for (let e = 0; e < u; e++, f += 4) { + const t = i[f]; + d[e << 1] = t[4]; + d[1 + (e << 1)] = t[5]; + } + const g = [c, l, h, d]; + a.splice(s, 4 * u, r.OPS.paintImageXObjectRepeat); + i.splice(s, 4 * u, g); + return s + 1; + }, + ); + addState( + i, + [r.OPS.beginText, r.OPS.setFont, r.OPS.setTextMatrix, r.OPS.showText, r.OPS.endText], + null, + function iterateShowTextGroup(e, t) { + const a = e.fnArray, + i = e.argsArray, + n = (t - (e.iCurr - 4)) % 5; + switch (n) { + case 0: + return a[t] === r.OPS.beginText; + case 1: + return a[t] === r.OPS.setFont; + case 2: + return a[t] === r.OPS.setTextMatrix; + case 3: + if (a[t] !== r.OPS.showText) return !1; + const n = e.iCurr - 3, + s = i[n][0], + o = i[n][1]; + return i[t][0] === s && i[t][1] === o; + case 4: + return a[t] === r.OPS.endText; + } + throw new Error(`iterateShowTextGroup - invalid pos: ${n}`); + }, + function (e, t) { + const a = e.fnArray, + r = e.argsArray, + i = e.iCurr, + n = i - 4, + s = i - 3, + o = i - 2, + c = i - 1, + l = i, + h = r[s][0], + u = r[s][1]; + let d = Math.min(Math.floor((t - n) / 5), 1e3); + if (d < 3) return t - ((t - n) % 5); + let f = n; + if ( + n >= 4 && + a[n - 4] === a[s] && + a[n - 3] === a[o] && + a[n - 2] === a[c] && + a[n - 1] === a[l] && + r[n - 4][0] === h && + r[n - 4][1] === u + ) { + d++; + f -= 5; + } + let g = f + 4; + for (let e = 1; e < d; e++) { + a.splice(g, 3); + r.splice(g, 3); + g += 2; + } + return g + 1; + }, + ); + class NullOptimizer { + constructor(e) { + this.queue = e; + } + _optimize() {} + push(e, t) { + this.queue.fnArray.push(e); + this.queue.argsArray.push(t); + this._optimize(); + } + flush() {} + reset() {} + } + class QueueOptimizer extends NullOptimizer { + constructor(e) { + super(e); + this.state = null; + this.context = { + iCurr: 0, + fnArray: e.fnArray, + argsArray: e.argsArray, + isOffscreenCanvasSupported: !1, + }; + this.match = null; + this.lastProcessed = 0; + } + set isOffscreenCanvasSupported(e) { + this.context.isOffscreenCanvasSupported = e; + } + _optimize() { + const e = this.queue.fnArray; + let t = this.lastProcessed, + a = e.length, + r = this.state, + n = this.match; + if (!r && !n && t + 1 === a && !i[e[t]]) { + this.lastProcessed = a; + return; + } + const s = this.context; + for (; t < a; ) { + if (n) { + if ((0, n.iterateFn)(s, t)) { + t++; + continue; + } + t = (0, n.processFn)(s, t + 1); + a = e.length; + n = null; + r = null; + if (t >= a) break; + } + r = (r || i)[e[t]]; + if (r && !Array.isArray(r)) { + s.iCurr = t; + t++; + if (!r.checkFn || (0, r.checkFn)(s)) { + n = r; + r = null; + } else r = null; + } else t++; + } + this.state = r; + this.match = n; + this.lastProcessed = t; + } + 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; + } + } + class OperatorList { + static CHUNK_SIZE = 1e3; + static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5; + constructor(e = 0, t) { + this._streamSink = t; + this.fnArray = []; + this.argsArray = []; + !t || e & r.RenderingIntentFlag.OPLIST + ? (this.optimizer = new NullOptimizer(this)) + : (this.optimizer = new QueueOptimizer(this)); + this.dependencies = new Set(); + this._totalLength = 0; + this.weight = 0; + this._resolved = t ? null : Promise.resolve(); + } + set isOffscreenCanvasSupported(e) { + this.optimizer.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, t) { + this.optimizer.push(e, t); + this.weight++; + this._streamSink && + (this.weight >= OperatorList.CHUNK_SIZE || + (this.weight >= OperatorList.CHUNK_SIZE_ABOUT && + (e === r.OPS.restore || e === r.OPS.endText))) && + this.flush(); + } + addImageOps(e, t, a) { + void 0 !== a && this.addOp(r.OPS.beginMarkedContentProps, ['OC', a]); + this.addOp(e, t); + void 0 !== a && this.addOp(r.OPS.endMarkedContent, []); + } + addDependency(e) { + if (!this.dependencies.has(e)) { + this.dependencies.add(e); + this.addOp(r.OPS.dependency, [e]); + } + } + addDependencies(e) { + for (const t of e) this.addDependency(t); + } + addOpList(e) { + if (e instanceof OperatorList) { + for (const t of e.dependencies) this.dependencies.add(t); + for (let t = 0, a = e.length; t < a; t++) this.addOp(e.fnArray[t], e.argsArray[t]); + } else (0, r.warn)('addOpList - ignoring invalid "opList" parameter.'); + } + getIR() { + return { fnArray: this.fnArray, argsArray: this.argsArray, length: this.length }; + } + get _transfers() { + const e = [], + { fnArray: t, argsArray: a, length: i } = this; + for (let n = 0; n < i; n++) + switch (t[n]) { + case r.OPS.paintInlineImageXObject: + case r.OPS.paintInlineImageXObjectGroup: + case r.OPS.paintImageMaskXObject: + const t = a[n][0]; + !t.cached && + t.data && + t.data.buffer instanceof ArrayBuffer && + e.push(t.data.buffer); + } + return e; + } + flush(e = !1, t = null) { + this.optimizer.flush(); + const a = this.length; + this._totalLength += a; + this._streamSink.enqueue( + { + fnArray: this.fnArray, + argsArray: this.argsArray, + lastChunk: e, + separateAnnots: t, + length: a, + }, + 1, + this._transfers, + ); + this.dependencies.clear(); + this.fnArray.length = 0; + this.argsArray.length = 0; + this.weight = 0; + this.optimizer.reset(); + } + } + t.OperatorList = OperatorList; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PDFImage = void 0; + var r = a(2), + i = a(28), + n = a(5), + s = a(12), + o = a(18), + c = a(61), + l = a(26), + h = a(30), + u = a(4); + function decodeAndClamp(e, t, a, r) { + (e = t + e * a) < 0 ? (e = 0) : e > r && (e = r); + return e; + } + function resizeImageMask(e, t, a, r, i, n) { + const s = i * n; + let o; + o = t <= 8 ? new Uint8Array(s) : t <= 16 ? new Uint16Array(s) : new Uint32Array(s); + const c = a / i, + l = r / n; + let h, + u, + d, + f, + g = 0; + const p = new Uint16Array(i), + m = a; + for (h = 0; h < i; h++) p[h] = Math.floor(h * c); + for (h = 0; h < n; h++) { + d = Math.floor(h * l) * m; + for (u = 0; u < i; u++) { + f = d + p[u]; + o[g++] = e[f]; + } + } + return o; + } + class PDFImage { + constructor({ + xref: e, + res: t, + image: a, + isInline: i = !1, + smask: o = null, + mask: c = null, + isMask: l = !1, + pdfFunctionFactory: d, + localColorSpaceCache: f, + }) { + this.image = a; + const g = a.dict, + p = g.get('F', 'Filter'); + let m; + if (p instanceof u.Name) m = p.name; + else if (Array.isArray(p)) { + const t = e.fetchIfRef(p[0]); + t instanceof u.Name && (m = t.name); + } + switch (m) { + case 'JPXDecode': + const e = new h.JpxImage(); + e.parseImageProperties(a.stream); + a.stream.reset(); + a.width = e.width; + a.height = e.height; + a.bitsPerComponent = e.bitsPerComponent; + a.numComps = e.componentsCount; + break; + case 'JBIG2Decode': + a.bitsPerComponent = 1; + a.numComps = 1; + } + let b = g.get('W', 'Width'), + y = g.get('H', 'Height'); + if ( + Number.isInteger(a.width) && + a.width > 0 && + Number.isInteger(a.height) && + a.height > 0 && + (a.width !== b || a.height !== y) + ) { + (0, r.warn)( + 'PDFImage - using the Width/Height of the image data, rather than the image dictionary.', + ); + b = a.width; + y = a.height; + } + if (b < 1 || y < 1) + throw new r.FormatError(`Invalid image width: ${b} or height: ${y}`); + this.width = b; + this.height = y; + this.interpolate = g.get('I', 'Interpolate'); + this.imageMask = g.get('IM', 'ImageMask') || !1; + this.matte = g.get('Matte') || !1; + let w = a.bitsPerComponent; + if (!w) { + w = g.get('BPC', 'BitsPerComponent'); + if (!w) { + if (!this.imageMask) + throw new r.FormatError( + `Bits per component missing in image: ${this.imageMask}`, + ); + w = 1; + } + } + this.bpc = w; + if (!this.imageMask) { + let n = g.getRaw('CS') || g.getRaw('ColorSpace'); + if (!n) { + (0, r.info)('JPX images (which do not require color spaces)'); + switch (a.numComps) { + case 1: + n = u.Name.get('DeviceGray'); + break; + case 3: + n = u.Name.get('DeviceRGB'); + break; + case 4: + n = u.Name.get('DeviceCMYK'); + break; + default: + throw new Error( + `JPX images with ${a.numComps} color components not supported.`, + ); + } + } + this.colorSpace = s.ColorSpace.parse({ + cs: n, + xref: e, + resources: i ? t : null, + pdfFunctionFactory: d, + localColorSpaceCache: f, + }); + this.numComps = this.colorSpace.numComps; + } + this.decode = g.getArray('D', 'Decode'); + this.needsDecode = !1; + if ( + this.decode && + ((this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, w)) || + (l && !s.ColorSpace.isDefaultDecode(this.decode, 1))) + ) { + this.needsDecode = !0; + const e = (1 << w) - 1; + this.decodeCoefficients = []; + this.decodeAddends = []; + const t = this.colorSpace && 'Indexed' === this.colorSpace.name; + for (let a = 0, r = 0; a < this.decode.length; a += 2, ++r) { + const i = this.decode[a], + n = this.decode[a + 1]; + this.decodeCoefficients[r] = t ? (n - i) / e : n - i; + this.decodeAddends[r] = t ? i : e * i; + } + } + if (o) + this.smask = new PDFImage({ + xref: e, + res: t, + image: o, + isInline: i, + pdfFunctionFactory: d, + localColorSpaceCache: f, + }); + else if (c) + if (c instanceof n.BaseStream) { + c.dict.get('IM', 'ImageMask') + ? (this.mask = new PDFImage({ + xref: e, + res: t, + image: c, + isInline: i, + isMask: !0, + pdfFunctionFactory: d, + localColorSpaceCache: f, + })) + : (0, r.warn)('Ignoring /Mask in image without /ImageMask.'); + } else this.mask = c; + } + static async buildImage({ + xref: e, + res: t, + image: a, + isInline: i = !1, + pdfFunctionFactory: s, + localColorSpaceCache: o, + }) { + const c = a; + let l = null, + h = null; + const u = a.dict.get('SMask'), + d = a.dict.get('Mask'); + u + ? u instanceof n.BaseStream + ? (l = u) + : (0, r.warn)('Unsupported /SMask format.') + : d && + (d instanceof n.BaseStream || Array.isArray(d) + ? (h = d) + : (0, r.warn)('Unsupported /Mask format.')); + return new PDFImage({ + xref: e, + res: t, + image: c, + isInline: i, + smask: l, + mask: h, + pdfFunctionFactory: s, + localColorSpaceCache: o, + }); + } + static createRawMask({ + imgArray: e, + width: t, + height: a, + imageIsFromDecodeStream: r, + inverseDecode: i, + interpolate: n, + }) { + const s = ((t + 7) >> 3) * a, + o = e.byteLength; + let c, l; + if (!r || (i && !(s === o))) + if (i) { + c = new Uint8Array(s); + c.set(e); + c.fill(255, o); + } else c = new Uint8Array(e); + else c = e; + if (i) for (l = 0; l < o; l++) c[l] ^= 255; + return { data: c, width: t, height: a, interpolate: n }; + } + static async createMask({ + imgArray: e, + width: t, + height: a, + imageIsFromDecodeStream: n, + inverseDecode: s, + interpolate: o, + isOffscreenCanvasSupported: l = !1, + }) { + const h = 1 === t && 1 === a && s === (0 === e.length || !!(128 & e[0])); + if (h) return { isSingleOpaquePixel: h }; + if (l) { + if (c.ImageResizer.needsToBeResized(t, a)) { + const n = new Uint8ClampedArray(t * a * 4); + (0, i.convertBlackAndWhiteToRGBA)({ + src: e, + dest: n, + width: t, + height: a, + nonBlackColor: 0, + inverseDecode: s, + }); + return c.ImageResizer.createImage({ + kind: r.ImageKind.RGBA_32BPP, + data: n, + width: t, + height: a, + interpolate: o, + }); + } + const n = new OffscreenCanvas(t, a), + l = n.getContext('2d'), + h = l.createImageData(t, a); + (0, i.convertBlackAndWhiteToRGBA)({ + src: e, + dest: h.data, + width: t, + height: a, + nonBlackColor: 0, + inverseDecode: s, + }); + l.putImageData(h, 0, 0); + return { + data: null, + width: t, + height: a, + interpolate: o, + bitmap: n.transferToImageBitmap(), + }; + } + return this.createRawMask({ + imgArray: e, + width: t, + height: a, + inverseDecode: s, + imageIsFromDecodeStream: n, + interpolate: o, + }); + } + get drawWidth() { + return Math.max( + this.width, + (this.smask && this.smask.width) || 0, + (this.mask && this.mask.width) || 0, + ); + } + get drawHeight() { + return Math.max( + this.height, + (this.smask && this.smask.height) || 0, + (this.mask && this.mask.height) || 0, + ); + } + decodeBuffer(e) { + const t = this.bpc, + a = this.numComps, + r = this.decodeAddends, + i = this.decodeCoefficients, + n = (1 << t) - 1; + let s, o; + if (1 === t) { + for (s = 0, o = e.length; s < o; s++) e[s] = +!e[s]; + return; + } + let c = 0; + for (s = 0, o = this.width * this.height; s < o; s++) + for (let t = 0; t < a; t++) { + e[c] = decodeAndClamp(e[c], r[t], i[t], n); + c++; + } + } + getComponents(e) { + const t = this.bpc; + if (8 === t) return e; + const a = this.width, + r = this.height, + i = this.numComps, + n = a * r * i; + let s, + o = 0; + s = t <= 8 ? new Uint8Array(n) : t <= 16 ? new Uint16Array(n) : new Uint32Array(n); + const c = a * i, + l = (1 << t) - 1; + let h, + u, + d = 0; + if (1 === t) { + let t, a, i; + for (let n = 0; n < r; n++) { + a = d + (-8 & c); + i = d + c; + for (; d < a; ) { + u = e[o++]; + s[d] = (u >> 7) & 1; + s[d + 1] = (u >> 6) & 1; + s[d + 2] = (u >> 5) & 1; + s[d + 3] = (u >> 4) & 1; + s[d + 4] = (u >> 3) & 1; + s[d + 5] = (u >> 2) & 1; + s[d + 6] = (u >> 1) & 1; + s[d + 7] = 1 & u; + d += 8; + } + if (d < i) { + u = e[o++]; + t = 128; + for (; d < i; ) { + s[d++] = +!!(u & t); + t >>= 1; + } + } + } + } else { + let a = 0; + u = 0; + for (d = 0, h = n; d < h; ++d) { + if (d % c == 0) { + u = 0; + a = 0; + } + for (; a < t; ) { + u = (u << 8) | e[o++]; + a += 8; + } + const r = a - t; + let i = u >> r; + i < 0 ? (i = 0) : i > l && (i = l); + s[d] = i; + u &= (1 << r) - 1; + a = r; + } + } + return s; + } + fillOpacity(e, t, a, i, n) { + const s = this.smask, + o = this.mask; + let c, l, h, u, d, f; + if (s) { + l = s.width; + h = s.height; + c = new Uint8ClampedArray(l * h); + s.fillGrayBuffer(c); + (l === t && h === a) || (c = resizeImageMask(c, s.bpc, l, h, t, a)); + } else if (o) + if (o instanceof PDFImage) { + l = o.width; + h = o.height; + c = new Uint8ClampedArray(l * h); + o.numComps = 1; + o.fillGrayBuffer(c); + for (u = 0, d = l * h; u < d; ++u) c[u] = 255 - c[u]; + (l === t && h === a) || (c = resizeImageMask(c, o.bpc, l, h, t, a)); + } else { + if (!Array.isArray(o)) throw new r.FormatError('Unknown mask format.'); + { + c = new Uint8ClampedArray(t * a); + const e = this.numComps; + for (u = 0, d = t * a; u < d; ++u) { + let t = 0; + const a = u * e; + for (f = 0; f < e; ++f) { + const e = n[a + f], + r = 2 * f; + if (e < o[r] || e > o[r + 1]) { + t = 255; + break; + } + } + c[u] = t; + } + } + } + if (c) for (u = 0, f = 3, d = t * i; u < d; ++u, f += 4) e[f] = c[u]; + else for (u = 0, f = 3, d = t * i; u < d; ++u, f += 4) e[f] = 255; + } + undoPreblend(e, t, a) { + const r = this.smask && this.smask.matte; + if (!r) return; + const i = this.colorSpace.getRgb(r, 0), + n = i[0], + s = i[1], + o = i[2], + c = t * a * 4; + for (let t = 0; t < c; t += 4) { + const a = e[t + 3]; + if (0 === a) { + e[t] = 255; + e[t + 1] = 255; + e[t + 2] = 255; + continue; + } + const r = 255 / a; + e[t] = (e[t] - n) * r + n; + e[t + 1] = (e[t + 1] - s) * r + s; + e[t + 2] = (e[t + 2] - o) * r + o; + } + } + async createImageData(e = !1, t = !1) { + const a = this.drawWidth, + i = this.drawHeight, + n = { width: a, height: i, interpolate: this.interpolate, kind: 0, data: null }, + s = this.numComps, + o = this.width, + h = this.height, + u = this.bpc, + d = (o * s * u + 7) >> 3, + f = t && c.ImageResizer.needsToBeResized(a, i); + if (!e) { + let e; + 'DeviceGray' === this.colorSpace.name && 1 === u + ? (e = r.ImageKind.GRAYSCALE_1BPP) + : 'DeviceRGB' !== this.colorSpace.name || + 8 !== u || + this.needsDecode || + (e = r.ImageKind.RGB_24BPP); + if (e && !this.smask && !this.mask && a === o && i === h) { + const s = this.getImageBytes(h * d, {}); + if (t) + return f + ? c.ImageResizer.createImage( + { data: s, kind: e, width: a, height: i, interpolate: this.interpolate }, + this.needsDecode, + ) + : this.createBitmap(e, o, h, s); + n.kind = e; + n.data = s; + if (this.needsDecode) { + (0, r.assert)( + e === r.ImageKind.GRAYSCALE_1BPP, + 'PDFImage.createImageData: The image must be grayscale.', + ); + const t = n.data; + for (let e = 0, a = t.length; e < a; e++) t[e] ^= 255; + } + return n; + } + if ( + this.image instanceof l.JpegStream && + !this.smask && + !this.mask && + !this.needsDecode + ) { + let e = h * d; + if (t && !f) { + let t = !1; + switch (this.colorSpace.name) { + case 'DeviceGray': + e *= 4; + t = !0; + break; + case 'DeviceRGB': + e = (e / 3) * 4; + t = !0; + break; + case 'DeviceCMYK': + t = !0; + } + if (t) { + const t = this.getImageBytes(e, { + drawWidth: a, + drawHeight: i, + forceRGBA: !0, + }); + return this.createBitmap(r.ImageKind.RGBA_32BPP, a, i, t); + } + } else + switch (this.colorSpace.name) { + case 'DeviceGray': + e *= 3; + case 'DeviceRGB': + case 'DeviceCMYK': + n.kind = r.ImageKind.RGB_24BPP; + n.data = this.getImageBytes(e, { + drawWidth: a, + drawHeight: i, + forceRGB: !0, + }); + return f ? c.ImageResizer.createImage(n) : n; + } + } + } + const g = this.getImageBytes(h * d, { internal: !0 }), + p = 0 | (((g.length / d) * i) / h), + m = this.getComponents(g); + let b, y, w, S, x, C; + if (t && !f) { + w = new OffscreenCanvas(a, i); + S = w.getContext('2d'); + x = S.createImageData(a, i); + C = x.data; + } + n.kind = r.ImageKind.RGBA_32BPP; + if (e || this.smask || this.mask) { + (t && !f) || (C = new Uint8ClampedArray(a * i * 4)); + b = 1; + y = !0; + this.fillOpacity(C, a, i, p, m); + } else { + if (!t || f) { + n.kind = r.ImageKind.RGB_24BPP; + C = new Uint8ClampedArray(a * i * 3); + b = 0; + } else { + new Uint32Array(C.buffer).fill(r.FeatureTest.isLittleEndian ? 4278190080 : 255); + b = 1; + } + y = !1; + } + this.needsDecode && this.decodeBuffer(m); + this.colorSpace.fillRgb(C, o, h, a, i, p, u, m, b); + y && this.undoPreblend(C, a, p); + if (t && !f) { + S.putImageData(x, 0, 0); + return { + data: null, + width: a, + height: i, + bitmap: w.transferToImageBitmap(), + interpolate: this.interpolate, + }; + } + n.data = C; + return f ? c.ImageResizer.createImage(n) : n; + } + fillGrayBuffer(e) { + const t = this.numComps; + if (1 !== t) throw new r.FormatError(`Reading gray scale from a color image: ${t}`); + const a = this.width, + i = this.height, + n = this.bpc, + s = (a * t * n + 7) >> 3, + o = this.getImageBytes(i * s, { internal: !0 }), + c = this.getComponents(o); + let l, h; + if (1 === n) { + h = a * i; + if (this.needsDecode) for (l = 0; l < h; ++l) e[l] = (c[l] - 1) & 255; + else for (l = 0; l < h; ++l) e[l] = 255 & -c[l]; + return; + } + this.needsDecode && this.decodeBuffer(c); + h = a * i; + const u = 255 / ((1 << n) - 1); + for (l = 0; l < h; ++l) e[l] = u * c[l]; + } + createBitmap(e, t, a, n) { + const s = new OffscreenCanvas(t, a), + o = s.getContext('2d'); + let c; + if (e === r.ImageKind.RGBA_32BPP) c = new ImageData(n, t, a); + else { + c = o.createImageData(t, a); + (0, i.convertToRGBA)({ + kind: e, + src: n, + dest: new Uint32Array(c.data.buffer), + width: t, + height: a, + inverseDecode: this.needsDecode, + }); + } + o.putImageData(c, 0, 0); + return { + data: null, + width: t, + height: a, + bitmap: s.transferToImageBitmap(), + interpolate: this.interpolate, + }; + } + getImageBytes( + e, + { + drawWidth: t, + drawHeight: a, + forceRGBA: i = !1, + forceRGB: n = !1, + internal: s = !1, + }, + ) { + this.image.reset(); + this.image.drawWidth = t || this.width; + this.image.drawHeight = a || this.height; + this.image.forceRGBA = !!i; + this.image.forceRGB = !!n; + const c = this.image.getBytes(e); + if (s || this.image instanceof o.DecodeStream) return c; + (0, r.assert)( + c instanceof Uint8Array, + 'PDFImage.getImageBytes: Unsupported "imageBytes" type.', + ); + return new Uint8Array(c); + } + } + t.PDFImage = PDFImage; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.incrementalUpdate = function incrementalUpdate({ + originalData: e, + xrefInfo: t, + newRefs: a, + xref: o = null, + hasXfa: l = !1, + xfaDatasetsRef: h = null, + hasXfaDatasetsEntry: u = !1, + needAppearances: d, + acroFormRef: f = null, + acroForm: g = null, + xfaData: p = null, + }) { + !(function updateAcroform({ + xref: e, + acroForm: t, + acroFormRef: a, + hasXfa: n, + hasXfaDatasetsEntry: s, + xfaDatasetsRef: o, + needAppearances: c, + newRefs: l, + }) { + !n || s || o || (0, r.warn)('XFA - Cannot save it'); + if (!(c || (n && o))) return; + const h = new i.Dict(e); + for (const e of t.getKeys()) h.set(e, t.getRaw(e)); + if (n && !s) { + const e = t.get('XFA').slice(); + e.splice(2, 0, 'datasets'); + e.splice(3, 0, o); + h.set('XFA', e); + } + c && h.set('NeedAppearances', !0); + const u = e.encrypt; + let d = null; + u && (d = u.createCipherTransform(a.num, a.gen)); + const f = []; + writeObject(a, h, f, d); + l.push({ ref: a, data: f.join('') }); + })({ + xref: o, + acroForm: g, + acroFormRef: f, + hasXfa: l, + hasXfaDatasetsEntry: u, + xfaDatasetsRef: h, + needAppearances: d, + newRefs: a, + }); + l && + (function updateXFA({ xfaData: e, xfaDatasetsRef: t, newRefs: a, xref: i }) { + if (null === e) { + e = (function writeXFADataForAcroform(e, t) { + const a = new s.SimpleXMLParser({ hasAttributes: !0 }).parseFromString(e); + for (const { xfa: e } of t) { + if (!e) continue; + const { path: t, value: i } = e; + if (!t) continue; + const o = (0, n.parseXFAPath)(t); + let c = a.documentElement.searchNode(o, 0); + !c && o.length > 1 && (c = a.documentElement.searchNode([o.at(-1)], 0)); + c + ? Array.isArray(i) + ? (c.childNodes = i.map((e) => new s.SimpleDOMNode('value', e))) + : (c.childNodes = [new s.SimpleDOMNode('#text', i)]) + : (0, r.warn)(`Node not found for path: ${t}`); + } + const i = []; + a.documentElement.dump(i); + return i.join(''); + })(i.fetchIfRef(t).getString(), a); + } + const o = i.encrypt; + if (o) { + e = o.createCipherTransform(t.num, t.gen).encryptString(e); + } + const c = + `${t.num} ${t.gen} obj\n<< /Type /EmbeddedFile /Length ${e.length}>>\nstream\n` + + e + + '\nendstream\nendobj\n'; + a.push({ ref: t, data: c }); + })({ xfaData: p, xfaDatasetsRef: h, newRefs: a, xref: o }); + const m = new i.Dict(null), + b = t.newRef; + let y, w; + const S = e.at(-1); + if (10 === S || 13 === S) { + y = []; + w = e.length; + } else { + y = ['\n']; + w = e.length + 1; + } + m.set('Size', b.num + 1); + m.set('Prev', t.startXRef); + m.set('Type', i.Name.get('XRef')); + null !== t.rootRef && m.set('Root', t.rootRef); + null !== t.infoRef && m.set('Info', t.infoRef); + null !== t.encryptRef && m.set('Encrypt', t.encryptRef); + a.push({ ref: b, data: '' }); + a = a.sort((e, t) => e.ref.num - t.ref.num); + const x = [[0, 1, 65535]], + C = [0, 1]; + let k = 0; + for (const { ref: e, data: t } of a) { + k = Math.max(k, w); + x.push([1, w, Math.min(e.gen, 65535)]); + w += t.length; + C.push(e.num, 1); + y.push(t); + } + m.set('Index', C); + if (Array.isArray(t.fileIds) && t.fileIds.length > 0) { + const e = (function computeMD5(e, t) { + const a = Math.floor(Date.now() / 1e3), + i = t.filename || '', + n = [a.toString(), i, e.toString()]; + let s = n.reduce((e, t) => e + t.length, 0); + for (const e of Object.values(t.info)) { + n.push(e); + s += e.length; + } + const o = new Uint8Array(s); + let l = 0; + for (const e of n) { + writeString(e, l, o); + l += e.length; + } + return (0, r.bytesToString)((0, c.calculateMD5)(o)); + })(w, t); + m.set('ID', [t.fileIds[0], e]); + } + const v = [1, Math.ceil(Math.log2(k) / 8), 2], + F = (v[0] + v[1] + v[2]) * x.length; + m.set('W', v); + m.set('Length', F); + y.push(`${b.num} ${b.gen} obj\n`); + writeDict(m, y, null); + y.push(' stream\n'); + const O = y.reduce((e, t) => e + t.length, 0), + T = `\nendstream\nendobj\nstartxref\n${w}\n%%EOF\n`, + M = new Uint8Array(e.length + O + F + T.length); + M.set(e); + let E = e.length; + for (const e of y) { + writeString(e, E, M); + E += e.length; + } + for (const [e, t, a] of x) { + E = writeInt(e, v[0], E, M); + E = writeInt(t, v[1], E, M); + E = writeInt(a, v[2], E, M); + } + writeString(T, E, M); + return M; + }; + t.writeDict = writeDict; + t.writeObject = writeObject; + var r = a(2), + i = a(4), + n = a(3), + s = a(66), + o = a(5), + c = a(67); + function writeObject(e, t, a, r) { + a.push(`${e.num} ${e.gen} obj\n`); + t instanceof i.Dict + ? writeDict(t, a, r) + : t instanceof o.BaseStream && writeStream(t, a, r); + a.push('\nendobj\n'); + } + function writeDict(e, t, a) { + t.push('<<'); + for (const r of e.getKeys()) { + t.push(` /${(0, n.escapePDFName)(r)} `); + writeValue(e.getRaw(r), t, a); + } + t.push('>>'); + } + function writeStream(e, t, a) { + let r = e.getString(); + null !== a && (r = a.encryptString(r)); + e.dict.set('Length', r.length); + writeDict(e.dict, t, a); + t.push(' stream\n', r, '\nendstream'); + } + function writeValue(e, t, a) { + if (e instanceof i.Name) t.push(`/${(0, n.escapePDFName)(e.name)}`); + else if (e instanceof i.Ref) t.push(`${e.num} ${e.gen} R`); + else if (Array.isArray(e)) + !(function writeArray(e, t, a) { + t.push('['); + let r = !0; + for (const i of e) { + r ? (r = !1) : t.push(' '); + writeValue(i, t, a); + } + t.push(']'); + })(e, t, a); + else if ('string' == typeof e) { + null !== a && (e = a.encryptString(e)); + t.push(`(${(0, n.escapeString)(e)})`); + } else + 'number' == typeof e + ? t.push((0, n.numberToString)(e)) + : 'boolean' == typeof e + ? t.push(e.toString()) + : e instanceof i.Dict + ? writeDict(e, t, a) + : e instanceof o.BaseStream + ? writeStream(e, t, a) + : null === e + ? t.push('null') + : (0, r.warn)(`Unhandled value in writer: ${typeof e}, please file a bug.`); + } + function writeInt(e, t, a, r) { + for (let i = t + a - 1; i > a - 1; i--) { + r[i] = 255 & e; + e >>= 8; + } + return a + t; + } + function writeString(e, t, a) { + for (let r = 0, i = e.length; r < i; r++) a[t + r] = 255 & e.charCodeAt(r); + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XMLParserErrorCode = t.XMLParserBase = t.SimpleXMLParser = t.SimpleDOMNode = void 0; + var r = a(3); + const i = { + NoError: 0, + EndOfDocument: -1, + UnterminatedCdat: -2, + UnterminatedXmlDeclaration: -3, + UnterminatedDoctypeDeclaration: -4, + UnterminatedComment: -5, + MalformedElement: -6, + OutOfMemory: -7, + UnterminatedAttributeValue: -8, + UnterminatedElement: -9, + ElementNeverBegun: -10, + }; + t.XMLParserErrorCode = i; + function isWhitespace(e, t) { + const a = e[t]; + return ' ' === a || '\n' === a || '\r' === a || '\t' === a; + } + class XMLParserBase { + _resolveEntities(e) { + return e.replaceAll(/&([^;]+);/g, (e, t) => { + if ('#x' === t.substring(0, 2)) + return String.fromCodePoint(parseInt(t.substring(2), 16)); + if ('#' === t.substring(0, 1)) + return String.fromCodePoint(parseInt(t.substring(1), 10)); + switch (t) { + case 'lt': + return '<'; + case 'gt': + return '>'; + case 'amp': + return '&'; + case 'quot': + return '"'; + case 'apos': + return "'"; + } + return this.onResolveEntity(t); + }); + } + _parseContent(e, t) { + const a = []; + let r = t; + function skipWs() { + for (; r < e.length && isWhitespace(e, r); ) ++r; + } + for (; r < e.length && !isWhitespace(e, r) && '>' !== e[r] && '/' !== e[r]; ) ++r; + const i = e.substring(t, r); + skipWs(); + for (; r < e.length && '>' !== e[r] && '/' !== e[r] && '?' !== e[r]; ) { + skipWs(); + let t = '', + i = ''; + for (; r < e.length && !isWhitespace(e, r) && '=' !== e[r]; ) { + t += e[r]; + ++r; + } + skipWs(); + if ('=' !== e[r]) return null; + ++r; + skipWs(); + const n = e[r]; + if ('"' !== n && "'" !== n) return null; + const s = e.indexOf(n, ++r); + if (s < 0) return null; + i = e.substring(r, s); + a.push({ name: t, value: this._resolveEntities(i) }); + r = s + 1; + skipWs(); + } + return { name: i, attributes: a, parsed: r - t }; + } + _parseProcessingInstruction(e, t) { + let a = t; + for ( + ; + a < e.length && !isWhitespace(e, a) && '>' !== e[a] && '?' !== e[a] && '/' !== e[a]; + + ) + ++a; + const r = e.substring(t, a); + !(function skipWs() { + for (; a < e.length && isWhitespace(e, a); ) ++a; + })(); + const i = a; + for (; a < e.length && ('?' !== e[a] || '>' !== e[a + 1]); ) ++a; + return { name: r, value: e.substring(i, a), parsed: a - t }; + } + parseXml(e) { + let t = 0; + for (; t < e.length; ) { + let a = t; + if ('<' === e[t]) { + ++a; + let t; + switch (e[a]) { + case '/': + ++a; + t = e.indexOf('>', a); + if (t < 0) { + this.onError(i.UnterminatedElement); + return; + } + this.onEndElement(e.substring(a, t)); + a = t + 1; + break; + case '?': + ++a; + const r = this._parseProcessingInstruction(e, a); + if ('?>' !== e.substring(a + r.parsed, a + r.parsed + 2)) { + this.onError(i.UnterminatedXmlDeclaration); + return; + } + this.onPi(r.name, r.value); + a += r.parsed + 2; + break; + case '!': + if ('--' === e.substring(a + 1, a + 3)) { + t = e.indexOf('--\x3e', a + 3); + if (t < 0) { + this.onError(i.UnterminatedComment); + return; + } + this.onComment(e.substring(a + 3, t)); + a = t + 3; + } else if ('[CDATA[' === e.substring(a + 1, a + 8)) { + t = e.indexOf(']]>', a + 8); + if (t < 0) { + this.onError(i.UnterminatedCdat); + return; + } + this.onCdata(e.substring(a + 8, t)); + a = t + 3; + } else { + if ('DOCTYPE' !== e.substring(a + 1, a + 8)) { + this.onError(i.MalformedElement); + return; + } + { + const r = e.indexOf('[', a + 8); + let n = !1; + t = e.indexOf('>', a + 8); + if (t < 0) { + this.onError(i.UnterminatedDoctypeDeclaration); + return; + } + if (r > 0 && t > r) { + t = e.indexOf(']>', a + 8); + if (t < 0) { + this.onError(i.UnterminatedDoctypeDeclaration); + return; + } + n = !0; + } + const s = e.substring(a + 8, t + (n ? 1 : 0)); + this.onDoctype(s); + a = t + (n ? 2 : 1); + } + } + break; + default: + const n = this._parseContent(e, a); + if (null === n) { + this.onError(i.MalformedElement); + return; + } + let s = !1; + if ('/>' === e.substring(a + n.parsed, a + n.parsed + 2)) s = !0; + else if ('>' !== e.substring(a + n.parsed, a + n.parsed + 1)) { + this.onError(i.UnterminatedElement); + return; + } + this.onBeginElement(n.name, n.attributes, s); + a += n.parsed + (s ? 2 : 1); + } + } else { + for (; a < e.length && '<' !== e[a]; ) a++; + const r = e.substring(t, a); + this.onText(this._resolveEntities(r)); + } + t = a; + } + } + onResolveEntity(e) { + return `&${e};`; + } + onPi(e, t) {} + onComment(e) {} + onCdata(e) {} + onDoctype(e) {} + onText(e) {} + onBeginElement(e, t, a) {} + onEndElement(e) {} + onError(e) {} + } + t.XMLParserBase = XMLParserBase; + class SimpleDOMNode { + constructor(e, t) { + this.nodeName = e; + this.nodeValue = t; + Object.defineProperty(this, 'parentNode', { value: null, writable: !0 }); + } + get firstChild() { + return this.childNodes && this.childNodes[0]; + } + get nextSibling() { + const e = this.parentNode.childNodes; + if (!e) return; + const t = e.indexOf(this); + return -1 !== t ? e[t + 1] : void 0; + } + get textContent() { + return this.childNodes + ? this.childNodes + .map(function (e) { + return e.textContent; + }) + .join('') + : this.nodeValue || ''; + } + get children() { + return this.childNodes || []; + } + hasChildNodes() { + return this.childNodes && this.childNodes.length > 0; + } + searchNode(e, t) { + if (t >= e.length) return this; + const a = e[t], + r = []; + let i = this; + for (;;) { + if (a.name === i.nodeName) { + if (0 !== a.pos) { + if (0 === r.length) return null; + { + const [n] = r.pop(); + let s = 0; + for (const r of n.childNodes) + if (a.name === r.nodeName) { + if (s === a.pos) return r.searchNode(e, t + 1); + s++; + } + return i.searchNode(e, t + 1); + } + } + { + const a = i.searchNode(e, t + 1); + if (null !== a) return a; + } + } + if (i.childNodes && 0 !== i.childNodes.length) { + r.push([i, 0]); + i = i.childNodes[0]; + } else { + if (0 === r.length) return null; + for (; 0 !== r.length; ) { + const [e, t] = r.pop(), + a = t + 1; + if (a < e.childNodes.length) { + r.push([e, a]); + i = e.childNodes[a]; + break; + } + } + if (0 === r.length) return null; + } + } + } + dump(e) { + if ('#text' !== this.nodeName) { + e.push(`<${this.nodeName}`); + if (this.attributes) + for (const t of this.attributes) + e.push(` ${t.name}="${(0, r.encodeToXmlString)(t.value)}"`); + if (this.hasChildNodes()) { + e.push('>'); + for (const t of this.childNodes) t.dump(e); + e.push(``); + } else + this.nodeValue + ? e.push(`>${(0, r.encodeToXmlString)(this.nodeValue)}`) + : e.push('/>'); + } else e.push((0, r.encodeToXmlString)(this.nodeValue)); + } + } + t.SimpleDOMNode = SimpleDOMNode; + t.SimpleXMLParser = class SimpleXMLParser extends XMLParserBase { + constructor({ hasAttributes: e = !1, lowerCaseName: t = !1 }) { + super(); + this._currentFragment = null; + this._stack = null; + this._errorCode = i.NoError; + this._hasAttributes = e; + this._lowerCaseName = t; + } + parseFromString(e) { + this._currentFragment = []; + this._stack = []; + this._errorCode = i.NoError; + this.parseXml(e); + if (this._errorCode !== i.NoError) return; + const [t] = this._currentFragment; + return t ? { documentElement: t } : void 0; + } + onText(e) { + if ( + (function isWhitespaceString(e) { + for (let t = 0, a = e.length; t < a; t++) if (!isWhitespace(e, t)) return !1; + return !0; + })(e) + ) + return; + const t = new SimpleDOMNode('#text', e); + this._currentFragment.push(t); + } + onCdata(e) { + const t = new SimpleDOMNode('#text', e); + this._currentFragment.push(t); + } + onBeginElement(e, t, a) { + this._lowerCaseName && (e = e.toLowerCase()); + const r = new SimpleDOMNode(e); + r.childNodes = []; + this._hasAttributes && (r.attributes = t); + this._currentFragment.push(r); + if (!a) { + this._stack.push(this._currentFragment); + this._currentFragment = r.childNodes; + } + } + onEndElement(e) { + this._currentFragment = this._stack.pop() || []; + const t = this._currentFragment.at(-1); + if (!t) return null; + for (const e of t.childNodes) e.parentNode = t; + return t; + } + onError(e) { + this._errorCode = e; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.calculateSHA256 = + t.calculateMD5 = + t.PDF20 = + t.PDF17 = + t.CipherTransformFactory = + t.ARCFourCipher = + t.AES256Cipher = + t.AES128Cipher = + void 0; + t.calculateSHA384 = calculateSHA384; + t.calculateSHA512 = void 0; + var r = a(2), + i = a(4), + n = a(68); + class ARCFourCipher { + constructor(e) { + this.a = 0; + this.b = 0; + const t = new Uint8Array(256), + a = e.length; + for (let e = 0; e < 256; ++e) t[e] = e; + for (let r = 0, i = 0; r < 256; ++r) { + const n = t[r]; + i = (i + n + e[r % a]) & 255; + t[r] = t[i]; + t[i] = n; + } + this.s = t; + } + encryptBlock(e) { + let t = this.a, + a = this.b; + const r = this.s, + i = e.length, + n = new Uint8Array(i); + for (let s = 0; s < i; ++s) { + t = (t + 1) & 255; + const i = r[t]; + a = (a + i) & 255; + const o = r[a]; + r[t] = o; + r[a] = i; + n[s] = e[s] ^ r[(i + o) & 255]; + } + this.a = t; + this.b = a; + return n; + } + decryptBlock(e) { + return this.encryptBlock(e); + } + encrypt(e) { + return this.encryptBlock(e); + } + } + t.ARCFourCipher = ARCFourCipher; + const s = (function calculateMD5Closure() { + const e = 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, + ]), + t = 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, + ]); + return function hash(a, r, i) { + let n = 1732584193, + s = -271733879, + o = -1732584194, + c = 271733878; + const l = (i + 72) & -64, + h = new Uint8Array(l); + let u, d; + for (u = 0; u < i; ++u) h[u] = a[r++]; + h[u++] = 128; + const f = l - 8; + for (; u < f; ) h[u++] = 0; + h[u++] = (i << 3) & 255; + h[u++] = (i >> 5) & 255; + h[u++] = (i >> 13) & 255; + h[u++] = (i >> 21) & 255; + h[u++] = (i >>> 29) & 255; + h[u++] = 0; + h[u++] = 0; + h[u++] = 0; + const g = new Int32Array(16); + for (u = 0; u < l; ) { + for (d = 0; d < 16; ++d, u += 4) + g[d] = h[u] | (h[u + 1] << 8) | (h[u + 2] << 16) | (h[u + 3] << 24); + let a, + r, + i = n, + l = s, + f = o, + p = c; + for (d = 0; d < 64; ++d) { + if (d < 16) { + a = (l & f) | (~l & p); + r = d; + } else if (d < 32) { + a = (p & l) | (~p & f); + r = (5 * d + 1) & 15; + } else if (d < 48) { + a = l ^ f ^ p; + r = (3 * d + 5) & 15; + } else { + a = f ^ (l | ~p); + r = (7 * d) & 15; + } + const n = p, + s = (i + a + t[d] + g[r]) | 0, + o = e[d]; + p = f; + f = l; + l = (l + ((s << o) | (s >>> (32 - o)))) | 0; + i = n; + } + n = (n + i) | 0; + s = (s + l) | 0; + o = (o + f) | 0; + c = (c + p) | 0; + } + return new Uint8Array([ + 255 & n, + (n >> 8) & 255, + (n >> 16) & 255, + (n >>> 24) & 255, + 255 & s, + (s >> 8) & 255, + (s >> 16) & 255, + (s >>> 24) & 255, + 255 & o, + (o >> 8) & 255, + (o >> 16) & 255, + (o >>> 24) & 255, + 255 & c, + (c >> 8) & 255, + (c >> 16) & 255, + (c >>> 24) & 255, + ]); + }; + })(); + t.calculateMD5 = s; + class Word64 { + constructor(e, t) { + this.high = 0 | e; + this.low = 0 | t; + } + and(e) { + this.high &= e.high; + this.low &= e.low; + } + xor(e) { + this.high ^= e.high; + this.low ^= e.low; + } + or(e) { + this.high |= e.high; + this.low |= e.low; + } + shiftRight(e) { + if (e >= 32) { + this.low = (this.high >>> (e - 32)) | 0; + this.high = 0; + } else { + this.low = (this.low >>> e) | (this.high << (32 - e)); + this.high = (this.high >>> e) | 0; + } + } + shiftLeft(e) { + if (e >= 32) { + this.high = this.low << (e - 32); + this.low = 0; + } else { + this.high = (this.high << e) | (this.low >>> (32 - e)); + this.low <<= e; + } + } + rotateRight(e) { + let t, a; + if (32 & e) { + a = this.low; + t = this.high; + } else { + t = this.low; + a = this.high; + } + e &= 31; + this.low = (t >>> e) | (a << (32 - e)); + this.high = (a >>> e) | (t << (32 - e)); + } + not() { + this.high = ~this.high; + this.low = ~this.low; + } + add(e) { + const t = (this.low >>> 0) + (e.low >>> 0); + let a = (this.high >>> 0) + (e.high >>> 0); + t > 4294967295 && (a += 1); + this.low = 0 | t; + this.high = 0 | a; + } + copyTo(e, t) { + e[t] = (this.high >>> 24) & 255; + e[t + 1] = (this.high >> 16) & 255; + e[t + 2] = (this.high >> 8) & 255; + e[t + 3] = 255 & this.high; + e[t + 4] = (this.low >>> 24) & 255; + e[t + 5] = (this.low >> 16) & 255; + e[t + 6] = (this.low >> 8) & 255; + e[t + 7] = 255 & this.low; + } + assign(e) { + this.high = e.high; + this.low = e.low; + } + } + const o = (function calculateSHA256Closure() { + function rotr(e, t) { + return (e >>> t) | (e << (32 - t)); + } + function ch(e, t, a) { + return (e & t) ^ (~e & a); + } + function maj(e, t, a) { + return (e & t) ^ (e & a) ^ (t & a); + } + function sigma(e) { + return rotr(e, 2) ^ rotr(e, 13) ^ rotr(e, 22); + } + function sigmaPrime(e) { + return rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25); + } + function littleSigma(e) { + return rotr(e, 7) ^ rotr(e, 18) ^ (e >>> 3); + } + const e = [ + 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, + ]; + return function hash(t, a, r) { + let i = 1779033703, + n = 3144134277, + s = 1013904242, + o = 2773480762, + c = 1359893119, + l = 2600822924, + h = 528734635, + u = 1541459225; + const d = 64 * Math.ceil((r + 9) / 64), + f = new Uint8Array(d); + let g, p; + for (g = 0; g < r; ++g) f[g] = t[a++]; + f[g++] = 128; + const m = d - 8; + for (; g < m; ) f[g++] = 0; + f[g++] = 0; + f[g++] = 0; + f[g++] = 0; + f[g++] = (r >>> 29) & 255; + f[g++] = (r >> 21) & 255; + f[g++] = (r >> 13) & 255; + f[g++] = (r >> 5) & 255; + f[g++] = (r << 3) & 255; + const b = new Uint32Array(64); + for (g = 0; g < d; ) { + for (p = 0; p < 16; ++p) { + b[p] = (f[g] << 24) | (f[g + 1] << 16) | (f[g + 2] << 8) | f[g + 3]; + g += 4; + } + for (p = 16; p < 64; ++p) + b[p] = + ((rotr((y = b[p - 2]), 17) ^ rotr(y, 19) ^ (y >>> 10)) + + b[p - 7] + + littleSigma(b[p - 15]) + + b[p - 16]) | + 0; + let t, + a, + r = i, + d = n, + m = s, + w = o, + S = c, + x = l, + C = h, + k = u; + for (p = 0; p < 64; ++p) { + t = k + sigmaPrime(S) + ch(S, x, C) + e[p] + b[p]; + a = sigma(r) + maj(r, d, m); + k = C; + C = x; + x = S; + S = (w + t) | 0; + w = m; + m = d; + d = r; + r = (t + a) | 0; + } + i = (i + r) | 0; + n = (n + d) | 0; + s = (s + m) | 0; + o = (o + w) | 0; + c = (c + S) | 0; + l = (l + x) | 0; + h = (h + C) | 0; + u = (u + k) | 0; + } + var y; + return new Uint8Array([ + (i >> 24) & 255, + (i >> 16) & 255, + (i >> 8) & 255, + 255 & i, + (n >> 24) & 255, + (n >> 16) & 255, + (n >> 8) & 255, + 255 & n, + (s >> 24) & 255, + (s >> 16) & 255, + (s >> 8) & 255, + 255 & s, + (o >> 24) & 255, + (o >> 16) & 255, + (o >> 8) & 255, + 255 & o, + (c >> 24) & 255, + (c >> 16) & 255, + (c >> 8) & 255, + 255 & c, + (l >> 24) & 255, + (l >> 16) & 255, + (l >> 8) & 255, + 255 & l, + (h >> 24) & 255, + (h >> 16) & 255, + (h >> 8) & 255, + 255 & h, + (u >> 24) & 255, + (u >> 16) & 255, + (u >> 8) & 255, + 255 & u, + ]); + }; + })(); + t.calculateSHA256 = o; + const c = (function calculateSHA512Closure() { + function ch(e, t, a, r, i) { + e.assign(t); + e.and(a); + i.assign(t); + i.not(); + i.and(r); + e.xor(i); + } + function maj(e, t, a, r, i) { + e.assign(t); + e.and(a); + i.assign(t); + i.and(r); + e.xor(i); + i.assign(a); + i.and(r); + e.xor(i); + } + function sigma(e, t, a) { + e.assign(t); + e.rotateRight(28); + a.assign(t); + a.rotateRight(34); + e.xor(a); + a.assign(t); + a.rotateRight(39); + e.xor(a); + } + function sigmaPrime(e, t, a) { + e.assign(t); + e.rotateRight(14); + a.assign(t); + a.rotateRight(18); + e.xor(a); + a.assign(t); + a.rotateRight(41); + e.xor(a); + } + function littleSigma(e, t, a) { + e.assign(t); + e.rotateRight(1); + a.assign(t); + a.rotateRight(8); + e.xor(a); + a.assign(t); + a.shiftRight(7); + e.xor(a); + } + function littleSigmaPrime(e, t, a) { + e.assign(t); + e.rotateRight(19); + a.assign(t); + a.rotateRight(61); + e.xor(a); + a.assign(t); + a.shiftRight(6); + e.xor(a); + } + const e = [ + new Word64(1116352408, 3609767458), + new Word64(1899447441, 602891725), + new Word64(3049323471, 3964484399), + new Word64(3921009573, 2173295548), + new Word64(961987163, 4081628472), + new Word64(1508970993, 3053834265), + new Word64(2453635748, 2937671579), + new Word64(2870763221, 3664609560), + new Word64(3624381080, 2734883394), + new Word64(310598401, 1164996542), + new Word64(607225278, 1323610764), + new Word64(1426881987, 3590304994), + new Word64(1925078388, 4068182383), + new Word64(2162078206, 991336113), + new Word64(2614888103, 633803317), + new Word64(3248222580, 3479774868), + new Word64(3835390401, 2666613458), + new Word64(4022224774, 944711139), + new Word64(264347078, 2341262773), + new Word64(604807628, 2007800933), + new Word64(770255983, 1495990901), + new Word64(1249150122, 1856431235), + new Word64(1555081692, 3175218132), + new Word64(1996064986, 2198950837), + new Word64(2554220882, 3999719339), + new Word64(2821834349, 766784016), + new Word64(2952996808, 2566594879), + new Word64(3210313671, 3203337956), + new Word64(3336571891, 1034457026), + new Word64(3584528711, 2466948901), + new Word64(113926993, 3758326383), + new Word64(338241895, 168717936), + new Word64(666307205, 1188179964), + new Word64(773529912, 1546045734), + new Word64(1294757372, 1522805485), + new Word64(1396182291, 2643833823), + new Word64(1695183700, 2343527390), + new Word64(1986661051, 1014477480), + new Word64(2177026350, 1206759142), + new Word64(2456956037, 344077627), + new Word64(2730485921, 1290863460), + new Word64(2820302411, 3158454273), + new Word64(3259730800, 3505952657), + new Word64(3345764771, 106217008), + new Word64(3516065817, 3606008344), + new Word64(3600352804, 1432725776), + new Word64(4094571909, 1467031594), + new Word64(275423344, 851169720), + new Word64(430227734, 3100823752), + new Word64(506948616, 1363258195), + new Word64(659060556, 3750685593), + new Word64(883997877, 3785050280), + new Word64(958139571, 3318307427), + new Word64(1322822218, 3812723403), + new Word64(1537002063, 2003034995), + new Word64(1747873779, 3602036899), + new Word64(1955562222, 1575990012), + new Word64(2024104815, 1125592928), + new Word64(2227730452, 2716904306), + new Word64(2361852424, 442776044), + new Word64(2428436474, 593698344), + new Word64(2756734187, 3733110249), + new Word64(3204031479, 2999351573), + new Word64(3329325298, 3815920427), + new Word64(3391569614, 3928383900), + new Word64(3515267271, 566280711), + new Word64(3940187606, 3454069534), + new Word64(4118630271, 4000239992), + new Word64(116418474, 1914138554), + new Word64(174292421, 2731055270), + new Word64(289380356, 3203993006), + new Word64(460393269, 320620315), + new Word64(685471733, 587496836), + new Word64(852142971, 1086792851), + new Word64(1017036298, 365543100), + new Word64(1126000580, 2618297676), + new Word64(1288033470, 3409855158), + new Word64(1501505948, 4234509866), + new Word64(1607167915, 987167468), + new Word64(1816402316, 1246189591), + ]; + return function hash(t, a, r, i = !1) { + let n, s, o, c, l, h, u, d; + if (i) { + n = new Word64(3418070365, 3238371032); + s = new Word64(1654270250, 914150663); + o = new Word64(2438529370, 812702999); + c = new Word64(355462360, 4144912697); + l = new Word64(1731405415, 4290775857); + h = new Word64(2394180231, 1750603025); + u = new Word64(3675008525, 1694076839); + d = new Word64(1203062813, 3204075428); + } else { + n = new Word64(1779033703, 4089235720); + s = new Word64(3144134277, 2227873595); + o = new Word64(1013904242, 4271175723); + c = new Word64(2773480762, 1595750129); + l = new Word64(1359893119, 2917565137); + h = new Word64(2600822924, 725511199); + u = new Word64(528734635, 4215389547); + d = new Word64(1541459225, 327033209); + } + const f = 128 * Math.ceil((r + 17) / 128), + g = new Uint8Array(f); + let p, m; + for (p = 0; p < r; ++p) g[p] = t[a++]; + g[p++] = 128; + const b = f - 16; + for (; p < b; ) g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = (r >>> 29) & 255; + g[p++] = (r >> 21) & 255; + g[p++] = (r >> 13) & 255; + g[p++] = (r >> 5) & 255; + g[p++] = (r << 3) & 255; + const y = new Array(80); + for (p = 0; p < 80; p++) y[p] = new Word64(0, 0); + let w = new Word64(0, 0), + S = new Word64(0, 0), + x = new Word64(0, 0), + C = new Word64(0, 0), + k = new Word64(0, 0), + v = new Word64(0, 0), + F = new Word64(0, 0), + O = new Word64(0, 0); + const T = new Word64(0, 0), + M = new Word64(0, 0), + E = new Word64(0, 0), + D = new Word64(0, 0); + let N, R; + for (p = 0; p < f; ) { + for (m = 0; m < 16; ++m) { + y[m].high = (g[p] << 24) | (g[p + 1] << 16) | (g[p + 2] << 8) | g[p + 3]; + y[m].low = (g[p + 4] << 24) | (g[p + 5] << 16) | (g[p + 6] << 8) | g[p + 7]; + p += 8; + } + for (m = 16; m < 80; ++m) { + N = y[m]; + littleSigmaPrime(N, y[m - 2], D); + N.add(y[m - 7]); + littleSigma(E, y[m - 15], D); + N.add(E); + N.add(y[m - 16]); + } + w.assign(n); + S.assign(s); + x.assign(o); + C.assign(c); + k.assign(l); + v.assign(h); + F.assign(u); + O.assign(d); + for (m = 0; m < 80; ++m) { + T.assign(O); + sigmaPrime(E, k, D); + T.add(E); + ch(E, k, v, F, D); + T.add(E); + T.add(e[m]); + T.add(y[m]); + sigma(M, w, D); + maj(E, w, S, x, D); + M.add(E); + N = O; + O = F; + F = v; + v = k; + C.add(T); + k = C; + C = x; + x = S; + S = w; + N.assign(T); + N.add(M); + w = N; + } + n.add(w); + s.add(S); + o.add(x); + c.add(C); + l.add(k); + h.add(v); + u.add(F); + d.add(O); + } + if (i) { + R = new Uint8Array(48); + n.copyTo(R, 0); + s.copyTo(R, 8); + o.copyTo(R, 16); + c.copyTo(R, 24); + l.copyTo(R, 32); + h.copyTo(R, 40); + } else { + R = new Uint8Array(64); + n.copyTo(R, 0); + s.copyTo(R, 8); + o.copyTo(R, 16); + c.copyTo(R, 24); + l.copyTo(R, 32); + h.copyTo(R, 40); + u.copyTo(R, 48); + d.copyTo(R, 56); + } + return R; + }; + })(); + t.calculateSHA512 = c; + function calculateSHA384(e, t, a) { + return c(e, t, a, !0); + } + class NullCipher { + decryptBlock(e) { + return e; + } + encrypt(e) { + return e; + } + } + class AESBaseCipher { + constructor() { + this.constructor === AESBaseCipher && + (0, r.unreachable)('Cannot initialize AESBaseCipher.'); + this._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, + ]); + this._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, + ]); + this._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, + ]); + this._mixCol = new Uint8Array(256); + for (let e = 0; e < 256; e++) this._mixCol[e] = e < 128 ? e << 1 : (e << 1) ^ 27; + this.buffer = new Uint8Array(16); + this.bufferPosition = 0; + } + _expandKey(e) { + (0, r.unreachable)('Cannot call `_expandKey` on the base class'); + } + _decrypt(e, t) { + let a, r, i; + const n = new Uint8Array(16); + n.set(e); + for (let e = 0, a = this._keySize; e < 16; ++e, ++a) n[e] ^= t[a]; + for (let e = this._cyclesOfRepetition - 1; e >= 1; --e) { + a = n[13]; + n[13] = n[9]; + n[9] = n[5]; + n[5] = n[1]; + n[1] = a; + a = n[14]; + r = n[10]; + n[14] = n[6]; + n[10] = n[2]; + n[6] = a; + n[2] = r; + a = n[15]; + r = n[11]; + i = n[7]; + n[15] = n[3]; + n[11] = a; + n[7] = r; + n[3] = i; + for (let e = 0; e < 16; ++e) n[e] = this._inv_s[n[e]]; + for (let a = 0, r = 16 * e; a < 16; ++a, ++r) n[a] ^= t[r]; + for (let e = 0; e < 16; e += 4) { + const t = this._mix[n[e]], + r = this._mix[n[e + 1]], + i = this._mix[n[e + 2]], + s = this._mix[n[e + 3]]; + a = t ^ (r >>> 8) ^ (r << 24) ^ (i >>> 16) ^ (i << 16) ^ (s >>> 24) ^ (s << 8); + n[e] = (a >>> 24) & 255; + n[e + 1] = (a >> 16) & 255; + n[e + 2] = (a >> 8) & 255; + n[e + 3] = 255 & a; + } + } + a = n[13]; + n[13] = n[9]; + n[9] = n[5]; + n[5] = n[1]; + n[1] = a; + a = n[14]; + r = n[10]; + n[14] = n[6]; + n[10] = n[2]; + n[6] = a; + n[2] = r; + a = n[15]; + r = n[11]; + i = n[7]; + n[15] = n[3]; + n[11] = a; + n[7] = r; + n[3] = i; + for (let e = 0; e < 16; ++e) { + n[e] = this._inv_s[n[e]]; + n[e] ^= t[e]; + } + return n; + } + _encrypt(e, t) { + const a = this._s; + let r, i, n; + const s = new Uint8Array(16); + s.set(e); + for (let e = 0; e < 16; ++e) s[e] ^= t[e]; + for (let e = 1; e < this._cyclesOfRepetition; e++) { + for (let e = 0; e < 16; ++e) s[e] = a[s[e]]; + n = s[1]; + s[1] = s[5]; + s[5] = s[9]; + s[9] = s[13]; + s[13] = n; + n = s[2]; + i = s[6]; + s[2] = s[10]; + s[6] = s[14]; + s[10] = n; + s[14] = i; + n = s[3]; + i = s[7]; + r = s[11]; + s[3] = s[15]; + s[7] = n; + s[11] = i; + s[15] = r; + for (let e = 0; e < 16; e += 4) { + const t = s[e + 0], + a = s[e + 1], + i = s[e + 2], + n = s[e + 3]; + r = t ^ a ^ i ^ n; + s[e + 0] ^= r ^ this._mixCol[t ^ a]; + s[e + 1] ^= r ^ this._mixCol[a ^ i]; + s[e + 2] ^= r ^ this._mixCol[i ^ n]; + s[e + 3] ^= r ^ this._mixCol[n ^ t]; + } + for (let a = 0, r = 16 * e; a < 16; ++a, ++r) s[a] ^= t[r]; + } + for (let e = 0; e < 16; ++e) s[e] = a[s[e]]; + n = s[1]; + s[1] = s[5]; + s[5] = s[9]; + s[9] = s[13]; + s[13] = n; + n = s[2]; + i = s[6]; + s[2] = s[10]; + s[6] = s[14]; + s[10] = n; + s[14] = i; + n = s[3]; + i = s[7]; + r = s[11]; + s[3] = s[15]; + s[7] = n; + s[11] = i; + s[15] = r; + for (let e = 0, a = this._keySize; e < 16; ++e, ++a) s[e] ^= t[a]; + return s; + } + _decryptBlock2(e, t) { + const a = e.length; + let r = this.buffer, + i = this.bufferPosition; + const n = []; + let s = this.iv; + for (let t = 0; t < a; ++t) { + r[i] = e[t]; + ++i; + if (i < 16) continue; + const a = this._decrypt(r, this._key); + for (let e = 0; e < 16; ++e) a[e] ^= s[e]; + s = r; + n.push(a); + r = new Uint8Array(16); + i = 0; + } + this.buffer = r; + this.bufferLength = i; + this.iv = s; + if (0 === n.length) return new Uint8Array(0); + let o = 16 * n.length; + if (t) { + const e = n.at(-1); + let t = e[15]; + if (t <= 16) { + for (let a = 15, r = 16 - t; a >= r; --a) + if (e[a] !== t) { + t = 0; + break; + } + o -= t; + n[n.length - 1] = e.subarray(0, 16 - t); + } + } + const c = new Uint8Array(o); + for (let e = 0, t = 0, a = n.length; e < a; ++e, t += 16) c.set(n[e], t); + return c; + } + decryptBlock(e, t, a = null) { + const r = e.length, + i = this.buffer; + let n = this.bufferPosition; + if (a) this.iv = a; + else { + for (let t = 0; n < 16 && t < r; ++t, ++n) i[n] = e[t]; + if (n < 16) { + this.bufferLength = n; + return new Uint8Array(0); + } + this.iv = i; + e = e.subarray(16); + } + this.buffer = new Uint8Array(16); + this.bufferLength = 0; + this.decryptBlock = this._decryptBlock2; + return this.decryptBlock(e, t); + } + encrypt(e, t) { + const a = e.length; + let r = this.buffer, + i = this.bufferPosition; + const n = []; + t || (t = new Uint8Array(16)); + for (let s = 0; s < a; ++s) { + r[i] = e[s]; + ++i; + if (i < 16) continue; + for (let e = 0; e < 16; ++e) r[e] ^= t[e]; + const a = this._encrypt(r, this._key); + t = a; + n.push(a); + r = new Uint8Array(16); + i = 0; + } + this.buffer = r; + this.bufferLength = i; + this.iv = t; + if (0 === n.length) return new Uint8Array(0); + const s = 16 * n.length, + o = new Uint8Array(s); + for (let e = 0, t = 0, a = n.length; e < a; ++e, t += 16) o.set(n[e], t); + return o; + } + } + class AES128Cipher extends AESBaseCipher { + constructor(e) { + super(); + this._cyclesOfRepetition = 10; + this._keySize = 160; + this._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, + ]); + this._key = this._expandKey(e); + } + _expandKey(e) { + const t = this._s, + a = this._rcon, + r = new Uint8Array(176); + r.set(e); + for (let e = 16, i = 1; e < 176; ++i) { + let n = r[e - 3], + s = r[e - 2], + o = r[e - 1], + c = r[e - 4]; + n = t[n]; + s = t[s]; + o = t[o]; + c = t[c]; + n ^= a[i]; + for (let t = 0; t < 4; ++t) { + r[e] = n ^= r[e - 16]; + e++; + r[e] = s ^= r[e - 16]; + e++; + r[e] = o ^= r[e - 16]; + e++; + r[e] = c ^= r[e - 16]; + e++; + } + } + return r; + } + } + t.AES128Cipher = AES128Cipher; + class AES256Cipher extends AESBaseCipher { + constructor(e) { + super(); + this._cyclesOfRepetition = 14; + this._keySize = 224; + this._key = this._expandKey(e); + } + _expandKey(e) { + const t = this._s, + a = new Uint8Array(240); + a.set(e); + let r, + i, + n, + s, + o = 1; + for (let e = 32, c = 1; e < 240; ++c) { + if (e % 32 == 16) { + r = t[r]; + i = t[i]; + n = t[n]; + s = t[s]; + } else if (e % 32 == 0) { + r = a[e - 3]; + i = a[e - 2]; + n = a[e - 1]; + s = a[e - 4]; + r = t[r]; + i = t[i]; + n = t[n]; + s = t[s]; + r ^= o; + (o <<= 1) >= 256 && (o = 255 & (27 ^ o)); + } + for (let t = 0; t < 4; ++t) { + a[e] = r ^= a[e - 32]; + e++; + a[e] = i ^= a[e - 32]; + e++; + a[e] = n ^= a[e - 32]; + e++; + a[e] = s ^= a[e - 32]; + e++; + } + } + return a; + } + } + t.AES256Cipher = AES256Cipher; + class PDF17 { + checkOwnerPassword(e, t, a, i) { + const n = new Uint8Array(e.length + 56); + n.set(e, 0); + n.set(t, e.length); + n.set(a, e.length + t.length); + const s = o(n, 0, n.length); + return (0, r.isArrayEqual)(s, i); + } + checkUserPassword(e, t, a) { + const i = new Uint8Array(e.length + 8); + i.set(e, 0); + i.set(t, e.length); + const n = o(i, 0, i.length); + return (0, r.isArrayEqual)(n, a); + } + getOwnerKey(e, t, a, r) { + const i = new Uint8Array(e.length + 56); + i.set(e, 0); + i.set(t, e.length); + i.set(a, e.length + t.length); + const n = o(i, 0, i.length); + return new AES256Cipher(n).decryptBlock(r, !1, new Uint8Array(16)); + } + getUserKey(e, t, a) { + const r = new Uint8Array(e.length + 8); + r.set(e, 0); + r.set(t, e.length); + const i = o(r, 0, r.length); + return new AES256Cipher(i).decryptBlock(a, !1, new Uint8Array(16)); + } + } + t.PDF17 = PDF17; + class PDF20 { + _hash(e, t, a) { + let r = o(t, 0, t.length).subarray(0, 32), + i = [0], + n = 0; + for (; n < 64 || i.at(-1) > n - 32; ) { + const t = e.length + r.length + a.length, + s = new Uint8Array(t); + let l = 0; + s.set(e, l); + l += e.length; + s.set(r, l); + l += r.length; + s.set(a, l); + const h = new Uint8Array(64 * t); + for (let e = 0, a = 0; e < 64; e++, a += t) h.set(s, a); + i = new AES128Cipher(r.subarray(0, 16)).encrypt(h, r.subarray(16, 32)); + const u = i.slice(0, 16).reduce((e, t) => e + t, 0) % 3; + 0 === u + ? (r = o(i, 0, i.length)) + : 1 === u + ? (r = calculateSHA384(i, 0, i.length)) + : 2 === u && (r = c(i, 0, i.length)); + n++; + } + return r.subarray(0, 32); + } + checkOwnerPassword(e, t, a, i) { + const n = new Uint8Array(e.length + 56); + n.set(e, 0); + n.set(t, e.length); + n.set(a, e.length + t.length); + const s = this._hash(e, n, a); + return (0, r.isArrayEqual)(s, i); + } + checkUserPassword(e, t, a) { + const i = new Uint8Array(e.length + 8); + i.set(e, 0); + i.set(t, e.length); + const n = this._hash(e, i, []); + return (0, r.isArrayEqual)(n, a); + } + getOwnerKey(e, t, a, r) { + const i = new Uint8Array(e.length + 56); + i.set(e, 0); + i.set(t, e.length); + i.set(a, e.length + t.length); + const n = this._hash(e, i, a); + return new AES256Cipher(n).decryptBlock(r, !1, new Uint8Array(16)); + } + getUserKey(e, t, a) { + const r = new Uint8Array(e.length + 8); + r.set(e, 0); + r.set(t, e.length); + const i = this._hash(e, r, []); + return new AES256Cipher(i).decryptBlock(a, !1, new Uint8Array(16)); + } + } + t.PDF20 = PDF20; + class CipherTransform { + constructor(e, t) { + this.StringCipherConstructor = e; + this.StreamCipherConstructor = t; + } + createStream(e, t) { + const a = new this.StreamCipherConstructor(); + return new n.DecryptStream(e, t, function cipherTransformDecryptStream(e, t) { + return a.decryptBlock(e, t); + }); + } + decryptString(e) { + const t = new this.StringCipherConstructor(); + let a = (0, r.stringToBytes)(e); + a = t.decryptBlock(a, !0); + return (0, r.bytesToString)(a); + } + encryptString(e) { + const t = new this.StringCipherConstructor(); + if (t instanceof AESBaseCipher) { + const a = 16 - (e.length % 16); + e += String.fromCharCode(a).repeat(a); + const i = new Uint8Array(16); + if ('undefined' != typeof crypto) crypto.getRandomValues(i); + else for (let e = 0; e < 16; e++) i[e] = Math.floor(256 * Math.random()); + let n = (0, r.stringToBytes)(e); + n = t.encrypt(n, i); + const s = new Uint8Array(16 + n.length); + s.set(i); + s.set(n, 16); + return (0, r.bytesToString)(s); + } + let a = (0, r.stringToBytes)(e); + a = t.encrypt(a); + return (0, r.bytesToString)(a); + } + } + const l = (function CipherTransformFactoryClosure() { + const e = 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, + ]); + function prepareKeyData(t, a, r, i, n, o, c, l) { + const h = 40 + r.length + t.length, + u = new Uint8Array(h); + let d, + f, + g = 0; + if (a) { + f = Math.min(32, a.length); + for (; g < f; ++g) u[g] = a[g]; + } + d = 0; + for (; g < 32; ) u[g++] = e[d++]; + for (d = 0, f = r.length; d < f; ++d) u[g++] = r[d]; + u[g++] = 255 & n; + u[g++] = (n >> 8) & 255; + u[g++] = (n >> 16) & 255; + u[g++] = (n >>> 24) & 255; + for (d = 0, f = t.length; d < f; ++d) u[g++] = t[d]; + if (o >= 4 && !l) { + u[g++] = 255; + u[g++] = 255; + u[g++] = 255; + u[g++] = 255; + } + let p = s(u, 0, g); + const m = c >> 3; + if (o >= 3) for (d = 0; d < 50; ++d) p = s(p, 0, m); + const b = p.subarray(0, m); + let y, w; + if (o >= 3) { + for (g = 0; g < 32; ++g) u[g] = e[g]; + for (d = 0, f = t.length; d < f; ++d) u[g++] = t[d]; + y = new ARCFourCipher(b); + w = y.encryptBlock(s(u, 0, g)); + f = b.length; + const a = new Uint8Array(f); + for (d = 1; d <= 19; ++d) { + for (let e = 0; e < f; ++e) a[e] = b[e] ^ d; + y = new ARCFourCipher(a); + w = y.encryptBlock(w); + } + for (d = 0, f = w.length; d < f; ++d) if (i[d] !== w[d]) return null; + } else { + y = new ARCFourCipher(b); + w = y.encryptBlock(e); + for (d = 0, f = w.length; d < f; ++d) if (i[d] !== w[d]) return null; + } + return b; + } + const t = i.Name.get('Identity'); + function buildObjectKey(e, t, a, r = !1) { + const i = new Uint8Array(a.length + 9), + n = a.length; + let o; + for (o = 0; o < n; ++o) i[o] = a[o]; + i[o++] = 255 & e; + i[o++] = (e >> 8) & 255; + i[o++] = (e >> 16) & 255; + i[o++] = 255 & t; + i[o++] = (t >> 8) & 255; + if (r) { + i[o++] = 115; + i[o++] = 65; + i[o++] = 108; + i[o++] = 84; + } + return s(i, 0, o).subarray(0, Math.min(a.length + 5, 16)); + } + function buildCipherConstructor(e, t, a, n, s) { + if (!(t instanceof i.Name)) throw new r.FormatError('Invalid crypt filter name.'); + const o = e.get(t.name); + let c; + null != o && (c = o.get('CFM')); + if (!c || 'None' === c.name) + return function cipherTransformFactoryBuildCipherConstructorNone() { + return new NullCipher(); + }; + if ('V2' === c.name) + return function cipherTransformFactoryBuildCipherConstructorV2() { + return new ARCFourCipher(buildObjectKey(a, n, s, !1)); + }; + if ('AESV2' === c.name) + return function cipherTransformFactoryBuildCipherConstructorAESV2() { + return new AES128Cipher(buildObjectKey(a, n, s, !0)); + }; + if ('AESV3' === c.name) + return function cipherTransformFactoryBuildCipherConstructorAESV3() { + return new AES256Cipher(s); + }; + throw new r.FormatError('Unknown crypto method'); + } + return class CipherTransformFactory { + constructor(a, n, o) { + const c = a.get('Filter'); + if (!(0, i.isName)(c, 'Standard')) + throw new r.FormatError('unknown encryption method'); + this.filterName = c.name; + this.dict = a; + const l = a.get('V'); + if (!Number.isInteger(l) || (1 !== l && 2 !== l && 4 !== l && 5 !== l)) + throw new r.FormatError('unsupported encryption algorithm'); + this.algorithm = l; + let h = a.get('Length'); + if (!h) + if (l <= 3) h = 40; + else { + const e = a.get('CF'), + t = a.get('StmF'); + if (e instanceof i.Dict && t instanceof i.Name) { + e.suppressEncryption = !0; + const a = e.get(t.name); + h = (a && a.get('Length')) || 128; + h < 40 && (h <<= 3); + } + } + if (!Number.isInteger(h) || h < 40 || h % 8 != 0) + throw new r.FormatError('invalid key length'); + const u = (0, r.stringToBytes)(a.get('O')), + d = (0, r.stringToBytes)(a.get('U')), + f = u.subarray(0, 32), + g = d.subarray(0, 32), + p = a.get('P'), + m = a.get('R'), + b = (4 === l || 5 === l) && !1 !== a.get('EncryptMetadata'); + this.encryptMetadata = b; + const y = (0, r.stringToBytes)(n); + let w, S; + if (o) { + if (6 === m) + try { + o = (0, r.utf8StringToString)(o); + } catch (e) { + (0, r.warn)( + 'CipherTransformFactory: Unable to convert UTF8 encoded password.', + ); + } + w = (0, r.stringToBytes)(o); + } + if (5 !== l) S = prepareKeyData(y, w, f, g, p, m, h, b); + else { + const e = u.subarray(32, 40), + t = u.subarray(40, 48), + i = d.subarray(0, 48), + n = d.subarray(32, 40), + s = d.subarray(40, 48), + o = (0, r.stringToBytes)(a.get('OE')), + c = (0, r.stringToBytes)(a.get('UE')); + (0, r.stringToBytes)(a.get('Perms')); + S = (function createEncryptionKey20(e, t, a, r, i, n, s, o, c, l, h, u) { + if (t) { + const e = Math.min(127, t.length); + t = t.subarray(0, e); + } else t = []; + let d; + d = 6 === e ? new PDF20() : new PDF17(); + return d.checkUserPassword(t, o, s) + ? d.getUserKey(t, c, h) + : t.length && d.checkOwnerPassword(t, r, n, a) + ? d.getOwnerKey(t, i, n, l) + : null; + })(m, w, f, e, t, i, g, n, s, o, c); + } + if (!S && !o) + throw new r.PasswordException( + 'No password given', + r.PasswordResponses.NEED_PASSWORD, + ); + if (!S && o) { + const t = (function decodeUserPassword(t, a, r, i) { + const n = new Uint8Array(32); + let o = 0; + const c = Math.min(32, t.length); + for (; o < c; ++o) n[o] = t[o]; + let l = 0; + for (; o < 32; ) n[o++] = e[l++]; + let h = s(n, 0, o); + const u = i >> 3; + if (r >= 3) for (l = 0; l < 50; ++l) h = s(h, 0, h.length); + let d, f; + if (r >= 3) { + f = a; + const e = new Uint8Array(u); + for (l = 19; l >= 0; l--) { + for (let t = 0; t < u; ++t) e[t] = h[t] ^ l; + d = new ARCFourCipher(e); + f = d.encryptBlock(f); + } + } else { + d = new ARCFourCipher(h.subarray(0, u)); + f = d.encryptBlock(a); + } + return f; + })(w, f, m, h); + S = prepareKeyData(y, t, f, g, p, m, h, b); + } + if (!S) + throw new r.PasswordException( + 'Incorrect Password', + r.PasswordResponses.INCORRECT_PASSWORD, + ); + this.encryptionKey = S; + if (l >= 4) { + const e = a.get('CF'); + e instanceof i.Dict && (e.suppressEncryption = !0); + this.cf = e; + this.stmf = a.get('StmF') || t; + this.strf = a.get('StrF') || t; + this.eff = a.get('EFF') || this.stmf; + } + } + createCipherTransform(e, t) { + if (4 === this.algorithm || 5 === this.algorithm) + return new CipherTransform( + buildCipherConstructor(this.cf, this.strf, e, t, this.encryptionKey), + buildCipherConstructor(this.cf, this.stmf, e, t, this.encryptionKey), + ); + const a = buildObjectKey(e, t, this.encryptionKey, !1), + r = function buildCipherCipherConstructor() { + return new ARCFourCipher(a); + }; + return new CipherTransform(r, r); + } + }; + })(); + t.CipherTransformFactory = l; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.DecryptStream = void 0; + var r = a(18); + class DecryptStream extends r.DecodeStream { + constructor(e, t, a) { + super(t); + this.str = e; + this.dict = e.dict; + this.decrypt = a; + this.nextChunk = null; + this.initialized = !1; + } + readBlock() { + let e; + if (this.initialized) e = this.nextChunk; + else { + e = this.str.getBytes(512); + this.initialized = !0; + } + if (!e || 0 === e.length) { + this.eof = !0; + return; + } + this.nextChunk = this.str.getBytes(512); + const t = this.nextChunk && this.nextChunk.length > 0; + e = (0, this.decrypt)(e, !t); + const a = this.bufferLength, + r = a + e.length; + this.ensureBuffer(r).set(e, a); + this.bufferLength = r; + } + } + t.DecryptStream = DecryptStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Catalog = void 0; + var r = a(3), + i = a(2), + n = a(4), + s = a(70), + o = a(5), + c = a(71), + l = a(12), + h = a(72), + u = a(59), + d = a(73), + f = a(74); + function fetchDestination(e) { + e instanceof n.Dict && (e = e.get('D')); + return Array.isArray(e) ? e : null; + } + class Catalog { + constructor(e, t) { + this.pdfManager = e; + this.xref = t; + this._catDict = t.getCatalogObj(); + if (!(this._catDict instanceof n.Dict)) + throw new i.FormatError('Catalog object is not a dictionary.'); + this.toplevelPagesDict; + this._actualNumPages = null; + this.fontCache = new n.RefSetCache(); + this.builtInCMapCache = new Map(); + this.standardFontDataCache = new Map(); + this.globalImageCache = new u.GlobalImageCache(); + this.pageKidsCountCache = new n.RefSetCache(); + this.pageIndexCache = new n.RefSetCache(); + this.nonBlendModesSet = new n.RefSet(); + } + get version() { + const e = this._catDict.get('Version'); + if (e instanceof n.Name) { + if (r.PDF_VERSION_REGEXP.test(e.name)) + return (0, i.shadow)(this, 'version', e.name); + (0, i.warn)(`Invalid PDF catalog version: ${e.name}`); + } + return (0, i.shadow)(this, 'version', null); + } + get lang() { + const e = this._catDict.get('Lang'); + return (0, i.shadow)( + this, + 'lang', + 'string' == typeof e ? (0, i.stringToPDFString)(e) : null, + ); + } + get needsRendering() { + const e = this._catDict.get('NeedsRendering'); + return (0, i.shadow)(this, 'needsRendering', 'boolean' == typeof e && e); + } + get collection() { + let e = null; + try { + const t = this._catDict.get('Collection'); + t instanceof n.Dict && t.size > 0 && (e = t); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.info)('Cannot fetch Collection entry; assuming no collection is present.'); + } + return (0, i.shadow)(this, 'collection', e); + } + get acroForm() { + let e = null; + try { + const t = this._catDict.get('AcroForm'); + t instanceof n.Dict && t.size > 0 && (e = t); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.info)('Cannot fetch AcroForm entry; assuming no forms are present.'); + } + return (0, i.shadow)(this, 'acroForm', e); + } + get acroFormRef() { + const e = this._catDict.getRaw('AcroForm'); + return (0, i.shadow)(this, 'acroFormRef', e instanceof n.Ref ? e : null); + } + get metadata() { + const e = this._catDict.getRaw('Metadata'); + if (!(e instanceof n.Ref)) return (0, i.shadow)(this, 'metadata', null); + let t = null; + try { + const a = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata), + r = this.xref.fetch(e, a); + if (r instanceof o.BaseStream && r.dict instanceof n.Dict) { + const e = r.dict.get('Type'), + a = r.dict.get('Subtype'); + if ((0, n.isName)(e, 'Metadata') && (0, n.isName)(a, 'XML')) { + const e = (0, i.stringToUTF8String)(r.getString()); + e && (t = new d.MetadataParser(e).serializable); + } + } + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.info)(`Skipping invalid Metadata: "${e}".`); + } + return (0, i.shadow)(this, 'metadata', t); + } + get markInfo() { + let e = null; + try { + e = this._readMarkInfo(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable to read mark info.'); + } + return (0, i.shadow)(this, 'markInfo', e); + } + _readMarkInfo() { + const e = this._catDict.get('MarkInfo'); + if (!(e instanceof n.Dict)) return null; + const t = { Marked: !1, UserProperties: !1, Suspects: !1 }; + for (const a in t) { + const r = e.get(a); + 'boolean' == typeof r && (t[a] = r); + } + return t; + } + get structTreeRoot() { + let e = null; + try { + e = this._readStructTreeRoot(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable read to structTreeRoot info.'); + } + return (0, i.shadow)(this, 'structTreeRoot', e); + } + _readStructTreeRoot() { + const e = this._catDict.get('StructTreeRoot'); + if (!(e instanceof n.Dict)) return null; + const t = new f.StructTreeRoot(e); + t.init(); + return t; + } + get toplevelPagesDict() { + const e = this._catDict.get('Pages'); + if (!(e instanceof n.Dict)) + throw new i.FormatError('Invalid top-level pages dictionary.'); + return (0, i.shadow)(this, 'toplevelPagesDict', e); + } + get documentOutline() { + let e = null; + try { + e = this._readDocumentOutline(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable to read document outline.'); + } + return (0, i.shadow)(this, 'documentOutline', e); + } + _readDocumentOutline() { + let e = this._catDict.get('Outlines'); + if (!(e instanceof n.Dict)) return null; + e = e.getRaw('First'); + if (!(e instanceof n.Ref)) return null; + const t = { items: [] }, + a = [{ obj: e, parent: t }], + r = new n.RefSet(); + r.put(e); + const s = this.xref, + o = new Uint8ClampedArray(3); + for (; a.length > 0; ) { + const t = a.shift(), + c = s.fetchIfRef(t.obj); + if (null === c) continue; + if (!c.has('Title')) throw new i.FormatError('Invalid outline item encountered.'); + const h = { url: null, dest: null, action: null }; + Catalog.parseDestDictionary({ + destDict: c, + resultObj: h, + docBaseUrl: this.pdfManager.docBaseUrl, + docAttachments: this.attachments, + }); + const u = c.get('Title'), + d = c.get('F') || 0, + f = c.getArray('C'), + g = c.get('Count'); + let p = o; + !Array.isArray(f) || + 3 !== f.length || + (0 === f[0] && 0 === f[1] && 0 === f[2]) || + (p = l.ColorSpace.singletons.rgb.getRgb(f, 0)); + const m = { + action: h.action, + attachment: h.attachment, + dest: h.dest, + url: h.url, + unsafeUrl: h.unsafeUrl, + newWindow: h.newWindow, + setOCGState: h.setOCGState, + title: (0, i.stringToPDFString)(u), + color: p, + count: Number.isInteger(g) ? g : void 0, + bold: !!(2 & d), + italic: !!(1 & d), + items: [], + }; + t.parent.items.push(m); + e = c.getRaw('First'); + if (e instanceof n.Ref && !r.has(e)) { + a.push({ obj: e, parent: m }); + r.put(e); + } + e = c.getRaw('Next'); + if (e instanceof n.Ref && !r.has(e)) { + a.push({ obj: e, parent: t.parent }); + r.put(e); + } + } + return t.items.length > 0 ? t.items : null; + } + get permissions() { + let e = null; + try { + e = this._readPermissions(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable to read permissions.'); + } + return (0, i.shadow)(this, 'permissions', e); + } + _readPermissions() { + const e = this.xref.trailer.get('Encrypt'); + if (!(e instanceof n.Dict)) return null; + let t = e.get('P'); + if ('number' != typeof t) return null; + t += 2 ** 32; + const a = []; + for (const e in i.PermissionFlag) { + const r = i.PermissionFlag[e]; + t & r && a.push(r); + } + return a; + } + get optionalContentConfig() { + let e = null; + try { + const t = this._catDict.get('OCProperties'); + if (!t) return (0, i.shadow)(this, 'optionalContentConfig', null); + const a = t.get('D'); + if (!a) return (0, i.shadow)(this, 'optionalContentConfig', null); + const r = t.get('OCGs'); + if (!Array.isArray(r)) return (0, i.shadow)(this, 'optionalContentConfig', null); + const s = [], + o = []; + for (const e of r) { + if (!(e instanceof n.Ref)) continue; + o.push(e); + const t = this.xref.fetchIfRef(e); + s.push({ + id: e.toString(), + name: + 'string' == typeof t.get('Name') + ? (0, i.stringToPDFString)(t.get('Name')) + : null, + intent: + 'string' == typeof t.get('Intent') + ? (0, i.stringToPDFString)(t.get('Intent')) + : null, + }); + } + e = this._readOptionalContentConfig(a, o); + e.groups = s; + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)(`Unable to read optional content config: ${e}`); + } + return (0, i.shadow)(this, 'optionalContentConfig', e); + } + _readOptionalContentConfig(e, t) { + function parseOnOff(e) { + const a = []; + if (Array.isArray(e)) + for (const r of e) r instanceof n.Ref && t.includes(r) && a.push(r.toString()); + return a; + } + function parseOrder(e, a = 0) { + if (!Array.isArray(e)) return null; + const i = []; + for (const s of e) { + if (s instanceof n.Ref && t.includes(s)) { + r.put(s); + i.push(s.toString()); + continue; + } + const e = parseNestedOrder(s, a); + e && i.push(e); + } + if (a > 0) return i; + const s = []; + for (const e of t) r.has(e) || s.push(e.toString()); + s.length && i.push({ name: null, order: s }); + return i; + } + function parseNestedOrder(e, t) { + if (++t > s) { + (0, i.warn)('parseNestedOrder - reached MAX_NESTED_LEVELS.'); + return null; + } + const r = a.fetchIfRef(e); + if (!Array.isArray(r)) return null; + const n = a.fetchIfRef(r[0]); + if ('string' != typeof n) return null; + const o = parseOrder(r.slice(1), t); + return o && o.length ? { name: (0, i.stringToPDFString)(n), order: o } : null; + } + const a = this.xref, + r = new n.RefSet(), + s = 10; + return { + name: + 'string' == typeof e.get('Name') ? (0, i.stringToPDFString)(e.get('Name')) : null, + creator: + 'string' == typeof e.get('Creator') + ? (0, i.stringToPDFString)(e.get('Creator')) + : null, + baseState: e.get('BaseState') instanceof n.Name ? e.get('BaseState').name : null, + on: parseOnOff(e.get('ON')), + off: parseOnOff(e.get('OFF')), + order: parseOrder(e.get('Order')), + groups: null, + }; + } + setActualNumPages(e = null) { + this._actualNumPages = e; + } + get hasActualNumPages() { + return null !== this._actualNumPages; + } + get _pagesCount() { + const e = this.toplevelPagesDict.get('Count'); + if (!Number.isInteger(e)) + throw new i.FormatError( + 'Page count in top-level pages dictionary is not an integer.', + ); + return (0, i.shadow)(this, '_pagesCount', e); + } + get numPages() { + return this.hasActualNumPages ? this._actualNumPages : this._pagesCount; + } + get destinations() { + const e = this._readDests(), + t = Object.create(null); + if (e instanceof s.NameTree) + for (const [a, r] of e.getAll()) { + const e = fetchDestination(r); + e && (t[(0, i.stringToPDFString)(a)] = e); + } + else + e instanceof n.Dict && + e.forEach(function (e, a) { + const r = fetchDestination(a); + r && (t[e] = r); + }); + return (0, i.shadow)(this, 'destinations', t); + } + getDestination(e) { + const t = this._readDests(); + if (t instanceof s.NameTree) { + const a = fetchDestination(t.get(e)); + if (a) return a; + const r = this.destinations[e]; + if (r) { + (0, i.warn)(`Found "${e}" at an incorrect position in the NameTree.`); + return r; + } + } else if (t instanceof n.Dict) { + const a = fetchDestination(t.get(e)); + if (a) return a; + } + return null; + } + _readDests() { + const e = this._catDict.get('Names'); + return e && e.has('Dests') + ? new s.NameTree(e.getRaw('Dests'), this.xref) + : this._catDict.has('Dests') + ? this._catDict.get('Dests') + : void 0; + } + get pageLabels() { + let e = null; + try { + e = this._readPageLabels(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable to read page labels.'); + } + return (0, i.shadow)(this, 'pageLabels', e); + } + _readPageLabels() { + const e = this._catDict.getRaw('PageLabels'); + if (!e) return null; + const t = new Array(this.numPages); + let a = null, + o = ''; + const c = new s.NumberTree(e, this.xref).getAll(); + let l = '', + h = 1; + for (let e = 0, s = this.numPages; e < s; e++) { + const s = c.get(e); + if (void 0 !== s) { + if (!(s instanceof n.Dict)) + throw new i.FormatError('PageLabel is not a dictionary.'); + if (s.has('Type') && !(0, n.isName)(s.get('Type'), 'PageLabel')) + throw new i.FormatError('Invalid type in PageLabel dictionary.'); + if (s.has('S')) { + const e = s.get('S'); + if (!(e instanceof n.Name)) + throw new i.FormatError('Invalid style in PageLabel dictionary.'); + a = e.name; + } else a = null; + if (s.has('P')) { + const e = s.get('P'); + if ('string' != typeof e) + throw new i.FormatError('Invalid prefix in PageLabel dictionary.'); + o = (0, i.stringToPDFString)(e); + } else o = ''; + if (s.has('St')) { + const e = s.get('St'); + if (!(Number.isInteger(e) && e >= 1)) + throw new i.FormatError('Invalid start in PageLabel dictionary.'); + h = e; + } else h = 1; + } + switch (a) { + case 'D': + l = h; + break; + case 'R': + case 'r': + l = (0, r.toRomanNumerals)(h, 'r' === a); + break; + case 'A': + case 'a': + const e = 26, + t = 'a' === a ? 97 : 65, + n = h - 1; + l = String.fromCharCode(t + (n % e)).repeat(Math.floor(n / e) + 1); + break; + default: + if (a) throw new i.FormatError(`Invalid style "${a}" in PageLabel dictionary.`); + l = ''; + } + t[e] = o + l; + h++; + } + return t; + } + get pageLayout() { + const e = this._catDict.get('PageLayout'); + let t = ''; + if (e instanceof n.Name) + switch (e.name) { + case 'SinglePage': + case 'OneColumn': + case 'TwoColumnLeft': + case 'TwoColumnRight': + case 'TwoPageLeft': + case 'TwoPageRight': + t = e.name; + } + return (0, i.shadow)(this, 'pageLayout', t); + } + get pageMode() { + const e = this._catDict.get('PageMode'); + let t = 'UseNone'; + if (e instanceof n.Name) + switch (e.name) { + case 'UseNone': + case 'UseOutlines': + case 'UseThumbs': + case 'FullScreen': + case 'UseOC': + case 'UseAttachments': + t = e.name; + } + return (0, i.shadow)(this, 'pageMode', t); + } + get viewerPreferences() { + const e = this._catDict.get('ViewerPreferences'); + if (!(e instanceof n.Dict)) return (0, i.shadow)(this, 'viewerPreferences', null); + let t = null; + for (const a of e.getKeys()) { + const r = e.get(a); + let s; + switch (a) { + case 'HideToolbar': + case 'HideMenubar': + case 'HideWindowUI': + case 'FitWindow': + case 'CenterWindow': + case 'DisplayDocTitle': + case 'PickTrayByPDFSize': + 'boolean' == typeof r && (s = r); + break; + case 'NonFullScreenPageMode': + if (r instanceof n.Name) + switch (r.name) { + case 'UseNone': + case 'UseOutlines': + case 'UseThumbs': + case 'UseOC': + s = r.name; + break; + default: + s = 'UseNone'; + } + break; + case 'Direction': + if (r instanceof n.Name) + switch (r.name) { + case 'L2R': + case 'R2L': + s = r.name; + break; + default: + s = 'L2R'; + } + break; + case 'ViewArea': + case 'ViewClip': + case 'PrintArea': + case 'PrintClip': + if (r instanceof n.Name) + switch (r.name) { + case 'MediaBox': + case 'CropBox': + case 'BleedBox': + case 'TrimBox': + case 'ArtBox': + s = r.name; + break; + default: + s = 'CropBox'; + } + break; + case 'PrintScaling': + if (r instanceof n.Name) + switch (r.name) { + case 'None': + case 'AppDefault': + s = r.name; + break; + default: + s = 'AppDefault'; + } + break; + case 'Duplex': + if (r instanceof n.Name) + switch (r.name) { + case 'Simplex': + case 'DuplexFlipShortEdge': + case 'DuplexFlipLongEdge': + s = r.name; + break; + default: + s = 'None'; + } + break; + case 'PrintPageRange': + if (Array.isArray(r) && r.length % 2 == 0) { + r.every( + (e, t, a) => + Number.isInteger(e) && + e > 0 && + (0 === t || e >= a[t - 1]) && + e <= this.numPages, + ) && (s = r); + } + break; + case 'NumCopies': + Number.isInteger(r) && r > 0 && (s = r); + break; + default: + (0, i.warn)(`Ignoring non-standard key in ViewerPreferences: ${a}.`); + continue; + } + if (void 0 !== s) { + t || (t = Object.create(null)); + t[a] = s; + } else (0, i.warn)(`Bad value, for key "${a}", in ViewerPreferences: ${r}.`); + } + return (0, i.shadow)(this, 'viewerPreferences', t); + } + get openAction() { + const e = this._catDict.get('OpenAction'), + t = Object.create(null); + if (e instanceof n.Dict) { + const a = new n.Dict(this.xref); + a.set('A', e); + const r = { url: null, dest: null, action: null }; + Catalog.parseDestDictionary({ destDict: a, resultObj: r }); + Array.isArray(r.dest) ? (t.dest = r.dest) : r.action && (t.action = r.action); + } else Array.isArray(e) && (t.dest = e); + return (0, i.shadow)(this, 'openAction', (0, i.objectSize)(t) > 0 ? t : null); + } + get attachments() { + const e = this._catDict.get('Names'); + let t = null; + if (e instanceof n.Dict && e.has('EmbeddedFiles')) { + const a = new s.NameTree(e.getRaw('EmbeddedFiles'), this.xref); + for (const [e, r] of a.getAll()) { + const a = new h.FileSpec(r, this.xref); + t || (t = Object.create(null)); + t[(0, i.stringToPDFString)(e)] = a.serializable; + } + } + return (0, i.shadow)(this, 'attachments', t); + } + get xfaImages() { + const e = this._catDict.get('Names'); + let t = null; + if (e instanceof n.Dict && e.has('XFAImages')) { + const a = new s.NameTree(e.getRaw('XFAImages'), this.xref); + for (const [e, r] of a.getAll()) { + t || (t = new n.Dict(this.xref)); + t.set((0, i.stringToPDFString)(e), r); + } + } + return (0, i.shadow)(this, 'xfaImages', t); + } + _collectJavaScript() { + const e = this._catDict.get('Names'); + let t = null; + function appendIfJavaScriptDict(e, a) { + if (!(a instanceof n.Dict)) return; + if (!(0, n.isName)(a.get('S'), 'JavaScript')) return; + let r = a.get('JS'); + if (r instanceof o.BaseStream) r = r.getString(); + else if ('string' != typeof r) return; + r = (0, i.stringToPDFString)(r).replaceAll('\0', ''); + (t ||= new Map()).set(e, r); + } + if (e instanceof n.Dict && e.has('JavaScript')) { + const t = new s.NameTree(e.getRaw('JavaScript'), this.xref); + for (const [e, a] of t.getAll()) + appendIfJavaScriptDict((0, i.stringToPDFString)(e), a); + } + const a = this._catDict.get('OpenAction'); + a && appendIfJavaScriptDict('OpenAction', a); + return t; + } + get javaScript() { + const e = this._collectJavaScript(); + return (0, i.shadow)(this, 'javaScript', e ? [...e.values()] : null); + } + get jsActions() { + const e = this._collectJavaScript(); + let t = (0, r.collectActions)(this.xref, this._catDict, i.DocumentActionEventType); + if (e) { + t || (t = Object.create(null)); + for (const [a, r] of e) a in t ? t[a].push(r) : (t[a] = [r]); + } + return (0, i.shadow)(this, 'jsActions', t); + } + async fontFallback(e, t) { + const a = await Promise.all(this.fontCache); + for (const r of a) + if (r.loadedName === e) { + r.fallback(t); + return; + } + } + async cleanup(e = !1) { + (0, c.clearGlobalCaches)(); + this.globalImageCache.clear(e); + this.pageKidsCountCache.clear(); + this.pageIndexCache.clear(); + this.nonBlendModesSet.clear(); + const t = await Promise.all(this.fontCache); + for (const { dict: e } of t) delete e.cacheKey; + this.fontCache.clear(); + this.builtInCMapCache.clear(); + this.standardFontDataCache.clear(); + } + async getPageDict(e) { + const t = [this.toplevelPagesDict], + a = new n.RefSet(), + r = this._catDict.getRaw('Pages'); + r instanceof n.Ref && a.put(r); + const s = this.xref, + o = this.pageKidsCountCache, + c = this.pageIndexCache; + let l = 0; + for (; t.length; ) { + const r = t.pop(); + if (r instanceof n.Ref) { + const h = o.get(r); + if (h >= 0 && l + h <= e) { + l += h; + continue; + } + if (a.has(r)) throw new i.FormatError('Pages tree contains circular reference.'); + a.put(r); + const u = await s.fetchAsync(r); + if (u instanceof n.Dict) { + let t = u.getRaw('Type'); + t instanceof n.Ref && (t = await s.fetchAsync(t)); + if ((0, n.isName)(t, 'Page') || !u.has('Kids')) { + o.has(r) || o.put(r, 1); + c.has(r) || c.put(r, l); + if (l === e) return [u, r]; + l++; + continue; + } + } + t.push(u); + continue; + } + if (!(r instanceof n.Dict)) + throw new i.FormatError( + 'Page dictionary kid reference points to wrong type of object.', + ); + const { objId: h } = r; + let u = r.getRaw('Count'); + u instanceof n.Ref && (u = await s.fetchAsync(u)); + if (Number.isInteger(u) && u >= 0) { + h && !o.has(h) && o.put(h, u); + if (l + u <= e) { + l += u; + continue; + } + } + let d = r.getRaw('Kids'); + d instanceof n.Ref && (d = await s.fetchAsync(d)); + if (!Array.isArray(d)) { + let t = r.getRaw('Type'); + t instanceof n.Ref && (t = await s.fetchAsync(t)); + if ((0, n.isName)(t, 'Page') || !r.has('Kids')) { + if (l === e) return [r, null]; + l++; + continue; + } + throw new i.FormatError('Page dictionary kids object is not an array.'); + } + for (let e = d.length - 1; e >= 0; e--) t.push(d[e]); + } + throw new Error(`Page index ${e} not found.`); + } + async getAllPageDicts(e = !1) { + const { ignoreErrors: t } = this.pdfManager.evaluatorOptions, + a = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }], + s = new n.RefSet(), + o = this._catDict.getRaw('Pages'); + o instanceof n.Ref && s.put(o); + const c = new Map(), + l = this.xref, + h = this.pageIndexCache; + let u = 0; + function addPageDict(e, t) { + t && !h.has(t) && h.put(t, u); + c.set(u++, [e, t]); + } + function addPageError(a) { + if (a instanceof r.XRefEntryException && !e) throw a; + if (e && t && 0 === u) { + (0, i.warn)(`getAllPageDicts - Skipping invalid first page: "${a}".`); + a = n.Dict.empty; + } + c.set(u++, [a, null]); + } + for (; a.length > 0; ) { + const e = a.at(-1), + { currentNode: t, posInKids: r } = e; + let o = t.getRaw('Kids'); + if (o instanceof n.Ref) + try { + o = await l.fetchAsync(o); + } catch (e) { + addPageError(e); + break; + } + if (!Array.isArray(o)) { + addPageError(new i.FormatError('Page dictionary kids object is not an array.')); + break; + } + if (r >= o.length) { + a.pop(); + continue; + } + const c = o[r]; + let h; + if (c instanceof n.Ref) { + if (s.has(c)) { + addPageError(new i.FormatError('Pages tree contains circular reference.')); + break; + } + s.put(c); + try { + h = await l.fetchAsync(c); + } catch (e) { + addPageError(e); + break; + } + } else h = c; + if (!(h instanceof n.Dict)) { + addPageError( + new i.FormatError( + 'Page dictionary kid reference points to wrong type of object.', + ), + ); + break; + } + let u = h.getRaw('Type'); + if (u instanceof n.Ref) + try { + u = await l.fetchAsync(u); + } catch (e) { + addPageError(e); + break; + } + (0, n.isName)(u, 'Page') || !h.has('Kids') + ? addPageDict(h, c instanceof n.Ref ? c : null) + : a.push({ currentNode: h, posInKids: 0 }); + e.posInKids++; + } + return c; + } + getPageIndex(e) { + const t = this.pageIndexCache.get(e); + if (void 0 !== t) return Promise.resolve(t); + const a = this.xref; + let r = 0; + const next = (t) => + (function pagesBeforeRef(t) { + let r, + s = 0; + return a + .fetchAsync(t) + .then(function (a) { + if ( + (0, n.isRefsEqual)(t, e) && + !(0, n.isDict)(a, 'Page') && + !(a instanceof n.Dict && !a.has('Type') && a.has('Contents')) + ) + throw new i.FormatError( + 'The reference does not point to a /Page dictionary.', + ); + if (!a) return null; + if (!(a instanceof n.Dict)) + throw new i.FormatError('Node must be a dictionary.'); + r = a.getRaw('Parent'); + return a.getAsync('Parent'); + }) + .then(function (e) { + if (!e) return null; + if (!(e instanceof n.Dict)) + throw new i.FormatError('Parent must be a dictionary.'); + return e.getAsync('Kids'); + }) + .then(function (e) { + if (!e) return null; + const o = []; + let c = !1; + for (const r of e) { + if (!(r instanceof n.Ref)) + throw new i.FormatError('Kid must be a reference.'); + if ((0, n.isRefsEqual)(r, t)) { + c = !0; + break; + } + o.push( + a.fetchAsync(r).then(function (e) { + if (!(e instanceof n.Dict)) + throw new i.FormatError('Kid node must be a dictionary.'); + e.has('Count') ? (s += e.get('Count')) : s++; + }), + ); + } + if (!c) throw new i.FormatError("Kid reference not found in parent's kids."); + return Promise.all(o).then(function () { + return [s, r]; + }); + }); + })(t).then((t) => { + if (!t) { + this.pageIndexCache.put(e, r); + return r; + } + const [a, i] = t; + r += a; + return next(i); + }); + return next(e); + } + get baseUrl() { + const e = this._catDict.get('URI'); + if (e instanceof n.Dict) { + const t = e.get('Base'); + if ('string' == typeof t) { + const e = (0, i.createValidAbsoluteUrl)(t, null, { tryConvertEncoding: !0 }); + if (e) return (0, i.shadow)(this, 'baseUrl', e.href); + } + } + return (0, i.shadow)(this, 'baseUrl', null); + } + static parseDestDictionary(e) { + const t = e.destDict; + if (!(t instanceof n.Dict)) { + (0, i.warn)('parseDestDictionary: `destDict` must be a dictionary.'); + return; + } + const a = e.resultObj; + if ('object' != typeof a) { + (0, i.warn)('parseDestDictionary: `resultObj` must be an object.'); + return; + } + const s = e.docBaseUrl || null, + c = e.docAttachments || null; + let l, + h, + u = t.get('A'); + if (!(u instanceof n.Dict)) + if (t.has('Dest')) u = t.get('Dest'); + else { + u = t.get('AA'); + u instanceof n.Dict && + (u.has('D') ? (u = u.get('D')) : u.has('U') && (u = u.get('U'))); + } + if (u instanceof n.Dict) { + const e = u.get('S'); + if (!(e instanceof n.Name)) { + (0, i.warn)('parseDestDictionary: Invalid type in Action dictionary.'); + return; + } + const t = e.name; + switch (t) { + case 'ResetForm': + const e = u.get('Flags'), + s = 0 == (1 & ('number' == typeof e ? e : 0)), + d = [], + f = []; + for (const e of u.get('Fields') || []) + e instanceof n.Ref + ? f.push(e.toString()) + : 'string' == typeof e && d.push((0, i.stringToPDFString)(e)); + a.resetForm = { fields: d, refs: f, include: s }; + break; + case 'URI': + l = u.get('URI'); + l instanceof n.Name && (l = '/' + l.name); + break; + case 'GoTo': + h = u.get('D'); + break; + case 'Launch': + case 'GoToR': + const g = u.get('F'); + g instanceof n.Dict + ? (l = g.get('F') || null) + : 'string' == typeof g && (l = g); + let p = u.get('D'); + if (p) { + p instanceof n.Name && (p = p.name); + if ('string' == typeof l) { + const e = l.split('#')[0]; + 'string' == typeof p + ? (l = e + '#' + p) + : Array.isArray(p) && (l = e + '#' + JSON.stringify(p)); + } + } + const m = u.get('NewWindow'); + 'boolean' == typeof m && (a.newWindow = m); + break; + case 'GoToE': + const b = u.get('T'); + let y; + if (c && b instanceof n.Dict) { + const e = b.get('R'), + t = b.get('N'); + (0, n.isName)(e, 'C') && + 'string' == typeof t && + (y = c[(0, i.stringToPDFString)(t)]); + } + y + ? (a.attachment = y) + : (0, i.warn)('parseDestDictionary - unimplemented "GoToE" action.'); + break; + case 'Named': + const w = u.get('N'); + w instanceof n.Name && (a.action = w.name); + break; + case 'SetOCGState': + const S = u.get('State'), + x = u.get('PreserveRB'); + if (!Array.isArray(S) || 0 === S.length) break; + const C = []; + for (const e of S) + if (e instanceof n.Name) + switch (e.name) { + case 'ON': + case 'OFF': + case 'Toggle': + C.push(e.name); + } + else e instanceof n.Ref && C.push(e.toString()); + if (C.length !== S.length) break; + a.setOCGState = { state: C, preserveRB: 'boolean' != typeof x || x }; + break; + case 'JavaScript': + const k = u.get('JS'); + let v; + k instanceof o.BaseStream + ? (v = k.getString()) + : 'string' == typeof k && (v = k); + const F = v && (0, r.recoverJsURL)((0, i.stringToPDFString)(v)); + if (F) { + l = F.url; + a.newWindow = F.newWindow; + break; + } + default: + if ('JavaScript' === t || 'SubmitForm' === t) break; + (0, i.warn)(`parseDestDictionary - unsupported action: "${t}".`); + } + } else t.has('Dest') && (h = t.get('Dest')); + if ('string' == typeof l) { + const e = (0, i.createValidAbsoluteUrl)(l, s, { + addDefaultProtocol: !0, + tryConvertEncoding: !0, + }); + e && (a.url = e.href); + a.unsafeUrl = l; + } + if (h) { + h instanceof n.Name && (h = h.name); + 'string' == typeof h + ? (a.dest = (0, i.stringToPDFString)(h)) + : Array.isArray(h) && (a.dest = h); + } + } + } + t.Catalog = Catalog; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.NumberTree = t.NameTree = void 0; + var r = a(4), + i = a(2); + class NameOrNumberTree { + constructor(e, t, a) { + this.constructor === NameOrNumberTree && + (0, i.unreachable)('Cannot initialize NameOrNumberTree.'); + this.root = e; + this.xref = t; + this._type = a; + } + getAll() { + const e = new Map(); + if (!this.root) return e; + const t = this.xref, + a = new r.RefSet(); + a.put(this.root); + const n = [this.root]; + for (; n.length > 0; ) { + const s = t.fetchIfRef(n.shift()); + if (!(s instanceof r.Dict)) continue; + if (s.has('Kids')) { + const e = s.get('Kids'); + if (!Array.isArray(e)) continue; + for (const t of e) { + if (a.has(t)) + throw new i.FormatError(`Duplicate entry in "${this._type}" tree.`); + n.push(t); + a.put(t); + } + continue; + } + const o = s.get(this._type); + if (Array.isArray(o)) + for (let a = 0, r = o.length; a < r; a += 2) + e.set(t.fetchIfRef(o[a]), t.fetchIfRef(o[a + 1])); + } + return e; + } + get(e) { + if (!this.root) return null; + const t = this.xref; + let a = t.fetchIfRef(this.root), + r = 0; + for (; a.has('Kids'); ) { + if (++r > 10) { + (0, i.warn)(`Search depth limit reached for "${this._type}" tree.`); + return null; + } + const n = a.get('Kids'); + if (!Array.isArray(n)) return null; + let s = 0, + o = n.length - 1; + for (; s <= o; ) { + const r = (s + o) >> 1, + i = t.fetchIfRef(n[r]), + c = i.get('Limits'); + if (e < t.fetchIfRef(c[0])) o = r - 1; + else { + if (!(e > t.fetchIfRef(c[1]))) { + a = i; + break; + } + s = r + 1; + } + } + if (s > o) return null; + } + const n = a.get(this._type); + if (Array.isArray(n)) { + let a = 0, + r = n.length - 2; + for (; a <= r; ) { + const i = (a + r) >> 1, + s = i + (1 & i), + o = t.fetchIfRef(n[s]); + if (e < o) r = s - 2; + else { + if (!(e > o)) return t.fetchIfRef(n[s + 1]); + a = s + 2; + } + } + } + return null; + } + } + t.NameTree = class NameTree extends NameOrNumberTree { + constructor(e, t) { + super(e, t, 'Names'); + } + }; + t.NumberTree = class NumberTree extends NameOrNumberTree { + constructor(e, t) { + super(e, t, 'Nums'); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.clearGlobalCaches = function clearGlobalCaches() { + (0, r.clearPrimitiveCaches)(); + (0, i.clearUnicodeCaches)(); + }; + var r = a(4), + i = a(40); + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FileSpec = void 0; + var r = a(2), + i = a(5), + n = a(4); + function pickPlatformItem(e) { + return e.has('UF') + ? e.get('UF') + : e.has('F') + ? e.get('F') + : e.has('Unix') + ? e.get('Unix') + : e.has('Mac') + ? e.get('Mac') + : e.has('DOS') + ? e.get('DOS') + : null; + } + t.FileSpec = class FileSpec { + constructor(e, t) { + if (e instanceof n.Dict) { + this.xref = t; + this.root = e; + e.has('FS') && (this.fs = e.get('FS')); + this.description = e.has('Desc') ? (0, r.stringToPDFString)(e.get('Desc')) : ''; + e.has('RF') && (0, r.warn)('Related file specifications are not supported'); + this.contentAvailable = !0; + if (!e.has('EF')) { + this.contentAvailable = !1; + (0, r.warn)('Non-embedded file specifications are not supported'); + } + } + } + get filename() { + if (!this._filename && this.root) { + const e = pickPlatformItem(this.root) || 'unnamed'; + this._filename = (0, r.stringToPDFString)(e) + .replaceAll('\\\\', '\\') + .replaceAll('\\/', '/') + .replaceAll('\\', '/'); + } + return this._filename; + } + get content() { + if (!this.contentAvailable) return null; + !this.contentRef && + this.root && + (this.contentRef = pickPlatformItem(this.root.get('EF'))); + let e = null; + if (this.contentRef) { + const t = this.xref.fetchIfRef(this.contentRef); + t instanceof i.BaseStream + ? (e = t.getBytes()) + : (0, r.warn)( + 'Embedded file specification points to non-existing/invalid content', + ); + } else (0, r.warn)('Embedded file specification does not have a content'); + return e; + } + get serializable() { + return { filename: this.filename, content: this.content }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.MetadataParser = void 0; + var r = a(66); + t.MetadataParser = class MetadataParser { + constructor(e) { + e = this._repair(e); + const t = new r.SimpleXMLParser({ lowerCaseName: !0 }).parseFromString(e); + this._metadataMap = new Map(); + this._data = e; + t && this._parse(t); + } + _repair(e) { + return e.replace(/^[^<]+/, '').replaceAll(/>\\376\\377([^<]+)/g, function (e, t) { + const a = t + .replaceAll(/\\([0-3])([0-7])([0-7])/g, function (e, t, a, r) { + return String.fromCharCode(64 * t + 8 * a + 1 * r); + }) + .replaceAll(/&(amp|apos|gt|lt|quot);/g, function (e, t) { + switch (t) { + case 'amp': + return '&'; + case 'apos': + return "'"; + case 'gt': + return '>'; + case 'lt': + return '<'; + case 'quot': + return '"'; + } + throw new Error(`_repair: ${t} isn't defined.`); + }), + r = ['>']; + for (let e = 0, t = a.length; e < t; e += 2) { + const t = 256 * a.charCodeAt(e) + a.charCodeAt(e + 1); + t >= 32 && t < 127 && 60 !== t && 62 !== t && 38 !== t + ? r.push(String.fromCharCode(t)) + : r.push('&#x' + (65536 + t).toString(16).substring(1) + ';'); + } + return r.join(''); + }); + } + _getSequence(e) { + const t = e.nodeName; + return 'rdf:bag' !== t && 'rdf:seq' !== t && 'rdf:alt' !== t + ? null + : e.childNodes.filter((e) => 'rdf:li' === e.nodeName); + } + _parseArray(e) { + if (!e.hasChildNodes()) return; + const [t] = e.childNodes, + a = this._getSequence(t) || []; + this._metadataMap.set( + e.nodeName, + a.map((e) => e.textContent.trim()), + ); + } + _parse(e) { + let t = e.documentElement; + if ('rdf:rdf' !== t.nodeName) { + t = t.firstChild; + for (; t && 'rdf:rdf' !== t.nodeName; ) t = t.nextSibling; + } + if (t && 'rdf:rdf' === t.nodeName && t.hasChildNodes()) + for (const e of t.childNodes) + if ('rdf:description' === e.nodeName) + for (const t of e.childNodes) { + const e = t.nodeName; + switch (e) { + case '#text': + continue; + case 'dc:creator': + case 'dc:subject': + this._parseArray(t); + continue; + } + this._metadataMap.set(e, t.textContent.trim()); + } + } + get serializable() { + return { parsedData: this._metadataMap, rawData: this._data }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.StructTreeRoot = t.StructTreePage = void 0; + var r = a(4), + i = a(2), + n = a(70); + const s = 'PAGE_CONTENT', + o = 'STREAM_CONTENT', + c = 'OBJECT', + l = 'ELEMENT'; + t.StructTreeRoot = class StructTreeRoot { + constructor(e) { + this.dict = e; + this.roleMap = new Map(); + } + init() { + this.readRoleMap(); + } + readRoleMap() { + const e = this.dict.get('RoleMap'); + e instanceof r.Dict && + e.forEach((e, t) => { + t instanceof r.Name && this.roleMap.set(e, t.name); + }); + } + }; + class StructElementNode { + constructor(e, t) { + this.tree = e; + this.dict = t; + this.kids = []; + this.parseKids(); + } + get role() { + const e = this.dict.get('S'), + t = e instanceof r.Name ? e.name : '', + { root: a } = this.tree; + return a.roleMap.has(t) ? a.roleMap.get(t) : t; + } + parseKids() { + let e = null; + const t = this.dict.getRaw('Pg'); + t instanceof r.Ref && (e = t.toString()); + const a = this.dict.get('K'); + if (Array.isArray(a)) + for (const t of a) { + const a = this.parseKid(e, t); + a && this.kids.push(a); + } + else { + const t = this.parseKid(e, a); + t && this.kids.push(t); + } + } + parseKid(e, t) { + if (Number.isInteger(t)) + return this.tree.pageDict.objId !== e + ? null + : new StructElement({ type: s, mcid: t, pageObjId: e }); + let a = null; + t instanceof r.Ref ? (a = this.dict.xref.fetch(t)) : t instanceof r.Dict && (a = t); + if (!a) return null; + const i = a.getRaw('Pg'); + i instanceof r.Ref && (e = i.toString()); + const n = a.get('Type') instanceof r.Name ? a.get('Type').name : null; + return 'MCR' === n + ? this.tree.pageDict.objId !== e + ? null + : new StructElement({ + type: o, + refObjId: + a.getRaw('Stm') instanceof r.Ref ? a.getRaw('Stm').toString() : null, + pageObjId: e, + mcid: a.get('MCID'), + }) + : 'OBJR' === n + ? this.tree.pageDict.objId !== e + ? null + : new StructElement({ + type: c, + refObjId: + a.getRaw('Obj') instanceof r.Ref ? a.getRaw('Obj').toString() : null, + pageObjId: e, + }) + : new StructElement({ type: l, dict: a }); + } + } + class StructElement { + constructor({ + type: e, + dict: t = null, + mcid: a = null, + pageObjId: r = null, + refObjId: i = null, + }) { + this.type = e; + this.dict = t; + this.mcid = a; + this.pageObjId = r; + this.refObjId = i; + this.parentNode = null; + } + } + t.StructTreePage = class StructTreePage { + constructor(e, t) { + this.root = e; + this.rootDict = e ? e.dict : null; + this.pageDict = t; + this.nodes = []; + } + parse() { + if (!this.root || !this.rootDict) return; + const e = this.rootDict.get('ParentTree'); + if (!e) return; + const t = this.pageDict.get('StructParents'); + if (!Number.isInteger(t)) return; + const a = new n.NumberTree(e, this.rootDict.xref).get(t); + if (!Array.isArray(a)) return; + const i = new Map(); + for (const e of a) e instanceof r.Ref && this.addNode(this.rootDict.xref.fetch(e), i); + } + addNode(e, t, a = 0) { + if (a > 40) { + (0, i.warn)('StructTree MAX_DEPTH reached.'); + return null; + } + if (t.has(e)) return t.get(e); + const n = new StructElementNode(this, e); + t.set(e, n); + const s = e.get('P'); + if (!s || (0, r.isName)(s.get('Type'), 'StructTreeRoot')) { + this.addTopLevelNode(e, n) || t.delete(e); + return n; + } + const o = this.addNode(s, t, a + 1); + if (!o) return n; + let c = !1; + for (const t of o.kids) + if (t.type === l && t.dict === e) { + t.parentNode = n; + c = !0; + } + c || t.delete(e); + return n; + } + addTopLevelNode(e, t) { + const a = this.rootDict.get('K'); + if (!a) return !1; + if (a instanceof r.Dict) { + if (a.objId !== e.objId) return !1; + this.nodes[0] = t; + return !0; + } + if (!Array.isArray(a)) return !0; + let i = !1; + for (let r = 0; r < a.length; r++) { + const n = a[r]; + if (n && n.toString() === e.objId) { + this.nodes[r] = t; + i = !0; + } + } + return i; + } + get serializable() { + function nodeToSerializable(e, t, a = 0) { + if (a > 40) { + (0, i.warn)('StructTree too deep to be fully serialized.'); + return; + } + const r = Object.create(null); + r.role = e.role; + r.children = []; + t.children.push(r); + const n = e.dict.get('Alt'); + 'string' == typeof n && (r.alt = (0, i.stringToPDFString)(n)); + const h = e.dict.get('Lang'); + 'string' == typeof h && (r.lang = (0, i.stringToPDFString)(h)); + for (const t of e.kids) { + const e = t.type === l ? t.parentNode : null; + e + ? nodeToSerializable(e, r, a + 1) + : t.type === s || t.type === o + ? r.children.push({ type: 'content', id: `page${t.pageObjId}_mcid${t.mcid}` }) + : t.type === c && r.children.push({ type: 'object', id: t.refObjId }); + } + } + const e = Object.create(null); + e.children = []; + e.role = 'Root'; + for (const t of this.nodes) t && nodeToSerializable(t, e); + return e; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ObjectLoader = void 0; + var r = a(4), + i = a(5), + n = a(3), + s = a(2); + function addChildren(e, t) { + if (e instanceof r.Dict) e = e.getRawValues(); + else if (e instanceof i.BaseStream) e = e.dict.getRawValues(); + else if (!Array.isArray(e)) return; + for (const n of e) + ((a = n) instanceof r.Ref || + a instanceof r.Dict || + a instanceof i.BaseStream || + Array.isArray(a)) && + t.push(n); + var a; + } + t.ObjectLoader = class ObjectLoader { + constructor(e, t, a) { + this.dict = e; + this.keys = t; + this.xref = a; + this.refSet = null; + } + async load() { + if (this.xref.stream.isDataLoaded) return; + const { keys: e, dict: t } = this; + this.refSet = new r.RefSet(); + const a = []; + for (const r of e) { + const e = t.getRaw(r); + void 0 !== e && a.push(e); + } + return this._walk(a); + } + async _walk(e) { + const t = [], + a = []; + for (; e.length; ) { + let o = e.pop(); + if (o instanceof r.Ref) { + if (this.refSet.has(o)) continue; + try { + this.refSet.put(o); + o = this.xref.fetch(o); + } catch (e) { + if (!(e instanceof n.MissingDataException)) { + (0, s.warn)(`ObjectLoader._walk - requesting all data: "${e}".`); + this.refSet = null; + const { manager: t } = this.xref.stream; + return t.requestAllChunks(); + } + t.push(o); + a.push({ begin: e.begin, end: e.end }); + } + } + if (o instanceof i.BaseStream) { + const e = o.getBaseStreams(); + if (e) { + let r = !1; + for (const t of e) + if (!t.isDataLoaded) { + r = !0; + a.push({ begin: t.start, end: t.end }); + } + r && t.push(o); + } + } + addChildren(o, e); + } + if (a.length) { + await this.xref.stream.manager.requestRanges(a); + for (const e of t) e instanceof r.Ref && this.refSet.remove(e); + return this._walk(t); + } + this.refSet = null; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XFAFactory = void 0; + var r = a(77), + i = a(81), + n = a(87), + s = a(85), + o = a(78), + c = a(2), + l = a(88), + h = a(98); + class XFAFactory { + constructor(e) { + try { + this.root = new l.XFAParser().parse(XFAFactory._createDocument(e)); + const t = new i.Binder(this.root); + this.form = t.bind(); + this.dataHandler = new n.DataHandler(this.root, t.getData()); + this.form[r.$globalData].template = this.form; + } catch (e) { + (0, c.warn)(`XFA - an error occurred during parsing and binding: ${e}`); + } + } + isValid() { + return this.root && this.form; + } + _createPagesHelper() { + const e = this.form[r.$toPages](); + return new Promise((t, a) => { + const nextIteration = () => { + try { + const a = e.next(); + a.done ? t(a.value) : setTimeout(nextIteration, 0); + } catch (e) { + a(e); + } + }; + setTimeout(nextIteration, 0); + }); + } + async _createPages() { + try { + this.pages = await this._createPagesHelper(); + this.dims = this.pages.children.map((e) => { + const { width: t, height: a } = e.attributes.style; + return [0, 0, parseInt(t), parseInt(a)]; + }); + } catch (e) { + (0, c.warn)(`XFA - an error occurred during layout: ${e}`); + } + } + getBoundingBox(e) { + return this.dims[e]; + } + async getNumPages() { + this.pages || (await this._createPages()); + return this.dims.length; + } + setImages(e) { + this.form[r.$globalData].images = e; + } + setFonts(e) { + this.form[r.$globalData].fontFinder = new s.FontFinder(e); + const t = []; + for (let e of this.form[r.$globalData].usedTypefaces) { + e = (0, o.stripQuotes)(e); + this.form[r.$globalData].fontFinder.find(e) || t.push(e); + } + return t.length > 0 ? t : null; + } + appendFonts(e, t) { + this.form[r.$globalData].fontFinder.add(e, t); + } + async getPages() { + this.pages || (await this._createPages()); + const e = this.pages; + this.pages = null; + return 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 || 'string' != typeof e) return null; + try { + let t = new l.XFAParser(h.XhtmlNamespace, !0).parse(e); + if (!['body', 'xhtml'].includes(t[r.$nodeName])) { + const e = h.XhtmlNamespace.body({}); + e[r.$appendChild](t); + t = e; + } + const a = t[r.$toHTML](); + if (!a.success) return null; + const { html: i } = a, + { attributes: n } = i; + if (n) { + n.class && (n.class = n.class.filter((e) => !e.startsWith('xfa'))); + n.dir = 'auto'; + } + return { html: i, str: t[r.$text]() }; + } catch (e) { + (0, c.warn)(`XFA - an error occurred during parsing of rich text: ${e}`); + } + return null; + } + } + t.XFAFactory = XFAFactory; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XmlObject = + t.XFAObjectArray = + t.XFAObject = + t.XFAAttribute = + t.StringObject = + t.OptionObject = + t.Option10 = + t.Option01 = + t.IntegerObject = + t.ContentObject = + t.$uid = + t.$toStyle = + t.$toString = + t.$toPages = + t.$toHTML = + t.$text = + t.$tabIndex = + t.$setValue = + t.$setSetAttributes = + t.$setId = + t.$searchNode = + t.$root = + t.$resolvePrototypes = + t.$removeChild = + t.$pushPara = + t.$pushGlyphs = + t.$popPara = + t.$onText = + t.$onChildCheck = + t.$onChild = + t.$nsAttributes = + t.$nodeName = + t.$namespaceId = + t.$isUsable = + t.$isTransparent = + t.$isThereMoreWidth = + t.$isSplittable = + t.$isNsAgnostic = + t.$isDescendent = + t.$isDataValue = + t.$isCDATAXml = + t.$isBindable = + t.$insertAt = + t.$indexOf = + t.$ids = + t.$hasSettableValue = + t.$globalData = + t.$getTemplateRoot = + t.$getSubformParent = + t.$getRealChildrenByNameIt = + t.$getParent = + t.$getNextPage = + t.$getExtra = + t.$getDataValue = + t.$getContainedChildren = + t.$getChildrenByNameIt = + t.$getChildrenByName = + t.$getChildrenByClass = + t.$getChildren = + t.$getAvailableSpace = + t.$getAttributes = + t.$getAttributeIt = + t.$flushHTML = + t.$finalize = + t.$extra = + t.$dump = + t.$data = + t.$content = + t.$consumed = + t.$clone = + t.$cleanup = + t.$cleanPage = + t.$clean = + t.$childrenToHTML = + t.$appendChild = + t.$addHTML = + t.$acceptWhitespace = + void 0; + var r = a(78), + i = a(2), + n = a(3), + s = a(79), + o = a(80); + const c = Symbol(); + t.$acceptWhitespace = c; + const l = Symbol(); + t.$addHTML = l; + const h = Symbol(); + t.$appendChild = h; + const u = Symbol(); + t.$childrenToHTML = u; + const d = Symbol(); + t.$clean = d; + const f = Symbol(); + t.$cleanPage = f; + const g = Symbol(); + t.$cleanup = g; + const p = Symbol(); + t.$clone = p; + const m = Symbol(); + t.$consumed = m; + const b = Symbol('content'); + t.$content = b; + const y = Symbol('data'); + t.$data = y; + const w = Symbol(); + t.$dump = w; + const S = Symbol('extra'); + t.$extra = S; + const x = Symbol(); + t.$finalize = x; + const C = Symbol(); + t.$flushHTML = C; + const k = Symbol(); + t.$getAttributeIt = k; + const v = Symbol(); + t.$getAttributes = v; + const F = Symbol(); + t.$getAvailableSpace = F; + const O = Symbol(); + t.$getChildrenByClass = O; + const T = Symbol(); + t.$getChildrenByName = T; + const M = Symbol(); + t.$getChildrenByNameIt = M; + const E = Symbol(); + t.$getDataValue = E; + const D = Symbol(); + t.$getExtra = D; + const N = Symbol(); + t.$getRealChildrenByNameIt = N; + const R = Symbol(); + t.$getChildren = R; + const L = Symbol(); + t.$getContainedChildren = L; + const _ = Symbol(); + t.$getNextPage = _; + const $ = Symbol(); + t.$getSubformParent = $; + const j = Symbol(); + t.$getParent = j; + const U = Symbol(); + t.$getTemplateRoot = U; + const X = Symbol(); + t.$globalData = X; + const H = Symbol(); + t.$hasSettableValue = H; + const q = Symbol(); + t.$ids = q; + const z = Symbol(); + t.$indexOf = z; + const W = Symbol(); + t.$insertAt = W; + const G = Symbol(); + t.$isCDATAXml = G; + const V = Symbol(); + t.$isBindable = V; + const K = Symbol(); + t.$isDataValue = K; + const J = Symbol(); + t.$isDescendent = J; + const Y = Symbol(); + t.$isNsAgnostic = Y; + const Z = Symbol(); + t.$isSplittable = Z; + const Q = Symbol(); + t.$isThereMoreWidth = Q; + const ee = Symbol(); + t.$isTransparent = ee; + const te = Symbol(); + t.$isUsable = te; + const ae = Symbol(), + re = Symbol('namespaceId'); + t.$namespaceId = re; + const ie = Symbol('nodeName'); + t.$nodeName = ie; + const ne = Symbol(); + t.$nsAttributes = ne; + const se = Symbol(); + t.$onChild = se; + const oe = Symbol(); + t.$onChildCheck = oe; + const ce = Symbol(); + t.$onText = ce; + const le = Symbol(); + t.$pushGlyphs = le; + const he = Symbol(); + t.$popPara = he; + const ue = Symbol(); + t.$pushPara = ue; + const de = Symbol(); + t.$removeChild = de; + const fe = Symbol('root'); + t.$root = fe; + const ge = Symbol(); + t.$resolvePrototypes = ge; + const pe = Symbol(); + t.$searchNode = pe; + const me = Symbol(); + t.$setId = me; + const be = Symbol(); + t.$setSetAttributes = be; + const ye = Symbol(); + t.$setValue = ye; + const we = Symbol(); + t.$tabIndex = we; + const Se = Symbol(); + t.$text = Se; + const xe = Symbol(); + t.$toPages = xe; + const Ae = Symbol(); + t.$toHTML = Ae; + const Ce = Symbol(); + t.$toString = Ce; + const ke = Symbol(); + t.$toStyle = ke; + const ve = Symbol('uid'); + t.$uid = ve; + const Fe = Symbol(), + Oe = Symbol(), + Ie = Symbol(), + Te = Symbol('_children'), + Me = Symbol(), + Pe = Symbol(), + Ee = Symbol(), + De = Symbol(), + Be = Symbol(), + Ne = Symbol(), + Re = Symbol(), + Le = Symbol(), + _e = Symbol(), + $e = Symbol('parent'), + je = Symbol(), + Ue = Symbol(), + Xe = Symbol(); + let He = 0; + const qe = s.NamespaceIds.datasets.id; + class XFAObject { + constructor(e, t, a = !1) { + this[re] = e; + this[ie] = t; + this[Re] = a; + this[$e] = null; + this[Te] = []; + this[ve] = `${t}${He++}`; + this[X] = null; + } + [se](e) { + if (!this[Re] || !this[oe](e)) return !1; + const t = e[ie], + a = this[t]; + if (!(a instanceof XFAObjectArray)) { + null !== a && this[de](a); + this[t] = e; + this[h](e); + return !0; + } + if (a.push(e)) { + this[h](e); + return !0; + } + let r = ''; + this.id + ? (r = ` (id: ${this.id})`) + : this.name && (r = ` (name: ${this.name} ${this.h.value})`); + (0, i.warn)(`XFA - node "${this[ie]}"${r} has already enough "${t}"!`); + return !1; + } + [oe](e) { + return this.hasOwnProperty(e[ie]) && e[re] === this[re]; + } + [Y]() { + return !1; + } + [c]() { + return !1; + } + [G]() { + return !1; + } + [V]() { + return !1; + } + [he]() { + this.para && this[U]()[S].paraStack.pop(); + } + [ue]() { + this[U]()[S].paraStack.push(this.para); + } + [me](e) { + this.id && this[re] === s.NamespaceIds.template.id && e.set(this.id, this); + } + [U]() { + return this[X].template; + } + [Z]() { + return !1; + } + [Q]() { + return !1; + } + [h](e) { + e[$e] = this; + this[Te].push(e); + !e[X] && this[X] && (e[X] = this[X]); + } + [de](e) { + const t = this[Te].indexOf(e); + this[Te].splice(t, 1); + } + [H]() { + return this.hasOwnProperty('value'); + } + [ye](e) {} + [ce](e) {} + [x]() {} + [d](e) { + delete this[Re]; + if (this[g]) { + e.clean(this[g]); + delete this[g]; + } + } + [z](e) { + return this[Te].indexOf(e); + } + [W](e, t) { + t[$e] = this; + this[Te].splice(e, 0, t); + !t[X] && this[X] && (t[X] = this[X]); + } + [ee]() { + return !this.name; + } + [ae]() { + return ''; + } + [Se]() { + return 0 === this[Te].length ? this[b] : this[Te].map((e) => e[Se]()).join(''); + } + get [Ie]() { + const e = Object.getPrototypeOf(this); + if (!e._attributes) { + const t = (e._attributes = new Set()); + for (const e of Object.getOwnPropertyNames(this)) { + if ( + null === this[e] || + this[e] instanceof XFAObject || + this[e] instanceof XFAObjectArray + ) + break; + t.add(e); + } + } + return (0, i.shadow)(this, Ie, e._attributes); + } + [J](e) { + let t = this; + for (; t; ) { + if (t === e) return !0; + t = t[j](); + } + return !1; + } + [j]() { + return this[$e]; + } + [$]() { + return this[j](); + } + [R](e = null) { + return e ? this[e] : this[Te]; + } + [w]() { + const e = Object.create(null); + this[b] && (e.$content = this[b]); + for (const t of Object.getOwnPropertyNames(this)) { + const a = this[t]; + null !== a && + (a instanceof XFAObject + ? (e[t] = a[w]()) + : a instanceof XFAObjectArray + ? a.isEmpty() || (e[t] = a.dump()) + : (e[t] = a)); + } + return e; + } + [ke]() { + return null; + } + [Ae]() { + return r.HTMLResult.EMPTY; + } + *[L]() { + for (const e of this[R]()) yield e; + } + *[De](e, t) { + for (const a of this[L]()) + if (!e || t === e.has(a[ie])) { + const e = this[F](), + t = a[Ae](e); + t.success || (this[S].failingNode = a); + yield t; + } + } + [C]() { + return null; + } + [l](e, t) { + this[S].children.push(e); + } + [F]() {} + [u]({ filter: e = null, include: t = !0 }) { + if (this[S].generator) { + const e = this[F](), + t = this[S].failingNode[Ae](e); + if (!t.success) return t; + t.html && this[l](t.html, t.bbox); + delete this[S].failingNode; + } else this[S].generator = this[De](e, t); + for (;;) { + const e = this[S].generator.next(); + if (e.done) break; + const t = e.value; + if (!t.success) return t; + t.html && this[l](t.html, t.bbox); + } + this[S].generator = null; + return r.HTMLResult.EMPTY; + } + [be](e) { + this[Ue] = new Set(Object.keys(e)); + } + [Ne](e) { + const t = this[Ie], + a = this[Ue]; + return [...e].filter((e) => t.has(e) && !a.has(e)); + } + [ge](e, t = new Set()) { + for (const a of this[Te]) a[je](e, t); + } + [je](e, t) { + const a = this[Be](e, t); + a ? this[Fe](a, e, t) : this[ge](e, t); + } + [Be](e, t) { + const { use: a, usehref: r } = this; + if (!a && !r) return null; + let n = null, + s = null, + c = null, + l = a; + if (r) { + l = r; + r.startsWith('#som(') && r.endsWith(')') + ? (s = r.slice(5, -1)) + : r.startsWith('.#som(') && r.endsWith(')') + ? (s = r.slice(6, -1)) + : r.startsWith('#') + ? (c = r.slice(1)) + : r.startsWith('.#') && (c = r.slice(2)); + } else a.startsWith('#') ? (c = a.slice(1)) : (s = a); + this.use = this.usehref = ''; + if (c) n = e.get(c); + else { + n = (0, o.searchNode)(e.get(fe), this, s, !0, !1); + n && (n = n[0]); + } + if (!n) { + (0, i.warn)(`XFA - Invalid prototype reference: ${l}.`); + return null; + } + if (n[ie] !== this[ie]) { + (0, i.warn)(`XFA - Incompatible prototype: ${n[ie]} !== ${this[ie]}.`); + return null; + } + if (t.has(n)) { + (0, i.warn)('XFA - Cycle detected in prototypes use.'); + return null; + } + t.add(n); + const h = n[Be](e, t); + h && n[Fe](h, e, t); + n[ge](e, t); + t.delete(n); + return n; + } + [Fe](e, t, a) { + if (a.has(e)) { + (0, i.warn)('XFA - Cycle detected in prototypes use.'); + return; + } + !this[b] && e[b] && (this[b] = e[b]); + new Set(a).add(e); + for (const t of this[Ne](e[Ue])) { + this[t] = e[t]; + this[Ue] && this[Ue].add(t); + } + for (const r of Object.getOwnPropertyNames(this)) { + if (this[Ie].has(r)) continue; + const i = this[r], + n = e[r]; + if (i instanceof XFAObjectArray) { + for (const e of i[Te]) e[je](t, a); + for (let r = i[Te].length, s = n[Te].length; r < s; r++) { + const n = e[Te][r][p](); + if (!i.push(n)) break; + n[$e] = this; + this[Te].push(n); + n[je](t, a); + } + } else if (null === i) { + if (null !== n) { + const e = n[p](); + e[$e] = this; + this[r] = e; + this[Te].push(e); + e[je](t, a); + } + } else { + i[ge](t, a); + n && i[Fe](n, t, a); + } + } + } + static [Me](e) { + return Array.isArray(e) + ? e.map((e) => XFAObject[Me](e)) + : 'object' == typeof e && null !== e + ? Object.assign({}, e) + : e; + } + [p]() { + const e = Object.create(Object.getPrototypeOf(this)); + for (const t of Object.getOwnPropertySymbols(this)) + try { + e[t] = this[t]; + } catch (a) { + (0, i.shadow)(e, t, this[t]); + } + e[ve] = `${e[ie]}${He++}`; + e[Te] = []; + for (const t of Object.getOwnPropertyNames(this)) { + if (this[Ie].has(t)) { + e[t] = XFAObject[Me](this[t]); + continue; + } + const a = this[t]; + e[t] = a instanceof XFAObjectArray ? new XFAObjectArray(a[Le]) : null; + } + for (const t of this[Te]) { + const a = t[ie], + r = t[p](); + e[Te].push(r); + r[$e] = e; + null === e[a] ? (e[a] = r) : e[a][Te].push(r); + } + return e; + } + [R](e = null) { + return e ? this[Te].filter((t) => t[ie] === e) : this[Te]; + } + [O](e) { + return this[e]; + } + [T](e, t, a = !0) { + return Array.from(this[M](e, t, a)); + } + *[M](e, t, a = !0) { + if ('parent' !== e) { + for (const a of this[Te]) { + a[ie] === e && (yield a); + a.name === e && (yield a); + (t || a[ee]()) && (yield* a[M](e, t, !1)); + } + a && this[Ie].has(e) && (yield new XFAAttribute(this, e, this[e])); + } else yield this[$e]; + } + } + t.XFAObject = XFAObject; + class XFAObjectArray { + constructor(e = 1 / 0) { + this[Le] = e; + this[Te] = []; + } + push(e) { + if (this[Te].length <= this[Le]) { + this[Te].push(e); + return !0; + } + (0, i.warn)(`XFA - node "${e[ie]}" accepts no more than ${this[Le]} children`); + return !1; + } + isEmpty() { + return 0 === this[Te].length; + } + dump() { + return 1 === this[Te].length ? this[Te][0][w]() : this[Te].map((e) => e[w]()); + } + [p]() { + const e = new XFAObjectArray(this[Le]); + e[Te] = this[Te].map((e) => e[p]()); + return e; + } + get children() { + return this[Te]; + } + clear() { + this[Te].length = 0; + } + } + t.XFAObjectArray = XFAObjectArray; + class XFAAttribute { + constructor(e, t, a) { + this[$e] = e; + this[ie] = t; + this[b] = a; + this[m] = !1; + this[ve] = 'attribute' + He++; + } + [j]() { + return this[$e]; + } + [K]() { + return !0; + } + [E]() { + return this[b].trim(); + } + [ye](e) { + e = e.value || ''; + this[b] = e.toString(); + } + [Se]() { + return this[b]; + } + [J](e) { + return this[$e] === e || this[$e][J](e); + } + } + t.XFAAttribute = XFAAttribute; + class XmlObject extends XFAObject { + constructor(e, t, a = {}) { + super(e, t); + this[b] = ''; + this[Pe] = null; + if ('#text' !== t) { + const e = new Map(); + this[Oe] = e; + for (const [t, r] of Object.entries(a)) e.set(t, new XFAAttribute(this, t, r)); + if (a.hasOwnProperty(ne)) { + const e = a[ne].xfa.dataNode; + void 0 !== e && + ('dataGroup' === e ? (this[Pe] = !1) : 'dataValue' === e && (this[Pe] = !0)); + } + } + this[m] = !1; + } + [Ce](e) { + const t = this[ie]; + if ('#text' === t) { + e.push((0, n.encodeToXmlString)(this[b])); + return; + } + const a = (0, i.utf8StringToString)(t), + r = this[re] === qe ? 'xfa:' : ''; + e.push(`<${r}${a}`); + for (const [t, a] of this[Oe].entries()) { + const r = (0, i.utf8StringToString)(t); + e.push(` ${r}="${(0, n.encodeToXmlString)(a[b])}"`); + } + null !== this[Pe] && + (this[Pe] + ? e.push(' xfa:dataNode="dataValue"') + : e.push(' xfa:dataNode="dataGroup"')); + if (this[b] || 0 !== this[Te].length) { + e.push('>'); + if (this[b]) + 'string' == typeof this[b] + ? e.push((0, n.encodeToXmlString)(this[b])) + : this[b][Ce](e); + else for (const t of this[Te]) t[Ce](e); + e.push(``); + } else e.push('/>'); + } + [se](e) { + if (this[b]) { + const e = new XmlObject(this[re], '#text'); + this[h](e); + e[b] = this[b]; + this[b] = ''; + } + this[h](e); + return !0; + } + [ce](e) { + this[b] += e; + } + [x]() { + if (this[b] && this[Te].length > 0) { + const e = new XmlObject(this[re], '#text'); + this[h](e); + e[b] = this[b]; + delete this[b]; + } + } + [Ae]() { + return '#text' === this[ie] + ? r.HTMLResult.success({ name: '#text', value: this[b] }) + : r.HTMLResult.EMPTY; + } + [R](e = null) { + return e ? this[Te].filter((t) => t[ie] === e) : this[Te]; + } + [v]() { + return this[Oe]; + } + [O](e) { + const t = this[Oe].get(e); + return void 0 !== t ? t : this[R](e); + } + *[M](e, t) { + const a = this[Oe].get(e); + a && (yield a); + for (const a of this[Te]) { + a[ie] === e && (yield a); + t && (yield* a[M](e, t)); + } + } + *[k](e, t) { + const a = this[Oe].get(e); + !a || (t && a[m]) || (yield a); + for (const a of this[Te]) yield* a[k](e, t); + } + *[N](e, t, a) { + for (const r of this[Te]) { + r[ie] !== e || (a && r[m]) || (yield r); + t && (yield* r[N](e, t, a)); + } + } + [K]() { + return null === this[Pe] + ? 0 === this[Te].length || this[Te][0][re] === s.NamespaceIds.xhtml.id + : this[Pe]; + } + [E]() { + return null === this[Pe] + ? 0 === this[Te].length + ? this[b].trim() + : this[Te][0][re] === s.NamespaceIds.xhtml.id + ? this[Te][0][Se]().trim() + : null + : this[b].trim(); + } + [ye](e) { + e = e.value || ''; + this[b] = e.toString(); + } + [w](e = !1) { + const t = Object.create(null); + e && (t.$ns = this[re]); + this[b] && (t.$content = this[b]); + t.$name = this[ie]; + t.children = []; + for (const a of this[Te]) t.children.push(a[w](e)); + t.attributes = Object.create(null); + for (const [e, a] of this[Oe]) t.attributes[e] = a[b]; + return t; + } + } + t.XmlObject = XmlObject; + class ContentObject extends XFAObject { + constructor(e, t) { + super(e, t); + this[b] = ''; + } + [ce](e) { + this[b] += e; + } + [x]() {} + } + t.ContentObject = ContentObject; + t.OptionObject = class OptionObject extends ContentObject { + constructor(e, t, a) { + super(e, t); + this[_e] = a; + } + [x]() { + this[b] = (0, r.getKeyword)({ + data: this[b], + defaultValue: this[_e][0], + validate: (e) => this[_e].includes(e), + }); + } + [d](e) { + super[d](e); + delete this[_e]; + } + }; + t.StringObject = class StringObject extends ContentObject { + [x]() { + this[b] = this[b].trim(); + } + }; + class IntegerObject extends ContentObject { + constructor(e, t, a, r) { + super(e, t); + this[Ee] = a; + this[Xe] = r; + } + [x]() { + this[b] = (0, r.getInteger)({ + data: this[b], + defaultValue: this[Ee], + validate: this[Xe], + }); + } + [d](e) { + super[d](e); + delete this[Ee]; + delete this[Xe]; + } + } + t.IntegerObject = IntegerObject; + t.Option01 = class Option01 extends IntegerObject { + constructor(e, t) { + super(e, t, 0, (e) => 1 === e); + } + }; + t.Option10 = class Option10 extends IntegerObject { + constructor(e, t) { + super(e, t, 1, (e) => 0 === e); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.HTMLResult = void 0; + t.getBBox = function getBBox(e) { + const t = -1; + if (!e) return { x: t, y: t, width: t, height: t }; + const a = e + .trim() + .split(/\s*,\s*/) + .map((e) => getMeasurement(e, '-1')); + if (a.length < 4 || a[2] < 0 || a[3] < 0) return { x: t, y: t, width: t, height: t }; + const [r, i, n, s] = a; + return { x: r, y: i, width: n, height: s }; + }; + t.getColor = function getColor(e, t = [0, 0, 0]) { + let [a, r, i] = t; + if (!e) return { r: a, g: r, b: i }; + const n = e + .trim() + .split(/\s*,\s*/) + .map((e) => Math.min(Math.max(0, parseInt(e.trim(), 10)), 255)) + .map((e) => (isNaN(e) ? 0 : e)); + if (n.length < 3) return { r: a, g: r, b: i }; + [a, r, i] = n; + return { r: a, g: r, b: i }; + }; + t.getFloat = function getFloat({ data: e, defaultValue: t, validate: a }) { + if (!e) return t; + e = e.trim(); + const r = parseFloat(e); + if (!isNaN(r) && a(r)) return r; + return t; + }; + t.getInteger = function getInteger({ data: e, defaultValue: t, validate: a }) { + if (!e) return t; + e = e.trim(); + const r = parseInt(e, 10); + if (!isNaN(r) && a(r)) return r; + return t; + }; + t.getKeyword = getKeyword; + t.getMeasurement = getMeasurement; + t.getRatio = function getRatio(e) { + if (!e) return { num: 1, den: 1 }; + const t = e + .trim() + .split(/\s*:\s*/) + .map((e) => parseFloat(e)) + .filter((e) => !isNaN(e)); + 1 === t.length && t.push(1); + if (0 === t.length) return { num: 1, den: 1 }; + const [a, r] = t; + return { num: a, den: r }; + }; + t.getRelevant = function getRelevant(e) { + if (!e) return []; + return e + .trim() + .split(/\s+/) + .map((e) => ({ excluded: '-' === e[0], viewname: e.substring(1) })); + }; + t.getStringOption = function getStringOption(e, t) { + return getKeyword({ data: e, defaultValue: t[0], validate: (e) => t.includes(e) }); + }; + t.stripQuotes = function stripQuotes(e) { + if (e.startsWith("'") || e.startsWith('"')) return e.slice(1, -1); + return e; + }; + var r = a(2); + const i = { + pt: (e) => e, + cm: (e) => (e / 2.54) * 72, + mm: (e) => (e / 25.4) * 72, + in: (e) => 72 * e, + px: (e) => e, + }, + n = /([+-]?\d+\.?\d*)(.*)/; + function getKeyword({ data: e, defaultValue: t, validate: a }) { + return e && a((e = e.trim())) ? e : t; + } + function getMeasurement(e, t = '0') { + t ||= '0'; + if (!e) return getMeasurement(t); + const a = e.trim().match(n); + if (!a) return getMeasurement(t); + const [, r, s] = a, + o = parseFloat(r); + if (isNaN(o)) return getMeasurement(t); + if (0 === o) return 0; + const c = i[s]; + return c ? c(o) : o; + } + class HTMLResult { + static get FAILURE() { + return (0, r.shadow)(this, 'FAILURE', new HTMLResult(!1, null, null, null)); + } + static get EMPTY() { + return (0, r.shadow)(this, 'EMPTY', new HTMLResult(!0, null, null, null)); + } + constructor(e, t, a, r) { + this.success = e; + this.html = t; + this.bbox = a; + this.breakNode = r; + } + isBreak() { + return !!this.breakNode; + } + static breakNode(e) { + return new HTMLResult(!1, null, null, e); + } + static success(e, t = null) { + return new HTMLResult(!0, e, t, null); + } + } + t.HTMLResult = HTMLResult; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.NamespaceIds = t.$buildXFAObject = void 0; + const a = Symbol(); + t.$buildXFAObject = a; + t.NamespaceIds = { + config: { id: 0, check: (e) => e.startsWith('http://www.xfa.org/schema/xci/') }, + connectionSet: { + id: 1, + check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-connection-set/'), + }, + datasets: { id: 2, check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-data/') }, + form: { id: 3, check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-form/') }, + localeSet: { + id: 4, + check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-locale-set/'), + }, + pdf: { id: 5, check: (e) => 'http://ns.adobe.com/xdp/pdf/' === e }, + signature: { id: 6, check: (e) => 'http://www.w3.org/2000/09/xmldsig#' === e }, + sourceSet: { + id: 7, + check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-source-set/'), + }, + stylesheet: { id: 8, check: (e) => 'http://www.w3.org/1999/XSL/Transform' === e }, + template: { + id: 9, + check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-template/'), + }, + xdc: { id: 10, check: (e) => e.startsWith('http://www.xfa.org/schema/xdc/') }, + xdp: { id: 11, check: (e) => 'http://ns.adobe.com/xdp/' === e }, + xfdf: { id: 12, check: (e) => 'http://ns.adobe.com/xfdf/' === e }, + xhtml: { id: 13, check: (e) => 'http://www.w3.org/1999/xhtml' === e }, + xmpmeta: { id: 14, check: (e) => 'http://ns.adobe.com/xmpmeta/' === e }, + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.createDataNode = function createDataNode(e, t, a) { + const i = parseExpression(a); + if (!i) return null; + if (i.some((e) => e.operator === c.dotDot)) return null; + const s = l.get(i[0].name); + let o = 0; + if (s) { + e = s(e, t); + o = 1; + } else e = t || e; + for (let t = i.length; o < t; o++) { + const { name: t, operator: a, index: s } = i[o]; + if (!isFinite(s)) { + i[o].index = 0; + return createNodes(e, i.slice(o)); + } + let l; + switch (a) { + case c.dot: + l = e[r.$getChildrenByName](t, !1); + break; + case c.dotDot: + l = e[r.$getChildrenByName](t, !0); + break; + case c.dotHash: + l = e[r.$getChildrenByClass](t); + l = l instanceof r.XFAObjectArray ? l.children : [l]; + } + if (0 === l.length) return createNodes(e, i.slice(o)); + if (!(s < l.length)) { + i[o].index = s - l.length; + return createNodes(e, i.slice(o)); + } + { + const t = l[s]; + if (!(t instanceof r.XFAObject)) { + (0, n.warn)('XFA - Cannot create a node.'); + return null; + } + e = t; + } + } + return null; + }; + t.searchNode = function searchNode(e, t, a, i = !0, n = !0) { + const s = parseExpression(a, i); + if (!s) return null; + const o = l.get(s[0].name); + let u, + d = 0; + if (o) { + u = !0; + e = [o(e, t)]; + d = 1; + } else { + u = null === t; + e = [t || e]; + } + for (let a = s.length; d < a; d++) { + const { name: a, cacheName: i, operator: o, index: l } = s[d], + f = []; + for (const t of e) { + if (!(t instanceof r.XFAObject)) continue; + let e, s; + if (n) { + s = h.get(t); + if (!s) { + s = new Map(); + h.set(t, s); + } + e = s.get(i); + } + if (!e) { + switch (o) { + case c.dot: + e = t[r.$getChildrenByName](a, !1); + break; + case c.dotDot: + e = t[r.$getChildrenByName](a, !0); + break; + case c.dotHash: + e = t[r.$getChildrenByClass](a); + e = e instanceof r.XFAObjectArray ? e.children : [e]; + } + n && s.set(i, e); + } + e.length > 0 && f.push(e); + } + if (0 !== f.length || u || 0 !== d) + e = isFinite(l) ? f.filter((e) => l < e.length).map((e) => e[l]) : f.flat(); + else { + const a = t[r.$getParent](); + if (!(t = a)) return null; + d = -1; + e = [t]; + } + } + if (0 === e.length) return null; + return e; + }; + var r = a(77), + i = a(79), + n = a(2); + const s = /^[^.[]+/, + o = /^[^\]]+/, + c = { dot: 0, dotDot: 1, dotHash: 2, dotBracket: 3, dotParen: 4 }, + l = new Map([ + ['$data', (e, t) => (e.datasets ? e.datasets.data : e)], + ['$record', (e, t) => (e.datasets ? e.datasets.data : e)[r.$getChildren]()[0]], + ['$template', (e, t) => e.template], + ['$connectionSet', (e, t) => e.connectionSet], + ['$form', (e, t) => e.form], + ['$layout', (e, t) => e.layout], + ['$host', (e, t) => e.host], + ['$dataWindow', (e, t) => e.dataWindow], + ['$event', (e, t) => e.event], + ['!', (e, t) => e.datasets], + ['$xfa', (e, t) => e], + ['xfa', (e, t) => e], + ['$', (e, t) => t], + ]), + h = new WeakMap(), + u = i.NamespaceIds.datasets.id; + function parseExpression(e, t, a = !0) { + let r = e.match(s); + if (!r) return null; + let [i] = r; + const l = [ + { name: i, cacheName: '.' + i, index: 0, js: null, formCalc: null, operator: c.dot }, + ]; + let h = i.length; + for (; h < e.length; ) { + const d = h; + if ('[' === e.charAt(h++)) { + r = e.slice(h).match(o); + if (!r) { + (0, n.warn)('XFA - Invalid index in SOM expression'); + return null; + } + l.at(-1).index = '*' === (u = (u = r[0]).trim()) ? 1 / 0 : parseInt(u, 10) || 0; + h += r[0].length + 1; + continue; + } + let f; + switch (e.charAt(h)) { + case '.': + if (!t) return null; + h++; + f = c.dotDot; + break; + case '#': + h++; + f = c.dotHash; + break; + case '[': + if (a) { + (0, n.warn)( + 'XFA - SOM expression contains a FormCalc subexpression which is not supported for now.', + ); + return null; + } + f = c.dotBracket; + break; + case '(': + if (a) { + (0, n.warn)( + 'XFA - SOM expression contains a JavaScript subexpression which is not supported for now.', + ); + return null; + } + f = c.dotParen; + break; + default: + f = c.dot; + } + r = e.slice(h).match(s); + if (!r) break; + [i] = r; + h += i.length; + l.push({ + name: i, + cacheName: e.slice(d, h), + operator: f, + index: 0, + js: null, + formCalc: null, + }); + } + var u; + return l; + } + function createNodes(e, t) { + let a = null; + for (const { name: i, index: n } of t) { + for (let t = 0, s = isFinite(n) ? n : 0; t <= s; t++) { + const t = e[r.$namespaceId] === u ? -1 : e[r.$namespaceId]; + a = new r.XmlObject(t, i); + e[r.$appendChild](a); + } + e = a; + } + return a; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Binder = void 0; + var r = a(77), + i = a(82), + n = a(80), + s = a(79), + o = a(2); + const c = s.NamespaceIds.datasets.id; + function createText(e) { + const t = new i.Text({}); + t[r.$content] = e; + return t; + } + t.Binder = class Binder { + constructor(e) { + this.root = e; + this.datasets = e.datasets; + e.datasets && e.datasets.data + ? (this.data = e.datasets.data) + : (this.data = new r.XmlObject(s.NamespaceIds.datasets.id, 'data')); + this.emptyMerge = 0 === this.data[r.$getChildren]().length; + this.root.form = this.form = e.template[r.$clone](); + } + _isConsumeData() { + return !this.emptyMerge && this._mergeMode; + } + _isMatchTemplate() { + return !this._isConsumeData(); + } + bind() { + this._bindElement(this.form, this.data); + return this.form; + } + getData() { + return this.data; + } + _bindValue(e, t, a) { + e[r.$data] = t; + if (e[r.$hasSettableValue]()) + if (t[r.$isDataValue]()) { + const a = t[r.$getDataValue](); + e[r.$setValue](createText(a)); + } else if ( + e instanceof i.Field && + e.ui && + e.ui.choiceList && + 'multiSelect' === e.ui.choiceList.open + ) { + const a = t[r.$getChildren]() + .map((e) => e[r.$content].trim()) + .join('\n'); + e[r.$setValue](createText(a)); + } else this._isConsumeData() && (0, o.warn)("XFA - Nodes haven't the same type."); + else + !t[r.$isDataValue]() || this._isMatchTemplate() + ? this._bindElement(e, t) + : (0, o.warn)("XFA - Nodes haven't the same type."); + } + _findDataByNameToConsume(e, t, a, i) { + if (!e) return null; + let n, o; + for (let i = 0; i < 3; i++) { + n = a[r.$getRealChildrenByNameIt](e, !1, !0); + for (;;) { + o = n.next().value; + if (!o) break; + if (t === o[r.$isDataValue]()) return o; + } + if (a[r.$namespaceId] === s.NamespaceIds.datasets.id && 'data' === a[r.$nodeName]) + break; + a = a[r.$getParent](); + } + if (!i) return null; + n = this.data[r.$getRealChildrenByNameIt](e, !0, !1); + o = n.next().value; + if (o) return o; + n = this.data[r.$getAttributeIt](e, !0); + o = n.next().value; + return o && o[r.$isDataValue]() ? o : null; + } + _setProperties(e, t) { + if (e.hasOwnProperty('setProperty')) + for (const { ref: a, target: s, connection: c } of e.setProperty.children) { + if (c) continue; + if (!a) continue; + const l = (0, n.searchNode)(this.root, t, a, !1, !1); + if (!l) { + (0, o.warn)(`XFA - Invalid reference: ${a}.`); + continue; + } + const [h] = l; + if (!h[r.$isDescendent](this.data)) { + (0, o.warn)('XFA - Invalid node: must be a data node.'); + continue; + } + const u = (0, n.searchNode)(this.root, e, s, !1, !1); + if (!u) { + (0, o.warn)(`XFA - Invalid target: ${s}.`); + continue; + } + const [d] = u; + if (!d[r.$isDescendent](e)) { + (0, o.warn)('XFA - Invalid target: must be a property or subproperty.'); + continue; + } + const f = d[r.$getParent](); + if (d instanceof i.SetProperty || f instanceof i.SetProperty) { + (0, o.warn)( + 'XFA - Invalid target: cannot be a setProperty or one of its properties.', + ); + continue; + } + if (d instanceof i.BindItems || f instanceof i.BindItems) { + (0, o.warn)( + 'XFA - Invalid target: cannot be a bindItems or one of its properties.', + ); + continue; + } + const g = h[r.$text](), + p = d[r.$nodeName]; + if (d instanceof r.XFAAttribute) { + const e = Object.create(null); + e[p] = g; + const t = Reflect.construct(Object.getPrototypeOf(f).constructor, [e]); + f[p] = t[p]; + } else if (d.hasOwnProperty(r.$content)) { + d[r.$data] = h; + d[r.$content] = g; + d[r.$finalize](); + } else (0, o.warn)('XFA - Invalid node to use in setProperty'); + } + } + _bindItems(e, t) { + if ( + !e.hasOwnProperty('items') || + !e.hasOwnProperty('bindItems') || + e.bindItems.isEmpty() + ) + return; + for (const t of e.items.children) e[r.$removeChild](t); + e.items.clear(); + const a = new i.Items({}), + s = new i.Items({}); + e[r.$appendChild](a); + e.items.push(a); + e[r.$appendChild](s); + e.items.push(s); + for (const { ref: i, labelRef: c, valueRef: l, connection: h } of e.bindItems + .children) { + if (h) continue; + if (!i) continue; + const e = (0, n.searchNode)(this.root, t, i, !1, !1); + if (e) + for (const t of e) { + if (!t[r.$isDescendent](this.datasets)) { + (0, o.warn)(`XFA - Invalid ref (${i}): must be a datasets child.`); + continue; + } + const e = (0, n.searchNode)(this.root, t, c, !0, !1); + if (!e) { + (0, o.warn)(`XFA - Invalid label: ${c}.`); + continue; + } + const [h] = e; + if (!h[r.$isDescendent](this.datasets)) { + (0, o.warn)('XFA - Invalid label: must be a datasets child.'); + continue; + } + const u = (0, n.searchNode)(this.root, t, l, !0, !1); + if (!u) { + (0, o.warn)(`XFA - Invalid value: ${l}.`); + continue; + } + const [d] = u; + if (!d[r.$isDescendent](this.datasets)) { + (0, o.warn)('XFA - Invalid value: must be a datasets child.'); + continue; + } + const f = createText(h[r.$text]()), + g = createText(d[r.$text]()); + a[r.$appendChild](f); + a.text.push(f); + s[r.$appendChild](g); + s.text.push(g); + } + else (0, o.warn)(`XFA - Invalid reference: ${i}.`); + } + } + _bindOccurrences(e, t, a) { + let i; + if (t.length > 1) { + i = e[r.$clone](); + i[r.$removeChild](i.occur); + i.occur = null; + } + this._bindValue(e, t[0], a); + this._setProperties(e, t[0]); + this._bindItems(e, t[0]); + if (1 === t.length) return; + const n = e[r.$getParent](), + s = e[r.$nodeName], + o = n[r.$indexOf](e); + for (let e = 1, c = t.length; e < c; e++) { + const c = t[e], + l = i[r.$clone](); + n[s].push(l); + n[r.$insertAt](o + e, l); + this._bindValue(l, c, a); + this._setProperties(l, c); + this._bindItems(l, c); + } + } + _createOccurrences(e) { + if (!this.emptyMerge) return; + const { occur: t } = e; + if (!t || t.initial <= 1) return; + const a = e[r.$getParent](), + i = e[r.$nodeName]; + if (!(a[i] instanceof r.XFAObjectArray)) return; + let n; + n = e.name + ? a[i].children.filter((t) => t.name === e.name).length + : a[i].children.length; + const s = a[r.$indexOf](e) + 1, + o = t.initial - n; + if (o) { + const t = e[r.$clone](); + t[r.$removeChild](t.occur); + t.occur = null; + a[i].push(t); + a[r.$insertAt](s, t); + for (let e = 1; e < o; e++) { + const n = t[r.$clone](); + a[i].push(n); + a[r.$insertAt](s + e, n); + } + } + } + _getOccurInfo(e) { + const { name: t, occur: a } = e; + if (!a || !t) return [1, 1]; + const r = -1 === a.max ? 1 / 0 : a.max; + return [a.min, r]; + } + _setAndBind(e, t) { + this._setProperties(e, t); + this._bindItems(e, t); + this._bindElement(e, t); + } + _bindElement(e, t) { + const a = []; + this._createOccurrences(e); + for (const i of e[r.$getChildren]()) { + if (i[r.$data]) continue; + if (void 0 === this._mergeMode && 'subform' === i[r.$nodeName]) { + this._mergeMode = 'consumeData' === i.mergeMode; + const e = t[r.$getChildren](); + if (e.length > 0) this._bindOccurrences(i, [e[0]], null); + else if (this.emptyMerge) { + const e = t[r.$namespaceId] === c ? -1 : t[r.$namespaceId], + a = (i[r.$data] = new r.XmlObject(e, i.name || 'root')); + t[r.$appendChild](a); + this._bindElement(i, a); + } + continue; + } + if (!i[r.$isBindable]()) continue; + let e = !1, + s = null, + l = null, + h = null; + if (i.bind) { + switch (i.bind.match) { + case 'none': + this._setAndBind(i, t); + continue; + case 'global': + e = !0; + break; + case 'dataRef': + if (!i.bind.ref) { + (0, o.warn)(`XFA - ref is empty in node ${i[r.$nodeName]}.`); + this._setAndBind(i, t); + continue; + } + l = i.bind.ref; + } + i.bind.picture && (s = i.bind.picture[r.$content]); + } + const [u, d] = this._getOccurInfo(i); + if (l) { + h = (0, n.searchNode)(this.root, t, l, !0, !1); + if (null === h) { + h = (0, n.createDataNode)(this.data, t, l); + if (!h) continue; + this._isConsumeData() && (h[r.$consumed] = !0); + this._setAndBind(i, h); + continue; + } + this._isConsumeData() && (h = h.filter((e) => !e[r.$consumed])); + h.length > d ? (h = h.slice(0, d)) : 0 === h.length && (h = null); + h && + this._isConsumeData() && + h.forEach((e) => { + e[r.$consumed] = !0; + }); + } else { + if (!i.name) { + this._setAndBind(i, t); + continue; + } + if (this._isConsumeData()) { + const a = []; + for (; a.length < d; ) { + const n = this._findDataByNameToConsume( + i.name, + i[r.$hasSettableValue](), + t, + e, + ); + if (!n) break; + n[r.$consumed] = !0; + a.push(n); + } + h = a.length > 0 ? a : null; + } else { + h = t[r.$getRealChildrenByNameIt](i.name, !1, this.emptyMerge).next().value; + if (!h) { + if (0 === u) { + a.push(i); + continue; + } + const e = t[r.$namespaceId] === c ? -1 : t[r.$namespaceId]; + h = i[r.$data] = new r.XmlObject(e, i.name); + this.emptyMerge && (h[r.$consumed] = !0); + t[r.$appendChild](h); + this._setAndBind(i, h); + continue; + } + this.emptyMerge && (h[r.$consumed] = !0); + h = [h]; + } + } + h ? this._bindOccurrences(i, h, s) : u > 0 ? this._setAndBind(i, t) : a.push(i); + } + a.forEach((e) => e[r.$getParent]()[r.$removeChild](e)); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Value = + t.Text = + t.TemplateNamespace = + t.Template = + t.SetProperty = + t.Items = + t.Field = + t.BindItems = + void 0; + var r = a(77), + i = a(79), + n = a(83), + s = a(84), + o = a(78), + c = a(2), + l = a(85), + h = a(3), + u = a(80); + const d = i.NamespaceIds.template.id, + f = 'http://www.w3.org/2000/svg', + g = /^H(\d+)$/, + p = 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', + ]), + m = [ + [[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'], + ]; + function getBorderDims(e) { + if (!e || !e.border) return { w: 0, h: 0 }; + const t = e.border[r.$getExtra](); + return t + ? { + w: t.widths[0] + t.widths[2] + t.insets[0] + t.insets[2], + h: t.widths[1] + t.widths[3] + t.insets[1] + t.insets[3], + } + : { w: 0, h: 0 }; + } + function hasMargin(e) { + return ( + e.margin && + (e.margin.topInset || + e.margin.rightInset || + e.margin.bottomInset || + e.margin.leftInset) + ); + } + function _setValue(e, t) { + if (!e.value) { + const t = new Value({}); + e[r.$appendChild](t); + e.value = t; + } + e.value[r.$setValue](t); + } + function* getContainedChildren(e) { + for (const t of e[r.$getChildren]()) + t instanceof SubformSet ? yield* t[r.$getContainedChildren]() : yield t; + } + function isRequired(e) { + return e.validate && 'error' === e.validate.nullTest; + } + function setTabIndex(e) { + for (; e; ) { + if (!e.traversal) { + e[r.$tabIndex] = e[r.$getParent]()[r.$tabIndex]; + return; + } + if (e[r.$tabIndex]) return; + let t = null; + for (const a of e.traversal[r.$getChildren]()) + if ('next' === a.operation) { + t = a; + break; + } + if (!t || !t.ref) { + e[r.$tabIndex] = e[r.$getParent]()[r.$tabIndex]; + return; + } + const a = e[r.$getTemplateRoot](); + e[r.$tabIndex] = ++a[r.$tabIndex]; + const i = a[r.$searchNode](t.ref, e); + if (!i) return; + e = i[0]; + } + } + function applyAssist(e, t) { + const a = e.assist; + if (a) { + const e = a[r.$toHTML](); + e && (t.title = e); + const i = a.role.match(g); + if (i) { + const e = 'heading', + a = i[1]; + t.role = e; + t['aria-level'] = a; + } + } + if ('table' === e.layout) t.role = 'table'; + else if ('row' === e.layout) t.role = 'row'; + else { + const a = e[r.$getParent](); + 'row' === a.layout && + (a.assist && 'TH' === a.assist.role + ? (t.role = 'columnheader') + : (t.role = 'cell')); + } + } + function ariaLabel(e) { + if (!e.assist) return null; + const t = e.assist; + return t.speak && '' !== t.speak[r.$content] + ? t.speak[r.$content] + : t.toolTip + ? t.toolTip[r.$content] + : null; + } + function valueToHtml(e) { + return o.HTMLResult.success({ + name: 'div', + attributes: { class: ['xfaRich'], style: Object.create(null) }, + children: [{ name: 'span', attributes: { style: Object.create(null) }, value: e }], + }); + } + function setFirstUnsplittable(e) { + const t = e[r.$getTemplateRoot](); + if (null === t[r.$extra].firstUnsplittable) { + t[r.$extra].firstUnsplittable = e; + t[r.$extra].noLayoutFailure = !0; + } + } + function unsetFirstUnsplittable(e) { + const t = e[r.$getTemplateRoot](); + t[r.$extra].firstUnsplittable === e && (t[r.$extra].noLayoutFailure = !1); + } + function handleBreak(e) { + if (e[r.$extra]) return !1; + e[r.$extra] = Object.create(null); + if ('auto' === e.targetType) return !1; + const t = e[r.$getTemplateRoot](); + let a = null; + if (e.target) { + a = t[r.$searchNode](e.target, e[r.$getParent]()); + if (!a) return !1; + a = a[0]; + } + const { currentPageArea: i, currentContentArea: n } = t[r.$extra]; + if ('pageArea' === e.targetType) { + a instanceof PageArea || (a = null); + if (e.startNew) { + e[r.$extra].target = a || i; + return !0; + } + if (a && a !== i) { + e[r.$extra].target = a; + return !0; + } + return !1; + } + a instanceof ContentArea || (a = null); + const s = a && a[r.$getParent](); + let o, + c = s; + if (e.startNew) + if (a) { + const e = s.contentArea.children, + t = e.indexOf(n), + r = e.indexOf(a); + -1 !== t && t < r && (c = null); + o = r - 1; + } else o = i.contentArea.children.indexOf(n); + else { + if (!a || a === n) return !1; + o = s.contentArea.children.indexOf(a) - 1; + c = s === i ? null : s; + } + e[r.$extra].target = c; + e[r.$extra].index = o; + return !0; + } + function handleOverflow(e, t, a) { + const i = e[r.$getTemplateRoot](), + n = i[r.$extra].noLayoutFailure, + s = t[r.$getSubformParent]; + t[r.$getSubformParent] = () => e; + i[r.$extra].noLayoutFailure = !0; + const o = t[r.$toHTML](a); + e[r.$addHTML](o.html, o.bbox); + i[r.$extra].noLayoutFailure = n; + t[r.$getSubformParent] = s; + } + class AppearanceFilter extends r.StringObject { + constructor(e) { + super(d, 'appearanceFilter'); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Arc extends r.XFAObject { + constructor(e) { + super(d, 'arc', !0); + this.circular = (0, o.getInteger)({ + data: e.circular, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']); + this.id = e.id || ''; + this.startAngle = (0, o.getFloat)({ + data: e.startAngle, + defaultValue: 0, + validate: (e) => !0, + }); + this.sweepAngle = (0, o.getFloat)({ + data: e.sweepAngle, + defaultValue: 360, + validate: (e) => !0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.edge = null; + this.fill = null; + } + [r.$toHTML]() { + const e = this.edge || new Edge({}), + t = e[r.$toStyle](), + a = Object.create(null); + this.fill && 'visible' === this.fill.presence + ? Object.assign(a, this.fill[r.$toStyle]()) + : (a.fill = 'transparent'); + a.strokeWidth = (0, s.measureToString)('visible' === e.presence ? e.thickness : 0); + a.stroke = t.color; + let i; + const n = { xmlns: f, style: { width: '100%', height: '100%', overflow: 'visible' } }; + if (360 === this.sweepAngle) + i = { + name: 'ellipse', + attributes: { xmlns: f, cx: '50%', cy: '50%', rx: '50%', ry: '50%', style: a }, + }; + else { + const e = (this.startAngle * Math.PI) / 180, + t = (this.sweepAngle * Math.PI) / 180, + r = this.sweepAngle > 180 ? 1 : 0, + [s, o, c, l] = [ + 50 * (1 + Math.cos(e)), + 50 * (1 - Math.sin(e)), + 50 * (1 + Math.cos(e + t)), + 50 * (1 - Math.sin(e + t)), + ]; + i = { + name: 'path', + attributes: { + xmlns: f, + d: `M ${s} ${o} A 50 50 0 ${r} 0 ${c} ${l}`, + vectorEffect: 'non-scaling-stroke', + style: a, + }, + }; + Object.assign(n, { viewBox: '0 0 100 100', preserveAspectRatio: 'none' }); + } + const c = { name: 'svg', children: [i], attributes: n }; + if (hasMargin(this[r.$getParent]()[r.$getParent]())) + return o.HTMLResult.success({ + name: 'div', + attributes: { style: { display: 'inline', width: '100%', height: '100%' } }, + children: [c], + }); + c.attributes.style.position = 'absolute'; + return o.HTMLResult.success(c); + } + } + class Area extends r.XFAObject { + constructor(e) { + super(d, 'area', !0); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.id = e.id || ''; + this.name = e.name || ''; + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(e.y, '0pt'); + this.desc = null; + this.extras = null; + this.area = new r.XFAObjectArray(); + this.draw = new r.XFAObjectArray(); + this.exObject = new r.XFAObjectArray(); + this.exclGroup = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + this.subformSet = new r.XFAObjectArray(); + } + *[r.$getContainedChildren]() { + yield* getContainedChildren(this); + } + [r.$isTransparent]() { + return !0; + } + [r.$isBindable]() { + return !0; + } + [r.$addHTML](e, t) { + const [a, i, n, s] = t; + this[r.$extra].width = Math.max(this[r.$extra].width, a + n); + this[r.$extra].height = Math.max(this[r.$extra].height, i + s); + this[r.$extra].children.push(e); + } + [r.$getAvailableSpace]() { + return this[r.$extra].availableSpace; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'position'), + a = { style: t, id: this[r.$uid], class: ['xfaArea'] }; + (0, s.isPrintOnly)(this) && a.class.push('xfaPrintOnly'); + this.name && (a.xfaName = this.name); + const i = []; + this[r.$extra] = { children: i, width: 0, height: 0, availableSpace: e }; + const n = this[r.$childrenToHTML]({ + filter: new Set(['area', 'draw', 'field', 'exclGroup', 'subform', 'subformSet']), + include: !0, + }); + if (!n.success) { + if (n.isBreak()) return n; + delete this[r.$extra]; + return o.HTMLResult.FAILURE; + } + t.width = (0, s.measureToString)(this[r.$extra].width); + t.height = (0, s.measureToString)(this[r.$extra].height); + const c = { name: 'div', attributes: a, children: i }, + l = [this.x, this.y, this[r.$extra].width, this[r.$extra].height]; + delete this[r.$extra]; + return o.HTMLResult.success(c, l); + } + } + class Assist extends r.XFAObject { + constructor(e) { + super(d, 'assist', !0); + this.id = e.id || ''; + this.role = e.role || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.speak = null; + this.toolTip = null; + } + [r.$toHTML]() { + return this.toolTip && this.toolTip[r.$content] ? this.toolTip[r.$content] : null; + } + } + class Barcode extends r.XFAObject { + constructor(e) { + super(d, 'barcode', !0); + this.charEncoding = (0, o.getKeyword)({ + data: e.charEncoding ? e.charEncoding.toLowerCase() : '', + defaultValue: '', + validate: (e) => + [ + 'utf-8', + 'big-five', + 'fontspecific', + 'gbk', + 'gb-18030', + 'gb-2312', + 'ksc-5601', + 'none', + 'shift-jis', + 'ucs-2', + 'utf-16', + ].includes(e) || e.match(/iso-8859-\d{2}/), + }); + this.checksum = (0, o.getStringOption)(e.checksum, [ + 'none', + '1mod10', + '1mod10_1mod11', + '2mod10', + 'auto', + ]); + this.dataColumnCount = (0, o.getInteger)({ + data: e.dataColumnCount, + defaultValue: -1, + validate: (e) => e >= 0, + }); + this.dataLength = (0, o.getInteger)({ + data: e.dataLength, + defaultValue: -1, + validate: (e) => e >= 0, + }); + this.dataPrep = (0, o.getStringOption)(e.dataPrep, ['none', 'flateCompress']); + this.dataRowCount = (0, o.getInteger)({ + data: e.dataRowCount, + defaultValue: -1, + validate: (e) => e >= 0, + }); + this.endChar = e.endChar || ''; + this.errorCorrectionLevel = (0, o.getInteger)({ + data: e.errorCorrectionLevel, + defaultValue: -1, + validate: (e) => e >= 0 && e <= 8, + }); + this.id = e.id || ''; + this.moduleHeight = (0, o.getMeasurement)(e.moduleHeight, '5mm'); + this.moduleWidth = (0, o.getMeasurement)(e.moduleWidth, '0.25mm'); + this.printCheckDigit = (0, o.getInteger)({ + data: e.printCheckDigit, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.rowColumnRatio = (0, o.getRatio)(e.rowColumnRatio); + this.startChar = e.startChar || ''; + this.textLocation = (0, o.getStringOption)(e.textLocation, [ + 'below', + 'above', + 'aboveEmbedded', + 'belowEmbedded', + 'none', + ]); + this.truncate = (0, o.getInteger)({ + data: e.truncate, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.type = (0, o.getStringOption)(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 = (0, o.getStringOption)(e.upsMode, [ + 'usCarrier', + 'internationalCarrier', + 'secureSymbol', + 'standardSymbol', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.wideNarrowRatio = (0, o.getRatio)(e.wideNarrowRatio); + this.encrypt = null; + this.extras = null; + } + } + class Bind extends r.XFAObject { + constructor(e) { + super(d, 'bind', !0); + this.match = (0, o.getStringOption)(e.match, ['once', 'dataRef', 'global', 'none']); + this.ref = e.ref || ''; + this.picture = null; + } + } + class BindItems extends r.XFAObject { + constructor(e) { + super(d, 'bindItems'); + this.connection = e.connection || ''; + this.labelRef = e.labelRef || ''; + this.ref = e.ref || ''; + this.valueRef = e.valueRef || ''; + } + } + t.BindItems = BindItems; + class Bookend extends r.XFAObject { + constructor(e) { + super(d, 'bookend'); + this.id = e.id || ''; + this.leader = e.leader || ''; + this.trailer = e.trailer || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class BooleanElement extends r.Option01 { + constructor(e) { + super(d, 'boolean'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$toHTML](e) { + return valueToHtml(1 === this[r.$content] ? '1' : '0'); + } + } + class Border extends r.XFAObject { + constructor(e) { + super(d, 'border', !0); + this.break = (0, o.getStringOption)(e.break, ['close', 'open']); + this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']); + this.id = e.id || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.corner = new r.XFAObjectArray(4); + this.edge = new r.XFAObjectArray(4); + this.extras = null; + this.fill = null; + this.margin = null; + } + [r.$getExtra]() { + if (!this[r.$extra]) { + const e = this.edge.children.slice(); + if (e.length < 4) { + const t = e.at(-1) || new Edge({}); + for (let a = e.length; a < 4; a++) e.push(t); + } + const t = e.map((e) => e.thickness), + a = [0, 0, 0, 0]; + if (this.margin) { + a[0] = this.margin.topInset; + a[1] = this.margin.rightInset; + a[2] = this.margin.bottomInset; + a[3] = this.margin.leftInset; + } + this[r.$extra] = { widths: t, insets: a, edges: e }; + } + return this[r.$extra]; + } + [r.$toStyle]() { + const { edges: e } = this[r.$getExtra](), + t = e.map((e) => { + const t = e[r.$toStyle](); + t.color = t.color || '#000000'; + return t; + }), + a = Object.create(null); + this.margin && Object.assign(a, this.margin[r.$toStyle]()); + this.fill && + 'visible' === this.fill.presence && + Object.assign(a, this.fill[r.$toStyle]()); + if (this.corner.children.some((e) => 0 !== e.radius)) { + const e = this.corner.children.map((e) => e[r.$toStyle]()); + if (2 === e.length || 3 === e.length) { + const t = e.at(-1); + for (let a = e.length; a < 4; a++) e.push(t); + } + a.borderRadius = e.map((e) => e.radius).join(' '); + } + switch (this.presence) { + case 'invisible': + case 'hidden': + a.borderStyle = ''; + break; + case 'inactive': + a.borderStyle = 'none'; + break; + default: + a.borderStyle = t.map((e) => e.style).join(' '); + } + a.borderWidth = t.map((e) => e.width).join(' '); + a.borderColor = t.map((e) => e.color).join(' '); + return a; + } + } + class Break extends r.XFAObject { + constructor(e) { + super(d, 'break', !0); + this.after = (0, o.getStringOption)(e.after, [ + 'auto', + 'contentArea', + 'pageArea', + 'pageEven', + 'pageOdd', + ]); + this.afterTarget = e.afterTarget || ''; + this.before = (0, o.getStringOption)(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 = (0, o.getInteger)({ + data: e.startNew, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + } + class BreakAfter extends r.XFAObject { + constructor(e) { + super(d, 'breakAfter', !0); + this.id = e.id || ''; + this.leader = e.leader || ''; + this.startNew = (0, o.getInteger)({ + data: e.startNew, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.target = e.target || ''; + this.targetType = (0, o.getStringOption)(e.targetType, [ + 'auto', + 'contentArea', + 'pageArea', + ]); + this.trailer = e.trailer || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.script = null; + } + } + class BreakBefore extends r.XFAObject { + constructor(e) { + super(d, 'breakBefore', !0); + this.id = e.id || ''; + this.leader = e.leader || ''; + this.startNew = (0, o.getInteger)({ + data: e.startNew, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.target = e.target || ''; + this.targetType = (0, o.getStringOption)(e.targetType, [ + 'auto', + 'contentArea', + 'pageArea', + ]); + this.trailer = e.trailer || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.script = null; + } + [r.$toHTML](e) { + this[r.$extra] = {}; + return o.HTMLResult.FAILURE; + } + } + class Button extends r.XFAObject { + constructor(e) { + super(d, 'button', !0); + this.highlight = (0, o.getStringOption)(e.highlight, [ + 'inverted', + 'none', + 'outline', + 'push', + ]); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + [r.$toHTML](e) { + const t = this[r.$getParent]()[r.$getParent](), + a = { + name: 'button', + attributes: { id: this[r.$uid], class: ['xfaButton'], style: {} }, + children: [], + }; + for (const e of t.event.children) { + if ('click' !== e.activity || !e.script) continue; + const t = (0, h.recoverJsURL)(e.script[r.$content]); + if (!t) continue; + const i = (0, s.fixURL)(t.url); + i && + a.children.push({ + name: 'a', + attributes: { + id: 'link' + this[r.$uid], + href: i, + newWindow: t.newWindow, + class: ['xfaLink'], + style: {}, + }, + children: [], + }); + } + return o.HTMLResult.success(a); + } + } + class Calculate extends r.XFAObject { + constructor(e) { + super(d, 'calculate', !0); + this.id = e.id || ''; + this.override = (0, o.getStringOption)(e.override, [ + 'disabled', + 'error', + 'ignore', + 'warning', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + this.message = null; + this.script = null; + } + } + class Caption extends r.XFAObject { + constructor(e) { + super(d, 'caption', !0); + this.id = e.id || ''; + this.placement = (0, o.getStringOption)(e.placement, [ + 'left', + 'bottom', + 'inline', + 'right', + 'top', + ]); + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.reserve = Math.ceil((0, o.getMeasurement)(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; + } + [r.$setValue](e) { + _setValue(this, e); + } + [r.$getExtra](e) { + if (!this[r.$extra]) { + let { width: t, height: a } = e; + switch (this.placement) { + case 'left': + case 'right': + case 'inline': + t = this.reserve <= 0 ? t : this.reserve; + break; + case 'top': + case 'bottom': + a = this.reserve <= 0 ? a : this.reserve; + } + this[r.$extra] = (0, s.layoutNode)(this, { width: t, height: a }); + } + return this[r.$extra]; + } + [r.$toHTML](e) { + if (!this.value) return o.HTMLResult.EMPTY; + this[r.$pushPara](); + const t = this.value[r.$toHTML](e).html; + if (!t) { + this[r.$popPara](); + return o.HTMLResult.EMPTY; + } + const a = this.reserve; + if (this.reserve <= 0) { + const { w: t, h: a } = this[r.$getExtra](e); + switch (this.placement) { + case 'left': + case 'right': + case 'inline': + this.reserve = t; + break; + case 'top': + case 'bottom': + this.reserve = a; + } + } + const i = []; + 'string' == typeof t ? i.push({ name: '#text', value: t }) : i.push(t); + const n = (0, s.toStyle)(this, 'font', 'margin', 'visibility'); + switch (this.placement) { + case 'left': + case 'right': + this.reserve > 0 && (n.width = (0, s.measureToString)(this.reserve)); + break; + case 'top': + case 'bottom': + this.reserve > 0 && (n.height = (0, s.measureToString)(this.reserve)); + } + (0, s.setPara)(this, null, t); + this[r.$popPara](); + this.reserve = a; + return o.HTMLResult.success({ + name: 'div', + attributes: { style: n, class: ['xfaCaption'] }, + children: i, + }); + } + } + class Certificate extends r.StringObject { + constructor(e) { + super(d, 'certificate'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Certificates extends r.XFAObject { + constructor(e) { + super(d, 'certificates', !0); + this.credentialServerPolicy = (0, o.getStringOption)(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; + } + } + class CheckButton extends r.XFAObject { + constructor(e) { + super(d, 'checkButton', !0); + this.id = e.id || ''; + this.mark = (0, o.getStringOption)(e.mark, [ + 'default', + 'check', + 'circle', + 'cross', + 'diamond', + 'square', + 'star', + ]); + this.shape = (0, o.getStringOption)(e.shape, ['square', 'round']); + this.size = (0, o.getMeasurement)(e.size, '10pt'); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.border = null; + this.extras = null; + this.margin = null; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)('margin'), + a = (0, s.measureToString)(this.size); + t.width = t.height = a; + let i, n, c; + const l = this[r.$getParent]()[r.$getParent](), + h = (l.items.children.length && l.items.children[0][r.$toHTML]().html) || [], + u = { + on: (void 0 !== h[0] ? h[0] : 'on').toString(), + off: (void 0 !== h[1] ? h[1] : 'off').toString(), + }, + d = ((l.value && l.value[r.$text]()) || 'off') === u.on || void 0, + f = l[r.$getSubformParent](), + g = l[r.$uid]; + let p; + if (f instanceof ExclGroup) { + c = f[r.$uid]; + i = 'radio'; + n = 'xfaRadio'; + p = (f[r.$data] && f[r.$data][r.$uid]) || f[r.$uid]; + } else { + i = 'checkbox'; + n = 'xfaCheckbox'; + p = (l[r.$data] && l[r.$data][r.$uid]) || l[r.$uid]; + } + const m = { + name: 'input', + attributes: { + class: [n], + style: t, + fieldId: g, + dataId: p, + type: i, + checked: d, + xfaOn: u.on, + xfaOff: u.off, + 'aria-label': ariaLabel(l), + 'aria-required': !1, + }, + }; + c && (m.attributes.name = c); + if (isRequired(l)) { + m.attributes['aria-required'] = !0; + m.attributes.required = !0; + } + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [m], + }); + } + } + class ChoiceList extends r.XFAObject { + constructor(e) { + super(d, 'choiceList', !0); + this.commitOn = (0, o.getStringOption)(e.commitOn, ['select', 'exit']); + this.id = e.id || ''; + this.open = (0, o.getStringOption)(e.open, [ + 'userControl', + 'always', + 'multiSelect', + 'onEntry', + ]); + this.textEntry = (0, o.getInteger)({ + data: e.textEntry, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.border = null; + this.extras = null; + this.margin = null; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'border', 'margin'), + a = this[r.$getParent]()[r.$getParent](), + i = { fontSize: `calc(${(a.font && a.font.size) || 10}px * var(--scale-factor))` }, + n = []; + if (a.items.children.length > 0) { + const e = a.items; + let t = 0, + s = 0; + if (2 === e.children.length) { + t = e.children[0].save; + s = 1 - t; + } + const o = e.children[t][r.$toHTML]().html, + c = e.children[s][r.$toHTML]().html; + let l = !1; + const h = (a.value && a.value[r.$text]()) || ''; + for (let e = 0, t = o.length; e < t; e++) { + const t = { + name: 'option', + attributes: { value: c[e] || o[e], style: i }, + value: o[e], + }; + c[e] === h && (t.attributes.selected = l = !0); + n.push(t); + } + l || + n.splice(0, 0, { + name: 'option', + attributes: { hidden: !0, selected: !0 }, + value: ' ', + }); + } + const c = { + class: ['xfaSelect'], + fieldId: a[r.$uid], + dataId: (a[r.$data] && a[r.$data][r.$uid]) || a[r.$uid], + style: t, + 'aria-label': ariaLabel(a), + 'aria-required': !1, + }; + if (isRequired(a)) { + c['aria-required'] = !0; + c.required = !0; + } + 'multiSelect' === this.open && (c.multiple = !0); + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [{ name: 'select', children: n, attributes: c }], + }); + } + } + class Color extends r.XFAObject { + constructor(e) { + super(d, 'color', !0); + this.cSpace = (0, o.getStringOption)(e.cSpace, ['SRGB']); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.value = e.value ? (0, o.getColor)(e.value) : ''; + this.extras = null; + } + [r.$hasSettableValue]() { + return !1; + } + [r.$toStyle]() { + return this.value + ? c.Util.makeHexColor(this.value.r, this.value.g, this.value.b) + : null; + } + } + class Comb extends r.XFAObject { + constructor(e) { + super(d, 'comb'); + this.id = e.id || ''; + this.numberOfCells = (0, o.getInteger)({ + data: e.numberOfCells, + defaultValue: 0, + validate: (e) => e >= 0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Connect extends r.XFAObject { + constructor(e) { + super(d, 'connect', !0); + this.connection = e.connection || ''; + this.id = e.id || ''; + this.ref = e.ref || ''; + this.usage = (0, o.getStringOption)(e.usage, [ + 'exportAndImport', + 'exportOnly', + 'importOnly', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.picture = null; + } + } + class ContentArea extends r.XFAObject { + constructor(e) { + super(d, 'contentArea', !0); + this.h = (0, o.getMeasurement)(e.h); + this.id = e.id || ''; + this.name = e.name || ''; + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = (0, o.getMeasurement)(e.w); + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(e.y, '0pt'); + this.desc = null; + this.extras = null; + } + [r.$toHTML](e) { + const t = { + left: (0, s.measureToString)(this.x), + top: (0, s.measureToString)(this.y), + width: (0, s.measureToString)(this.w), + height: (0, s.measureToString)(this.h), + }, + a = ['xfaContentarea']; + (0, s.isPrintOnly)(this) && a.push('xfaPrintOnly'); + return o.HTMLResult.success({ + name: 'div', + children: [], + attributes: { style: t, class: a, id: this[r.$uid] }, + }); + } + } + class Corner extends r.XFAObject { + constructor(e) { + super(d, 'corner', !0); + this.id = e.id || ''; + this.inverted = (0, o.getInteger)({ + data: e.inverted, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.join = (0, o.getStringOption)(e.join, ['square', 'round']); + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.radius = (0, o.getMeasurement)(e.radius); + this.stroke = (0, o.getStringOption)(e.stroke, [ + 'solid', + 'dashDot', + 'dashDotDot', + 'dashed', + 'dotted', + 'embossed', + 'etched', + 'lowered', + 'raised', + ]); + this.thickness = (0, o.getMeasurement)(e.thickness, '0.5pt'); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle]() { + const e = (0, s.toStyle)(this, 'visibility'); + e.radius = (0, s.measureToString)('square' === this.join ? 0 : this.radius); + return e; + } + } + class DateElement extends r.ContentObject { + constructor(e) { + super(d, 'date'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = this[r.$content].trim(); + this[r.$content] = e ? new Date(e) : null; + } + [r.$toHTML](e) { + return valueToHtml(this[r.$content] ? this[r.$content].toString() : ''); + } + } + class DateTime extends r.ContentObject { + constructor(e) { + super(d, 'dateTime'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = this[r.$content].trim(); + this[r.$content] = e ? new Date(e) : null; + } + [r.$toHTML](e) { + return valueToHtml(this[r.$content] ? this[r.$content].toString() : ''); + } + } + class DateTimeEdit extends r.XFAObject { + constructor(e) { + super(d, 'dateTimeEdit', !0); + this.hScrollPolicy = (0, o.getStringOption)(e.hScrollPolicy, ['auto', 'off', 'on']); + this.id = e.id || ''; + this.picker = (0, o.getStringOption)(e.picker, ['host', 'none']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'border', 'font', 'margin'), + a = this[r.$getParent]()[r.$getParent](), + i = { + name: 'input', + attributes: { + type: 'text', + fieldId: a[r.$uid], + dataId: (a[r.$data] && a[r.$data][r.$uid]) || a[r.$uid], + class: ['xfaTextfield'], + style: t, + 'aria-label': ariaLabel(a), + 'aria-required': !1, + }, + }; + if (isRequired(a)) { + i.attributes['aria-required'] = !0; + i.attributes.required = !0; + } + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [i], + }); + } + } + class Decimal extends r.ContentObject { + constructor(e) { + super(d, 'decimal'); + this.fracDigits = (0, o.getInteger)({ + data: e.fracDigits, + defaultValue: 2, + validate: (e) => !0, + }); + this.id = e.id || ''; + this.leadDigits = (0, o.getInteger)({ + data: e.leadDigits, + defaultValue: -1, + validate: (e) => !0, + }); + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = parseFloat(this[r.$content].trim()); + this[r.$content] = isNaN(e) ? null : e; + } + [r.$toHTML](e) { + return valueToHtml(null !== this[r.$content] ? this[r.$content].toString() : ''); + } + } + class DefaultUi extends r.XFAObject { + constructor(e) { + super(d, 'defaultUi', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + } + class Desc extends r.XFAObject { + constructor(e) { + super(d, 'desc', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.boolean = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + } + class DigestMethod extends r.OptionObject { + constructor(e) { + super(d, 'digestMethod', ['', 'SHA1', 'SHA256', 'SHA512', 'RIPEMD160']); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class DigestMethods extends r.XFAObject { + constructor(e) { + super(d, 'digestMethods', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.digestMethod = new r.XFAObjectArray(); + } + } + class Draw extends r.XFAObject { + constructor(e) { + super(d, 'draw', !0); + this.anchorType = (0, o.getStringOption)(e.anchorType, [ + 'topLeft', + 'bottomCenter', + 'bottomLeft', + 'bottomRight', + 'middleCenter', + 'middleLeft', + 'middleRight', + 'topCenter', + 'topRight', + ]); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.h = e.h ? (0, o.getMeasurement)(e.h) : ''; + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.locale = e.locale || ''; + this.maxH = (0, o.getMeasurement)(e.maxH, '0pt'); + this.maxW = (0, o.getMeasurement)(e.maxW, '0pt'); + this.minH = (0, o.getMeasurement)(e.minH, '0pt'); + this.minW = (0, o.getMeasurement)(e.minW, '0pt'); + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.rotate = (0, o.getInteger)({ + data: e.rotate, + defaultValue: 0, + validate: (e) => e % 90 == 0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = e.w ? (0, o.getMeasurement)(e.w) : ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(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.XFAObjectArray(); + } + [r.$setValue](e) { + _setValue(this, e); + } + [r.$toHTML](e) { + setTabIndex(this); + if ('hidden' === this.presence || 'inactive' === this.presence) + return o.HTMLResult.EMPTY; + (0, s.fixDimensions)(this); + this[r.$pushPara](); + const t = this.w, + a = this.h, + { w: i, h: c, isBroken: l } = (0, s.layoutNode)(this, e); + if (i && '' === this.w) { + if (l && this[r.$getSubformParent]()[r.$isThereMoreWidth]()) { + this[r.$popPara](); + return o.HTMLResult.FAILURE; + } + this.w = i; + } + c && '' === this.h && (this.h = c); + setFirstUnsplittable(this); + if (!(0, n.checkDimensions)(this, e)) { + this.w = t; + this.h = a; + this[r.$popPara](); + return o.HTMLResult.FAILURE; + } + unsetFirstUnsplittable(this); + const h = (0, s.toStyle)( + this, + 'font', + 'hAlign', + 'dimensions', + 'position', + 'presence', + 'rotate', + 'anchorType', + 'border', + 'margin', + ); + (0, s.setMinMaxDimensions)(this, h); + if (h.margin) { + h.padding = h.margin; + delete h.margin; + } + const u = ['xfaDraw']; + this.font && u.push('xfaFont'); + (0, s.isPrintOnly)(this) && u.push('xfaPrintOnly'); + const d = { style: h, id: this[r.$uid], class: u }; + this.name && (d.xfaName = this.name); + const f = { name: 'div', attributes: d, children: [] }; + applyAssist(this, d); + const g = (0, s.computeBbox)(this, f, e), + p = this.value ? this.value[r.$toHTML](e).html : null; + if (null === p) { + this.w = t; + this.h = a; + this[r.$popPara](); + return o.HTMLResult.success((0, s.createWrapper)(this, f), g); + } + f.children.push(p); + (0, s.setPara)(this, h, p); + this.w = t; + this.h = a; + this[r.$popPara](); + return o.HTMLResult.success((0, s.createWrapper)(this, f), g); + } + } + class Edge extends r.XFAObject { + constructor(e) { + super(d, 'edge', !0); + this.cap = (0, o.getStringOption)(e.cap, ['square', 'butt', 'round']); + this.id = e.id || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.stroke = (0, o.getStringOption)(e.stroke, [ + 'solid', + 'dashDot', + 'dashDotDot', + 'dashed', + 'dotted', + 'embossed', + 'etched', + 'lowered', + 'raised', + ]); + this.thickness = (0, o.getMeasurement)(e.thickness, '0.5pt'); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle]() { + const e = (0, s.toStyle)(this, 'visibility'); + Object.assign(e, { + linecap: this.cap, + width: (0, s.measureToString)(this.thickness), + color: this.color ? this.color[r.$toStyle]() : '#000000', + style: '', + }); + if ('visible' !== this.presence) e.style = 'none'; + else + switch (this.stroke) { + case 'solid': + e.style = 'solid'; + break; + case 'dashDot': + case 'dashDotDot': + 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'; + } + return e; + } + } + class Encoding extends r.OptionObject { + constructor(e) { + super(d, 'encoding', [ + 'adbe.x509.rsa_sha1', + 'adbe.pkcs7.detached', + 'adbe.pkcs7.sha1', + ]); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Encodings extends r.XFAObject { + constructor(e) { + super(d, 'encodings', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.encoding = new r.XFAObjectArray(); + } + } + class Encrypt extends r.XFAObject { + constructor(e) { + super(d, 'encrypt', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.certificate = null; + } + } + class EncryptData extends r.XFAObject { + constructor(e) { + super(d, 'encryptData', !0); + this.id = e.id || ''; + this.operation = (0, o.getStringOption)(e.operation, ['encrypt', 'decrypt']); + this.target = e.target || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.filter = null; + this.manifest = null; + } + } + class Encryption extends r.XFAObject { + constructor(e) { + super(d, 'encryption', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.certificate = new r.XFAObjectArray(); + } + } + class EncryptionMethod extends r.OptionObject { + constructor(e) { + super(d, 'encryptionMethod', [ + '', + 'AES256-CBC', + 'TRIPLEDES-CBC', + 'AES128-CBC', + 'AES192-CBC', + ]); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class EncryptionMethods extends r.XFAObject { + constructor(e) { + super(d, 'encryptionMethods', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.encryptionMethod = new r.XFAObjectArray(); + } + } + class Event extends r.XFAObject { + constructor(e) { + super(d, 'event', !0); + this.activity = (0, o.getStringOption)(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 = (0, o.getStringOption)(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; + } + } + class ExData extends r.ContentObject { + constructor(e) { + super(d, 'exData'); + this.contentType = e.contentType || ''; + this.href = e.href || ''; + this.id = e.id || ''; + this.maxLength = (0, o.getInteger)({ + data: e.maxLength, + defaultValue: -1, + validate: (e) => e >= -1, + }); + this.name = e.name || ''; + this.rid = e.rid || ''; + this.transferEncoding = (0, o.getStringOption)(e.transferEncoding, [ + 'none', + 'base64', + 'package', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$isCDATAXml]() { + return 'text/html' === this.contentType; + } + [r.$onChild](e) { + if ( + 'text/html' === this.contentType && + e[r.$namespaceId] === i.NamespaceIds.xhtml.id + ) { + this[r.$content] = e; + return !0; + } + if ('text/xml' === this.contentType) { + this[r.$content] = e; + return !0; + } + return !1; + } + [r.$toHTML](e) { + return 'text/html' === this.contentType && this[r.$content] + ? this[r.$content][r.$toHTML](e) + : o.HTMLResult.EMPTY; + } + } + class ExObject extends r.XFAObject { + constructor(e) { + super(d, 'exObject', !0); + 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.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.exObject = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + } + class ExclGroup extends r.XFAObject { + constructor(e) { + super(d, 'exclGroup', !0); + this.access = (0, o.getStringOption)(e.access, [ + 'open', + 'nonInteractive', + 'protected', + 'readOnly', + ]); + this.accessKey = e.accessKey || ''; + this.anchorType = (0, o.getStringOption)(e.anchorType, [ + 'topLeft', + 'bottomCenter', + 'bottomLeft', + 'bottomRight', + 'middleCenter', + 'middleLeft', + 'middleRight', + 'topCenter', + 'topRight', + ]); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.h = e.h ? (0, o.getMeasurement)(e.h) : ''; + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.layout = (0, o.getStringOption)(e.layout, [ + 'position', + 'lr-tb', + 'rl-row', + 'rl-tb', + 'row', + 'table', + 'tb', + ]); + this.maxH = (0, o.getMeasurement)(e.maxH, '0pt'); + this.maxW = (0, o.getMeasurement)(e.maxW, '0pt'); + this.minH = (0, o.getMeasurement)(e.minH, '0pt'); + this.minW = (0, o.getMeasurement)(e.minW, '0pt'); + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = e.w ? (0, o.getMeasurement)(e.w) : ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(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.XFAObjectArray(); + this.event = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.setProperty = new r.XFAObjectArray(); + } + [r.$isBindable]() { + return !0; + } + [r.$hasSettableValue]() { + return !0; + } + [r.$setValue](e) { + for (const t of this.field.children) { + if (!t.value) { + const e = new Value({}); + t[r.$appendChild](e); + t.value = e; + } + t.value[r.$setValue](e); + } + } + [r.$isThereMoreWidth]() { + return ( + (this.layout.endsWith('-tb') && + 0 === this[r.$extra].attempt && + this[r.$extra].numberInLine > 0) || + this[r.$getParent]()[r.$isThereMoreWidth]() + ); + } + [r.$isSplittable]() { + const e = this[r.$getSubformParent](); + if (!e[r.$isSplittable]()) return !1; + if (void 0 !== this[r.$extra]._isSplittable) return this[r.$extra]._isSplittable; + if ('position' === this.layout || this.layout.includes('row')) { + this[r.$extra]._isSplittable = !1; + return !1; + } + if (e.layout && e.layout.endsWith('-tb') && 0 !== e[r.$extra].numberInLine) return !1; + this[r.$extra]._isSplittable = !0; + return !0; + } + [r.$flushHTML]() { + return (0, n.flushHTML)(this); + } + [r.$addHTML](e, t) { + (0, n.addHTML)(this, e, t); + } + [r.$getAvailableSpace]() { + return (0, n.getAvailableSpace)(this); + } + [r.$toHTML](e) { + setTabIndex(this); + if ( + 'hidden' === this.presence || + 'inactive' === this.presence || + 0 === this.h || + 0 === this.w + ) + return o.HTMLResult.EMPTY; + (0, s.fixDimensions)(this); + const t = [], + a = { id: this[r.$uid], class: [] }; + (0, s.setAccess)(this, a.class); + this[r.$extra] || (this[r.$extra] = Object.create(null)); + Object.assign(this[r.$extra], { + children: t, + attributes: a, + 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[r.$isSplittable](); + i || setFirstUnsplittable(this); + if (!(0, n.checkDimensions)(this, e)) return o.HTMLResult.FAILURE; + const c = new Set(['field']); + if (this.layout.includes('row')) { + const e = this[r.$getSubformParent]().columnWidths; + if (Array.isArray(e) && e.length > 0) { + this[r.$extra].columnWidths = e; + this[r.$extra].currentColumn = 0; + } + } + const l = (0, s.toStyle)( + this, + 'anchorType', + 'dimensions', + 'position', + 'presence', + 'border', + 'margin', + 'hAlign', + ), + h = ['xfaExclgroup'], + u = (0, s.layoutClass)(this); + u && h.push(u); + (0, s.isPrintOnly)(this) && h.push('xfaPrintOnly'); + a.style = l; + a.class = h; + this.name && (a.xfaName = this.name); + this[r.$pushPara](); + const d = 'lr-tb' === this.layout || 'rl-tb' === this.layout, + f = d ? 2 : 1; + for (; this[r.$extra].attempt < f; this[r.$extra].attempt++) { + d && 1 === this[r.$extra].attempt && (this[r.$extra].numberInLine = 0); + const e = this[r.$childrenToHTML]({ filter: c, include: !0 }); + if (e.success) break; + if (e.isBreak()) { + this[r.$popPara](); + return e; + } + if ( + d && + 0 === this[r.$extra].attempt && + 0 === this[r.$extra].numberInLine && + !this[r.$getTemplateRoot]()[r.$extra].noLayoutFailure + ) { + this[r.$extra].attempt = f; + break; + } + } + this[r.$popPara](); + i || unsetFirstUnsplittable(this); + if (this[r.$extra].attempt === f) { + i || delete this[r.$extra]; + return o.HTMLResult.FAILURE; + } + let g = 0, + p = 0; + if (this.margin) { + g = this.margin.leftInset + this.margin.rightInset; + p = this.margin.topInset + this.margin.bottomInset; + } + const m = Math.max(this[r.$extra].width + g, this.w || 0), + b = Math.max(this[r.$extra].height + p, this.h || 0), + y = [this.x, this.y, m, b]; + '' === this.w && (l.width = (0, s.measureToString)(m)); + '' === this.h && (l.height = (0, s.measureToString)(b)); + const w = { name: 'div', attributes: a, children: t }; + applyAssist(this, a); + delete this[r.$extra]; + return o.HTMLResult.success((0, s.createWrapper)(this, w), y); + } + } + class Execute extends r.XFAObject { + constructor(e) { + super(d, 'execute'); + this.connection = e.connection || ''; + this.executeType = (0, o.getStringOption)(e.executeType, ['import', 'remerge']); + this.id = e.id || ''; + this.runAt = (0, o.getStringOption)(e.runAt, ['client', 'both', 'server']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Extras extends r.XFAObject { + constructor(e) { + super(d, 'extras', !0); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.boolean = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.extras = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + } + class Field extends r.XFAObject { + constructor(e) { + super(d, 'field', !0); + this.access = (0, o.getStringOption)(e.access, [ + 'open', + 'nonInteractive', + 'protected', + 'readOnly', + ]); + this.accessKey = e.accessKey || ''; + this.anchorType = (0, o.getStringOption)(e.anchorType, [ + 'topLeft', + 'bottomCenter', + 'bottomLeft', + 'bottomRight', + 'middleCenter', + 'middleLeft', + 'middleRight', + 'topCenter', + 'topRight', + ]); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.h = e.h ? (0, o.getMeasurement)(e.h) : ''; + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.locale = e.locale || ''; + this.maxH = (0, o.getMeasurement)(e.maxH, '0pt'); + this.maxW = (0, o.getMeasurement)(e.maxW, '0pt'); + this.minH = (0, o.getMeasurement)(e.minH, '0pt'); + this.minW = (0, o.getMeasurement)(e.minW, '0pt'); + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.rotate = (0, o.getInteger)({ + data: e.rotate, + defaultValue: 0, + validate: (e) => e % 90 == 0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = e.w ? (0, o.getMeasurement)(e.w) : ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(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.XFAObjectArray(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.XFAObjectArray(); + this.connect = new r.XFAObjectArray(); + this.event = new r.XFAObjectArray(); + this.setProperty = new r.XFAObjectArray(); + } + [r.$isBindable]() { + return !0; + } + [r.$setValue](e) { + _setValue(this, e); + } + [r.$toHTML](e) { + setTabIndex(this); + if (!this.ui) { + this.ui = new Ui({}); + this.ui[r.$globalData] = this[r.$globalData]; + this[r.$appendChild](this.ui); + let e; + switch (this.items.children.length) { + case 0: + e = new TextEdit({}); + this.ui.textEdit = e; + break; + case 1: + e = new CheckButton({}); + this.ui.checkButton = e; + break; + case 2: + e = new ChoiceList({}); + this.ui.choiceList = e; + } + this.ui[r.$appendChild](e); + } + if ( + !this.ui || + 'hidden' === this.presence || + 'inactive' === this.presence || + 0 === this.h || + 0 === this.w + ) + return o.HTMLResult.EMPTY; + this.caption && delete this.caption[r.$extra]; + this[r.$pushPara](); + const t = this.caption ? this.caption[r.$toHTML](e).html : null, + a = this.w, + i = this.h; + let c = 0, + h = 0; + if (this.margin) { + c = this.margin.leftInset + this.margin.rightInset; + h = this.margin.topInset + this.margin.bottomInset; + } + let u = null; + if ('' === this.w || '' === this.h) { + let t = null, + a = null, + i = 0, + n = 0; + if (this.ui.checkButton) i = n = this.ui.checkButton.size; + else { + const { w: t, h: a } = (0, s.layoutNode)(this, e); + if (null !== t) { + i = t; + n = a; + } else n = (0, l.getMetrics)(this.font, !0).lineNoGap; + } + u = getBorderDims(this.ui[r.$getExtra]()); + i += u.w; + n += u.h; + if (this.caption) { + const { w: s, h: c, isBroken: l } = this.caption[r.$getExtra](e); + if (l && this[r.$getSubformParent]()[r.$isThereMoreWidth]()) { + this[r.$popPara](); + return o.HTMLResult.FAILURE; + } + t = s; + a = c; + switch (this.caption.placement) { + case 'left': + case 'right': + case 'inline': + t += i; + break; + case 'top': + case 'bottom': + a += n; + } + } else { + t = i; + a = n; + } + if (t && '' === this.w) { + t += c; + this.w = Math.min( + this.maxW <= 0 ? 1 / 0 : this.maxW, + this.minW + 1 < t ? t : this.minW, + ); + } + if (a && '' === this.h) { + a += h; + this.h = Math.min( + this.maxH <= 0 ? 1 / 0 : this.maxH, + this.minH + 1 < a ? a : this.minH, + ); + } + } + this[r.$popPara](); + (0, s.fixDimensions)(this); + setFirstUnsplittable(this); + if (!(0, n.checkDimensions)(this, e)) { + this.w = a; + this.h = i; + this[r.$popPara](); + return o.HTMLResult.FAILURE; + } + unsetFirstUnsplittable(this); + const d = (0, s.toStyle)( + this, + 'font', + 'dimensions', + 'position', + 'rotate', + 'anchorType', + 'presence', + 'margin', + 'hAlign', + ); + (0, s.setMinMaxDimensions)(this, d); + const f = ['xfaField']; + this.font && f.push('xfaFont'); + (0, s.isPrintOnly)(this) && f.push('xfaPrintOnly'); + const g = { style: d, id: this[r.$uid], class: f }; + if (d.margin) { + d.padding = d.margin; + delete d.margin; + } + (0, s.setAccess)(this, f); + this.name && (g.xfaName = this.name); + const p = [], + m = { name: 'div', attributes: g, children: p }; + applyAssist(this, g); + const b = this.border ? this.border[r.$toStyle]() : null, + y = (0, s.computeBbox)(this, m, e), + w = this.ui[r.$toHTML]().html; + if (!w) { + Object.assign(d, b); + return o.HTMLResult.success((0, s.createWrapper)(this, m), y); + } + this[r.$tabIndex] && + (w.children && w.children[0] + ? (w.children[0].attributes.tabindex = this[r.$tabIndex]) + : (w.attributes.tabindex = this[r.$tabIndex])); + w.attributes.style || (w.attributes.style = Object.create(null)); + let S = null; + if (this.ui.button) { + 1 === w.children.length && ([S] = w.children.splice(0, 1)); + Object.assign(w.attributes.style, b); + } else Object.assign(d, b); + p.push(w); + if (this.value) + if (this.ui.imageEdit) w.children.push(this.value[r.$toHTML]().html); + else if (!this.ui.button) { + let e = ''; + if (this.value.exData) e = this.value.exData[r.$text](); + else if (this.value.text) e = this.value.text[r.$getExtra](); + else { + const t = this.value[r.$toHTML]().html; + null !== t && (e = t.children[0].value); + } + this.ui.textEdit && + this.value.text && + this.value.text.maxChars && + (w.children[0].attributes.maxLength = this.value.text.maxChars); + if (e) { + if (this.ui.numericEdit) { + e = parseFloat(e); + e = isNaN(e) ? '' : e.toString(); + } + 'textarea' === w.children[0].name + ? (w.children[0].attributes.textContent = e) + : (w.children[0].attributes.value = e); + } + } + if (!this.ui.imageEdit && w.children && w.children[0] && this.h) { + u = u || getBorderDims(this.ui[r.$getExtra]()); + let t = 0; + if (this.caption && ['top', 'bottom'].includes(this.caption.placement)) { + t = this.caption.reserve; + t <= 0 && (t = this.caption[r.$getExtra](e).h); + const a = this.h - t - h - u.h; + w.children[0].attributes.style.height = (0, s.measureToString)(a); + } else w.children[0].attributes.style.height = '100%'; + } + S && w.children.push(S); + if (!t) { + w.attributes.class && w.attributes.class.push('xfaLeft'); + this.w = a; + this.h = i; + return o.HTMLResult.success((0, s.createWrapper)(this, m), y); + } + if (this.ui.button) { + d.padding && delete d.padding; + 'div' === t.name && (t.name = 'span'); + w.children.push(t); + return o.HTMLResult.success(m, y); + } + this.ui.checkButton && (t.attributes.class[0] = 'xfaCaptionForCheckButton'); + w.attributes.class || (w.attributes.class = []); + w.children.splice(0, 0, t); + switch (this.caption.placement) { + case 'left': + case 'inline': + w.attributes.class.push('xfaLeft'); + break; + case 'right': + w.attributes.class.push('xfaRight'); + break; + case 'top': + w.attributes.class.push('xfaTop'); + break; + case 'bottom': + w.attributes.class.push('xfaBottom'); + } + this.w = a; + this.h = i; + return o.HTMLResult.success((0, s.createWrapper)(this, m), y); + } + } + t.Field = Field; + class Fill extends r.XFAObject { + constructor(e) { + super(d, 'fill', !0); + this.id = e.id || ''; + this.presence = (0, o.getStringOption)(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; + } + [r.$toStyle]() { + const e = this[r.$getParent](), + t = e[r.$getParent]()[r.$getParent](), + a = Object.create(null); + let i = 'color', + n = i; + if (e instanceof Border) { + i = 'background-color'; + n = 'background'; + t instanceof Ui && (a.backgroundColor = 'white'); + } + if (e instanceof Rectangle || e instanceof Arc) { + i = n = 'fill'; + a.fill = 'white'; + } + for (const e of Object.getOwnPropertyNames(this)) { + if ('extras' === e || 'color' === e) continue; + const t = this[e]; + if (!(t instanceof r.XFAObject)) continue; + const s = t[r.$toStyle](this.color); + s && (a[s.startsWith('#') ? i : n] = s); + return a; + } + if (this.color && this.color.value) { + const e = this.color[r.$toStyle](); + a[e.startsWith('#') ? i : n] = e; + } + return a; + } + } + class Filter extends r.XFAObject { + constructor(e) { + super(d, 'filter', !0); + this.addRevocationInfo = (0, o.getStringOption)(e.addRevocationInfo, [ + '', + 'required', + 'optional', + 'none', + ]); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.version = (0, o.getInteger)({ + data: this.version, + defaultValue: 5, + validate: (e) => e >= 1 && e <= 5, + }); + 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; + } + } + class Float extends r.ContentObject { + constructor(e) { + super(d, 'float'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = parseFloat(this[r.$content].trim()); + this[r.$content] = isNaN(e) ? null : e; + } + [r.$toHTML](e) { + return valueToHtml(null !== this[r.$content] ? this[r.$content].toString() : ''); + } + } + class Font extends r.XFAObject { + constructor(e) { + super(d, 'font', !0); + this.baselineShift = (0, o.getMeasurement)(e.baselineShift); + this.fontHorizontalScale = (0, o.getFloat)({ + data: e.fontHorizontalScale, + defaultValue: 100, + validate: (e) => e >= 0, + }); + this.fontVerticalScale = (0, o.getFloat)({ + data: e.fontVerticalScale, + defaultValue: 100, + validate: (e) => e >= 0, + }); + this.id = e.id || ''; + this.kerningMode = (0, o.getStringOption)(e.kerningMode, ['none', 'pair']); + this.letterSpacing = (0, o.getMeasurement)(e.letterSpacing, '0'); + this.lineThrough = (0, o.getInteger)({ + data: e.lineThrough, + defaultValue: 0, + validate: (e) => 1 === e || 2 === e, + }); + this.lineThroughPeriod = (0, o.getStringOption)(e.lineThroughPeriod, ['all', 'word']); + this.overline = (0, o.getInteger)({ + data: e.overline, + defaultValue: 0, + validate: (e) => 1 === e || 2 === e, + }); + this.overlinePeriod = (0, o.getStringOption)(e.overlinePeriod, ['all', 'word']); + this.posture = (0, o.getStringOption)(e.posture, ['normal', 'italic']); + this.size = (0, o.getMeasurement)(e.size, '10pt'); + this.typeface = e.typeface || 'Courier'; + this.underline = (0, o.getInteger)({ + data: e.underline, + defaultValue: 0, + validate: (e) => 1 === e || 2 === e, + }); + this.underlinePeriod = (0, o.getStringOption)(e.underlinePeriod, ['all', 'word']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.weight = (0, o.getStringOption)(e.weight, ['normal', 'bold']); + this.extras = null; + this.fill = null; + } + [r.$clean](e) { + super[r.$clean](e); + this[r.$globalData].usedTypefaces.add(this.typeface); + } + [r.$toStyle]() { + const e = (0, s.toStyle)(this, 'fill'), + t = e.color; + if (t) + if ('#000000' === t) delete e.color; + else if (!t.startsWith('#')) { + e.background = t; + e.backgroundClip = 'text'; + e.color = 'transparent'; + } + this.baselineShift && (e.verticalAlign = (0, s.measureToString)(this.baselineShift)); + e.fontKerning = 'none' === this.kerningMode ? 'none' : 'normal'; + e.letterSpacing = (0, s.measureToString)(this.letterSpacing); + if (0 !== this.lineThrough) { + e.textDecoration = 'line-through'; + 2 === this.lineThrough && (e.textDecorationStyle = 'double'); + } + if (0 !== this.overline) { + e.textDecoration = 'overline'; + 2 === this.overline && (e.textDecorationStyle = 'double'); + } + e.fontStyle = this.posture; + e.fontSize = (0, s.measureToString)(0.99 * this.size); + (0, s.setFontFamily)(this, this, this[r.$globalData].fontFinder, e); + if (0 !== this.underline) { + e.textDecoration = 'underline'; + 2 === this.underline && (e.textDecorationStyle = 'double'); + } + e.fontWeight = this.weight; + return e; + } + } + class Format extends r.XFAObject { + constructor(e) { + super(d, 'format', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + this.picture = null; + } + } + class Handler extends r.StringObject { + constructor(e) { + super(d, 'handler'); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Hyphenation extends r.XFAObject { + constructor(e) { + super(d, 'hyphenation'); + this.excludeAllCaps = (0, o.getInteger)({ + data: e.excludeAllCaps, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.excludeInitialCap = (0, o.getInteger)({ + data: e.excludeInitialCap, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.hyphenate = (0, o.getInteger)({ + data: e.hyphenate, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.id = e.id || ''; + this.pushCharacterCount = (0, o.getInteger)({ + data: e.pushCharacterCount, + defaultValue: 3, + validate: (e) => e >= 0, + }); + this.remainCharacterCount = (0, o.getInteger)({ + data: e.remainCharacterCount, + defaultValue: 3, + validate: (e) => e >= 0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.wordCharacterCount = (0, o.getInteger)({ + data: e.wordCharacterCount, + defaultValue: 7, + validate: (e) => e >= 0, + }); + } + } + class Image extends r.StringObject { + constructor(e) { + super(d, 'image'); + this.aspect = (0, o.getStringOption)(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 = (0, o.getStringOption)(e.transferEncoding, [ + 'base64', + 'none', + 'package', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$toHTML]() { + if (this.contentType && !p.has(this.contentType.toLowerCase())) + return o.HTMLResult.EMPTY; + let e = this[r.$globalData].images && this[r.$globalData].images.get(this.href); + if (!e && (this.href || !this[r.$content])) return o.HTMLResult.EMPTY; + e || + 'base64' !== this.transferEncoding || + (e = (0, c.stringToBytes)(atob(this[r.$content]))); + if (!e) return o.HTMLResult.EMPTY; + if (!this.contentType) { + for (const [t, a] of m) + if (e.length > t.length && t.every((t, a) => t === e[a])) { + this.contentType = a; + break; + } + if (!this.contentType) return o.HTMLResult.EMPTY; + } + const t = new Blob([e], { type: this.contentType }); + let a; + switch (this.aspect) { + case 'fit': + case 'actual': + break; + case 'height': + a = { height: '100%', objectFit: 'fill' }; + break; + case 'none': + a = { width: '100%', height: '100%', objectFit: 'fill' }; + break; + case 'width': + a = { width: '100%', objectFit: 'fill' }; + } + const i = this[r.$getParent](); + return o.HTMLResult.success({ + name: 'img', + attributes: { + class: ['xfaImage'], + style: a, + src: URL.createObjectURL(t), + alt: i ? ariaLabel(i[r.$getParent]()) : null, + }, + }); + } + } + class ImageEdit extends r.XFAObject { + constructor(e) { + super(d, 'imageEdit', !0); + this.data = (0, o.getStringOption)(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; + } + [r.$toHTML](e) { + return 'embed' === this.data + ? o.HTMLResult.success({ name: 'div', children: [], attributes: {} }) + : o.HTMLResult.EMPTY; + } + } + class Integer extends r.ContentObject { + constructor(e) { + super(d, 'integer'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = parseInt(this[r.$content].trim(), 10); + this[r.$content] = isNaN(e) ? null : e; + } + [r.$toHTML](e) { + return valueToHtml(null !== this[r.$content] ? this[r.$content].toString() : ''); + } + } + class Issuers extends r.XFAObject { + constructor(e) { + super(d, 'issuers', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.certificate = new r.XFAObjectArray(); + } + } + class Items extends r.XFAObject { + constructor(e) { + super(d, 'items', !0); + this.id = e.id || ''; + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.ref = e.ref || ''; + this.save = (0, o.getInteger)({ + data: e.save, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.boolean = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + [r.$toHTML]() { + const e = []; + for (const t of this[r.$getChildren]()) e.push(t[r.$text]()); + return o.HTMLResult.success(e); + } + } + t.Items = Items; + class Keep extends r.XFAObject { + constructor(e) { + super(d, 'keep', !0); + this.id = e.id || ''; + const t = ['none', 'contentArea', 'pageArea']; + this.intact = (0, o.getStringOption)(e.intact, t); + this.next = (0, o.getStringOption)(e.next, t); + this.previous = (0, o.getStringOption)(e.previous, t); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + } + class KeyUsage extends r.XFAObject { + constructor(e) { + super(d, 'keyUsage'); + const t = ['', 'yes', 'no']; + this.crlSign = (0, o.getStringOption)(e.crlSign, t); + this.dataEncipherment = (0, o.getStringOption)(e.dataEncipherment, t); + this.decipherOnly = (0, o.getStringOption)(e.decipherOnly, t); + this.digitalSignature = (0, o.getStringOption)(e.digitalSignature, t); + this.encipherOnly = (0, o.getStringOption)(e.encipherOnly, t); + this.id = e.id || ''; + this.keyAgreement = (0, o.getStringOption)(e.keyAgreement, t); + this.keyCertSign = (0, o.getStringOption)(e.keyCertSign, t); + this.keyEncipherment = (0, o.getStringOption)(e.keyEncipherment, t); + this.nonRepudiation = (0, o.getStringOption)(e.nonRepudiation, t); + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Line extends r.XFAObject { + constructor(e) { + super(d, 'line', !0); + this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']); + this.id = e.id || ''; + this.slope = (0, o.getStringOption)(e.slope, ['\\', '/']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.edge = null; + } + [r.$toHTML]() { + const e = this[r.$getParent]()[r.$getParent](), + t = this.edge || new Edge({}), + a = t[r.$toStyle](), + i = Object.create(null), + n = 'visible' === t.presence ? t.thickness : 0; + i.strokeWidth = (0, s.measureToString)(n); + i.stroke = a.color; + let c, + l, + h, + u, + d = '100%', + g = '100%'; + if (e.w <= n) { + [c, l, h, u] = ['50%', 0, '50%', '100%']; + d = i.strokeWidth; + } else if (e.h <= n) { + [c, l, h, u] = [0, '50%', '100%', '50%']; + g = i.strokeWidth; + } else + '\\' === this.slope + ? ([c, l, h, u] = [0, 0, '100%', '100%']) + : ([c, l, h, u] = [0, '100%', '100%', 0]); + const p = { + name: 'svg', + children: [ + { name: 'line', attributes: { xmlns: f, x1: c, y1: l, x2: h, y2: u, style: i } }, + ], + attributes: { xmlns: f, width: d, height: g, style: { overflow: 'visible' } }, + }; + if (hasMargin(e)) + return o.HTMLResult.success({ + name: 'div', + attributes: { style: { display: 'inline', width: '100%', height: '100%' } }, + children: [p], + }); + p.attributes.style.position = 'absolute'; + return o.HTMLResult.success(p); + } + } + class Linear extends r.XFAObject { + constructor(e) { + super(d, 'linear', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, [ + 'toRight', + 'toBottom', + 'toLeft', + 'toTop', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle](e) { + e = e ? e[r.$toStyle]() : '#FFFFFF'; + return `linear-gradient(${this.type + .replace(/([RBLT])/, ' $1') + .toLowerCase()}, ${e}, ${this.color ? this.color[r.$toStyle]() : '#000000'})`; + } + } + class LockDocument extends r.ContentObject { + constructor(e) { + super(d, 'lockDocument'); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + this[r.$content] = (0, o.getStringOption)(this[r.$content], ['auto', '0', '1']); + } + } + class Manifest extends r.XFAObject { + constructor(e) { + super(d, 'manifest', !0); + this.action = (0, o.getStringOption)(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.XFAObjectArray(); + } + } + class Margin extends r.XFAObject { + constructor(e) { + super(d, 'margin', !0); + this.bottomInset = (0, o.getMeasurement)(e.bottomInset, '0'); + this.id = e.id || ''; + this.leftInset = (0, o.getMeasurement)(e.leftInset, '0'); + this.rightInset = (0, o.getMeasurement)(e.rightInset, '0'); + this.topInset = (0, o.getMeasurement)(e.topInset, '0'); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + [r.$toStyle]() { + return { + margin: + (0, s.measureToString)(this.topInset) + + ' ' + + (0, s.measureToString)(this.rightInset) + + ' ' + + (0, s.measureToString)(this.bottomInset) + + ' ' + + (0, s.measureToString)(this.leftInset), + }; + } + } + class Mdp extends r.XFAObject { + constructor(e) { + super(d, 'mdp'); + this.id = e.id || ''; + this.permissions = (0, o.getInteger)({ + data: e.permissions, + defaultValue: 2, + validate: (e) => 1 === e || 3 === e, + }); + this.signatureType = (0, o.getStringOption)(e.signatureType, ['filler', 'author']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Medium extends r.XFAObject { + constructor(e) { + super(d, 'medium'); + this.id = e.id || ''; + this.imagingBBox = (0, o.getBBox)(e.imagingBBox); + this.long = (0, o.getMeasurement)(e.long); + this.orientation = (0, o.getStringOption)(e.orientation, ['portrait', 'landscape']); + this.short = (0, o.getMeasurement)(e.short); + this.stock = e.stock || ''; + this.trayIn = (0, o.getStringOption)(e.trayIn, ['auto', 'delegate', 'pageFront']); + this.trayOut = (0, o.getStringOption)(e.trayOut, ['auto', 'delegate']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Message extends r.XFAObject { + constructor(e) { + super(d, 'message', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.text = new r.XFAObjectArray(); + } + } + class NumericEdit extends r.XFAObject { + constructor(e) { + super(d, 'numericEdit', !0); + this.hScrollPolicy = (0, o.getStringOption)(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; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'border', 'font', 'margin'), + a = this[r.$getParent]()[r.$getParent](), + i = { + name: 'input', + attributes: { + type: 'text', + fieldId: a[r.$uid], + dataId: (a[r.$data] && a[r.$data][r.$uid]) || a[r.$uid], + class: ['xfaTextfield'], + style: t, + 'aria-label': ariaLabel(a), + 'aria-required': !1, + }, + }; + if (isRequired(a)) { + i.attributes['aria-required'] = !0; + i.attributes.required = !0; + } + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [i], + }); + } + } + class Occur extends r.XFAObject { + constructor(e) { + super(d, 'occur', !0); + this.id = e.id || ''; + this.initial = + '' !== e.initial + ? (0, o.getInteger)({ data: e.initial, defaultValue: '', validate: (e) => !0 }) + : ''; + this.max = + '' !== e.max + ? (0, o.getInteger)({ data: e.max, defaultValue: 1, validate: (e) => !0 }) + : ''; + this.min = + '' !== e.min + ? (0, o.getInteger)({ data: e.min, defaultValue: 1, validate: (e) => !0 }) + : ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + [r.$clean]() { + const e = this[r.$getParent](), + t = this.min; + '' === this.min && (this.min = e instanceof PageArea || e instanceof PageSet ? 0 : 1); + '' === this.max && + (this.max = + '' === t ? (e instanceof PageArea || e instanceof PageSet ? -1 : 1) : this.min); + -1 !== this.max && this.max < this.min && (this.max = this.min); + '' === this.initial && (this.initial = e instanceof Template ? 1 : this.min); + } + } + class Oid extends r.StringObject { + constructor(e) { + super(d, 'oid'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Oids extends r.XFAObject { + constructor(e) { + super(d, 'oids', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.oid = new r.XFAObjectArray(); + } + } + class Overflow extends r.XFAObject { + constructor(e) { + super(d, '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 || ''; + } + [r.$getExtra]() { + if (!this[r.$extra]) { + const e = this[r.$getParent](), + t = this[r.$getTemplateRoot](), + a = t[r.$searchNode](this.target, e), + i = t[r.$searchNode](this.leader, e), + n = t[r.$searchNode](this.trailer, e); + this[r.$extra] = { + target: (a && a[0]) || null, + leader: (i && i[0]) || null, + trailer: (n && n[0]) || null, + addLeader: !1, + addTrailer: !1, + }; + } + return this[r.$extra]; + } + } + class PageArea extends r.XFAObject { + constructor(e) { + super(d, 'pageArea', !0); + this.blankOrNotBlank = (0, o.getStringOption)(e.blankOrNotBlank, [ + 'any', + 'blank', + 'notBlank', + ]); + this.id = e.id || ''; + this.initialNumber = (0, o.getInteger)({ + data: e.initialNumber, + defaultValue: 1, + validate: (e) => !0, + }); + this.name = e.name || ''; + this.numbered = (0, o.getInteger)({ + data: e.numbered, + defaultValue: 1, + validate: (e) => !0, + }); + this.oddOrEven = (0, o.getStringOption)(e.oddOrEven, ['any', 'even', 'odd']); + this.pagePosition = (0, o.getStringOption)(e.pagePosition, [ + 'any', + 'first', + 'last', + 'only', + 'rest', + ]); + this.relevant = (0, o.getRelevant)(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.XFAObjectArray(); + this.contentArea = new r.XFAObjectArray(); + this.draw = new r.XFAObjectArray(); + this.exclGroup = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + } + [r.$isUsable]() { + if (!this[r.$extra]) { + this[r.$extra] = { numberOfUse: 0 }; + return !0; + } + return ( + !this.occur || -1 === this.occur.max || this[r.$extra].numberOfUse < this.occur.max + ); + } + [r.$cleanPage]() { + delete this[r.$extra]; + } + [r.$getNextPage]() { + this[r.$extra] || (this[r.$extra] = { numberOfUse: 0 }); + const e = this[r.$getParent](); + if ('orderedOccurrence' === e.relation && this[r.$isUsable]()) { + this[r.$extra].numberOfUse += 1; + return this; + } + return e[r.$getNextPage](); + } + [r.$getAvailableSpace]() { + return this[r.$extra].space || { width: 0, height: 0 }; + } + [r.$toHTML]() { + this[r.$extra] || (this[r.$extra] = { numberOfUse: 1 }); + const e = []; + this[r.$extra].children = e; + const t = Object.create(null); + if (this.medium && this.medium.short && this.medium.long) { + t.width = (0, s.measureToString)(this.medium.short); + t.height = (0, s.measureToString)(this.medium.long); + this[r.$extra].space = { width: this.medium.short, height: this.medium.long }; + if ('landscape' === this.medium.orientation) { + const e = t.width; + t.width = t.height; + t.height = e; + this[r.$extra].space = { width: this.medium.long, height: this.medium.short }; + } + } else (0, c.warn)('XFA - No medium specified in pageArea: please file a bug.'); + this[r.$childrenToHTML]({ + filter: new Set(['area', 'draw', 'field', 'subform']), + include: !0, + }); + this[r.$childrenToHTML]({ filter: new Set(['contentArea']), include: !0 }); + return o.HTMLResult.success({ + name: 'div', + children: e, + attributes: { class: ['xfaPage'], id: this[r.$uid], style: t, xfaName: this.name }, + }); + } + } + class PageSet extends r.XFAObject { + constructor(e) { + super(d, 'pageSet', !0); + this.duplexImposition = (0, o.getStringOption)(e.duplexImposition, [ + 'longEdge', + 'shortEdge', + ]); + this.id = e.id || ''; + this.name = e.name || ''; + this.relation = (0, o.getStringOption)(e.relation, [ + 'orderedOccurrence', + 'duplexPaginated', + 'simplexPaginated', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + this.occur = null; + this.pageArea = new r.XFAObjectArray(); + this.pageSet = new r.XFAObjectArray(); + } + [r.$cleanPage]() { + for (const e of this.pageArea.children) e[r.$cleanPage](); + for (const e of this.pageSet.children) e[r.$cleanPage](); + } + [r.$isUsable]() { + return ( + !this.occur || -1 === this.occur.max || this[r.$extra].numberOfUse < this.occur.max + ); + } + [r.$getNextPage]() { + this[r.$extra] || + (this[r.$extra] = { numberOfUse: 1, pageIndex: -1, pageSetIndex: -1 }); + if ('orderedOccurrence' === this.relation) { + if (this[r.$extra].pageIndex + 1 < this.pageArea.children.length) { + this[r.$extra].pageIndex += 1; + return this.pageArea.children[this[r.$extra].pageIndex][r.$getNextPage](); + } + if (this[r.$extra].pageSetIndex + 1 < this.pageSet.children.length) { + this[r.$extra].pageSetIndex += 1; + return this.pageSet.children[this[r.$extra].pageSetIndex][r.$getNextPage](); + } + if (this[r.$isUsable]()) { + this[r.$extra].numberOfUse += 1; + this[r.$extra].pageIndex = -1; + this[r.$extra].pageSetIndex = -1; + return this[r.$getNextPage](); + } + const e = this[r.$getParent](); + if (e instanceof PageSet) return e[r.$getNextPage](); + this[r.$cleanPage](); + return this[r.$getNextPage](); + } + const e = this[r.$getTemplateRoot]()[r.$extra].pageNumber, + t = e % 2 == 0 ? 'even' : 'odd', + a = 0 === e ? 'first' : 'rest'; + let i = this.pageArea.children.find((e) => e.oddOrEven === t && e.pagePosition === a); + if (i) return i; + i = this.pageArea.children.find((e) => 'any' === e.oddOrEven && e.pagePosition === a); + if (i) return i; + i = this.pageArea.children.find( + (e) => 'any' === e.oddOrEven && 'any' === e.pagePosition, + ); + return i || this.pageArea.children[0]; + } + } + class Para extends r.XFAObject { + constructor(e) { + super(d, 'para', !0); + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.lineHeight = e.lineHeight ? (0, o.getMeasurement)(e.lineHeight, '0pt') : ''; + this.marginLeft = e.marginLeft ? (0, o.getMeasurement)(e.marginLeft, '0pt') : ''; + this.marginRight = e.marginRight ? (0, o.getMeasurement)(e.marginRight, '0pt') : ''; + this.orphans = (0, o.getInteger)({ + data: e.orphans, + defaultValue: 0, + validate: (e) => e >= 0, + }); + this.preserve = e.preserve || ''; + this.radixOffset = e.radixOffset ? (0, o.getMeasurement)(e.radixOffset, '0pt') : ''; + this.spaceAbove = e.spaceAbove ? (0, o.getMeasurement)(e.spaceAbove, '0pt') : ''; + this.spaceBelow = e.spaceBelow ? (0, o.getMeasurement)(e.spaceBelow, '0pt') : ''; + this.tabDefault = e.tabDefault ? (0, o.getMeasurement)(this.tabDefault) : ''; + this.tabStops = (e.tabStops || '') + .trim() + .split(/\s+/) + .map((e, t) => (t % 2 == 1 ? (0, o.getMeasurement)(e) : e)); + this.textIndent = e.textIndent ? (0, o.getMeasurement)(e.textIndent, '0pt') : ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.vAlign = (0, o.getStringOption)(e.vAlign, ['top', 'bottom', 'middle']); + this.widows = (0, o.getInteger)({ + data: e.widows, + defaultValue: 0, + validate: (e) => e >= 0, + }); + this.hyphenation = null; + } + [r.$toStyle]() { + const e = (0, s.toStyle)(this, 'hAlign'); + '' !== this.marginLeft && (e.paddingLeft = (0, s.measureToString)(this.marginLeft)); + '' !== this.marginRight && (e.paddingight = (0, s.measureToString)(this.marginRight)); + '' !== this.spaceAbove && (e.paddingTop = (0, s.measureToString)(this.spaceAbove)); + '' !== this.spaceBelow && (e.paddingBottom = (0, s.measureToString)(this.spaceBelow)); + if ('' !== this.textIndent) { + e.textIndent = (0, s.measureToString)(this.textIndent); + (0, s.fixTextIndent)(e); + } + this.lineHeight > 0 && (e.lineHeight = (0, s.measureToString)(this.lineHeight)); + '' !== this.tabDefault && (e.tabSize = (0, s.measureToString)(this.tabDefault)); + this.tabStops.length; + this.hyphenatation && Object.assign(e, this.hyphenatation[r.$toStyle]()); + return e; + } + } + class PasswordEdit extends r.XFAObject { + constructor(e) { + super(d, 'passwordEdit', !0); + this.hScrollPolicy = (0, o.getStringOption)(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; + } + } + class Pattern extends r.XFAObject { + constructor(e) { + super(d, 'pattern', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, [ + 'crossHatch', + 'crossDiagonal', + 'diagonalLeft', + 'diagonalRight', + 'horizontal', + 'vertical', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle](e) { + e = e ? e[r.$toStyle]() : '#FFFFFF'; + const t = this.color ? this.color[r.$toStyle]() : '#000000', + a = 'repeating-linear-gradient', + i = `${e},${e} 5px,${t} 5px,${t} 10px`; + switch (this.type) { + case 'crossHatch': + return `${a}(to top,${i}) ${a}(to right,${i})`; + case 'crossDiagonal': + return `${a}(45deg,${i}) ${a}(-45deg,${i})`; + case 'diagonalLeft': + return `${a}(45deg,${i})`; + case 'diagonalRight': + return `${a}(-45deg,${i})`; + case 'horizontal': + return `${a}(to top,${i})`; + case 'vertical': + return `${a}(to right,${i})`; + } + return ''; + } + } + class Picture extends r.StringObject { + constructor(e) { + super(d, 'picture'); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Proto extends r.XFAObject { + constructor(e) { + super(d, 'proto', !0); + this.appearanceFilter = new r.XFAObjectArray(); + this.arc = new r.XFAObjectArray(); + this.area = new r.XFAObjectArray(); + this.assist = new r.XFAObjectArray(); + this.barcode = new r.XFAObjectArray(); + this.bindItems = new r.XFAObjectArray(); + this.bookend = new r.XFAObjectArray(); + this.boolean = new r.XFAObjectArray(); + this.border = new r.XFAObjectArray(); + this.break = new r.XFAObjectArray(); + this.breakAfter = new r.XFAObjectArray(); + this.breakBefore = new r.XFAObjectArray(); + this.button = new r.XFAObjectArray(); + this.calculate = new r.XFAObjectArray(); + this.caption = new r.XFAObjectArray(); + this.certificate = new r.XFAObjectArray(); + this.certificates = new r.XFAObjectArray(); + this.checkButton = new r.XFAObjectArray(); + this.choiceList = new r.XFAObjectArray(); + this.color = new r.XFAObjectArray(); + this.comb = new r.XFAObjectArray(); + this.connect = new r.XFAObjectArray(); + this.contentArea = new r.XFAObjectArray(); + this.corner = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.dateTimeEdit = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.defaultUi = new r.XFAObjectArray(); + this.desc = new r.XFAObjectArray(); + this.digestMethod = new r.XFAObjectArray(); + this.digestMethods = new r.XFAObjectArray(); + this.draw = new r.XFAObjectArray(); + this.edge = new r.XFAObjectArray(); + this.encoding = new r.XFAObjectArray(); + this.encodings = new r.XFAObjectArray(); + this.encrypt = new r.XFAObjectArray(); + this.encryptData = new r.XFAObjectArray(); + this.encryption = new r.XFAObjectArray(); + this.encryptionMethod = new r.XFAObjectArray(); + this.encryptionMethods = new r.XFAObjectArray(); + this.event = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.exObject = new r.XFAObjectArray(); + this.exclGroup = new r.XFAObjectArray(); + this.execute = new r.XFAObjectArray(); + this.extras = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.fill = new r.XFAObjectArray(); + this.filter = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.font = new r.XFAObjectArray(); + this.format = new r.XFAObjectArray(); + this.handler = new r.XFAObjectArray(); + this.hyphenation = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.imageEdit = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.issuers = new r.XFAObjectArray(); + this.items = new r.XFAObjectArray(); + this.keep = new r.XFAObjectArray(); + this.keyUsage = new r.XFAObjectArray(); + this.line = new r.XFAObjectArray(); + this.linear = new r.XFAObjectArray(); + this.lockDocument = new r.XFAObjectArray(); + this.manifest = new r.XFAObjectArray(); + this.margin = new r.XFAObjectArray(); + this.mdp = new r.XFAObjectArray(); + this.medium = new r.XFAObjectArray(); + this.message = new r.XFAObjectArray(); + this.numericEdit = new r.XFAObjectArray(); + this.occur = new r.XFAObjectArray(); + this.oid = new r.XFAObjectArray(); + this.oids = new r.XFAObjectArray(); + this.overflow = new r.XFAObjectArray(); + this.pageArea = new r.XFAObjectArray(); + this.pageSet = new r.XFAObjectArray(); + this.para = new r.XFAObjectArray(); + this.passwordEdit = new r.XFAObjectArray(); + this.pattern = new r.XFAObjectArray(); + this.picture = new r.XFAObjectArray(); + this.radial = new r.XFAObjectArray(); + this.reason = new r.XFAObjectArray(); + this.reasons = new r.XFAObjectArray(); + this.rectangle = new r.XFAObjectArray(); + this.ref = new r.XFAObjectArray(); + this.script = new r.XFAObjectArray(); + this.setProperty = new r.XFAObjectArray(); + this.signData = new r.XFAObjectArray(); + this.signature = new r.XFAObjectArray(); + this.signing = new r.XFAObjectArray(); + this.solid = new r.XFAObjectArray(); + this.speak = new r.XFAObjectArray(); + this.stipple = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + this.subformSet = new r.XFAObjectArray(); + this.subjectDN = new r.XFAObjectArray(); + this.subjectDNs = new r.XFAObjectArray(); + this.submit = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.textEdit = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + this.timeStamp = new r.XFAObjectArray(); + this.toolTip = new r.XFAObjectArray(); + this.traversal = new r.XFAObjectArray(); + this.traverse = new r.XFAObjectArray(); + this.ui = new r.XFAObjectArray(); + this.validate = new r.XFAObjectArray(); + this.value = new r.XFAObjectArray(); + this.variables = new r.XFAObjectArray(); + } + } + class Radial extends r.XFAObject { + constructor(e) { + super(d, 'radial', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['toEdge', 'toCenter']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle](e) { + e = e ? e[r.$toStyle]() : '#FFFFFF'; + const t = this.color ? this.color[r.$toStyle]() : '#000000'; + return `radial-gradient(circle at center, ${ + 'toEdge' === this.type ? `${e},${t}` : `${t},${e}` + })`; + } + } + class Reason extends r.StringObject { + constructor(e) { + super(d, 'reason'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Reasons extends r.XFAObject { + constructor(e) { + super(d, 'reasons', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.reason = new r.XFAObjectArray(); + } + } + class Rectangle extends r.XFAObject { + constructor(e) { + super(d, 'rectangle', !0); + this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.corner = new r.XFAObjectArray(4); + this.edge = new r.XFAObjectArray(4); + this.fill = null; + } + [r.$toHTML]() { + const e = this.edge.children.length ? this.edge.children[0] : new Edge({}), + t = e[r.$toStyle](), + a = Object.create(null); + this.fill && 'visible' === this.fill.presence + ? Object.assign(a, this.fill[r.$toStyle]()) + : (a.fill = 'transparent'); + a.strokeWidth = (0, s.measureToString)('visible' === e.presence ? e.thickness : 0); + a.stroke = t.color; + const i = (this.corner.children.length ? this.corner.children[0] : new Corner({}))[ + r.$toStyle + ](), + n = { + name: 'svg', + children: [ + { + name: 'rect', + attributes: { + xmlns: f, + width: '100%', + height: '100%', + x: 0, + y: 0, + rx: i.radius, + ry: i.radius, + style: a, + }, + }, + ], + attributes: { + xmlns: f, + style: { overflow: 'visible' }, + width: '100%', + height: '100%', + }, + }; + if (hasMargin(this[r.$getParent]()[r.$getParent]())) + return o.HTMLResult.success({ + name: 'div', + attributes: { style: { display: 'inline', width: '100%', height: '100%' } }, + children: [n], + }); + n.attributes.style.position = 'absolute'; + return o.HTMLResult.success(n); + } + } + class RefElement extends r.StringObject { + constructor(e) { + super(d, 'ref'); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Script extends r.StringObject { + constructor(e) { + super(d, 'script'); + this.binding = e.binding || ''; + this.contentType = e.contentType || ''; + this.id = e.id || ''; + this.name = e.name || ''; + this.runAt = (0, o.getStringOption)(e.runAt, ['client', 'both', 'server']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class SetProperty extends r.XFAObject { + constructor(e) { + super(d, 'setProperty'); + this.connection = e.connection || ''; + this.ref = e.ref || ''; + this.target = e.target || ''; + } + } + t.SetProperty = SetProperty; + class SignData extends r.XFAObject { + constructor(e) { + super(d, 'signData', !0); + this.id = e.id || ''; + this.operation = (0, o.getStringOption)(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; + } + } + class Signature extends r.XFAObject { + constructor(e) { + super(d, 'signature', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(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; + } + } + class Signing extends r.XFAObject { + constructor(e) { + super(d, 'signing', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.certificate = new r.XFAObjectArray(); + } + } + class Solid extends r.XFAObject { + constructor(e) { + super(d, 'solid', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + [r.$toStyle](e) { + return e ? e[r.$toStyle]() : '#FFFFFF'; + } + } + class Speak extends r.StringObject { + constructor(e) { + super(d, 'speak'); + this.disable = (0, o.getInteger)({ + data: e.disable, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.id = e.id || ''; + this.priority = (0, o.getStringOption)(e.priority, [ + 'custom', + 'caption', + 'name', + 'toolTip', + ]); + this.rid = e.rid || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Stipple extends r.XFAObject { + constructor(e) { + super(d, 'stipple', !0); + this.id = e.id || ''; + this.rate = (0, o.getInteger)({ + data: e.rate, + defaultValue: 50, + validate: (e) => e >= 0 && e <= 100, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle](e) { + const t = this.rate / 100; + return c.Util.makeHexColor( + Math.round(e.value.r * (1 - t) + this.value.r * t), + Math.round(e.value.g * (1 - t) + this.value.g * t), + Math.round(e.value.b * (1 - t) + this.value.b * t), + ); + } + } + class Subform extends r.XFAObject { + constructor(e) { + super(d, 'subform', !0); + this.access = (0, o.getStringOption)(e.access, [ + 'open', + 'nonInteractive', + 'protected', + 'readOnly', + ]); + this.allowMacro = (0, o.getInteger)({ + data: e.allowMacro, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.anchorType = (0, o.getStringOption)(e.anchorType, [ + 'topLeft', + 'bottomCenter', + 'bottomLeft', + 'bottomRight', + 'middleCenter', + 'middleLeft', + 'middleRight', + 'topCenter', + 'topRight', + ]); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.columnWidths = (e.columnWidths || '') + .trim() + .split(/\s+/) + .map((e) => ('-1' === e ? -1 : (0, o.getMeasurement)(e))); + this.h = e.h ? (0, o.getMeasurement)(e.h) : ''; + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.layout = (0, o.getStringOption)(e.layout, [ + 'position', + 'lr-tb', + 'rl-row', + 'rl-tb', + 'row', + 'table', + 'tb', + ]); + this.locale = e.locale || ''; + this.maxH = (0, o.getMeasurement)(e.maxH, '0pt'); + this.maxW = (0, o.getMeasurement)(e.maxW, '0pt'); + this.mergeMode = (0, o.getStringOption)(e.mergeMode, [ + 'consumeData', + 'matchTemplate', + ]); + this.minH = (0, o.getMeasurement)(e.minH, '0pt'); + this.minW = (0, o.getMeasurement)(e.minW, '0pt'); + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.restoreState = (0, o.getStringOption)(e.restoreState, ['manual', 'auto']); + this.scope = (0, o.getStringOption)(e.scope, ['name', 'none']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = e.w ? (0, o.getMeasurement)(e.w) : ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(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.XFAObjectArray(); + this.breakAfter = new r.XFAObjectArray(); + this.breakBefore = new r.XFAObjectArray(); + this.connect = new r.XFAObjectArray(); + this.draw = new r.XFAObjectArray(); + this.event = new r.XFAObjectArray(); + this.exObject = new r.XFAObjectArray(); + this.exclGroup = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.proto = new r.XFAObjectArray(); + this.setProperty = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + this.subformSet = new r.XFAObjectArray(); + } + [r.$getSubformParent]() { + const e = this[r.$getParent](); + return e instanceof SubformSet ? e[r.$getSubformParent]() : e; + } + [r.$isBindable]() { + return !0; + } + [r.$isThereMoreWidth]() { + return ( + (this.layout.endsWith('-tb') && + 0 === this[r.$extra].attempt && + this[r.$extra].numberInLine > 0) || + this[r.$getParent]()[r.$isThereMoreWidth]() + ); + } + *[r.$getContainedChildren]() { + yield* getContainedChildren(this); + } + [r.$flushHTML]() { + return (0, n.flushHTML)(this); + } + [r.$addHTML](e, t) { + (0, n.addHTML)(this, e, t); + } + [r.$getAvailableSpace]() { + return (0, n.getAvailableSpace)(this); + } + [r.$isSplittable]() { + const e = this[r.$getSubformParent](); + if (!e[r.$isSplittable]()) return !1; + if (void 0 !== this[r.$extra]._isSplittable) return this[r.$extra]._isSplittable; + if ('position' === this.layout || this.layout.includes('row')) { + this[r.$extra]._isSplittable = !1; + return !1; + } + if (this.keep && 'none' !== this.keep.intact) { + this[r.$extra]._isSplittable = !1; + return !1; + } + if (e.layout && e.layout.endsWith('-tb') && 0 !== e[r.$extra].numberInLine) return !1; + this[r.$extra]._isSplittable = !0; + return !0; + } + [r.$toHTML](e) { + setTabIndex(this); + if (this.break) { + if ('auto' !== this.break.after || '' !== this.break.afterTarget) { + const e = new BreakAfter({ + targetType: this.break.after, + target: this.break.afterTarget, + startNew: this.break.startNew.toString(), + }); + e[r.$globalData] = this[r.$globalData]; + this[r.$appendChild](e); + this.breakAfter.push(e); + } + if ('auto' !== this.break.before || '' !== this.break.beforeTarget) { + const e = new BreakBefore({ + targetType: this.break.before, + target: this.break.beforeTarget, + startNew: this.break.startNew.toString(), + }); + e[r.$globalData] = this[r.$globalData]; + this[r.$appendChild](e); + this.breakBefore.push(e); + } + if ('' !== this.break.overflowTarget) { + const e = new Overflow({ + target: this.break.overflowTarget, + leader: this.break.overflowLeader, + trailer: this.break.overflowTrailer, + }); + e[r.$globalData] = this[r.$globalData]; + this[r.$appendChild](e); + this.overflow.push(e); + } + this[r.$removeChild](this.break); + this.break = null; + } + if ('hidden' === this.presence || 'inactive' === this.presence) + return o.HTMLResult.EMPTY; + (this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) && + (0, c.warn)( + 'XFA - Several breakBefore or breakAfter in subforms: please file a bug.', + ); + if (this.breakBefore.children.length >= 1) { + const e = this.breakBefore.children[0]; + if (handleBreak(e)) return o.HTMLResult.breakNode(e); + } + if (this[r.$extra] && this[r.$extra].afterBreakAfter) return o.HTMLResult.EMPTY; + (0, s.fixDimensions)(this); + const t = [], + a = { id: this[r.$uid], class: [] }; + (0, s.setAccess)(this, a.class); + this[r.$extra] || (this[r.$extra] = Object.create(null)); + Object.assign(this[r.$extra], { + children: t, + line: null, + attributes: a, + 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[r.$getTemplateRoot](), + l = i[r.$extra].noLayoutFailure, + h = this[r.$isSplittable](); + h || setFirstUnsplittable(this); + if (!(0, n.checkDimensions)(this, e)) return o.HTMLResult.FAILURE; + const u = new Set(['area', 'draw', 'exclGroup', 'field', 'subform', 'subformSet']); + if (this.layout.includes('row')) { + const e = this[r.$getSubformParent]().columnWidths; + if (Array.isArray(e) && e.length > 0) { + this[r.$extra].columnWidths = e; + this[r.$extra].currentColumn = 0; + } + } + const d = (0, s.toStyle)( + this, + 'anchorType', + 'dimensions', + 'position', + 'presence', + 'border', + 'margin', + 'hAlign', + ), + f = ['xfaSubform'], + g = (0, s.layoutClass)(this); + g && f.push(g); + a.style = d; + a.class = f; + this.name && (a.xfaName = this.name); + if (this.overflow) { + const t = this.overflow[r.$getExtra](); + if (t.addLeader) { + t.addLeader = !1; + handleOverflow(this, t.leader, e); + } + } + this[r.$pushPara](); + const p = 'lr-tb' === this.layout || 'rl-tb' === this.layout, + m = p ? 2 : 1; + for (; this[r.$extra].attempt < m; this[r.$extra].attempt++) { + p && 1 === this[r.$extra].attempt && (this[r.$extra].numberInLine = 0); + const e = this[r.$childrenToHTML]({ filter: u, include: !0 }); + if (e.success) break; + if (e.isBreak()) { + this[r.$popPara](); + return e; + } + if ( + p && + 0 === this[r.$extra].attempt && + 0 === this[r.$extra].numberInLine && + !i[r.$extra].noLayoutFailure + ) { + this[r.$extra].attempt = m; + break; + } + } + this[r.$popPara](); + h || unsetFirstUnsplittable(this); + i[r.$extra].noLayoutFailure = l; + if (this[r.$extra].attempt === m) { + this.overflow && + (this[r.$getTemplateRoot]()[r.$extra].overflowNode = this.overflow); + h || delete this[r.$extra]; + return o.HTMLResult.FAILURE; + } + if (this.overflow) { + const t = this.overflow[r.$getExtra](); + if (t.addTrailer) { + t.addTrailer = !1; + handleOverflow(this, t.trailer, e); + } + } + let b = 0, + y = 0; + if (this.margin) { + b = this.margin.leftInset + this.margin.rightInset; + y = this.margin.topInset + this.margin.bottomInset; + } + const w = Math.max(this[r.$extra].width + b, this.w || 0), + S = Math.max(this[r.$extra].height + y, this.h || 0), + x = [this.x, this.y, w, S]; + '' === this.w && (d.width = (0, s.measureToString)(w)); + '' === this.h && (d.height = (0, s.measureToString)(S)); + if (('0px' === d.width || '0px' === d.height) && 0 === t.length) + return o.HTMLResult.EMPTY; + const C = { name: 'div', attributes: a, children: t }; + applyAssist(this, a); + const k = o.HTMLResult.success((0, s.createWrapper)(this, C), x); + if (this.breakAfter.children.length >= 1) { + const e = this.breakAfter.children[0]; + if (handleBreak(e)) { + this[r.$extra].afterBreakAfter = k; + return o.HTMLResult.breakNode(e); + } + } + delete this[r.$extra]; + return k; + } + } + class SubformSet extends r.XFAObject { + constructor(e) { + super(d, 'subformSet', !0); + this.id = e.id || ''; + this.name = e.name || ''; + this.relation = (0, o.getStringOption)(e.relation, [ + 'ordered', + 'choice', + 'unordered', + ]); + this.relevant = (0, o.getRelevant)(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.XFAObjectArray(); + this.breakBefore = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + this.subformSet = new r.XFAObjectArray(); + } + *[r.$getContainedChildren]() { + yield* getContainedChildren(this); + } + [r.$getSubformParent]() { + let e = this[r.$getParent](); + for (; !(e instanceof Subform); ) e = e[r.$getParent](); + return e; + } + [r.$isBindable]() { + return !0; + } + } + class SubjectDN extends r.ContentObject { + constructor(e) { + super(d, 'subjectDN'); + this.delimiter = e.delimiter || ','; + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + this[r.$content] = new Map( + this[r.$content].split(this.delimiter).map((e) => { + (e = e.split('=', 2))[0] = e[0].trim(); + return e; + }), + ); + } + } + class SubjectDNs extends r.XFAObject { + constructor(e) { + super(d, 'subjectDNs', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.subjectDN = new r.XFAObjectArray(); + } + } + class Submit extends r.XFAObject { + constructor(e) { + super(d, 'submit', !0); + this.embedPDF = (0, o.getInteger)({ + data: e.embedPDF, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.format = (0, o.getStringOption)(e.format, [ + 'xdp', + 'formdata', + 'pdf', + 'urlencoded', + 'xfd', + 'xml', + ]); + this.id = e.id || ''; + this.target = e.target || ''; + this.textEncoding = (0, o.getKeyword)({ + data: e.textEncoding ? e.textEncoding.toLowerCase() : '', + defaultValue: '', + validate: (e) => + [ + 'utf-8', + 'big-five', + 'fontspecific', + 'gbk', + 'gb-18030', + 'gb-2312', + 'ksc-5601', + 'none', + 'shift-jis', + 'ucs-2', + 'utf-16', + ].includes(e) || e.match(/iso-8859-\d{2}/), + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.xdpContent = e.xdpContent || ''; + this.encrypt = null; + this.encryptData = new r.XFAObjectArray(); + this.signData = new r.XFAObjectArray(); + } + } + class Template extends r.XFAObject { + constructor(e) { + super(d, 'template', !0); + this.baseProfile = (0, o.getStringOption)(e.baseProfile, [ + 'full', + 'interactiveForms', + ]); + this.extras = null; + this.subform = new r.XFAObjectArray(); + } + [r.$finalize]() { + 0 === this.subform.children.length && + (0, c.warn)('XFA - No subforms in template node.'); + this.subform.children.length >= 2 && + (0, c.warn)('XFA - Several subforms in template node: please file a bug.'); + this[r.$tabIndex] = 5e3; + } + [r.$isSplittable]() { + return !0; + } + [r.$searchNode](e, t) { + return e.startsWith('#') + ? [this[r.$ids].get(e.slice(1))] + : (0, u.searchNode)(this, t, e, !0, !0); + } + *[r.$toPages]() { + if (!this.subform.children.length) + return o.HTMLResult.success({ name: 'div', children: [] }); + this[r.$extra] = { + overflowNode: null, + firstUnsplittable: null, + currentContentArea: null, + currentPageArea: null, + noLayoutFailure: !1, + pageNumber: 1, + pagePosition: 'first', + oddOrEven: 'odd', + blankOrNotBlank: 'nonBlank', + paraStack: [], + }; + const e = this.subform.children[0]; + e.pageSet[r.$cleanPage](); + const t = e.pageSet.pageArea.children, + a = { name: 'div', children: [] }; + let i = null, + n = null, + s = null; + if (e.breakBefore.children.length >= 1) { + n = e.breakBefore.children[0]; + s = n.target; + } else if ( + e.subform.children.length >= 1 && + e.subform.children[0].breakBefore.children.length >= 1 + ) { + n = e.subform.children[0].breakBefore.children[0]; + s = n.target; + } else if (e.break && e.break.beforeTarget) { + n = e.break; + s = n.beforeTarget; + } else if ( + e.subform.children.length >= 1 && + e.subform.children[0].break && + e.subform.children[0].break.beforeTarget + ) { + n = e.subform.children[0].break; + s = n.beforeTarget; + } + if (n) { + const e = this[r.$searchNode](s, n[r.$getParent]()); + if (e instanceof PageArea) { + i = e; + n[r.$extra] = {}; + } + } + i || (i = t[0]); + i[r.$extra] = { numberOfUse: 1 }; + const l = i[r.$getParent](); + l[r.$extra] = { + numberOfUse: 1, + pageIndex: l.pageArea.children.indexOf(i), + pageSetIndex: 0, + }; + let h, + u = null, + d = null, + f = !0, + g = 0, + p = 0; + for (;;) { + if (f) g = 0; + else { + a.children.pop(); + if (3 == ++g) { + (0, c.warn)('XFA - Something goes wrong: please file a bug.'); + return a; + } + } + h = null; + this[r.$extra].currentPageArea = i; + const t = i[r.$toHTML]().html; + a.children.push(t); + if (u) { + this[r.$extra].noLayoutFailure = !0; + t.children.push(u[r.$toHTML](i[r.$extra].space).html); + u = null; + } + if (d) { + this[r.$extra].noLayoutFailure = !0; + t.children.push(d[r.$toHTML](i[r.$extra].space).html); + d = null; + } + const n = i.contentArea.children, + s = t.children.filter((e) => e.attributes.class.includes('xfaContentarea')); + f = !1; + this[r.$extra].firstUnsplittable = null; + this[r.$extra].noLayoutFailure = !1; + const flush = (t) => { + const a = e[r.$flushHTML](); + if (a) { + f ||= !!a.children && 0 !== a.children.length; + s[t].children.push(a); + } + }; + for (let t = p, i = n.length; t < i; t++) { + const i = (this[r.$extra].currentContentArea = n[t]), + o = { width: i.w, height: i.h }; + p = 0; + if (u) { + s[t].children.push(u[r.$toHTML](o).html); + u = null; + } + if (d) { + s[t].children.push(d[r.$toHTML](o).html); + d = null; + } + const c = e[r.$toHTML](o); + if (c.success) { + if (c.html) { + f ||= !!c.html.children && 0 !== c.html.children.length; + s[t].children.push(c.html); + } else !f && a.children.length > 1 && a.children.pop(); + return a; + } + if (c.isBreak()) { + const e = c.breakNode; + flush(t); + if ('auto' === e.targetType) continue; + if (e.leader) { + u = this[r.$searchNode](e.leader, e[r.$getParent]()); + u = u ? u[0] : null; + } + if (e.trailer) { + d = this[r.$searchNode](e.trailer, e[r.$getParent]()); + d = d ? d[0] : null; + } + if ('pageArea' === e.targetType) { + h = e[r.$extra].target; + t = 1 / 0; + } else if (e[r.$extra].target) { + h = e[r.$extra].target; + p = e[r.$extra].index + 1; + t = 1 / 0; + } else t = e[r.$extra].index; + } else if (this[r.$extra].overflowNode) { + const e = this[r.$extra].overflowNode; + this[r.$extra].overflowNode = null; + const a = e[r.$getExtra](), + i = a.target; + a.addLeader = null !== a.leader; + a.addTrailer = null !== a.trailer; + flush(t); + const s = t; + t = 1 / 0; + if (i instanceof PageArea) h = i; + else if (i instanceof ContentArea) { + const e = n.indexOf(i); + if (-1 !== e) e > s ? (t = e - 1) : (p = e); + else { + h = i[r.$getParent](); + p = h.contentArea.children.indexOf(i); + } + } + } else flush(t); + } + this[r.$extra].pageNumber += 1; + h && (h[r.$isUsable]() ? (h[r.$extra].numberOfUse += 1) : (h = null)); + i = h || i[r.$getNextPage](); + yield null; + } + } + } + t.Template = Template; + class Text extends r.ContentObject { + constructor(e) { + super(d, 'text'); + this.id = e.id || ''; + this.maxChars = (0, o.getInteger)({ + data: e.maxChars, + defaultValue: 0, + validate: (e) => e >= 0, + }); + this.name = e.name || ''; + this.rid = e.rid || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$acceptWhitespace]() { + return !0; + } + [r.$onChild](e) { + if (e[r.$namespaceId] === i.NamespaceIds.xhtml.id) { + this[r.$content] = e; + return !0; + } + (0, c.warn)(`XFA - Invalid content in Text: ${e[r.$nodeName]}.`); + return !1; + } + [r.$onText](e) { + this[r.$content] instanceof r.XFAObject || super[r.$onText](e); + } + [r.$finalize]() { + 'string' == typeof this[r.$content] && + (this[r.$content] = this[r.$content].replaceAll('\r\n', '\n')); + } + [r.$getExtra]() { + return 'string' == typeof this[r.$content] + ? this[r.$content] + .split(/[\u2029\u2028\n]/) + .reduce((e, t) => { + t && e.push(t); + return e; + }, []) + .join('\n') + : this[r.$content][r.$text](); + } + [r.$toHTML](e) { + if ('string' == typeof this[r.$content]) { + const e = valueToHtml(this[r.$content]).html; + if (this[r.$content].includes('\u2029')) { + e.name = 'div'; + e.children = []; + this[r.$content] + .split('\u2029') + .map((e) => + e.split(/[\u2028\n]/).reduce((e, t) => { + e.push({ name: 'span', value: t }, { name: 'br' }); + return e; + }, []), + ) + .forEach((t) => { + e.children.push({ name: 'p', children: t }); + }); + } else if (/[\u2028\n]/.test(this[r.$content])) { + e.name = 'div'; + e.children = []; + this[r.$content].split(/[\u2028\n]/).forEach((t) => { + e.children.push({ name: 'span', value: t }, { name: 'br' }); + }); + } + return o.HTMLResult.success(e); + } + return this[r.$content][r.$toHTML](e); + } + } + t.Text = Text; + class TextEdit extends r.XFAObject { + constructor(e) { + super(d, 'textEdit', !0); + this.allowRichText = (0, o.getInteger)({ + data: e.allowRichText, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.hScrollPolicy = (0, o.getStringOption)(e.hScrollPolicy, ['auto', 'off', 'on']); + this.id = e.id || ''; + this.multiLine = (0, o.getInteger)({ + data: e.multiLine, + defaultValue: '', + validate: (e) => 0 === e || 1 === e, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.vScrollPolicy = (0, o.getStringOption)(e.vScrollPolicy, ['auto', 'off', 'on']); + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'border', 'font', 'margin'); + let a; + const i = this[r.$getParent]()[r.$getParent](); + '' === this.multiLine && (this.multiLine = i instanceof Draw ? 1 : 0); + a = + 1 === this.multiLine + ? { + name: 'textarea', + attributes: { + dataId: (i[r.$data] && i[r.$data][r.$uid]) || i[r.$uid], + fieldId: i[r.$uid], + class: ['xfaTextfield'], + style: t, + 'aria-label': ariaLabel(i), + 'aria-required': !1, + }, + } + : { + name: 'input', + attributes: { + type: 'text', + dataId: (i[r.$data] && i[r.$data][r.$uid]) || i[r.$uid], + fieldId: i[r.$uid], + class: ['xfaTextfield'], + style: t, + 'aria-label': ariaLabel(i), + 'aria-required': !1, + }, + }; + if (isRequired(i)) { + a.attributes['aria-required'] = !0; + a.attributes.required = !0; + } + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [a], + }); + } + } + class Time extends r.StringObject { + constructor(e) { + super(d, 'time'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = this[r.$content].trim(); + this[r.$content] = e ? new Date(e) : null; + } + [r.$toHTML](e) { + return valueToHtml(this[r.$content] ? this[r.$content].toString() : ''); + } + } + class TimeStamp extends r.XFAObject { + constructor(e) { + super(d, 'timeStamp'); + this.id = e.id || ''; + this.server = e.server || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class ToolTip extends r.StringObject { + constructor(e) { + super(d, 'toolTip'); + this.id = e.id || ''; + this.rid = e.rid || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Traversal extends r.XFAObject { + constructor(e) { + super(d, 'traversal', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + this.traverse = new r.XFAObjectArray(); + } + } + class Traverse extends r.XFAObject { + constructor(e) { + super(d, 'traverse', !0); + this.id = e.id || ''; + this.operation = (0, o.getStringOption)(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; + } + [r.$isTransparent]() { + return !1; + } + } + class Ui extends r.XFAObject { + constructor(e) { + super(d, 'ui', !0); + 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; + } + [r.$getExtra]() { + if (void 0 === this[r.$extra]) { + for (const e of Object.getOwnPropertyNames(this)) { + if ('extras' === e || 'picture' === e) continue; + const t = this[e]; + if (t instanceof r.XFAObject) { + this[r.$extra] = t; + return t; + } + } + this[r.$extra] = null; + } + return this[r.$extra]; + } + [r.$toHTML](e) { + const t = this[r.$getExtra](); + return t ? t[r.$toHTML](e) : o.HTMLResult.EMPTY; + } + } + class Validate extends r.XFAObject { + constructor(e) { + super(d, 'validate', !0); + this.formatTest = (0, o.getStringOption)(e.formatTest, [ + 'warning', + 'disabled', + 'error', + ]); + this.id = e.id || ''; + this.nullTest = (0, o.getStringOption)(e.nullTest, ['disabled', 'error', 'warning']); + this.scriptTest = (0, o.getStringOption)(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; + } + } + class Value extends r.XFAObject { + constructor(e) { + super(d, 'value', !0); + this.id = e.id || ''; + this.override = (0, o.getInteger)({ + data: e.override, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.relevant = (0, o.getRelevant)(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; + } + [r.$setValue](e) { + const t = this[r.$getParent](); + if (t instanceof Field && t.ui && t.ui.imageEdit) { + if (!this.image) { + this.image = new Image({}); + this[r.$appendChild](this.image); + } + this.image[r.$content] = e[r.$content]; + return; + } + const a = e[r.$nodeName]; + if (null === this[a]) { + for (const e of Object.getOwnPropertyNames(this)) { + const t = this[e]; + if (t instanceof r.XFAObject) { + this[e] = null; + this[r.$removeChild](t); + } + } + this[e[r.$nodeName]] = e; + this[r.$appendChild](e); + } else this[a][r.$content] = e[r.$content]; + } + [r.$text]() { + if (this.exData) + return 'string' == typeof this.exData[r.$content] + ? this.exData[r.$content].trim() + : this.exData[r.$content][r.$text]().trim(); + for (const e of Object.getOwnPropertyNames(this)) { + if ('image' === e) continue; + const t = this[e]; + if (t instanceof r.XFAObject) return (t[r.$content] || '').toString().trim(); + } + return null; + } + [r.$toHTML](e) { + for (const t of Object.getOwnPropertyNames(this)) { + const a = this[t]; + if (a instanceof r.XFAObject) return a[r.$toHTML](e); + } + return o.HTMLResult.EMPTY; + } + } + t.Value = Value; + class Variables extends r.XFAObject { + constructor(e) { + super(d, 'variables', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.boolean = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.manifest = new r.XFAObjectArray(); + this.script = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + [r.$isTransparent]() { + return !0; + } + } + class TemplateNamespace { + static [i.$buildXFAObject](e, t) { + if (TemplateNamespace.hasOwnProperty(e)) { + const a = TemplateNamespace[e](t); + a[r.$setSetAttributes](t); + return a; + } + } + static appearanceFilter(e) { + return new AppearanceFilter(e); + } + static arc(e) { + return new Arc(e); + } + static area(e) { + return new Area(e); + } + static assist(e) { + return new Assist(e); + } + static barcode(e) { + return new Barcode(e); + } + static bind(e) { + return new Bind(e); + } + static bindItems(e) { + return new BindItems(e); + } + static bookend(e) { + return new Bookend(e); + } + static boolean(e) { + return new BooleanElement(e); + } + static border(e) { + return new Border(e); + } + static break(e) { + return new Break(e); + } + static breakAfter(e) { + return new BreakAfter(e); + } + static breakBefore(e) { + return new BreakBefore(e); + } + static button(e) { + return new Button(e); + } + static calculate(e) { + return new Calculate(e); + } + static caption(e) { + return new Caption(e); + } + static certificate(e) { + return new Certificate(e); + } + static certificates(e) { + return new Certificates(e); + } + static checkButton(e) { + return new CheckButton(e); + } + static choiceList(e) { + return new ChoiceList(e); + } + static color(e) { + return new Color(e); + } + static comb(e) { + return new Comb(e); + } + static connect(e) { + return new Connect(e); + } + static contentArea(e) { + return new ContentArea(e); + } + static corner(e) { + return new Corner(e); + } + static date(e) { + return new DateElement(e); + } + static dateTime(e) { + return new DateTime(e); + } + static dateTimeEdit(e) { + return new DateTimeEdit(e); + } + static decimal(e) { + return new Decimal(e); + } + static defaultUi(e) { + return new DefaultUi(e); + } + static desc(e) { + return new Desc(e); + } + static digestMethod(e) { + return new DigestMethod(e); + } + static digestMethods(e) { + return new DigestMethods(e); + } + static draw(e) { + return new Draw(e); + } + static edge(e) { + return new Edge(e); + } + static encoding(e) { + return new Encoding(e); + } + static encodings(e) { + return new Encodings(e); + } + static encrypt(e) { + return new Encrypt(e); + } + static encryptData(e) { + return new EncryptData(e); + } + static encryption(e) { + return new Encryption(e); + } + static encryptionMethod(e) { + return new EncryptionMethod(e); + } + static encryptionMethods(e) { + return new EncryptionMethods(e); + } + static event(e) { + return new Event(e); + } + static exData(e) { + return new ExData(e); + } + static exObject(e) { + return new ExObject(e); + } + static exclGroup(e) { + return new ExclGroup(e); + } + static execute(e) { + return new Execute(e); + } + static extras(e) { + return new Extras(e); + } + static field(e) { + return new Field(e); + } + static fill(e) { + return new Fill(e); + } + static filter(e) { + return new Filter(e); + } + static float(e) { + return new Float(e); + } + static font(e) { + return new Font(e); + } + static format(e) { + return new Format(e); + } + static handler(e) { + return new Handler(e); + } + static hyphenation(e) { + return new Hyphenation(e); + } + static image(e) { + return new Image(e); + } + static imageEdit(e) { + return new ImageEdit(e); + } + static integer(e) { + return new Integer(e); + } + static issuers(e) { + return new Issuers(e); + } + static items(e) { + return new Items(e); + } + static keep(e) { + return new Keep(e); + } + static keyUsage(e) { + return new KeyUsage(e); + } + static line(e) { + return new Line(e); + } + static linear(e) { + return new Linear(e); + } + static lockDocument(e) { + return new LockDocument(e); + } + static manifest(e) { + return new Manifest(e); + } + static margin(e) { + return new Margin(e); + } + static mdp(e) { + return new Mdp(e); + } + static medium(e) { + return new Medium(e); + } + static message(e) { + return new Message(e); + } + static numericEdit(e) { + return new NumericEdit(e); + } + static occur(e) { + return new Occur(e); + } + static oid(e) { + return new Oid(e); + } + static oids(e) { + return new Oids(e); + } + static overflow(e) { + return new Overflow(e); + } + static pageArea(e) { + return new PageArea(e); + } + static pageSet(e) { + return new PageSet(e); + } + static para(e) { + return new Para(e); + } + static passwordEdit(e) { + return new PasswordEdit(e); + } + static pattern(e) { + return new Pattern(e); + } + static picture(e) { + return new Picture(e); + } + static proto(e) { + return new Proto(e); + } + static radial(e) { + return new Radial(e); + } + static reason(e) { + return new Reason(e); + } + static reasons(e) { + return new Reasons(e); + } + static rectangle(e) { + return new Rectangle(e); + } + static ref(e) { + return new RefElement(e); + } + static script(e) { + return new Script(e); + } + static setProperty(e) { + return new SetProperty(e); + } + static signData(e) { + return new SignData(e); + } + static signature(e) { + return new Signature(e); + } + static signing(e) { + return new Signing(e); + } + static solid(e) { + return new Solid(e); + } + static speak(e) { + return new Speak(e); + } + static stipple(e) { + return new Stipple(e); + } + static subform(e) { + return new Subform(e); + } + static subformSet(e) { + return new SubformSet(e); + } + static subjectDN(e) { + return new SubjectDN(e); + } + static subjectDNs(e) { + return new SubjectDNs(e); + } + static submit(e) { + return new Submit(e); + } + static template(e) { + return new Template(e); + } + static text(e) { + return new Text(e); + } + static textEdit(e) { + return new TextEdit(e); + } + static time(e) { + return new Time(e); + } + static timeStamp(e) { + return new TimeStamp(e); + } + static toolTip(e) { + return new ToolTip(e); + } + static traversal(e) { + return new Traversal(e); + } + static traverse(e) { + return new Traverse(e); + } + static ui(e) { + return new Ui(e); + } + static validate(e) { + return new Validate(e); + } + static value(e) { + return new Value(e); + } + static variables(e) { + return new Variables(e); + } + } + t.TemplateNamespace = TemplateNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.addHTML = function addHTML(e, t, a) { + const n = e[r.$extra], + s = n.availableSpace, + [o, c, l, h] = a; + switch (e.layout) { + case 'position': + n.width = Math.max(n.width, o + l); + n.height = Math.max(n.height, c + h); + n.children.push(t); + break; + case 'lr-tb': + case 'rl-tb': + if (!n.line || 1 === n.attempt) { + n.line = createLine(e, []); + n.children.push(n.line); + n.numberInLine = 0; + } + n.numberInLine += 1; + n.line.children.push(t); + if (0 === n.attempt) { + n.currentWidth += l; + n.height = Math.max(n.height, n.prevHeight + h); + } else { + n.currentWidth = l; + n.prevHeight = n.height; + n.height += h; + n.attempt = 0; + } + n.width = Math.max(n.width, n.currentWidth); + break; + case 'rl-row': + case 'row': { + n.children.push(t); + n.width += l; + n.height = Math.max(n.height, h); + const e = (0, i.measureToString)(n.height); + for (const t of n.children) t.attributes.style.height = e; + break; + } + case 'table': + case 'tb': + n.width = Math.min(s.width, Math.max(n.width, l)); + n.height += h; + n.children.push(t); + } + }; + t.checkDimensions = function checkDimensions(e, t) { + if (null === e[r.$getTemplateRoot]()[r.$extra].firstUnsplittable) return !0; + if (0 === e.w || 0 === e.h) return !0; + const a = e[r.$getSubformParent](), + i = (a[r.$extra] && a[r.$extra].attempt) || 0, + [, n, s, o] = (function getTransformedBBox(e) { + let t, + a, + r = '' === e.w ? NaN : e.w, + i = '' === e.h ? NaN : e.h, + [n, s] = [0, 0]; + switch (e.anchorType || '') { + case 'bottomCenter': + [n, s] = [r / 2, i]; + break; + case 'bottomLeft': + [n, s] = [0, i]; + break; + case 'bottomRight': + [n, s] = [r, i]; + break; + case 'middleCenter': + [n, s] = [r / 2, i / 2]; + break; + case 'middleLeft': + [n, s] = [0, i / 2]; + break; + case 'middleRight': + [n, s] = [r, i / 2]; + break; + case 'topCenter': + [n, s] = [r / 2, 0]; + break; + case 'topRight': + [n, s] = [r, 0]; + } + switch (e.rotate || 0) { + case 0: + [t, a] = [-n, -s]; + break; + case 90: + [t, a] = [-s, n]; + [r, i] = [i, -r]; + break; + case 180: + [t, a] = [n, s]; + [r, i] = [-r, -i]; + break; + case 270: + [t, a] = [s, -n]; + [r, i] = [-i, r]; + } + return [ + e.x + t + Math.min(0, r), + e.y + a + Math.min(0, i), + Math.abs(r), + Math.abs(i), + ]; + })(e); + switch (a.layout) { + case 'lr-tb': + case 'rl-tb': + return 0 === i + ? e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure + ? '' !== e.w + ? Math.round(s - t.width) <= 2 + : t.width > 2 + : !('' !== e.h && Math.round(o - t.height) > 2) && + ('' !== e.w + ? Math.round(s - t.width) <= 2 || + (0 === a[r.$extra].numberInLine && t.height > 2) + : t.width > 2) + : !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure || + (!('' !== e.h && Math.round(o - t.height) > 2) && + ('' === e.w || Math.round(s - t.width) <= 2 || !a[r.$isThereMoreWidth]()) && + t.height > 2); + case 'table': + case 'tb': + return ( + !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure || + ('' === e.h || e[r.$isSplittable]() + ? ('' === e.w || Math.round(s - t.width) <= 2 || !a[r.$isThereMoreWidth]()) && + t.height > 2 + : Math.round(o - t.height) <= 2) + ); + case 'position': + if (e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure) return !0; + if ('' === e.h || Math.round(o + n - t.height) <= 2) return !0; + return o + n > e[r.$getTemplateRoot]()[r.$extra].currentContentArea.h; + case 'rl-row': + case 'row': + return ( + !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure || + '' === e.h || + Math.round(o - t.height) <= 2 + ); + default: + return !0; + } + }; + t.flushHTML = function flushHTML(e) { + if (!e[r.$extra]) return null; + const t = { + name: 'div', + attributes: e[r.$extra].attributes, + children: e[r.$extra].children, + }; + if (e[r.$extra].failingNode) { + const a = e[r.$extra].failingNode[r.$flushHTML](); + a && + (e.layout.endsWith('-tb') + ? t.children.push(createLine(e, [a])) + : t.children.push(a)); + } + if (0 === t.children.length) return null; + return t; + }; + t.getAvailableSpace = function getAvailableSpace(e) { + const t = e[r.$extra].availableSpace, + a = e.margin ? e.margin.topInset + e.margin.bottomInset : 0, + i = e.margin ? e.margin.leftInset + e.margin.rightInset : 0; + switch (e.layout) { + case 'lr-tb': + case 'rl-tb': + return 0 === e[r.$extra].attempt + ? { + width: t.width - i - e[r.$extra].currentWidth, + height: t.height - a - e[r.$extra].prevHeight, + } + : { width: t.width - i, height: t.height - a - e[r.$extra].height }; + case 'rl-row': + case 'row': + return { + width: e[r.$extra].columnWidths + .slice(e[r.$extra].currentColumn) + .reduce((e, t) => e + t), + height: t.height - i, + }; + case 'table': + case 'tb': + return { width: t.width - i, height: t.height - a - e[r.$extra].height }; + default: + return t; + } + }; + var r = a(77), + i = a(84); + function createLine(e, t) { + return { + name: 'div', + attributes: { class: ['lr-tb' === e.layout ? 'xfaLr' : 'xfaRl'] }, + children: t, + }; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.computeBbox = function computeBbox(e, t, a) { + let i; + if ('' !== e.w && '' !== e.h) i = [e.x, e.y, e.w, e.h]; + else { + if (!a) return null; + let n = e.w; + if ('' === n) { + if (0 === e.maxW) { + const t = e[r.$getSubformParent](); + n = 'position' === t.layout && '' !== t.w ? 0 : e.minW; + } else n = Math.min(e.maxW, a.width); + t.attributes.style.width = measureToString(n); + } + let s = e.h; + if ('' === s) { + if (0 === e.maxH) { + const t = e[r.$getSubformParent](); + s = 'position' === t.layout && '' !== t.h ? 0 : e.minH; + } else s = Math.min(e.maxH, a.height); + t.attributes.style.height = measureToString(s); + } + i = [e.x, e.y, n, s]; + } + return i; + }; + t.createWrapper = function createWrapper(e, t) { + const { attributes: a } = t, + { style: i } = a, + n = { + name: 'div', + attributes: { class: ['xfaWrapper'], style: Object.create(null) }, + children: [], + }; + a.class.push('xfaWrapped'); + if (e.border) { + const { widths: a, insets: s } = e.border[r.$extra]; + let o, + c, + l = s[0], + h = s[3]; + const u = s[0] + s[2], + d = s[1] + s[3]; + switch (e.border.hand) { + case 'even': + l -= a[0] / 2; + h -= a[3] / 2; + o = `calc(100% + ${(a[1] + a[3]) / 2 - d}px)`; + c = `calc(100% + ${(a[0] + a[2]) / 2 - u}px)`; + break; + case 'left': + l -= a[0]; + h -= a[3]; + o = `calc(100% + ${a[1] + a[3] - d}px)`; + c = `calc(100% + ${a[0] + a[2] - u}px)`; + break; + case 'right': + o = d ? `calc(100% - ${d}px)` : '100%'; + c = u ? `calc(100% - ${u}px)` : '100%'; + } + const f = ['xfaBorder']; + isPrintOnly(e.border) && f.push('xfaPrintOnly'); + const g = { + name: 'div', + attributes: { + class: f, + style: { top: `${l}px`, left: `${h}px`, width: o, height: c }, + }, + children: [], + }; + for (const e of [ + 'border', + 'borderWidth', + 'borderColor', + 'borderRadius', + 'borderStyle', + ]) + if (void 0 !== i[e]) { + g.attributes.style[e] = i[e]; + delete i[e]; + } + n.children.push(g, t); + } else n.children.push(t); + for (const e of [ + 'background', + 'backgroundClip', + 'top', + 'left', + 'width', + 'height', + 'minWidth', + 'minHeight', + 'maxWidth', + 'maxHeight', + 'transform', + 'transformOrigin', + 'visibility', + ]) + if (void 0 !== i[e]) { + n.attributes.style[e] = i[e]; + delete i[e]; + } + 'absolute' === i.position + ? (n.attributes.style.position = 'absolute') + : (n.attributes.style.position = 'relative'); + delete i.position; + if (i.alignSelf) { + n.attributes.style.alignSelf = i.alignSelf; + delete i.alignSelf; + } + return n; + }; + t.fixDimensions = function fixDimensions(e) { + const t = e[r.$getSubformParent](); + if (t.layout && t.layout.includes('row')) { + const a = t[r.$extra], + i = e.colSpan; + let n; + n = + -1 === i + ? a.columnWidths.slice(a.currentColumn).reduce((e, t) => e + t, 0) + : a.columnWidths + .slice(a.currentColumn, a.currentColumn + i) + .reduce((e, t) => e + t, 0); + isNaN(n) || (e.w = n); + } + t.layout && 'position' !== t.layout && (e.x = e.y = 0); + 'table' === e.layout && + '' === e.w && + Array.isArray(e.columnWidths) && + (e.w = e.columnWidths.reduce((e, t) => e + t, 0)); + }; + t.fixTextIndent = function fixTextIndent(e) { + const t = (0, n.getMeasurement)(e.textIndent, '0px'); + if (t >= 0) return; + const a = + 'padding' + + ('left' == ('right' === e.textAlign ? 'right' : 'left') ? 'Left' : 'Right'), + r = (0, n.getMeasurement)(e[a], '0px'); + e[a] = r - t + 'px'; + }; + t.fixURL = function fixURL(e) { + const t = (0, i.createValidAbsoluteUrl)(e, null, { + addDefaultProtocol: !0, + tryConvertEncoding: !0, + }); + return t ? t.href : null; + }; + t.isPrintOnly = isPrintOnly; + t.layoutClass = function layoutClass(e) { + switch (e.layout) { + case 'position': + default: + 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'; + } + }; + t.layoutNode = function layoutNode(e, t) { + let a = null, + i = null, + n = !1; + if ((!e.w || !e.h) && e.value) { + let s = 0, + o = 0; + if (e.margin) { + s = e.margin.leftInset + e.margin.rightInset; + o = e.margin.topInset + e.margin.bottomInset; + } + let c = null, + l = null; + if (e.para) { + l = Object.create(null); + c = '' === e.para.lineHeight ? null : e.para.lineHeight; + l.top = '' === e.para.spaceAbove ? 0 : e.para.spaceAbove; + l.bottom = '' === e.para.spaceBelow ? 0 : e.para.spaceBelow; + l.left = '' === e.para.marginLeft ? 0 : e.para.marginLeft; + l.right = '' === e.para.marginRight ? 0 : e.para.marginRight; + } + let h = e.font; + if (!h) { + const t = e[r.$getTemplateRoot](); + let a = e[r.$getParent](); + for (; a && a !== t; ) { + if (a.font) { + h = a.font; + break; + } + a = a[r.$getParent](); + } + } + const u = (e.w || t.width) - s, + d = e[r.$globalData].fontFinder; + if ( + e.value.exData && + e.value.exData[r.$content] && + 'text/html' === e.value.exData.contentType + ) { + const t = layoutText(e.value.exData[r.$content], h, l, c, d, u); + i = t.width; + a = t.height; + n = t.isBroken; + } else { + const t = e.value[r.$text](); + if (t) { + const e = layoutText(t, h, l, c, d, u); + i = e.width; + a = e.height; + n = e.isBroken; + } + } + null === i || e.w || (i += s); + null === a || e.h || (a += o); + } + return { w: i, h: a, isBroken: n }; + }; + t.measureToString = measureToString; + t.setAccess = function setAccess(e, t) { + switch (e.access) { + case 'nonInteractive': + t.push('xfaNonInteractive'); + break; + case 'readOnly': + t.push('xfaReadOnly'); + break; + case 'protected': + t.push('xfaDisabled'); + } + }; + t.setFontFamily = function setFontFamily(e, t, a, r) { + if (!a) { + delete r.fontFamily; + return; + } + const i = (0, n.stripQuotes)(e.typeface); + r.fontFamily = `"${i}"`; + const o = a.find(i); + if (o) { + const { fontFamily: a } = o.regular.cssFontInfo; + a !== i && (r.fontFamily = `"${a}"`); + const n = getCurrentPara(t); + if (n && '' !== n.lineHeight) return; + if (r.lineHeight) return; + const c = (0, s.selectFont)(e, o); + c && (r.lineHeight = Math.max(1.2, c.lineHeight)); + } + }; + t.setMinMaxDimensions = function setMinMaxDimensions(e, t) { + if ('position' === e[r.$getSubformParent]().layout) { + e.minW > 0 && (t.minWidth = measureToString(e.minW)); + e.maxW > 0 && (t.maxWidth = measureToString(e.maxW)); + e.minH > 0 && (t.minHeight = measureToString(e.minH)); + e.maxH > 0 && (t.maxHeight = measureToString(e.maxH)); + } + }; + t.setPara = function setPara(e, t, a) { + if (a.attributes.class && a.attributes.class.includes('xfaRich')) { + if (t) { + '' === e.h && (t.height = 'auto'); + '' === e.w && (t.width = 'auto'); + } + const i = getCurrentPara(e); + if (i) { + const e = a.attributes.style; + e.display = 'flex'; + e.flexDirection = 'column'; + switch (i.vAlign) { + case 'top': + e.justifyContent = 'start'; + break; + case 'bottom': + e.justifyContent = 'end'; + break; + case 'middle': + e.justifyContent = 'center'; + } + const t = i[r.$toStyle](); + for (const [a, r] of Object.entries(t)) a in e || (e[a] = r); + } + } + }; + t.toStyle = function toStyle(e, ...t) { + const a = Object.create(null); + for (const n of t) { + const t = e[n]; + if (null !== t) + if (c.hasOwnProperty(n)) c[n](e, a); + else if (t instanceof r.XFAObject) { + const e = t[r.$toStyle](); + e + ? Object.assign(a, e) + : (0, i.warn)(`(DEBUG) - XFA - style for ${n} not implemented yet`); + } + } + return a; + }; + var r = a(77), + i = a(2), + n = a(78), + s = a(85), + o = a(86); + function measureToString(e) { + return 'string' == typeof e + ? '0px' + : Number.isInteger(e) + ? `${e}px` + : `${e.toFixed(2)}px`; + } + const c = { + anchorType(e, t) { + const a = e[r.$getSubformParent](); + if (a && (!a.layout || 'position' === a.layout)) { + 'transform' in t || (t.transform = ''); + switch (e.anchorType) { + case 'bottomCenter': + t.transform += 'translate(-50%, -100%)'; + break; + case 'bottomLeft': + t.transform += 'translate(0,-100%)'; + break; + case 'bottomRight': + t.transform += 'translate(-100%,-100%)'; + break; + case 'middleCenter': + t.transform += 'translate(-50%,-50%)'; + break; + case 'middleLeft': + t.transform += 'translate(0,-50%)'; + break; + case 'middleRight': + t.transform += 'translate(-100%,-50%)'; + break; + case 'topCenter': + t.transform += 'translate(-50%,0)'; + break; + case 'topRight': + t.transform += 'translate(-100%,0)'; + } + } + }, + dimensions(e, t) { + const a = e[r.$getSubformParent](); + let i = e.w; + const n = e.h; + if (a.layout && a.layout.includes('row')) { + const t = a[r.$extra], + n = e.colSpan; + let s; + if (-1 === n) { + s = t.columnWidths.slice(t.currentColumn).reduce((e, t) => e + t, 0); + t.currentColumn = 0; + } else { + s = t.columnWidths + .slice(t.currentColumn, t.currentColumn + n) + .reduce((e, t) => e + t, 0); + t.currentColumn = (t.currentColumn + e.colSpan) % t.columnWidths.length; + } + isNaN(s) || (i = e.w = s); + } + t.width = '' !== i ? measureToString(i) : 'auto'; + t.height = '' !== n ? measureToString(n) : 'auto'; + }, + position(e, t) { + const a = e[r.$getSubformParent](); + if (!a || !a.layout || 'position' === a.layout) { + t.position = 'absolute'; + t.left = measureToString(e.x); + t.top = measureToString(e.y); + } + }, + rotate(e, t) { + if (e.rotate) { + 'transform' in t || (t.transform = ''); + t.transform += `rotate(-${e.rotate}deg)`; + t.transformOrigin = 'top left'; + } + }, + presence(e, t) { + switch (e.presence) { + case 'invisible': + t.visibility = 'hidden'; + break; + case 'hidden': + case 'inactive': + t.display = 'none'; + } + }, + hAlign(e, t) { + if ('para' === e[r.$nodeName]) + switch (e.hAlign) { + case 'justifyAll': + t.textAlign = 'justify-all'; + break; + case 'radix': + t.textAlign = 'left'; + break; + default: + t.textAlign = e.hAlign; + } + else + switch (e.hAlign) { + case 'left': + t.alignSelf = 'start'; + break; + case 'center': + t.alignSelf = 'center'; + break; + case 'right': + t.alignSelf = 'end'; + } + }, + margin(e, t) { + e.margin && (t.margin = e.margin[r.$toStyle]().margin); + }, + }; + function layoutText(e, t, a, i, n, s) { + const c = new o.TextMeasure(t, a, i, n); + 'string' == typeof e ? c.addString(e) : e[r.$pushGlyphs](c); + return c.compute(s); + } + function isPrintOnly(e) { + return ( + e.relevant.length > 0 && !e.relevant[0].excluded && 'print' === e.relevant[0].viewname + ); + } + function getCurrentPara(e) { + const t = e[r.$getTemplateRoot]()[r.$extra].paraStack; + return t.length ? t.at(-1) : null; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FontFinder = void 0; + t.getMetrics = function getMetrics(e, t = !1) { + let a = null; + if (e) { + const t = (0, i.stripQuotes)(e.typeface), + n = e[r.$globalData].fontFinder.find(t); + a = selectFont(e, n); + } + if (!a) return { lineHeight: 12, lineGap: 2, lineNoGap: 10 }; + const n = e.size || 10, + s = a.lineHeight ? Math.max(t ? 0 : 1.2, a.lineHeight) : 1.2, + o = void 0 === a.lineGap ? 0.2 : a.lineGap; + return { lineHeight: s * n, lineGap: o * n, lineNoGap: Math.max(1, s - o) * n }; + }; + t.selectFont = selectFont; + var r = a(77), + i = a(78), + n = a(2); + t.FontFinder = class FontFinder { + constructor(e) { + this.fonts = new Map(); + this.cache = new Map(); + this.warned = new Set(); + this.defaultFont = null; + this.add(e); + } + add(e, t = null) { + for (const t of e) this.addPdfFont(t); + for (const e of this.fonts.values()) + e.regular || (e.regular = e.italic || e.bold || e.bolditalic); + if (!t || 0 === t.size) return; + const a = this.fonts.get('PdfJS-Fallback-PdfJS-XFA'); + for (const e of t) this.fonts.set(e, a); + } + addPdfFont(e) { + const t = e.cssFontInfo, + a = t.fontFamily; + let r = this.fonts.get(a); + if (!r) { + r = Object.create(null); + this.fonts.set(a, r); + this.defaultFont || (this.defaultFont = r); + } + let i = ''; + const n = parseFloat(t.fontWeight); + 0 !== parseFloat(t.italicAngle) + ? (i = n >= 700 ? 'bolditalic' : 'italic') + : n >= 700 && (i = 'bold'); + if (!i) { + (e.name.includes('Bold') || (e.psName && e.psName.includes('Bold'))) && + (i = 'bold'); + (e.name.includes('Italic') || + e.name.endsWith('It') || + (e.psName && (e.psName.includes('Italic') || e.psName.endsWith('It')))) && + (i += 'italic'); + } + i || (i = 'regular'); + r[i] = e; + } + getDefault() { + return this.defaultFont; + } + find(e, t = !0) { + let a = this.fonts.get(e) || this.cache.get(e); + if (a) return a; + const r = /,|-|_| |bolditalic|bold|italic|regular|it/gi; + let i = e.replaceAll(r, ''); + a = this.fonts.get(i); + if (a) { + this.cache.set(e, a); + return a; + } + i = i.toLowerCase(); + const s = []; + for (const [e, t] of this.fonts.entries()) + e.replaceAll(r, '').toLowerCase().startsWith(i) && s.push(t); + if (0 === s.length) + for (const [, e] of this.fonts.entries()) + e.regular.name && + e.regular.name.replaceAll(r, '').toLowerCase().startsWith(i) && + s.push(e); + if (0 === s.length) { + i = i.replaceAll(/psmt|mt/gi, ''); + for (const [e, t] of this.fonts.entries()) + e.replaceAll(r, '').toLowerCase().startsWith(i) && s.push(t); + } + if (0 === s.length) + for (const e of this.fonts.values()) + e.regular.name && + e.regular.name.replaceAll(r, '').toLowerCase().startsWith(i) && + s.push(e); + if (s.length >= 1) { + 1 !== s.length && + t && + (0, n.warn)(`XFA - Too many choices to guess the correct font: ${e}`); + this.cache.set(e, s[0]); + return s[0]; + } + if (t && !this.warned.has(e)) { + this.warned.add(e); + (0, n.warn)(`XFA - Cannot find the font: ${e}`); + } + return null; + } + }; + function selectFont(e, t) { + return 'italic' === e.posture + ? 'bold' === e.weight + ? t.bolditalic + : t.italic + : 'bold' === e.weight + ? t.bold + : t.regular; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.TextMeasure = void 0; + var r = a(85); + class FontInfo { + constructor(e, t, a, i) { + this.lineHeight = a; + this.paraMargin = t || { top: 0, bottom: 0, left: 0, right: 0 }; + if (!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 n = i.find(e.typeface); + if (n) { + this.pdfFont = (0, r.selectFont)(e, n); + this.pdfFont || ([this.pdfFont, this.xfaFont] = this.defaultFont(i)); + } else [this.pdfFont, this.xfaFont] = this.defaultFont(i); + } + defaultFont(e) { + const t = + e.find('Helvetica', !1) || + e.find('Myriad Pro', !1) || + e.find('Arial', !1) || + e.getDefault(); + if (t && t.regular) { + const e = t.regular; + return [ + e, + { + typeface: e.cssFontInfo.fontFamily, + posture: 'normal', + weight: 'normal', + size: 10, + letterSpacing: 0, + }, + ]; + } + return [ + null, + { + typeface: 'Courier', + posture: 'normal', + weight: 'normal', + size: 10, + letterSpacing: 0, + }, + ]; + } + } + class FontSelector { + constructor(e, t, a, r) { + this.fontFinder = r; + this.stack = [new FontInfo(e, t, a, r)]; + } + pushData(e, t, a) { + const r = this.stack.at(-1); + for (const t of ['typeface', 'posture', 'weight', 'size', 'letterSpacing']) + e[t] || (e[t] = r.xfaFont[t]); + for (const e of ['top', 'bottom', 'left', 'right']) + isNaN(t[e]) && (t[e] = r.paraMargin[e]); + const i = new FontInfo(e, t, a || r.lineHeight, this.fontFinder); + i.pdfFont || (i.pdfFont = r.pdfFont); + this.stack.push(i); + } + popFont() { + this.stack.pop(); + } + topFont() { + return this.stack.at(-1); + } + } + t.TextMeasure = class TextMeasure { + constructor(e, t, a, r) { + this.glyphs = []; + this.fontSelector = new FontSelector(e, t, a, r); + this.extraHeight = 0; + } + pushData(e, t, a) { + this.fontSelector.pushData(e, t, a); + } + 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 t = this.fontSelector.topFont(), + a = t.xfaFont.size; + if (t.pdfFont) { + const r = t.xfaFont.letterSpacing, + i = t.pdfFont, + n = i.lineHeight || 1.2, + s = t.lineHeight || Math.max(1.2, n) * a, + o = n - (void 0 === i.lineGap ? 0.2 : i.lineGap), + c = Math.max(1, o) * a, + l = a / 1e3, + h = i.defaultWidth || i.charsToGlyphs(' ')[0].width; + for (const t of e.split(/[\u2029\n]/)) { + const e = i.encodeString(t).join(''), + a = i.charsToGlyphs(e); + for (const e of a) { + const t = e.width || h; + this.glyphs.push([t * l + r, s, c, e.unicode, !1]); + } + this.glyphs.push([0, 0, 0, '\n', !0]); + } + this.glyphs.pop(); + } else { + for (const t of e.split(/[\u2029\n]/)) { + for (const e of t.split('')) this.glyphs.push([a, 1.2 * a, a, e, !1]); + this.glyphs.push([0, 0, 0, '\n', !0]); + } + this.glyphs.pop(); + } + } + compute(e) { + let t = -1, + a = 0, + r = 0, + i = 0, + n = 0, + s = 0, + o = !1, + c = !0; + for (let l = 0, h = this.glyphs.length; l < h; l++) { + const [h, u, d, f, g] = this.glyphs[l], + p = ' ' === f, + m = c ? d : u; + if (g) { + r = Math.max(r, n); + n = 0; + i += s; + s = m; + t = -1; + a = 0; + c = !1; + } else if (p) + if (n + h > e) { + r = Math.max(r, n); + n = 0; + i += s; + s = m; + t = -1; + a = 0; + o = !0; + c = !1; + } else { + s = Math.max(m, s); + a = n; + n += h; + t = l; + } + else if (n + h > e) { + i += s; + s = m; + if (-1 !== t) { + l = t; + r = Math.max(r, a); + n = 0; + t = -1; + a = 0; + } else { + r = Math.max(r, n); + n = h; + } + o = !0; + c = !1; + } else { + n += h; + s = Math.max(m, s); + } + } + r = Math.max(r, n); + i += s + this.extraHeight; + return { width: 1.02 * r, height: i, isBroken: o }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.DataHandler = void 0; + var r = a(77); + t.DataHandler = class DataHandler { + constructor(e, t) { + this.data = t; + this.dataset = e.datasets || null; + } + serialize(e) { + const t = [[-1, this.data[r.$getChildren]()]]; + for (; t.length > 0; ) { + const a = t.at(-1), + [i, n] = a; + if (i + 1 === n.length) { + t.pop(); + continue; + } + const s = n[++a[0]], + o = e.get(s[r.$uid]); + if (o) s[r.$setValue](o); + else { + const t = s[r.$getAttributes](); + for (const a of t.values()) { + const t = e.get(a[r.$uid]); + if (t) { + a[r.$setValue](t); + break; + } + } + } + const c = s[r.$getChildren](); + c.length > 0 && t.push([-1, c]); + } + const a = ['']; + if (this.dataset) + for (const e of this.dataset[r.$getChildren]()) + 'data' !== e[r.$nodeName] && e[r.$toString](a); + this.data[r.$toString](a); + a.push(''); + return a.join(''); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XFAParser = void 0; + var r = a(77), + i = a(66), + n = a(89), + s = a(2); + class XFAParser extends i.XMLParserBase { + constructor(e = null, t = !1) { + super(); + this._builder = new n.Builder(e); + this._stack = []; + this._globalData = { usedTypefaces: new Set() }; + this._ids = new Map(); + this._current = this._builder.buildRoot(this._ids); + this._errorCode = i.XMLParserErrorCode.NoError; + this._whiteRegex = /^\s+$/; + this._nbsps = /\xa0+/g; + this._richText = t; + } + parse(e) { + this.parseXml(e); + if (this._errorCode === i.XMLParserErrorCode.NoError) { + this._current[r.$finalize](); + return this._current.element; + } + } + onText(e) { + e = e.replace(this._nbsps, (e) => e.slice(1) + ' '); + this._richText || this._current[r.$acceptWhitespace]() + ? this._current[r.$onText](e, this._richText) + : this._whiteRegex.test(e) || this._current[r.$onText](e.trim()); + } + onCdata(e) { + this._current[r.$onText](e); + } + _mkAttributes(e, t) { + let a = null, + i = null; + const n = Object.create({}); + for (const { name: o, value: c } of e) + if ('xmlns' === o) + a ? (0, s.warn)(`XFA - multiple namespace definition in <${t}>`) : (a = c); + else if (o.startsWith('xmlns:')) { + const e = o.substring(6); + i || (i = []); + i.push({ prefix: e, value: c }); + } else { + const e = o.indexOf(':'); + if (-1 === e) n[o] = c; + else { + let t = n[r.$nsAttributes]; + t || (t = n[r.$nsAttributes] = Object.create(null)); + const [a, i] = [o.slice(0, e), o.slice(e + 1)]; + (t[a] ||= Object.create(null))[i] = c; + } + } + return [a, i, n]; + } + _getNameAndPrefix(e, t) { + const a = e.indexOf(':'); + return -1 === a ? [e, null] : [e.substring(a + 1), t ? '' : e.substring(0, a)]; + } + onBeginElement(e, t, a) { + const [i, n, s] = this._mkAttributes(t, e), + [o, c] = this._getNameAndPrefix(e, this._builder.isNsAgnostic()), + l = this._builder.build({ + nsPrefix: c, + name: o, + attributes: s, + namespace: i, + prefixes: n, + }); + l[r.$globalData] = this._globalData; + if (a) { + l[r.$finalize](); + this._current[r.$onChild](l) && l[r.$setId](this._ids); + l[r.$clean](this._builder); + } else { + this._stack.push(this._current); + this._current = l; + } + } + onEndElement(e) { + const t = this._current; + if (t[r.$isCDATAXml]() && 'string' == typeof t[r.$content]) { + const e = new XFAParser(); + e._globalData = this._globalData; + const a = e.parse(t[r.$content]); + t[r.$content] = null; + t[r.$onChild](a); + } + t[r.$finalize](); + this._current = this._stack.pop(); + this._current[r.$onChild](t) && t[r.$setId](this._ids); + t[r.$clean](this._builder); + } + onError(e) { + this._errorCode = e; + } + } + t.XFAParser = XFAParser; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Builder = void 0; + var r = a(79), + i = a(77), + n = a(90), + s = a(82), + o = a(99), + c = a(2); + class Root extends i.XFAObject { + constructor(e) { + super(-1, 'root', Object.create(null)); + this.element = null; + this[i.$ids] = e; + } + [i.$onChild](e) { + this.element = e; + return !0; + } + [i.$finalize]() { + super[i.$finalize](); + if (this.element.template instanceof s.Template) { + this[i.$ids].set(i.$root, this.element); + this.element.template[i.$resolvePrototypes](this[i.$ids]); + this.element.template[i.$ids] = this[i.$ids]; + } + } + } + class Empty extends i.XFAObject { + constructor() { + super(-1, '', Object.create(null)); + } + [i.$onChild](e) { + return !1; + } + } + t.Builder = class Builder { + constructor(e = null) { + this._namespaceStack = []; + this._nsAgnosticLevel = 0; + this._namespacePrefixes = new Map(); + this._namespaces = new Map(); + this._nextNsId = Math.max(...Object.values(r.NamespaceIds).map(({ id: e }) => e)); + this._currentNamespace = e || new o.UnknownNamespace(++this._nextNsId); + } + buildRoot(e) { + return new Root(e); + } + build({ nsPrefix: e, name: t, attributes: a, namespace: s, prefixes: o }) { + const c = null !== s; + if (c) { + this._namespaceStack.push(this._currentNamespace); + this._currentNamespace = this._searchNamespace(s); + } + o && this._addNamespacePrefix(o); + if (a.hasOwnProperty(i.$nsAttributes)) { + const e = n.NamespaceSetUp.datasets, + t = a[i.$nsAttributes]; + let r = null; + for (const [a, i] of Object.entries(t)) { + if (this._getNamespaceToUse(a) === e) { + r = { xfa: i }; + break; + } + } + r ? (a[i.$nsAttributes] = r) : delete a[i.$nsAttributes]; + } + const l = this._getNamespaceToUse(e), + h = (l && l[r.$buildXFAObject](t, a)) || new Empty(); + h[i.$isNsAgnostic]() && this._nsAgnosticLevel++; + (c || o || h[i.$isNsAgnostic]()) && + (h[i.$cleanup] = { + hasNamespace: c, + prefixes: o, + nsAgnostic: h[i.$isNsAgnostic](), + }); + return h; + } + isNsAgnostic() { + return this._nsAgnosticLevel > 0; + } + _searchNamespace(e) { + let t = this._namespaces.get(e); + if (t) return t; + for (const [a, { check: i }] of Object.entries(r.NamespaceIds)) + if (i(e)) { + t = n.NamespaceSetUp[a]; + if (t) { + this._namespaces.set(e, t); + return t; + } + break; + } + t = new o.UnknownNamespace(++this._nextNsId); + this._namespaces.set(e, t); + return t; + } + _addNamespacePrefix(e) { + for (const { prefix: t, value: a } of e) { + const e = this._searchNamespace(a); + let r = this._namespacePrefixes.get(t); + if (!r) { + r = []; + this._namespacePrefixes.set(t, r); + } + r.push(e); + } + } + _getNamespaceToUse(e) { + if (!e) return this._currentNamespace; + const t = this._namespacePrefixes.get(e); + if (t && t.length > 0) return t.at(-1); + (0, c.warn)(`Unknown namespace prefix: ${e}.`); + return null; + } + clean(e) { + const { hasNamespace: t, prefixes: a, nsAgnostic: r } = e; + t && (this._currentNamespace = this._namespaceStack.pop()); + a && + a.forEach(({ prefix: e }) => { + this._namespacePrefixes.get(e).pop(); + }); + r && this._nsAgnosticLevel--; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.NamespaceSetUp = void 0; + var r = a(91), + i = a(92), + n = a(93), + s = a(94), + o = a(95), + c = a(96), + l = a(82), + h = a(97), + u = a(98); + const d = { + config: r.ConfigNamespace, + connection: i.ConnectionSetNamespace, + datasets: n.DatasetsNamespace, + localeSet: s.LocaleSetNamespace, + signature: o.SignatureNamespace, + stylesheet: c.StylesheetNamespace, + template: l.TemplateNamespace, + xdp: h.XdpNamespace, + xhtml: u.XhtmlNamespace, + }; + t.NamespaceSetUp = d; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ConfigNamespace = void 0; + var r = a(79), + i = a(77), + n = a(78), + s = a(2); + const o = r.NamespaceIds.config.id; + class Acrobat extends i.XFAObject { + constructor(e) { + super(o, 'acrobat', !0); + this.acrobat7 = null; + this.autoSave = null; + this.common = null; + this.validate = null; + this.validateApprovalSignatures = null; + this.submitUrl = new i.XFAObjectArray(); + } + } + class Acrobat7 extends i.XFAObject { + constructor(e) { + super(o, 'acrobat7', !0); + this.dynamicRender = null; + } + } + class ADBE_JSConsole extends i.OptionObject { + constructor(e) { + super(o, 'ADBE_JSConsole', ['delegate', 'Enable', 'Disable']); + } + } + class ADBE_JSDebugger extends i.OptionObject { + constructor(e) { + super(o, 'ADBE_JSDebugger', ['delegate', 'Enable', 'Disable']); + } + } + class AddSilentPrint extends i.Option01 { + constructor(e) { + super(o, 'addSilentPrint'); + } + } + class AddViewerPreferences extends i.Option01 { + constructor(e) { + super(o, 'addViewerPreferences'); + } + } + class AdjustData extends i.Option10 { + constructor(e) { + super(o, 'adjustData'); + } + } + class AdobeExtensionLevel extends i.IntegerObject { + constructor(e) { + super(o, 'adobeExtensionLevel', 0, (e) => e >= 1 && e <= 8); + } + } + class Agent extends i.XFAObject { + constructor(e) { + super(o, 'agent', !0); + this.name = e.name ? e.name.trim() : ''; + this.common = new i.XFAObjectArray(); + } + } + class AlwaysEmbed extends i.ContentObject { + constructor(e) { + super(o, 'alwaysEmbed'); + } + } + class Amd extends i.StringObject { + constructor(e) { + super(o, 'amd'); + } + } + class Area extends i.XFAObject { + constructor(e) { + super(o, 'area'); + this.level = (0, n.getInteger)({ + data: e.level, + defaultValue: 0, + validate: (e) => e >= 1 && e <= 3, + }); + this.name = (0, n.getStringOption)(e.name, [ + '', + 'barcode', + 'coreinit', + 'deviceDriver', + 'font', + 'general', + 'layout', + 'merge', + 'script', + 'signature', + 'sourceSet', + 'templateCache', + ]); + } + } + class Attributes extends i.OptionObject { + constructor(e) { + super(o, 'attributes', ['preserve', 'delegate', 'ignore']); + } + } + class AutoSave extends i.OptionObject { + constructor(e) { + super(o, 'autoSave', ['disabled', 'enabled']); + } + } + class Base extends i.StringObject { + constructor(e) { + super(o, 'base'); + } + } + class BatchOutput extends i.XFAObject { + constructor(e) { + super(o, 'batchOutput'); + this.format = (0, n.getStringOption)(e.format, [ + 'none', + 'concat', + 'zip', + 'zipCompress', + ]); + } + } + class BehaviorOverride extends i.ContentObject { + constructor(e) { + super(o, 'behaviorOverride'); + } + [i.$finalize]() { + this[i.$content] = new Map( + this[i.$content] + .trim() + .split(/\s+/) + .filter((e) => e.includes(':')) + .map((e) => e.split(':', 2)), + ); + } + } + class Cache extends i.XFAObject { + constructor(e) { + super(o, 'cache', !0); + this.templateCache = null; + } + } + class Change extends i.Option01 { + constructor(e) { + super(o, 'change'); + } + } + class Common extends i.XFAObject { + constructor(e) { + super(o, 'common', !0); + 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 i.XFAObjectArray(); + } + } + class Compress extends i.XFAObject { + constructor(e) { + super(o, 'compress'); + this.scope = (0, n.getStringOption)(e.scope, ['imageOnly', 'document']); + } + } + class CompressLogicalStructure extends i.Option01 { + constructor(e) { + super(o, 'compressLogicalStructure'); + } + } + class CompressObjectStream extends i.Option10 { + constructor(e) { + super(o, 'compressObjectStream'); + } + } + class Compression extends i.XFAObject { + constructor(e) { + super(o, 'compression', !0); + this.compressLogicalStructure = null; + this.compressObjectStream = null; + this.level = null; + this.type = null; + } + } + class Config extends i.XFAObject { + constructor(e) { + super(o, 'config', !0); + this.acrobat = null; + this.present = null; + this.trace = null; + this.agent = new i.XFAObjectArray(); + } + } + class Conformance extends i.OptionObject { + constructor(e) { + super(o, 'conformance', ['A', 'B']); + } + } + class ContentCopy extends i.Option01 { + constructor(e) { + super(o, 'contentCopy'); + } + } + class Copies extends i.IntegerObject { + constructor(e) { + super(o, 'copies', 1, (e) => e >= 1); + } + } + class Creator extends i.StringObject { + constructor(e) { + super(o, 'creator'); + } + } + class CurrentPage extends i.IntegerObject { + constructor(e) { + super(o, 'currentPage', 0, (e) => e >= 0); + } + } + class Data extends i.XFAObject { + constructor(e) { + super(o, 'data', !0); + 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 i.XFAObjectArray(); + this.transform = new i.XFAObjectArray(); + } + } + class Debug extends i.XFAObject { + constructor(e) { + super(o, 'debug', !0); + this.uri = null; + } + } + class DefaultTypeface extends i.ContentObject { + constructor(e) { + super(o, 'defaultTypeface'); + this.writingScript = (0, n.getStringOption)(e.writingScript, [ + '*', + 'Arabic', + 'Cyrillic', + 'EastEuropeanRoman', + 'Greek', + 'Hebrew', + 'Japanese', + 'Korean', + 'Roman', + 'SimplifiedChinese', + 'Thai', + 'TraditionalChinese', + 'Vietnamese', + ]); + } + } + class Destination extends i.OptionObject { + constructor(e) { + super(o, 'destination', ['pdf', 'pcl', 'ps', 'webClient', 'zpl']); + } + } + class DocumentAssembly extends i.Option01 { + constructor(e) { + super(o, 'documentAssembly'); + } + } + class Driver extends i.XFAObject { + constructor(e) { + super(o, 'driver', !0); + this.name = e.name ? e.name.trim() : ''; + this.fontInfo = null; + this.xdc = null; + } + } + class DuplexOption extends i.OptionObject { + constructor(e) { + super(o, 'duplexOption', ['simplex', 'duplexFlipLongEdge', 'duplexFlipShortEdge']); + } + } + class DynamicRender extends i.OptionObject { + constructor(e) { + super(o, 'dynamicRender', ['forbidden', 'required']); + } + } + class Embed extends i.Option01 { + constructor(e) { + super(o, 'embed'); + } + } + class Encrypt extends i.Option01 { + constructor(e) { + super(o, 'encrypt'); + } + } + class Encryption extends i.XFAObject { + constructor(e) { + super(o, 'encryption', !0); + this.encrypt = null; + this.encryptionLevel = null; + this.permissions = null; + } + } + class EncryptionLevel extends i.OptionObject { + constructor(e) { + super(o, 'encryptionLevel', ['40bit', '128bit']); + } + } + class Enforce extends i.StringObject { + constructor(e) { + super(o, 'enforce'); + } + } + class Equate extends i.XFAObject { + constructor(e) { + super(o, 'equate'); + this.force = (0, n.getInteger)({ + data: e.force, + defaultValue: 1, + validate: (e) => 0 === e, + }); + this.from = e.from || ''; + this.to = e.to || ''; + } + } + class EquateRange extends i.XFAObject { + constructor(e) { + super(o, 'equateRange'); + this.from = e.from || ''; + this.to = e.to || ''; + this._unicodeRange = e.unicodeRange || ''; + } + get unicodeRange() { + const e = [], + t = /U\+([0-9a-fA-F]+)/, + a = this._unicodeRange; + for (let r of a + .split(',') + .map((e) => e.trim()) + .filter((e) => !!e)) { + r = r.split('-', 2).map((e) => { + const a = e.match(t); + return a ? parseInt(a[1], 16) : 0; + }); + 1 === r.length && r.push(r[0]); + e.push(r); + } + return (0, s.shadow)(this, 'unicodeRange', e); + } + } + class Exclude extends i.ContentObject { + constructor(e) { + super(o, 'exclude'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content] + .trim() + .split(/\s+/) + .filter( + (e) => + e && + [ + 'calculate', + 'close', + 'enter', + 'exit', + 'initialize', + 'ready', + 'validate', + ].includes(e), + ); + } + } + class ExcludeNS extends i.StringObject { + constructor(e) { + super(o, 'excludeNS'); + } + } + class FlipLabel extends i.OptionObject { + constructor(e) { + super(o, 'flipLabel', ['usePrinterSetting', 'on', 'off']); + } + } + class FontInfo extends i.XFAObject { + constructor(e) { + super(o, 'fontInfo', !0); + this.embed = null; + this.map = null; + this.subsetBelow = null; + this.alwaysEmbed = new i.XFAObjectArray(); + this.defaultTypeface = new i.XFAObjectArray(); + this.neverEmbed = new i.XFAObjectArray(); + } + } + class FormFieldFilling extends i.Option01 { + constructor(e) { + super(o, 'formFieldFilling'); + } + } + class GroupParent extends i.StringObject { + constructor(e) { + super(o, 'groupParent'); + } + } + class IfEmpty extends i.OptionObject { + constructor(e) { + super(o, 'ifEmpty', ['dataValue', 'dataGroup', 'ignore', 'remove']); + } + } + class IncludeXDPContent extends i.StringObject { + constructor(e) { + super(o, 'includeXDPContent'); + } + } + class IncrementalLoad extends i.OptionObject { + constructor(e) { + super(o, 'incrementalLoad', ['none', 'forwardOnly']); + } + } + class IncrementalMerge extends i.Option01 { + constructor(e) { + super(o, 'incrementalMerge'); + } + } + class Interactive extends i.Option01 { + constructor(e) { + super(o, 'interactive'); + } + } + class Jog extends i.OptionObject { + constructor(e) { + super(o, 'jog', ['usePrinterSetting', 'none', 'pageSet']); + } + } + class LabelPrinter extends i.XFAObject { + constructor(e) { + super(o, 'labelPrinter', !0); + this.name = (0, n.getStringOption)(e.name, ['zpl', 'dpl', 'ipl', 'tcpl']); + this.batchOutput = null; + this.flipLabel = null; + this.fontInfo = null; + this.xdc = null; + } + } + class Layout extends i.OptionObject { + constructor(e) { + super(o, 'layout', ['paginate', 'panel']); + } + } + class Level extends i.IntegerObject { + constructor(e) { + super(o, 'level', 0, (e) => e > 0); + } + } + class Linearized extends i.Option01 { + constructor(e) { + super(o, 'linearized'); + } + } + class Locale extends i.StringObject { + constructor(e) { + super(o, 'locale'); + } + } + class LocaleSet extends i.StringObject { + constructor(e) { + super(o, 'localeSet'); + } + } + class Log extends i.XFAObject { + constructor(e) { + super(o, 'log', !0); + this.mode = null; + this.threshold = null; + this.to = null; + this.uri = null; + } + } + class MapElement extends i.XFAObject { + constructor(e) { + super(o, 'map', !0); + this.equate = new i.XFAObjectArray(); + this.equateRange = new i.XFAObjectArray(); + } + } + class MediumInfo extends i.XFAObject { + constructor(e) { + super(o, 'mediumInfo', !0); + this.map = null; + } + } + class Message extends i.XFAObject { + constructor(e) { + super(o, 'message', !0); + this.msgId = null; + this.severity = null; + } + } + class Messaging extends i.XFAObject { + constructor(e) { + super(o, 'messaging', !0); + this.message = new i.XFAObjectArray(); + } + } + class Mode extends i.OptionObject { + constructor(e) { + super(o, 'mode', ['append', 'overwrite']); + } + } + class ModifyAnnots extends i.Option01 { + constructor(e) { + super(o, 'modifyAnnots'); + } + } + class MsgId extends i.IntegerObject { + constructor(e) { + super(o, 'msgId', 1, (e) => e >= 1); + } + } + class NameAttr extends i.StringObject { + constructor(e) { + super(o, 'nameAttr'); + } + } + class NeverEmbed extends i.ContentObject { + constructor(e) { + super(o, 'neverEmbed'); + } + } + class NumberOfCopies extends i.IntegerObject { + constructor(e) { + super(o, 'numberOfCopies', null, (e) => e >= 2 && e <= 5); + } + } + class OpenAction extends i.XFAObject { + constructor(e) { + super(o, 'openAction', !0); + this.destination = null; + } + } + class Output extends i.XFAObject { + constructor(e) { + super(o, 'output', !0); + this.to = null; + this.type = null; + this.uri = null; + } + } + class OutputBin extends i.StringObject { + constructor(e) { + super(o, 'outputBin'); + } + } + class OutputXSL extends i.XFAObject { + constructor(e) { + super(o, 'outputXSL', !0); + this.uri = null; + } + } + class Overprint extends i.OptionObject { + constructor(e) { + super(o, 'overprint', ['none', 'both', 'draw', 'field']); + } + } + class Packets extends i.StringObject { + constructor(e) { + super(o, 'packets'); + } + [i.$finalize]() { + '*' !== this[i.$content] && + (this[i.$content] = this[i.$content] + .trim() + .split(/\s+/) + .filter((e) => ['config', 'datasets', 'template', 'xfdf', 'xslt'].includes(e))); + } + } + class PageOffset extends i.XFAObject { + constructor(e) { + super(o, 'pageOffset'); + this.x = (0, n.getInteger)({ + data: e.x, + defaultValue: 'useXDCSetting', + validate: (e) => !0, + }); + this.y = (0, n.getInteger)({ + data: e.y, + defaultValue: 'useXDCSetting', + validate: (e) => !0, + }); + } + } + class PageRange extends i.StringObject { + constructor(e) { + super(o, 'pageRange'); + } + [i.$finalize]() { + const e = this[i.$content] + .trim() + .split(/\s+/) + .map((e) => parseInt(e, 10)), + t = []; + for (let a = 0, r = e.length; a < r; a += 2) t.push(e.slice(a, a + 2)); + this[i.$content] = t; + } + } + class Pagination extends i.OptionObject { + constructor(e) { + super(o, 'pagination', ['simplex', 'duplexShortEdge', 'duplexLongEdge']); + } + } + class PaginationOverride extends i.OptionObject { + constructor(e) { + super(o, 'paginationOverride', [ + 'none', + 'forceDuplex', + 'forceDuplexLongEdge', + 'forceDuplexShortEdge', + 'forceSimplex', + ]); + } + } + class Part extends i.IntegerObject { + constructor(e) { + super(o, 'part', 1, (e) => !1); + } + } + class Pcl extends i.XFAObject { + constructor(e) { + super(o, 'pcl', !0); + 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; + } + } + class Pdf extends i.XFAObject { + constructor(e) { + super(o, 'pdf', !0); + 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; + } + } + class Pdfa extends i.XFAObject { + constructor(e) { + super(o, 'pdfa', !0); + this.amd = null; + this.conformance = null; + this.includeXDPContent = null; + this.part = null; + } + } + class Permissions extends i.XFAObject { + constructor(e) { + super(o, 'permissions', !0); + 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; + } + } + class PickTrayByPDFSize extends i.Option01 { + constructor(e) { + super(o, 'pickTrayByPDFSize'); + } + } + class Picture extends i.StringObject { + constructor(e) { + super(o, 'picture'); + } + } + class PlaintextMetadata extends i.Option01 { + constructor(e) { + super(o, 'plaintextMetadata'); + } + } + class Presence extends i.OptionObject { + constructor(e) { + super(o, 'presence', [ + 'preserve', + 'dissolve', + 'dissolveStructure', + 'ignore', + 'remove', + ]); + } + } + class Present extends i.XFAObject { + constructor(e) { + super(o, 'present', !0); + 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 i.XFAObjectArray(); + this.labelPrinter = new i.XFAObjectArray(); + this.pcl = new i.XFAObjectArray(); + this.pdf = new i.XFAObjectArray(); + this.ps = new i.XFAObjectArray(); + this.submitUrl = new i.XFAObjectArray(); + this.webClient = new i.XFAObjectArray(); + this.zpl = new i.XFAObjectArray(); + } + } + class Print extends i.Option01 { + constructor(e) { + super(o, 'print'); + } + } + class PrintHighQuality extends i.Option01 { + constructor(e) { + super(o, 'printHighQuality'); + } + } + class PrintScaling extends i.OptionObject { + constructor(e) { + super(o, 'printScaling', ['appdefault', 'noScaling']); + } + } + class PrinterName extends i.StringObject { + constructor(e) { + super(o, 'printerName'); + } + } + class Producer extends i.StringObject { + constructor(e) { + super(o, 'producer'); + } + } + class Ps extends i.XFAObject { + constructor(e) { + super(o, 'ps', !0); + 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; + } + } + class Range extends i.ContentObject { + constructor(e) { + super(o, 'range'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content] + .trim() + .split(/\s*,\s*/, 2) + .map((e) => e.split('-').map((e) => parseInt(e.trim(), 10))) + .filter((e) => e.every((e) => !isNaN(e))) + .map((e) => { + 1 === e.length && e.push(e[0]); + return e; + }); + } + } + class Record extends i.ContentObject { + constructor(e) { + super(o, 'record'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content].trim(); + const e = parseInt(this[i.$content], 10); + !isNaN(e) && e >= 0 && (this[i.$content] = e); + } + } + class Relevant extends i.ContentObject { + constructor(e) { + super(o, 'relevant'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content].trim().split(/\s+/); + } + } + class Rename extends i.ContentObject { + constructor(e) { + super(o, 'rename'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content].trim(); + (this[i.$content].toLowerCase().startsWith('xml') || + new RegExp('[\\p{L}_][\\p{L}\\d._\\p{M}-]*', 'u').test(this[i.$content])) && + (0, s.warn)('XFA - Rename: invalid XFA name'); + } + } + class RenderPolicy extends i.OptionObject { + constructor(e) { + super(o, 'renderPolicy', ['server', 'client']); + } + } + class RunScripts extends i.OptionObject { + constructor(e) { + super(o, 'runScripts', ['both', 'client', 'none', 'server']); + } + } + class Script extends i.XFAObject { + constructor(e) { + super(o, 'script', !0); + this.currentPage = null; + this.exclude = null; + this.runScripts = null; + } + } + class ScriptModel extends i.OptionObject { + constructor(e) { + super(o, 'scriptModel', ['XFA', 'none']); + } + } + class Severity extends i.OptionObject { + constructor(e) { + super(o, 'severity', ['ignore', 'error', 'information', 'trace', 'warning']); + } + } + class SilentPrint extends i.XFAObject { + constructor(e) { + super(o, 'silentPrint', !0); + this.addSilentPrint = null; + this.printerName = null; + } + } + class Staple extends i.XFAObject { + constructor(e) { + super(o, 'staple'); + this.mode = (0, n.getStringOption)(e.mode, ['usePrinterSetting', 'on', 'off']); + } + } + class StartNode extends i.StringObject { + constructor(e) { + super(o, 'startNode'); + } + } + class StartPage extends i.IntegerObject { + constructor(e) { + super(o, 'startPage', 0, (e) => !0); + } + } + class SubmitFormat extends i.OptionObject { + constructor(e) { + super(o, 'submitFormat', ['html', 'delegate', 'fdf', 'xml', 'pdf']); + } + } + class SubmitUrl extends i.StringObject { + constructor(e) { + super(o, 'submitUrl'); + } + } + class SubsetBelow extends i.IntegerObject { + constructor(e) { + super(o, 'subsetBelow', 100, (e) => e >= 0 && e <= 100); + } + } + class SuppressBanner extends i.Option01 { + constructor(e) { + super(o, 'suppressBanner'); + } + } + class Tagged extends i.Option01 { + constructor(e) { + super(o, 'tagged'); + } + } + class Template extends i.XFAObject { + constructor(e) { + super(o, 'template', !0); + this.base = null; + this.relevant = null; + this.startPage = null; + this.uri = null; + this.xsl = null; + } + } + class Threshold extends i.OptionObject { + constructor(e) { + super(o, 'threshold', ['trace', 'error', 'information', 'warning']); + } + } + class To extends i.OptionObject { + constructor(e) { + super(o, 'to', ['null', 'memory', 'stderr', 'stdout', 'system', 'uri']); + } + } + class TemplateCache extends i.XFAObject { + constructor(e) { + super(o, 'templateCache'); + this.maxEntries = (0, n.getInteger)({ + data: e.maxEntries, + defaultValue: 5, + validate: (e) => e >= 0, + }); + } + } + class Trace extends i.XFAObject { + constructor(e) { + super(o, 'trace', !0); + this.area = new i.XFAObjectArray(); + } + } + class Transform extends i.XFAObject { + constructor(e) { + super(o, 'transform', !0); + this.groupParent = null; + this.ifEmpty = null; + this.nameAttr = null; + this.picture = null; + this.presence = null; + this.rename = null; + this.whitespace = null; + } + } + class Type extends i.OptionObject { + constructor(e) { + super(o, 'type', [ + 'none', + 'ascii85', + 'asciiHex', + 'ccittfax', + 'flate', + 'lzw', + 'runLength', + 'native', + 'xdp', + 'mergedXDP', + ]); + } + } + class Uri extends i.StringObject { + constructor(e) { + super(o, 'uri'); + } + } + class Validate extends i.OptionObject { + constructor(e) { + super(o, 'validate', ['preSubmit', 'prePrint', 'preExecute', 'preSave']); + } + } + class ValidateApprovalSignatures extends i.ContentObject { + constructor(e) { + super(o, 'validateApprovalSignatures'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content] + .trim() + .split(/\s+/) + .filter((e) => ['docReady', 'postSign'].includes(e)); + } + } + class ValidationMessaging extends i.OptionObject { + constructor(e) { + super(o, 'validationMessaging', [ + 'allMessagesIndividually', + 'allMessagesTogether', + 'firstMessageOnly', + 'noMessages', + ]); + } + } + class Version extends i.OptionObject { + constructor(e) { + super(o, 'version', ['1.7', '1.6', '1.5', '1.4', '1.3', '1.2']); + } + } + class VersionControl extends i.XFAObject { + constructor(e) { + super(o, 'VersionControl'); + this.outputBelow = (0, n.getStringOption)(e.outputBelow, ['warn', 'error', 'update']); + this.sourceAbove = (0, n.getStringOption)(e.sourceAbove, ['warn', 'error']); + this.sourceBelow = (0, n.getStringOption)(e.sourceBelow, ['update', 'maintain']); + } + } + class ViewerPreferences extends i.XFAObject { + constructor(e) { + super(o, 'viewerPreferences', !0); + 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; + } + } + class WebClient extends i.XFAObject { + constructor(e) { + super(o, 'webClient', !0); + this.name = e.name ? e.name.trim() : ''; + this.fontInfo = null; + this.xdc = null; + } + } + class Whitespace extends i.OptionObject { + constructor(e) { + super(o, 'whitespace', ['preserve', 'ltrim', 'normalize', 'rtrim', 'trim']); + } + } + class Window extends i.ContentObject { + constructor(e) { + super(o, 'window'); + } + [i.$finalize]() { + const e = this[i.$content] + .trim() + .split(/\s*,\s*/, 2) + .map((e) => parseInt(e, 10)); + if (e.some((e) => isNaN(e))) this[i.$content] = [0, 0]; + else { + 1 === e.length && e.push(e[0]); + this[i.$content] = e; + } + } + } + class Xdc extends i.XFAObject { + constructor(e) { + super(o, 'xdc', !0); + this.uri = new i.XFAObjectArray(); + this.xsl = new i.XFAObjectArray(); + } + } + class Xdp extends i.XFAObject { + constructor(e) { + super(o, 'xdp', !0); + this.packets = null; + } + } + class Xsl extends i.XFAObject { + constructor(e) { + super(o, 'xsl', !0); + this.debug = null; + this.uri = null; + } + } + class Zpl extends i.XFAObject { + constructor(e) { + super(o, 'zpl', !0); + this.name = e.name ? e.name.trim() : ''; + this.batchOutput = null; + this.flipLabel = null; + this.fontInfo = null; + this.xdc = null; + } + } + class ConfigNamespace { + static [r.$buildXFAObject](e, t) { + if (ConfigNamespace.hasOwnProperty(e)) return ConfigNamespace[e](t); + } + static acrobat(e) { + return new Acrobat(e); + } + static acrobat7(e) { + return new Acrobat7(e); + } + static ADBE_JSConsole(e) { + return new ADBE_JSConsole(e); + } + static ADBE_JSDebugger(e) { + return new ADBE_JSDebugger(e); + } + static addSilentPrint(e) { + return new AddSilentPrint(e); + } + static addViewerPreferences(e) { + return new AddViewerPreferences(e); + } + static adjustData(e) { + return new AdjustData(e); + } + static adobeExtensionLevel(e) { + return new AdobeExtensionLevel(e); + } + static agent(e) { + return new Agent(e); + } + static alwaysEmbed(e) { + return new AlwaysEmbed(e); + } + static amd(e) { + return new Amd(e); + } + static area(e) { + return new Area(e); + } + static attributes(e) { + return new Attributes(e); + } + static autoSave(e) { + return new AutoSave(e); + } + static base(e) { + return new Base(e); + } + static batchOutput(e) { + return new BatchOutput(e); + } + static behaviorOverride(e) { + return new BehaviorOverride(e); + } + static cache(e) { + return new Cache(e); + } + static change(e) { + return new Change(e); + } + static common(e) { + return new Common(e); + } + static compress(e) { + return new Compress(e); + } + static compressLogicalStructure(e) { + return new CompressLogicalStructure(e); + } + static compressObjectStream(e) { + return new CompressObjectStream(e); + } + static compression(e) { + return new Compression(e); + } + static config(e) { + return new Config(e); + } + static conformance(e) { + return new Conformance(e); + } + static contentCopy(e) { + return new ContentCopy(e); + } + static copies(e) { + return new Copies(e); + } + static creator(e) { + return new Creator(e); + } + static currentPage(e) { + return new CurrentPage(e); + } + static data(e) { + return new Data(e); + } + static debug(e) { + return new Debug(e); + } + static defaultTypeface(e) { + return new DefaultTypeface(e); + } + static destination(e) { + return new Destination(e); + } + static documentAssembly(e) { + return new DocumentAssembly(e); + } + static driver(e) { + return new Driver(e); + } + static duplexOption(e) { + return new DuplexOption(e); + } + static dynamicRender(e) { + return new DynamicRender(e); + } + static embed(e) { + return new Embed(e); + } + static encrypt(e) { + return new Encrypt(e); + } + static encryption(e) { + return new Encryption(e); + } + static encryptionLevel(e) { + return new EncryptionLevel(e); + } + static enforce(e) { + return new Enforce(e); + } + static equate(e) { + return new Equate(e); + } + static equateRange(e) { + return new EquateRange(e); + } + static exclude(e) { + return new Exclude(e); + } + static excludeNS(e) { + return new ExcludeNS(e); + } + static flipLabel(e) { + return new FlipLabel(e); + } + static fontInfo(e) { + return new FontInfo(e); + } + static formFieldFilling(e) { + return new FormFieldFilling(e); + } + static groupParent(e) { + return new GroupParent(e); + } + static ifEmpty(e) { + return new IfEmpty(e); + } + static includeXDPContent(e) { + return new IncludeXDPContent(e); + } + static incrementalLoad(e) { + return new IncrementalLoad(e); + } + static incrementalMerge(e) { + return new IncrementalMerge(e); + } + static interactive(e) { + return new Interactive(e); + } + static jog(e) { + return new Jog(e); + } + static labelPrinter(e) { + return new LabelPrinter(e); + } + static layout(e) { + return new Layout(e); + } + static level(e) { + return new Level(e); + } + static linearized(e) { + return new Linearized(e); + } + static locale(e) { + return new Locale(e); + } + static localeSet(e) { + return new LocaleSet(e); + } + static log(e) { + return new Log(e); + } + static map(e) { + return new MapElement(e); + } + static mediumInfo(e) { + return new MediumInfo(e); + } + static message(e) { + return new Message(e); + } + static messaging(e) { + return new Messaging(e); + } + static mode(e) { + return new Mode(e); + } + static modifyAnnots(e) { + return new ModifyAnnots(e); + } + static msgId(e) { + return new MsgId(e); + } + static nameAttr(e) { + return new NameAttr(e); + } + static neverEmbed(e) { + return new NeverEmbed(e); + } + static numberOfCopies(e) { + return new NumberOfCopies(e); + } + static openAction(e) { + return new OpenAction(e); + } + static output(e) { + return new Output(e); + } + static outputBin(e) { + return new OutputBin(e); + } + static outputXSL(e) { + return new OutputXSL(e); + } + static overprint(e) { + return new Overprint(e); + } + static packets(e) { + return new Packets(e); + } + static pageOffset(e) { + return new PageOffset(e); + } + static pageRange(e) { + return new PageRange(e); + } + static pagination(e) { + return new Pagination(e); + } + static paginationOverride(e) { + return new PaginationOverride(e); + } + static part(e) { + return new Part(e); + } + static pcl(e) { + return new Pcl(e); + } + static pdf(e) { + return new Pdf(e); + } + static pdfa(e) { + return new Pdfa(e); + } + static permissions(e) { + return new Permissions(e); + } + static pickTrayByPDFSize(e) { + return new PickTrayByPDFSize(e); + } + static picture(e) { + return new Picture(e); + } + static plaintextMetadata(e) { + return new PlaintextMetadata(e); + } + static presence(e) { + return new Presence(e); + } + static present(e) { + return new Present(e); + } + static print(e) { + return new Print(e); + } + static printHighQuality(e) { + return new PrintHighQuality(e); + } + static printScaling(e) { + return new PrintScaling(e); + } + static printerName(e) { + return new PrinterName(e); + } + static producer(e) { + return new Producer(e); + } + static ps(e) { + return new Ps(e); + } + static range(e) { + return new Range(e); + } + static record(e) { + return new Record(e); + } + static relevant(e) { + return new Relevant(e); + } + static rename(e) { + return new Rename(e); + } + static renderPolicy(e) { + return new RenderPolicy(e); + } + static runScripts(e) { + return new RunScripts(e); + } + static script(e) { + return new Script(e); + } + static scriptModel(e) { + return new ScriptModel(e); + } + static severity(e) { + return new Severity(e); + } + static silentPrint(e) { + return new SilentPrint(e); + } + static staple(e) { + return new Staple(e); + } + static startNode(e) { + return new StartNode(e); + } + static startPage(e) { + return new StartPage(e); + } + static submitFormat(e) { + return new SubmitFormat(e); + } + static submitUrl(e) { + return new SubmitUrl(e); + } + static subsetBelow(e) { + return new SubsetBelow(e); + } + static suppressBanner(e) { + return new SuppressBanner(e); + } + static tagged(e) { + return new Tagged(e); + } + static template(e) { + return new Template(e); + } + static templateCache(e) { + return new TemplateCache(e); + } + static threshold(e) { + return new Threshold(e); + } + static to(e) { + return new To(e); + } + static trace(e) { + return new Trace(e); + } + static transform(e) { + return new Transform(e); + } + static type(e) { + return new Type(e); + } + static uri(e) { + return new Uri(e); + } + static validate(e) { + return new Validate(e); + } + static validateApprovalSignatures(e) { + return new ValidateApprovalSignatures(e); + } + static validationMessaging(e) { + return new ValidationMessaging(e); + } + static version(e) { + return new Version(e); + } + static versionControl(e) { + return new VersionControl(e); + } + static viewerPreferences(e) { + return new ViewerPreferences(e); + } + static webClient(e) { + return new WebClient(e); + } + static whitespace(e) { + return new Whitespace(e); + } + static window(e) { + return new Window(e); + } + static xdc(e) { + return new Xdc(e); + } + static xdp(e) { + return new Xdp(e); + } + static xsl(e) { + return new Xsl(e); + } + static zpl(e) { + return new Zpl(e); + } + } + t.ConfigNamespace = ConfigNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ConnectionSetNamespace = void 0; + var r = a(79), + i = a(77); + const n = r.NamespaceIds.connectionSet.id; + class ConnectionSet extends i.XFAObject { + constructor(e) { + super(n, 'connectionSet', !0); + this.wsdlConnection = new i.XFAObjectArray(); + this.xmlConnection = new i.XFAObjectArray(); + this.xsdConnection = new i.XFAObjectArray(); + } + } + class EffectiveInputPolicy extends i.XFAObject { + constructor(e) { + super(n, 'effectiveInputPolicy'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class EffectiveOutputPolicy extends i.XFAObject { + constructor(e) { + super(n, 'effectiveOutputPolicy'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Operation extends i.StringObject { + constructor(e) { + super(n, '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 || ''; + } + } + class RootElement extends i.StringObject { + constructor(e) { + super(n, 'rootElement'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class SoapAction extends i.StringObject { + constructor(e) { + super(n, 'soapAction'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class SoapAddress extends i.StringObject { + constructor(e) { + super(n, 'soapAddress'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Uri extends i.StringObject { + constructor(e) { + super(n, 'uri'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class WsdlAddress extends i.StringObject { + constructor(e) { + super(n, 'wsdlAddress'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class WsdlConnection extends i.XFAObject { + constructor(e) { + super(n, 'wsdlConnection', !0); + 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; + } + } + class XmlConnection extends i.XFAObject { + constructor(e) { + super(n, 'xmlConnection', !0); + this.dataDescription = e.dataDescription || ''; + this.name = e.name || ''; + this.uri = null; + } + } + class XsdConnection extends i.XFAObject { + constructor(e) { + super(n, 'xsdConnection', !0); + this.dataDescription = e.dataDescription || ''; + this.name = e.name || ''; + this.rootElement = null; + this.uri = null; + } + } + class ConnectionSetNamespace { + static [r.$buildXFAObject](e, t) { + if (ConnectionSetNamespace.hasOwnProperty(e)) return ConnectionSetNamespace[e](t); + } + static connectionSet(e) { + return new ConnectionSet(e); + } + static effectiveInputPolicy(e) { + return new EffectiveInputPolicy(e); + } + static effectiveOutputPolicy(e) { + return new EffectiveOutputPolicy(e); + } + static operation(e) { + return new Operation(e); + } + static rootElement(e) { + return new RootElement(e); + } + static soapAction(e) { + return new SoapAction(e); + } + static soapAddress(e) { + return new SoapAddress(e); + } + static uri(e) { + return new Uri(e); + } + static wsdlAddress(e) { + return new WsdlAddress(e); + } + static wsdlConnection(e) { + return new WsdlConnection(e); + } + static xmlConnection(e) { + return new XmlConnection(e); + } + static xsdConnection(e) { + return new XsdConnection(e); + } + } + t.ConnectionSetNamespace = ConnectionSetNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.DatasetsNamespace = void 0; + var r = a(77), + i = a(79); + const n = i.NamespaceIds.datasets.id; + class Data extends r.XmlObject { + constructor(e) { + super(n, 'data', e); + } + [r.$isNsAgnostic]() { + return !0; + } + } + class Datasets extends r.XFAObject { + constructor(e) { + super(n, 'datasets', !0); + this.data = null; + this.Signature = null; + } + [r.$onChild](e) { + const t = e[r.$nodeName]; + (('data' === t && e[r.$namespaceId] === n) || + ('Signature' === t && e[r.$namespaceId] === i.NamespaceIds.signature.id)) && + (this[t] = e); + this[r.$appendChild](e); + } + } + class DatasetsNamespace { + static [i.$buildXFAObject](e, t) { + if (DatasetsNamespace.hasOwnProperty(e)) return DatasetsNamespace[e](t); + } + static datasets(e) { + return new Datasets(e); + } + static data(e) { + return new Data(e); + } + } + t.DatasetsNamespace = DatasetsNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.LocaleSetNamespace = void 0; + var r = a(79), + i = a(77), + n = a(78); + const s = r.NamespaceIds.localeSet.id; + class CalendarSymbols extends i.XFAObject { + constructor(e) { + super(s, 'calendarSymbols', !0); + this.name = 'gregorian'; + this.dayNames = new i.XFAObjectArray(2); + this.eraNames = null; + this.meridiemNames = null; + this.monthNames = new i.XFAObjectArray(2); + } + } + class CurrencySymbol extends i.StringObject { + constructor(e) { + super(s, 'currencySymbol'); + this.name = (0, n.getStringOption)(e.name, ['symbol', 'isoname', 'decimal']); + } + } + class CurrencySymbols extends i.XFAObject { + constructor(e) { + super(s, 'currencySymbols', !0); + this.currencySymbol = new i.XFAObjectArray(3); + } + } + class DatePattern extends i.StringObject { + constructor(e) { + super(s, 'datePattern'); + this.name = (0, n.getStringOption)(e.name, ['full', 'long', 'med', 'short']); + } + } + class DatePatterns extends i.XFAObject { + constructor(e) { + super(s, 'datePatterns', !0); + this.datePattern = new i.XFAObjectArray(4); + } + } + class DateTimeSymbols extends i.ContentObject { + constructor(e) { + super(s, 'dateTimeSymbols'); + } + } + class Day extends i.StringObject { + constructor(e) { + super(s, 'day'); + } + } + class DayNames extends i.XFAObject { + constructor(e) { + super(s, 'dayNames', !0); + this.abbr = (0, n.getInteger)({ + data: e.abbr, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.day = new i.XFAObjectArray(7); + } + } + class Era extends i.StringObject { + constructor(e) { + super(s, 'era'); + } + } + class EraNames extends i.XFAObject { + constructor(e) { + super(s, 'eraNames', !0); + this.era = new i.XFAObjectArray(2); + } + } + class Locale extends i.XFAObject { + constructor(e) { + super(s, 'locale', !0); + 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; + } + } + class LocaleSet extends i.XFAObject { + constructor(e) { + super(s, 'localeSet', !0); + this.locale = new i.XFAObjectArray(); + } + } + class Meridiem extends i.StringObject { + constructor(e) { + super(s, 'meridiem'); + } + } + class MeridiemNames extends i.XFAObject { + constructor(e) { + super(s, 'meridiemNames', !0); + this.meridiem = new i.XFAObjectArray(2); + } + } + class Month extends i.StringObject { + constructor(e) { + super(s, 'month'); + } + } + class MonthNames extends i.XFAObject { + constructor(e) { + super(s, 'monthNames', !0); + this.abbr = (0, n.getInteger)({ + data: e.abbr, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.month = new i.XFAObjectArray(12); + } + } + class NumberPattern extends i.StringObject { + constructor(e) { + super(s, 'numberPattern'); + this.name = (0, n.getStringOption)(e.name, ['full', 'long', 'med', 'short']); + } + } + class NumberPatterns extends i.XFAObject { + constructor(e) { + super(s, 'numberPatterns', !0); + this.numberPattern = new i.XFAObjectArray(4); + } + } + class NumberSymbol extends i.StringObject { + constructor(e) { + super(s, 'numberSymbol'); + this.name = (0, n.getStringOption)(e.name, [ + 'decimal', + 'grouping', + 'percent', + 'minus', + 'zero', + ]); + } + } + class NumberSymbols extends i.XFAObject { + constructor(e) { + super(s, 'numberSymbols', !0); + this.numberSymbol = new i.XFAObjectArray(5); + } + } + class TimePattern extends i.StringObject { + constructor(e) { + super(s, 'timePattern'); + this.name = (0, n.getStringOption)(e.name, ['full', 'long', 'med', 'short']); + } + } + class TimePatterns extends i.XFAObject { + constructor(e) { + super(s, 'timePatterns', !0); + this.timePattern = new i.XFAObjectArray(4); + } + } + class TypeFace extends i.XFAObject { + constructor(e) { + super(s, 'typeFace', !0); + this.name = '' | e.name; + } + } + class TypeFaces extends i.XFAObject { + constructor(e) { + super(s, 'typeFaces', !0); + this.typeFace = new i.XFAObjectArray(); + } + } + class LocaleSetNamespace { + static [r.$buildXFAObject](e, t) { + if (LocaleSetNamespace.hasOwnProperty(e)) return LocaleSetNamespace[e](t); + } + static calendarSymbols(e) { + return new CalendarSymbols(e); + } + static currencySymbol(e) { + return new CurrencySymbol(e); + } + static currencySymbols(e) { + return new CurrencySymbols(e); + } + static datePattern(e) { + return new DatePattern(e); + } + static datePatterns(e) { + return new DatePatterns(e); + } + static dateTimeSymbols(e) { + return new DateTimeSymbols(e); + } + static day(e) { + return new Day(e); + } + static dayNames(e) { + return new DayNames(e); + } + static era(e) { + return new Era(e); + } + static eraNames(e) { + return new EraNames(e); + } + static locale(e) { + return new Locale(e); + } + static localeSet(e) { + return new LocaleSet(e); + } + static meridiem(e) { + return new Meridiem(e); + } + static meridiemNames(e) { + return new MeridiemNames(e); + } + static month(e) { + return new Month(e); + } + static monthNames(e) { + return new MonthNames(e); + } + static numberPattern(e) { + return new NumberPattern(e); + } + static numberPatterns(e) { + return new NumberPatterns(e); + } + static numberSymbol(e) { + return new NumberSymbol(e); + } + static numberSymbols(e) { + return new NumberSymbols(e); + } + static timePattern(e) { + return new TimePattern(e); + } + static timePatterns(e) { + return new TimePatterns(e); + } + static typeFace(e) { + return new TypeFace(e); + } + static typeFaces(e) { + return new TypeFaces(e); + } + } + t.LocaleSetNamespace = LocaleSetNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.SignatureNamespace = void 0; + var r = a(79), + i = a(77); + const n = r.NamespaceIds.signature.id; + class Signature extends i.XFAObject { + constructor(e) { + super(n, 'signature', !0); + } + } + class SignatureNamespace { + static [r.$buildXFAObject](e, t) { + if (SignatureNamespace.hasOwnProperty(e)) return SignatureNamespace[e](t); + } + static signature(e) { + return new Signature(e); + } + } + t.SignatureNamespace = SignatureNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.StylesheetNamespace = void 0; + var r = a(79), + i = a(77); + const n = r.NamespaceIds.stylesheet.id; + class Stylesheet extends i.XFAObject { + constructor(e) { + super(n, 'stylesheet', !0); + } + } + class StylesheetNamespace { + static [r.$buildXFAObject](e, t) { + if (StylesheetNamespace.hasOwnProperty(e)) return StylesheetNamespace[e](t); + } + static stylesheet(e) { + return new Stylesheet(e); + } + } + t.StylesheetNamespace = StylesheetNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XdpNamespace = void 0; + var r = a(79), + i = a(77); + const n = r.NamespaceIds.xdp.id; + class Xdp extends i.XFAObject { + constructor(e) { + super(n, 'xdp', !0); + this.uuid = e.uuid || ''; + this.timeStamp = e.timeStamp || ''; + this.config = null; + this.connectionSet = null; + this.datasets = null; + this.localeSet = null; + this.stylesheet = new i.XFAObjectArray(); + this.template = null; + } + [i.$onChildCheck](e) { + const t = r.NamespaceIds[e[i.$nodeName]]; + return t && e[i.$namespaceId] === t.id; + } + } + class XdpNamespace { + static [r.$buildXFAObject](e, t) { + if (XdpNamespace.hasOwnProperty(e)) return XdpNamespace[e](t); + } + static xdp(e) { + return new Xdp(e); + } + } + t.XdpNamespace = XdpNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XhtmlNamespace = void 0; + var r = a(77), + i = a(79), + n = a(84), + s = a(78); + const o = i.NamespaceIds.xhtml.id, + c = Symbol(), + l = 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', + ]), + h = new Map([ + ['page-break-after', 'breakAfter'], + ['page-break-before', 'breakBefore'], + ['page-break-inside', 'breakInside'], + ['kerning-mode', (e) => ('none' === e ? 'none' : 'normal')], + [ + 'xfa-font-horizontal-scale', + (e) => `scaleX(${Math.max(0, Math.min(parseInt(e) / 100)).toFixed(2)})`, + ], + [ + 'xfa-font-vertical-scale', + (e) => `scaleY(${Math.max(0, Math.min(parseInt(e) / 100)).toFixed(2)})`, + ], + ['xfa-spacerun', ''], + ['xfa-tab-stops', ''], + [ + 'font-size', + (e, t) => { + e = t.fontSize = (0, s.getMeasurement)(e); + return (0, n.measureToString)(0.99 * e); + }, + ], + ['letter-spacing', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['line-height', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin-bottom', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin-left', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin-right', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin-top', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['text-indent', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['font-family', (e) => e], + ['vertical-align', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ]), + u = /\s+/g, + d = /[\r\n]+/g, + f = /\r\n?/g; + function mapStyle(e, t, a) { + const i = Object.create(null); + if (!e) return i; + const o = Object.create(null); + for (const [t, a] of e.split(';').map((e) => e.split(':', 2))) { + const e = h.get(t); + if ('' === e) continue; + let r = a; + e && (r = 'string' == typeof e ? e : e(a, o)); + t.endsWith('scale') + ? i.transform + ? (i.transform = `${i[t]} ${r}`) + : (i.transform = r) + : (i[t.replaceAll(/-([a-zA-Z])/g, (e, t) => t.toUpperCase())] = r); + } + i.fontFamily && + (0, n.setFontFamily)( + { + typeface: i.fontFamily, + weight: i.fontWeight || 'normal', + posture: i.fontStyle || 'normal', + size: o.fontSize || 0, + }, + t, + t[r.$globalData].fontFinder, + i, + ); + if (a && i.verticalAlign && '0px' !== i.verticalAlign && i.fontSize) { + const e = 0.583, + t = 0.333, + a = (0, s.getMeasurement)(i.fontSize); + i.fontSize = (0, n.measureToString)(a * e); + i.verticalAlign = (0, n.measureToString)( + Math.sign((0, s.getMeasurement)(i.verticalAlign)) * a * t, + ); + } + a && i.fontSize && (i.fontSize = `calc(${i.fontSize} * var(--scale-factor))`); + (0, n.fixTextIndent)(i); + return i; + } + const g = new Set(['body', 'html']); + class XhtmlObject extends r.XmlObject { + constructor(e, t) { + super(o, t); + this[c] = !1; + this.style = e.style || ''; + } + [r.$clean](e) { + super[r.$clean](e); + this.style = (function checkStyle(e) { + return e.style + ? e.style + .trim() + .split(/\s*;\s*/) + .filter((e) => !!e) + .map((e) => e.split(/\s*:\s*/, 2)) + .filter(([t, a]) => { + 'font-family' === t && e[r.$globalData].usedTypefaces.add(a); + return l.has(t); + }) + .map((e) => e.join(':')) + .join(';') + : ''; + })(this); + } + [r.$acceptWhitespace]() { + return !g.has(this[r.$nodeName]); + } + [r.$onText](e, t = !1) { + if (t) this[c] = !0; + else { + e = e.replaceAll(d, ''); + this.style.includes('xfa-spacerun:yes') || (e = e.replaceAll(u, ' ')); + } + e && (this[r.$content] += e); + } + [r.$pushGlyphs](e, t = !0) { + const a = Object.create(null), + i = { top: NaN, bottom: NaN, left: NaN, right: NaN }; + let n = null; + for (const [e, t] of this.style.split(';').map((e) => e.split(':', 2))) + switch (e) { + case 'font-family': + a.typeface = (0, s.stripQuotes)(t); + break; + case 'font-size': + a.size = (0, s.getMeasurement)(t); + break; + case 'font-weight': + a.weight = t; + break; + case 'font-style': + a.posture = t; + break; + case 'letter-spacing': + a.letterSpacing = (0, s.getMeasurement)(t); + break; + case 'margin': + const e = t.split(/ \t/).map((e) => (0, s.getMeasurement)(e)); + switch (e.length) { + case 1: + i.top = i.bottom = i.left = i.right = e[0]; + break; + case 2: + i.top = i.bottom = e[0]; + i.left = i.right = e[1]; + break; + case 3: + i.top = e[0]; + i.bottom = e[2]; + i.left = i.right = e[1]; + break; + case 4: + i.top = e[0]; + i.left = e[1]; + i.bottom = e[2]; + i.right = e[3]; + } + break; + case 'margin-top': + i.top = (0, s.getMeasurement)(t); + break; + case 'margin-bottom': + i.bottom = (0, s.getMeasurement)(t); + break; + case 'margin-left': + i.left = (0, s.getMeasurement)(t); + break; + case 'margin-right': + i.right = (0, s.getMeasurement)(t); + break; + case 'line-height': + n = (0, s.getMeasurement)(t); + } + e.pushData(a, i, n); + if (this[r.$content]) e.addString(this[r.$content]); + else + for (const t of this[r.$getChildren]()) + '#text' !== t[r.$nodeName] ? t[r.$pushGlyphs](e) : e.addString(t[r.$content]); + t && e.popFont(); + } + [r.$toHTML](e) { + const t = []; + this[r.$extra] = { children: t }; + this[r.$childrenToHTML]({}); + if (0 === t.length && !this[r.$content]) return s.HTMLResult.EMPTY; + let a; + a = this[c] + ? this[r.$content] + ? this[r.$content].replaceAll(f, '\n') + : void 0 + : this[r.$content] || void 0; + return s.HTMLResult.success({ + name: this[r.$nodeName], + attributes: { href: this.href, style: mapStyle(this.style, this, this[c]) }, + children: t, + value: a, + }); + } + } + class A extends XhtmlObject { + constructor(e) { + super(e, 'a'); + this.href = (0, n.fixURL)(e.href) || ''; + } + } + class B extends XhtmlObject { + constructor(e) { + super(e, 'b'); + } + [r.$pushGlyphs](e) { + e.pushFont({ weight: 'bold' }); + super[r.$pushGlyphs](e); + e.popFont(); + } + } + class Body extends XhtmlObject { + constructor(e) { + super(e, 'body'); + } + [r.$toHTML](e) { + const t = super[r.$toHTML](e), + { html: a } = t; + if (!a) return s.HTMLResult.EMPTY; + a.name = 'div'; + a.attributes.class = ['xfaRich']; + return t; + } + } + class Br extends XhtmlObject { + constructor(e) { + super(e, 'br'); + } + [r.$text]() { + return '\n'; + } + [r.$pushGlyphs](e) { + e.addString('\n'); + } + [r.$toHTML](e) { + return s.HTMLResult.success({ name: 'br' }); + } + } + class Html extends XhtmlObject { + constructor(e) { + super(e, 'html'); + } + [r.$toHTML](e) { + const t = []; + this[r.$extra] = { children: t }; + this[r.$childrenToHTML]({}); + if (0 === t.length) + return s.HTMLResult.success({ + name: 'div', + attributes: { class: ['xfaRich'], style: {} }, + value: this[r.$content] || '', + }); + if (1 === t.length) { + const e = t[0]; + if (e.attributes && e.attributes.class.includes('xfaRich')) + return s.HTMLResult.success(e); + } + return s.HTMLResult.success({ + name: 'div', + attributes: { class: ['xfaRich'], style: {} }, + children: t, + }); + } + } + class I extends XhtmlObject { + constructor(e) { + super(e, 'i'); + } + [r.$pushGlyphs](e) { + e.pushFont({ posture: 'italic' }); + super[r.$pushGlyphs](e); + e.popFont(); + } + } + class Li extends XhtmlObject { + constructor(e) { + super(e, 'li'); + } + } + class Ol extends XhtmlObject { + constructor(e) { + super(e, 'ol'); + } + } + class P extends XhtmlObject { + constructor(e) { + super(e, 'p'); + } + [r.$pushGlyphs](e) { + super[r.$pushGlyphs](e, !1); + e.addString('\n'); + e.addPara(); + e.popFont(); + } + [r.$text]() { + return this[r.$getParent]()[r.$getChildren]().at(-1) === this + ? super[r.$text]() + : super[r.$text]() + '\n'; + } + } + class Span extends XhtmlObject { + constructor(e) { + super(e, 'span'); + } + } + class Sub extends XhtmlObject { + constructor(e) { + super(e, 'sub'); + } + } + class Sup extends XhtmlObject { + constructor(e) { + super(e, 'sup'); + } + } + class Ul extends XhtmlObject { + constructor(e) { + super(e, 'ul'); + } + } + class XhtmlNamespace { + static [i.$buildXFAObject](e, t) { + if (XhtmlNamespace.hasOwnProperty(e)) return XhtmlNamespace[e](t); + } + static a(e) { + return new A(e); + } + static b(e) { + return new B(e); + } + static body(e) { + return new Body(e); + } + static br(e) { + return new Br(e); + } + static html(e) { + return new Html(e); + } + static i(e) { + return new I(e); + } + static li(e) { + return new Li(e); + } + static ol(e) { + return new Ol(e); + } + static p(e) { + return new P(e); + } + static span(e) { + return new Span(e); + } + static sub(e) { + return new Sub(e); + } + static sup(e) { + return new Sup(e); + } + static ul(e) { + return new Ul(e); + } + } + t.XhtmlNamespace = XhtmlNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.UnknownNamespace = void 0; + var r = a(79), + i = a(77); + class UnknownNamespace { + constructor(e) { + this.namespaceId = e; + } + [r.$buildXFAObject](e, t) { + return new i.XmlObject(this.namespaceId, e, t); + } + } + t.UnknownNamespace = UnknownNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.DatasetReader = void 0; + var r = a(2), + i = a(3), + n = a(66); + function decodeString(e) { + try { + return (0, r.stringToUTF8String)(e); + } catch (t) { + (0, r.warn)(`UTF-8 decoding failed: "${t}".`); + return e; + } + } + class DatasetXMLParser extends n.SimpleXMLParser { + constructor(e) { + super(e); + this.node = null; + } + onEndElement(e) { + const t = super.onEndElement(e); + if (t && 'xfa:datasets' === e) { + this.node = t; + throw new Error('Aborting DatasetXMLParser.'); + } + } + } + t.DatasetReader = class DatasetReader { + constructor(e) { + if (e.datasets) + this.node = new n.SimpleXMLParser({ hasAttributes: !0 }).parseFromString( + e.datasets, + ).documentElement; + else { + const t = new DatasetXMLParser({ hasAttributes: !0 }); + try { + t.parseFromString(e['xdp:xdp']); + } catch (e) {} + this.node = t.node; + } + } + getValue(e) { + if (!this.node || !e) return ''; + const t = this.node.searchNode((0, i.parseXFAPath)(e), 0); + if (!t) return ''; + const a = t.firstChild; + return a && 'value' === a.nodeName + ? t.children.map((e) => decodeString(e.textContent)) + : decodeString(t.textContent); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XRef = void 0; + var r = a(2), + i = a(4), + n = a(16), + s = a(3), + o = a(5), + c = a(67); + t.XRef = class XRef { + constructor(e, t) { + this.stream = e; + this.pdfManager = t; + this.entries = []; + this._xrefStms = new Set(); + this._cacheMap = new Map(); + this._pendingRefs = new i.RefSet(); + this._newPersistentRefNum = null; + this._newTemporaryRefNum = null; + } + getNewPersistentRef(e) { + null === this._newPersistentRefNum && + (this._newPersistentRefNum = this.entries.length || 1); + const t = this._newPersistentRefNum++; + this._cacheMap.set(t, e); + return i.Ref.get(t, 0); + } + getNewTemporaryRef() { + null === this._newTemporaryRefNum && + (this._newTemporaryRefNum = this.entries.length || 1); + return i.Ref.get(this._newTemporaryRefNum++, 0); + } + resetNewTemporaryRef() { + this._newTemporaryRefNum = null; + } + setStartXRef(e) { + this.startXRefQueue = [e]; + } + parse(e = !1) { + let t, a, n; + if (e) { + (0, r.warn)('Indexing all PDF objects'); + t = this.indexObjects(); + } else t = this.readXRef(); + t.assignXref(this); + this.trailer = t; + try { + a = t.get('Encrypt'); + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.warn)(`XRef.parse - Invalid "Encrypt" reference: "${e}".`); + } + if (a instanceof i.Dict) { + const e = t.get('ID'), + r = e && e.length ? e[0] : ''; + a.suppressEncryption = !0; + this.encrypt = new c.CipherTransformFactory(a, r, this.pdfManager.password); + } + try { + n = t.get('Root'); + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.warn)(`XRef.parse - Invalid "Root" reference: "${e}".`); + } + if (n instanceof i.Dict) + try { + if (n.get('Pages') instanceof i.Dict) { + this.root = n; + return; + } + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.warn)(`XRef.parse - Invalid "Pages" reference: "${e}".`); + } + if (!e) throw new s.XRefParseException(); + throw new r.InvalidPDFException('Invalid Root reference.'); + } + processXRefTable(e) { + 'tableState' in this || + (this.tableState = { + entryNum: 0, + streamPos: e.lexer.stream.pos, + parserBuf1: e.buf1, + parserBuf2: e.buf2, + }); + const t = this.readXRefTable(e); + if (!(0, i.isCmd)(t, 'trailer')) + throw new r.FormatError('Invalid XRef table: could not find trailer dictionary'); + let a = e.getObj(); + a instanceof i.Dict || !a.dict || (a = a.dict); + if (!(a instanceof i.Dict)) + throw new r.FormatError('Invalid XRef table: could not parse trailer dictionary'); + delete this.tableState; + return a; + } + readXRefTable(e) { + const t = e.lexer.stream, + a = this.tableState; + t.pos = a.streamPos; + e.buf1 = a.parserBuf1; + e.buf2 = a.parserBuf2; + let n; + for (;;) { + if (!('firstEntryNum' in a) || !('entryCount' in a)) { + if ((0, i.isCmd)((n = e.getObj()), 'trailer')) break; + a.firstEntryNum = n; + a.entryCount = e.getObj(); + } + let s = a.firstEntryNum; + const o = a.entryCount; + if (!Number.isInteger(s) || !Number.isInteger(o)) + throw new r.FormatError('Invalid XRef table: wrong types in subsection header'); + for (let n = a.entryNum; n < o; n++) { + a.streamPos = t.pos; + a.entryNum = n; + a.parserBuf1 = e.buf1; + a.parserBuf2 = e.buf2; + const c = {}; + c.offset = e.getObj(); + c.gen = e.getObj(); + const l = e.getObj(); + if (l instanceof i.Cmd) + switch (l.cmd) { + case 'f': + c.free = !0; + break; + case 'n': + c.uncompressed = !0; + } + if ( + !Number.isInteger(c.offset) || + !Number.isInteger(c.gen) || + (!c.free && !c.uncompressed) + ) + throw new r.FormatError(`Invalid entry in XRef subsection: ${s}, ${o}`); + 0 === n && c.free && 1 === s && (s = 0); + this.entries[n + s] || (this.entries[n + s] = c); + } + a.entryNum = 0; + a.streamPos = t.pos; + a.parserBuf1 = e.buf1; + a.parserBuf2 = e.buf2; + delete a.firstEntryNum; + delete a.entryCount; + } + if (this.entries[0] && !this.entries[0].free) + throw new r.FormatError('Invalid XRef table: unexpected first object'); + return n; + } + processXRefStream(e) { + if (!('streamState' in this)) { + const t = e.dict, + a = t.get('W'); + let r = t.get('Index'); + r || (r = [0, t.get('Size')]); + this.streamState = { entryRanges: r, byteWidths: a, entryNum: 0, streamPos: e.pos }; + } + this.readXRefStream(e); + delete this.streamState; + return e.dict; + } + readXRefStream(e) { + const t = this.streamState; + e.pos = t.streamPos; + const [a, i, n] = t.byteWidths, + s = t.entryRanges; + for (; s.length > 0; ) { + const [o, c] = s; + if (!Number.isInteger(o) || !Number.isInteger(c)) + throw new r.FormatError(`Invalid XRef range fields: ${o}, ${c}`); + if (!Number.isInteger(a) || !Number.isInteger(i) || !Number.isInteger(n)) + throw new r.FormatError(`Invalid XRef entry fields length: ${o}, ${c}`); + for (let s = t.entryNum; s < c; ++s) { + t.entryNum = s; + t.streamPos = e.pos; + let c = 0, + l = 0, + h = 0; + for (let t = 0; t < a; ++t) { + const t = e.getByte(); + if (-1 === t) throw new r.FormatError("Invalid XRef byteWidths 'type'."); + c = (c << 8) | t; + } + 0 === a && (c = 1); + for (let t = 0; t < i; ++t) { + const t = e.getByte(); + if (-1 === t) throw new r.FormatError("Invalid XRef byteWidths 'offset'."); + l = (l << 8) | t; + } + for (let t = 0; t < n; ++t) { + const t = e.getByte(); + if (-1 === t) throw new r.FormatError("Invalid XRef byteWidths 'generation'."); + h = (h << 8) | t; + } + const u = {}; + u.offset = l; + u.gen = h; + switch (c) { + case 0: + u.free = !0; + break; + case 1: + u.uncompressed = !0; + break; + case 2: + break; + default: + throw new r.FormatError(`Invalid XRef entry type: ${c}`); + } + this.entries[o + s] || (this.entries[o + s] = u); + } + t.entryNum = 0; + t.streamPos = e.pos; + s.splice(0, 2); + } + } + indexObjects() { + function readToken(e, t) { + let a = '', + r = e[t]; + for (; 10 !== r && 13 !== r && 60 !== r && !(++t >= e.length); ) { + a += String.fromCharCode(r); + r = e[t]; + } + return a; + } + function skipUntil(e, t, a) { + const r = a.length, + i = e.length; + let n = 0; + for (; t < i; ) { + let i = 0; + for (; i < r && e[t + i] === a[i]; ) ++i; + if (i >= r) break; + t++; + n++; + } + return n; + } + const e = /\b(endobj|\d+\s+\d+\s+obj|xref|trailer)\b/g, + t = /\b(startxref|\d+\s+\d+\s+obj)\b/g, + a = /^(\d+)\s+(\d+)\s+obj\b/, + o = new Uint8Array([116, 114, 97, 105, 108, 101, 114]), + c = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]), + l = new Uint8Array([47, 88, 82, 101, 102]); + this.entries.length = 0; + this._cacheMap.clear(); + const h = this.stream; + h.pos = 0; + const u = h.getBytes(), + d = (0, r.bytesToString)(u), + f = u.length; + let g = h.start; + const p = [], + m = []; + for (; g < f; ) { + let i = u[g]; + if (9 === i || 10 === i || 13 === i || 32 === i) { + ++g; + continue; + } + if (37 === i) { + do { + ++g; + if (g >= f) break; + i = u[g]; + } while (10 !== i && 13 !== i); + continue; + } + const b = readToken(u, g); + let y; + if (b.startsWith('xref') && (4 === b.length || /\s/.test(b[4]))) { + g += skipUntil(u, g, o); + p.push(g); + g += skipUntil(u, g, c); + } else if ((y = a.exec(b))) { + const t = 0 | y[1], + a = 0 | y[2], + i = g + b.length; + let o, + c = !1; + if (this.entries[t]) { + if (this.entries[t].gen === a) + try { + new n.Parser({ lexer: new n.Lexer(h.makeSubStream(i)) }).getObj(); + c = !0; + } catch (e) { + e instanceof s.ParserEOFException + ? (0, r.warn)(`indexObjects -- checking object (${b}): "${e}".`) + : (c = !0); + } + } else c = !0; + c && (this.entries[t] = { offset: g - h.start, gen: a, uncompressed: !0 }); + e.lastIndex = i; + const p = e.exec(d); + if (p) { + o = e.lastIndex + 1 - g; + if ('endobj' !== p[1]) { + (0, r.warn)( + `indexObjects: Found "${p[1]}" inside of another "obj", caused by missing "endobj" -- trying to recover.`, + ); + o -= p[1].length + 1; + } + } else o = f - g; + const w = u.subarray(g, g + o), + S = skipUntil(w, 0, l); + if (S < o && w[S + 5] < 64) { + m.push(g - h.start); + this._xrefStms.add(g - h.start); + } + g += o; + } else if (b.startsWith('trailer') && (7 === b.length || /\s/.test(b[7]))) { + p.push(g); + const e = g + b.length; + let a; + t.lastIndex = e; + const i = t.exec(d); + if (i) { + a = t.lastIndex + 1 - g; + if ('startxref' !== i[1]) { + (0, r.warn)( + `indexObjects: Found "${i[1]}" after "trailer", caused by missing "startxref" -- trying to recover.`, + ); + a -= i[1].length + 1; + } + } else a = f - g; + g += a; + } else g += b.length + 1; + } + for (const e of m) { + this.startXRefQueue.push(e); + this.readXRef(!0); + } + const b = []; + let y, + w, + S = !1; + for (const e of p) { + h.pos = e; + const t = new n.Parser({ + lexer: new n.Lexer(h), + xref: this, + allowStreams: !0, + recoveryMode: !0, + }), + a = t.getObj(); + if (!(0, i.isCmd)(a, 'trailer')) continue; + const r = t.getObj(); + if (r instanceof i.Dict) { + b.push(r); + r.has('Encrypt') && (S = !0); + } + } + for (const e of [...b, 'genFallback', ...b]) { + if ('genFallback' === e) { + if (!w) break; + this._generationFallback = !0; + continue; + } + let t = !1; + try { + const a = e.get('Root'); + if (!(a instanceof i.Dict)) continue; + const r = a.get('Pages'); + if (!(r instanceof i.Dict)) continue; + const n = r.get('Count'); + Number.isInteger(n) && (t = !0); + } catch (e) { + w = e; + continue; + } + if (t && (!S || e.has('Encrypt')) && e.has('ID')) return e; + y = e; + } + if (y) return y; + if (this.topDict) return this.topDict; + throw new r.InvalidPDFException('Invalid PDF structure.'); + } + readXRef(e = !1) { + const t = this.stream, + a = new Set(); + for (; this.startXRefQueue.length; ) { + try { + const e = this.startXRefQueue[0]; + if (a.has(e)) { + (0, r.warn)('readXRef - skipping XRef table since it was already parsed.'); + this.startXRefQueue.shift(); + continue; + } + a.add(e); + t.pos = e + t.start; + const s = new n.Parser({ lexer: new n.Lexer(t), xref: this, allowStreams: !0 }); + let c, + l = s.getObj(); + if ((0, i.isCmd)(l, 'xref')) { + c = this.processXRefTable(s); + this.topDict || (this.topDict = c); + l = c.get('XRefStm'); + if (Number.isInteger(l) && !this._xrefStms.has(l)) { + this._xrefStms.add(l); + this.startXRefQueue.push(l); + } + } else { + if (!Number.isInteger(l)) throw new r.FormatError('Invalid XRef stream header'); + if ( + !( + Number.isInteger(s.getObj()) && + (0, i.isCmd)(s.getObj(), 'obj') && + (l = s.getObj()) instanceof o.BaseStream + ) + ) + throw new r.FormatError('Invalid XRef stream'); + c = this.processXRefStream(l); + this.topDict || (this.topDict = c); + if (!c) throw new r.FormatError('Failed to read XRef stream'); + } + l = c.get('Prev'); + Number.isInteger(l) + ? this.startXRefQueue.push(l) + : l instanceof i.Ref && this.startXRefQueue.push(l.num); + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.info)('(while reading XRef): ' + e); + } + this.startXRefQueue.shift(); + } + if (this.topDict) return this.topDict; + if (!e) throw new s.XRefParseException(); + } + get lastXRefStreamPos() { + return this._xrefStms.size > 0 ? Math.max(...this._xrefStms) : null; + } + getEntry(e) { + const t = this.entries[e]; + return t && !t.free && t.offset ? t : null; + } + fetchIfRef(e, t = !1) { + return e instanceof i.Ref ? this.fetch(e, t) : e; + } + fetch(e, t = !1) { + if (!(e instanceof i.Ref)) throw new Error('ref object is not a reference'); + const a = e.num, + n = this._cacheMap.get(a); + if (void 0 !== n) { + n instanceof i.Dict && !n.objId && (n.objId = e.toString()); + return n; + } + let s = this.getEntry(a); + if (null === s) { + this._cacheMap.set(a, s); + return s; + } + if (this._pendingRefs.has(e)) { + this._pendingRefs.remove(e); + (0, r.warn)(`Ignoring circular reference: ${e}.`); + return i.CIRCULAR_REF; + } + this._pendingRefs.put(e); + try { + s = s.uncompressed + ? this.fetchUncompressed(e, s, t) + : this.fetchCompressed(e, s, t); + this._pendingRefs.remove(e); + } catch (t) { + this._pendingRefs.remove(e); + throw t; + } + s instanceof i.Dict + ? (s.objId = e.toString()) + : s instanceof o.BaseStream && (s.dict.objId = e.toString()); + return s; + } + fetchUncompressed(e, t, a = !1) { + const c = e.gen; + let l = e.num; + if (t.gen !== c) { + const n = `Inconsistent generation in XRef: ${e}`; + if (this._generationFallback && t.gen < c) { + (0, r.warn)(n); + return this.fetchUncompressed(i.Ref.get(l, t.gen), t, a); + } + throw new s.XRefEntryException(n); + } + const h = this.stream.makeSubStream(t.offset + this.stream.start), + u = new n.Parser({ lexer: new n.Lexer(h), xref: this, allowStreams: !0 }), + d = u.getObj(), + f = u.getObj(), + g = u.getObj(); + if (d !== l || f !== c || !(g instanceof i.Cmd)) + throw new s.XRefEntryException(`Bad (uncompressed) XRef entry: ${e}`); + if ('obj' !== g.cmd) { + if (g.cmd.startsWith('obj')) { + l = parseInt(g.cmd.substring(3), 10); + if (!Number.isNaN(l)) return l; + } + throw new s.XRefEntryException(`Bad (uncompressed) XRef entry: ${e}`); + } + (t = + this.encrypt && !a + ? u.getObj(this.encrypt.createCipherTransform(l, c)) + : u.getObj()) instanceof o.BaseStream || this._cacheMap.set(l, t); + return t; + } + fetchCompressed(e, t, a = !1) { + const c = t.offset, + l = this.fetch(i.Ref.get(c, 0)); + if (!(l instanceof o.BaseStream)) throw new r.FormatError('bad ObjStm stream'); + const h = l.dict.get('First'), + u = l.dict.get('N'); + if (!Number.isInteger(h) || !Number.isInteger(u)) + throw new r.FormatError('invalid first and n parameters for ObjStm stream'); + let d = new n.Parser({ lexer: new n.Lexer(l), xref: this, allowStreams: !0 }); + const f = new Array(u), + g = new Array(u); + for (let e = 0; e < u; ++e) { + const t = d.getObj(); + if (!Number.isInteger(t)) + throw new r.FormatError(`invalid object number in the ObjStm stream: ${t}`); + const a = d.getObj(); + if (!Number.isInteger(a)) + throw new r.FormatError(`invalid object offset in the ObjStm stream: ${a}`); + f[e] = t; + g[e] = a; + } + const p = (l.start || 0) + h, + m = new Array(u); + for (let e = 0; e < u; ++e) { + const t = e < u - 1 ? g[e + 1] - g[e] : void 0; + if (t < 0) throw new r.FormatError('Invalid offset in the ObjStm stream.'); + d = new n.Parser({ + lexer: new n.Lexer(l.makeSubStream(p + g[e], t, l.dict)), + xref: this, + allowStreams: !0, + }); + const a = d.getObj(); + m[e] = a; + if (a instanceof o.BaseStream) continue; + const i = f[e], + s = this.entries[i]; + s && s.offset === c && s.gen === e && this._cacheMap.set(i, a); + } + if (void 0 === (t = m[t.gen])) + throw new s.XRefEntryException(`Bad (compressed) XRef entry: ${e}`); + return t; + } + async fetchIfRefAsync(e, t) { + return e instanceof i.Ref ? this.fetchAsync(e, t) : e; + } + async fetchAsync(e, t) { + try { + return this.fetch(e, t); + } catch (a) { + if (!(a instanceof s.MissingDataException)) throw a; + await this.pdfManager.requestRange(a.begin, a.end); + return this.fetchAsync(e, t); + } + } + getCatalogObj() { + return this.root; + } + }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.isNodeJS = void 0; + const a = !( + 'object' != typeof process || + process + '' != '[object process]' || + process.versions.nw || + (process.versions.electron && process.type && 'browser' !== process.type) + ); + t.isNodeJS = a; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.MessageHandler = void 0; + var r = a(2); + const i = 1, + n = 2, + s = 1, + o = 2, + c = 3, + l = 4, + h = 5, + u = 6, + d = 7, + f = 8; + function wrapReason(e) { + e instanceof Error || + ('object' == typeof e && null !== e) || + (0, r.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.'); + switch (e.name) { + case 'AbortException': + return new r.AbortException(e.message); + case 'MissingPDFException': + return new r.MissingPDFException(e.message); + case 'PasswordException': + return new r.PasswordException(e.message, e.code); + case 'UnexpectedResponseException': + return new r.UnexpectedResponseException(e.message, e.status); + case 'UnknownErrorException': + return new r.UnknownErrorException(e.message, e.details); + default: + return new r.UnknownErrorException(e.message, e.toString()); + } + } + t.MessageHandler = class MessageHandler { + constructor(e, t, a) { + this.sourceName = e; + this.targetName = t; + this.comObj = a; + this.callbackId = 1; + this.streamId = 1; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + this.callbackCapabilities = Object.create(null); + this.actionHandler = Object.create(null); + this._onComObjOnMessage = (e) => { + const t = e.data; + if (t.targetName !== this.sourceName) return; + if (t.stream) { + this.#t(t); + return; + } + if (t.callback) { + const e = t.callbackId, + a = this.callbackCapabilities[e]; + if (!a) throw new Error(`Cannot resolve callback ${e}`); + delete this.callbackCapabilities[e]; + if (t.callback === i) a.resolve(t.data); + else { + if (t.callback !== n) throw new Error('Unexpected callback case'); + a.reject(wrapReason(t.reason)); + } + return; + } + const r = this.actionHandler[t.action]; + if (!r) throw new Error(`Unknown action from worker: ${t.action}`); + if (t.callbackId) { + const e = this.sourceName, + s = t.sourceName; + new Promise(function (e) { + e(r(t.data)); + }).then( + function (r) { + a.postMessage({ + sourceName: e, + targetName: s, + callback: i, + callbackId: t.callbackId, + data: r, + }); + }, + function (r) { + a.postMessage({ + sourceName: e, + targetName: s, + callback: n, + callbackId: t.callbackId, + reason: wrapReason(r), + }); + }, + ); + } else t.streamId ? this.#a(t) : r(t.data); + }; + a.addEventListener('message', this._onComObjOnMessage); + } + on(e, t) { + const a = this.actionHandler; + if (a[e]) throw new Error(`There is already an actionName called "${e}"`); + a[e] = t; + } + send(e, t, a) { + this.comObj.postMessage( + { sourceName: this.sourceName, targetName: this.targetName, action: e, data: t }, + a, + ); + } + sendWithPromise(e, t, a) { + const i = this.callbackId++, + n = new r.PromiseCapability(); + this.callbackCapabilities[i] = n; + try { + this.comObj.postMessage( + { + sourceName: this.sourceName, + targetName: this.targetName, + action: e, + callbackId: i, + data: t, + }, + a, + ); + } catch (e) { + n.reject(e); + } + return n.promise; + } + sendWithStream(e, t, a, i) { + const n = this.streamId++, + o = this.sourceName, + c = this.targetName, + l = this.comObj; + return new ReadableStream( + { + start: (a) => { + const s = new r.PromiseCapability(); + this.streamControllers[n] = { + controller: a, + startCall: s, + pullCall: null, + cancelCall: null, + isClosed: !1, + }; + l.postMessage( + { + sourceName: o, + targetName: c, + action: e, + streamId: n, + data: t, + desiredSize: a.desiredSize, + }, + i, + ); + return s.promise; + }, + pull: (e) => { + const t = new r.PromiseCapability(); + this.streamControllers[n].pullCall = t; + l.postMessage({ + sourceName: o, + targetName: c, + stream: u, + streamId: n, + desiredSize: e.desiredSize, + }); + return t.promise; + }, + cancel: (e) => { + (0, r.assert)(e instanceof Error, 'cancel must have a valid reason'); + const t = new r.PromiseCapability(); + this.streamControllers[n].cancelCall = t; + this.streamControllers[n].isClosed = !0; + l.postMessage({ + sourceName: o, + targetName: c, + stream: s, + streamId: n, + reason: wrapReason(e), + }); + return t.promise; + }, + }, + a, + ); + } + #a(e) { + const t = e.streamId, + a = this.sourceName, + i = e.sourceName, + n = this.comObj, + s = this, + o = this.actionHandler[e.action], + u = { + enqueue(e, s = 1, o) { + if (this.isCancelled) return; + const c = this.desiredSize; + this.desiredSize -= s; + if (c > 0 && this.desiredSize <= 0) { + this.sinkCapability = new r.PromiseCapability(); + this.ready = this.sinkCapability.promise; + } + n.postMessage( + { sourceName: a, targetName: i, stream: l, streamId: t, chunk: e }, + o, + ); + }, + close() { + if (!this.isCancelled) { + this.isCancelled = !0; + n.postMessage({ sourceName: a, targetName: i, stream: c, streamId: t }); + delete s.streamSinks[t]; + } + }, + error(e) { + (0, r.assert)(e instanceof Error, 'error must have a valid reason'); + if (!this.isCancelled) { + this.isCancelled = !0; + n.postMessage({ + sourceName: a, + targetName: i, + stream: h, + streamId: t, + reason: wrapReason(e), + }); + } + }, + sinkCapability: new r.PromiseCapability(), + onPull: null, + onCancel: null, + isCancelled: !1, + desiredSize: e.desiredSize, + ready: null, + }; + u.sinkCapability.resolve(); + u.ready = u.sinkCapability.promise; + this.streamSinks[t] = u; + new Promise(function (t) { + t(o(e.data, u)); + }).then( + function () { + n.postMessage({ + sourceName: a, + targetName: i, + stream: f, + streamId: t, + success: !0, + }); + }, + function (e) { + n.postMessage({ + sourceName: a, + targetName: i, + stream: f, + streamId: t, + reason: wrapReason(e), + }); + }, + ); + } + #t(e) { + const t = e.streamId, + a = this.sourceName, + i = e.sourceName, + n = this.comObj, + g = this.streamControllers[t], + p = this.streamSinks[t]; + switch (e.stream) { + case f: + e.success ? g.startCall.resolve() : g.startCall.reject(wrapReason(e.reason)); + break; + case d: + e.success ? g.pullCall.resolve() : g.pullCall.reject(wrapReason(e.reason)); + break; + case u: + if (!p) { + n.postMessage({ + sourceName: a, + targetName: i, + stream: d, + streamId: t, + success: !0, + }); + break; + } + p.desiredSize <= 0 && e.desiredSize > 0 && p.sinkCapability.resolve(); + p.desiredSize = e.desiredSize; + new Promise(function (e) { + e(p.onPull?.()); + }).then( + function () { + n.postMessage({ + sourceName: a, + targetName: i, + stream: d, + streamId: t, + success: !0, + }); + }, + function (e) { + n.postMessage({ + sourceName: a, + targetName: i, + stream: d, + streamId: t, + reason: wrapReason(e), + }); + }, + ); + break; + case l: + (0, r.assert)(g, 'enqueue should have stream controller'); + if (g.isClosed) break; + g.controller.enqueue(e.chunk); + break; + case c: + (0, r.assert)(g, 'close should have stream controller'); + if (g.isClosed) break; + g.isClosed = !0; + g.controller.close(); + this.#r(g, t); + break; + case h: + (0, r.assert)(g, 'error should have stream controller'); + g.controller.error(wrapReason(e.reason)); + this.#r(g, t); + break; + case o: + e.success ? g.cancelCall.resolve() : g.cancelCall.reject(wrapReason(e.reason)); + this.#r(g, t); + break; + case s: + if (!p) break; + new Promise(function (t) { + t(p.onCancel?.(wrapReason(e.reason))); + }).then( + function () { + n.postMessage({ + sourceName: a, + targetName: i, + stream: o, + streamId: t, + success: !0, + }); + }, + function (e) { + n.postMessage({ + sourceName: a, + targetName: i, + stream: o, + streamId: t, + reason: wrapReason(e), + }); + }, + ); + p.sinkCapability.reject(wrapReason(e.reason)); + p.isCancelled = !0; + delete this.streamSinks[t]; + break; + default: + throw new Error('Unexpected stream case'); + } + } + async #r(e, t) { + await Promise.allSettled([ + e.startCall?.promise, + e.pullCall?.promise, + e.cancelCall?.promise, + ]); + delete this.streamControllers[t]; + } + destroy() { + this.comObj.removeEventListener('message', this._onComObjOnMessage); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PDFWorkerStream = void 0; + var r = a(2); + t.PDFWorkerStream = class PDFWorkerStream { + constructor(e) { + this._msgHandler = e; + this._contentLength = null; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + getFullReader() { + (0, r.assert)( + !this._fullRequestReader, + 'PDFWorkerStream.getFullReader can only be called once.', + ); + this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler); + return this._fullRequestReader; + } + getRangeReader(e, t) { + const a = new PDFWorkerStreamRangeReader(e, t, this._msgHandler); + this._rangeRequestReaders.push(a); + return a; + } + cancelAllRequests(e) { + this._fullRequestReader && this._fullRequestReader.cancel(e); + for (const t of this._rangeRequestReaders.slice(0)) t.cancel(e); + } + }; + class PDFWorkerStreamReader { + constructor(e) { + this._msgHandler = e; + this.onProgress = null; + this._contentLength = null; + this._isRangeSupported = !1; + this._isStreamingSupported = !1; + const t = this._msgHandler.sendWithStream('GetReader'); + this._reader = t.getReader(); + this._headersReady = this._msgHandler + .sendWithPromise('ReaderHeadersReady') + .then((e) => { + this._isStreamingSupported = e.isStreamingSupported; + this._isRangeSupported = e.isRangeSupported; + this._contentLength = e.contentLength; + }); + } + get headersReady() { + return this._headersReady; + } + get contentLength() { + return this._contentLength; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + get isRangeSupported() { + return this._isRangeSupported; + } + async read() { + const { value: e, done: t } = await this._reader.read(); + return t ? { value: void 0, done: !0 } : { value: e.buffer, done: !1 }; + } + cancel(e) { + this._reader.cancel(e); + } + } + class PDFWorkerStreamRangeReader { + constructor(e, t, a) { + this._msgHandler = a; + this.onProgress = null; + const r = this._msgHandler.sendWithStream('GetRangeReader', { begin: e, end: t }); + this._reader = r.getReader(); + } + get isStreamingSupported() { + return !1; + } + async read() { + const { value: e, done: t } = await this._reader.read(); + return t ? { value: void 0, done: !0 } : { value: e.buffer, done: !1 }; + } + cancel(e) { + this._reader.cancel(e); + } + } + }, + ], + t = {}; + function __w_pdfjs_require__(a) { + var r = t[a]; + if (void 0 !== r) return r.exports; + var i = (t[a] = { exports: {} }); + e[a](i, i.exports, __w_pdfjs_require__); + return i.exports; + } + __w_pdfjs_require__.d = (e, t) => { + for (var a in t) + __w_pdfjs_require__.o(t, a) && + !__w_pdfjs_require__.o(e, a) && + Object.defineProperty(e, a, { enumerable: !0, get: t[a] }); + }; + __w_pdfjs_require__.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t); + __w_pdfjs_require__.r = (e) => { + 'undefined' != typeof Symbol && + Symbol.toStringTag && + Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }); + Object.defineProperty(e, '__esModule', { value: !0 }); + }; + var a = {}; + (() => { + var e = a; + Object.defineProperty(e, '__esModule', { value: !0 }); + Object.defineProperty(e, 'WorkerMessageHandler', { + enumerable: !0, + get: function () { + return t.WorkerMessageHandler; + }, + }); + var t = __w_pdfjs_require__(1); + })(); + return a; + })(), +); diff --git a/apps/marketing/src/components/(marketing)/widget.tsx b/apps/marketing/src/components/(marketing)/widget.tsx index 8603ef576..1a15069e9 100644 --- a/apps/marketing/src/components/(marketing)/widget.tsx +++ b/apps/marketing/src/components/(marketing)/widget.tsx @@ -21,12 +21,12 @@ import { DialogTitle, } from '@documenso/ui/primitives/dialog'; import { Input } from '@documenso/ui/primitives/input'; +import { SignaturePad } from '@documenso/ui/primitives/signature-pad'; import { useToast } from '@documenso/ui/primitives/use-toast'; import { claimPlan } from '~/api/claim-plan/fetcher'; import { FormErrorMessage } from '../form/form-error-message'; -import { SignaturePad } from '../signature-pad'; const ZWidgetFormSchema = z .object({ diff --git a/apps/marketing/src/components/signature-pad/signature-pad.tsx b/apps/marketing/src/components/signature-pad/signature-pad.tsx deleted file mode 100644 index 0478e83b2..000000000 --- a/apps/marketing/src/components/signature-pad/signature-pad.tsx +++ /dev/null @@ -1,212 +0,0 @@ -'use client'; - -import { - HTMLAttributes, - MouseEvent, - PointerEvent, - TouchEvent, - useEffect, - useMemo, - useRef, - useState, -} from 'react'; - -import { StrokeOptions, getStroke } from 'perfect-freehand'; - -import { cn } from '@documenso/ui/lib/utils'; - -import { getSvgPathFromStroke } from './helper'; -import { Point } from './point'; - -const DPI = 2; - -export type SignaturePadProps = Omit, 'onChange'> & { - onChange?: (_signatureDataUrl: string | null) => void; -}; - -export const SignaturePad = ({ className, onChange, ...props }: SignaturePadProps) => { - const $el = useRef(null); - - const [isPressed, setIsPressed] = useState(false); - const [points, setPoints] = useState([]); - - const perfectFreehandOptions = useMemo(() => { - const size = $el.current ? Math.min($el.current.height, $el.current.width) * 0.03 : 10; - - return { - size, - thinning: 0.25, - streamline: 0.5, - smoothing: 0.5, - end: { - taper: size * 2, - }, - } satisfies StrokeOptions; - }, []); - - const onMouseDown = (event: MouseEvent | PointerEvent | TouchEvent) => { - if (event.cancelable) { - event.preventDefault(); - } - - setIsPressed(true); - - const point = Point.fromEvent(event, DPI, $el.current); - - const newPoints = [...points, point]; - - setPoints(newPoints); - - if ($el.current) { - const ctx = $el.current.getContext('2d'); - - if (ctx) { - ctx.save(); - - ctx.imageSmoothingEnabled = true; - ctx.imageSmoothingQuality = 'high'; - - const pathData = new Path2D( - getSvgPathFromStroke(getStroke(newPoints, perfectFreehandOptions)), - ); - - ctx.fill(pathData); - } - } - }; - - const onMouseMove = (event: MouseEvent | PointerEvent | TouchEvent) => { - if (event.cancelable) { - event.preventDefault(); - } - - if (!isPressed) { - return; - } - - const point = Point.fromEvent(event, DPI, $el.current); - - if (point.distanceTo(points[points.length - 1]) > 5) { - const newPoints = [...points, point]; - - setPoints(newPoints); - - if ($el.current) { - const ctx = $el.current.getContext('2d'); - - if (ctx) { - ctx.restore(); - - ctx.imageSmoothingEnabled = true; - ctx.imageSmoothingQuality = 'high'; - - const pathData = new Path2D( - getSvgPathFromStroke(getStroke(points, perfectFreehandOptions)), - ); - - ctx.fill(pathData); - } - } - } - }; - - const onMouseUp = (event: MouseEvent | PointerEvent | TouchEvent, addPoint = true) => { - if (event.cancelable) { - event.preventDefault(); - } - - setIsPressed(false); - - const point = Point.fromEvent(event, DPI, $el.current); - - const newPoints = [...points]; - - if (addPoint) { - newPoints.push(point); - - setPoints(newPoints); - } - - if ($el.current) { - const ctx = $el.current.getContext('2d'); - - if (ctx) { - ctx.restore(); - - ctx.imageSmoothingEnabled = true; - ctx.imageSmoothingQuality = 'high'; - - const pathData = new Path2D( - getSvgPathFromStroke(getStroke(newPoints, perfectFreehandOptions)), - ); - - ctx.fill(pathData); - - ctx.save(); - } - - onChange?.($el.current.toDataURL()); - } - - setPoints([]); - }; - - const onMouseEnter = (event: MouseEvent | PointerEvent | TouchEvent) => { - if (event.cancelable) { - event.preventDefault(); - } - - if ('buttons' in event && event.buttons === 1) { - onMouseDown(event); - } - }; - - const onMouseLeave = (event: MouseEvent | PointerEvent | TouchEvent) => { - if (event.cancelable) { - event.preventDefault(); - } - - onMouseUp(event, false); - }; - - const onClearClick = () => { - if ($el.current) { - const ctx = $el.current.getContext('2d'); - - ctx?.clearRect(0, 0, $el.current.width, $el.current.height); - } - - onChange?.(null); - - setPoints([]); - }; - - useEffect(() => { - if ($el.current) { - $el.current.width = $el.current.clientWidth * DPI; - $el.current.height = $el.current.clientHeight * DPI; - } - }, []); - - return ( -
- onMouseMove(event)} - onPointerDown={(event) => onMouseDown(event)} - onPointerUp={(event) => onMouseUp(event)} - onPointerLeave={(event) => onMouseLeave(event)} - onPointerEnter={(event) => onMouseEnter(event)} - {...props} - /> - -
- -
-
- ); -}; diff --git a/apps/marketing/tsconfig.json b/apps/marketing/tsconfig.json index 3160dc689..b4ec2832f 100644 --- a/apps/marketing/tsconfig.json +++ b/apps/marketing/tsconfig.json @@ -9,16 +9,10 @@ } ], "paths": { - "~/*": [ - "./src/*" - ], - "contentlayer/generated": [ - "./.contentlayer/generated" - ] + "~/*": ["./src/*"], + "contentlayer/generated": ["./.contentlayer/generated"] }, - "types": [ - "@documenso/lib/types/next-auth.d.ts" - ], + "types": ["@documenso/lib/types/next-auth.d.ts"], "strictNullChecks": true, "incremental": false }, @@ -29,7 +23,5 @@ ".next/types/**/*.ts", ".contentlayer/generated" ], - "exclude": [ - "node_modules" - ] + "exclude": ["node_modules"] } diff --git a/apps/web/package.json b/apps/web/package.json index 94c6e61af..b7f8da47a 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -7,7 +7,8 @@ "dev": "PORT=3000 next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "copy:pdfjs": "node ../../scripts/copy-pdfjs.cjs" }, "dependencies": { "@documenso/lib": "*", @@ -34,7 +35,6 @@ "react-dropzone": "^14.2.3", "react-hook-form": "^7.43.9", "react-icons": "^4.8.0", - "react-pdf": "^7.1.1", "react-rnd": "^10.4.1", "ts-pattern": "^5.0.5", "typescript": "5.1.6", diff --git a/apps/web/public/pdf.worker.min.js b/apps/web/public/pdf.worker.min.js new file mode 100644 index 000000000..3b79c94ef --- /dev/null +++ b/apps/web/public/pdf.worker.min.js @@ -0,0 +1,56611 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2023 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ +!(function webpackUniversalModuleDefinition(e, t) { + 'object' == typeof exports && 'object' == typeof module + ? (module.exports = t()) + : 'function' == typeof define && define.amd + ? define('pdfjs-dist/build/pdf.worker', [], t) + : 'object' == typeof exports + ? (exports['pdfjs-dist/build/pdf.worker'] = t()) + : (e['pdfjs-dist/build/pdf.worker'] = e.pdfjsWorker = t()); +})(globalThis, () => + (() => { + 'use strict'; + var e = [ + , + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.WorkerTask = t.WorkerMessageHandler = void 0; + var r = a(2), + i = a(3), + n = a(4), + s = a(6), + o = a(71), + c = a(65), + l = a(102), + h = a(103), + u = a(104); + class WorkerTask { + constructor(e) { + this.name = e; + this.terminated = !1; + this._capability = new r.PromiseCapability(); + } + get finished() { + return this._capability.promise; + } + finish() { + this._capability.resolve(); + } + terminate() { + this.terminated = !0; + } + ensureNotTerminated() { + if (this.terminated) throw new Error('Worker task was terminated'); + } + } + t.WorkerTask = WorkerTask; + class WorkerMessageHandler { + static setup(e, t) { + let a = !1; + e.on('test', function (t) { + if (!a) { + a = !0; + e.send('test', t instanceof Uint8Array); + } + }); + e.on('configure', function (e) { + (0, r.setVerbosityLevel)(e.verbosity); + }); + e.on('GetDocRequest', function (e) { + return WorkerMessageHandler.createDocumentHandler(e, t); + }); + } + static createDocumentHandler(e, t) { + let a, + d = !1, + f = null; + const g = new Set(), + p = (0, r.getVerbosityLevel)(), + { docId: m, apiVersion: b } = e, + y = '3.6.172'; + if (b !== y) + throw new Error(`The API version "${b}" does not match the Worker version "${y}".`); + const w = []; + for (const e in []) w.push(e); + if (w.length) + throw new Error( + 'The `Array.prototype` contains unexpected enumerable properties: ' + + w.join(', ') + + '; thus breaking e.g. `for...in` iteration of `Array`s.', + ); + if ( + (l.isNodeJS && 'undefined' == typeof Path2D) || + 'undefined' == typeof ReadableStream + ) { + const e = + 'The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `Path2D` and/or `ReadableStream`); '; + if (l.isNodeJS) throw new Error(e + 'please use a `legacy`-build instead.'); + throw new Error(e + 'please update to a supported browser.'); + } + const S = m + '_worker'; + let x = new h.MessageHandler(S, m, t); + function ensureNotTerminated() { + if (d) throw new Error('Worker was terminated'); + } + function startWorkerTask(e) { + g.add(e); + } + function finishWorkerTask(e) { + e.finish(); + g.delete(e); + } + async function loadDocument(e) { + await a.ensureDoc('checkHeader'); + await a.ensureDoc('parseStartXRef'); + await a.ensureDoc('parse', [e]); + await a.ensureDoc('checkFirstPage', [e]); + await a.ensureDoc('checkLastPage', [e]); + const t = await a.ensureDoc('isPureXfa'); + if (t) { + const e = new WorkerTask('loadXfaFonts'); + startWorkerTask(e); + await Promise.all([ + a + .loadXfaFonts(x, e) + .catch((e) => {}) + .then(() => finishWorkerTask(e)), + a.loadXfaImages(), + ]); + } + const [r, i] = await Promise.all([ + a.ensureDoc('numPages'), + a.ensureDoc('fingerprints'), + ]); + return { + numPages: r, + fingerprints: i, + htmlForXfa: t ? await a.ensureDoc('htmlForXfa') : null, + }; + } + function getPdfManager({ + data: e, + password: t, + disableAutoFetch: a, + rangeChunkSize: n, + length: o, + docBaseUrl: c, + enableXfa: l, + evaluatorOptions: h, + }) { + const d = { + source: null, + disableAutoFetch: a, + docBaseUrl: c, + docId: m, + enableXfa: l, + evaluatorOptions: h, + handler: x, + length: o, + password: t, + rangeChunkSize: n, + }, + g = new r.PromiseCapability(); + let p; + if (e) { + try { + d.source = e; + p = new s.LocalPdfManager(d); + g.resolve(p); + } catch (e) { + g.reject(e); + } + return g.promise; + } + let b, + y = []; + try { + b = new u.PDFWorkerStream(x); + } catch (e) { + g.reject(e); + return g.promise; + } + const w = b.getFullReader(); + w.headersReady + .then(function () { + if (w.isRangeSupported) { + d.source = b; + d.length = w.contentLength; + d.disableAutoFetch ||= w.isStreamingSupported; + p = new s.NetworkPdfManager(d); + for (const e of y) p.sendProgressiveData(e); + y = []; + g.resolve(p); + f = null; + } + }) + .catch(function (e) { + g.reject(e); + f = null; + }); + let S = 0; + new Promise(function (e, t) { + const readChunk = function ({ value: e, done: a }) { + try { + ensureNotTerminated(); + if (a) { + p || + (function () { + const e = (0, i.arrayBuffersToBytes)(y); + o && + e.length !== o && + (0, r.warn)('reported HTTP length is different from actual'); + try { + d.source = e; + p = new s.LocalPdfManager(d); + g.resolve(p); + } catch (e) { + g.reject(e); + } + y = []; + })(); + f = null; + return; + } + S += e.byteLength; + w.isStreamingSupported || + x.send('DocProgress', { + loaded: S, + total: Math.max(S, w.contentLength || 0), + }); + p ? p.sendProgressiveData(e) : y.push(e); + w.read().then(readChunk, t); + } catch (e) { + t(e); + } + }; + w.read().then(readChunk, t); + }).catch(function (e) { + g.reject(e); + f = null; + }); + f = function (e) { + b.cancelAllRequests(e); + }; + return g.promise; + } + x.on('GetPage', function (e) { + return a.getPage(e.pageIndex).then(function (e) { + return Promise.all([ + a.ensure(e, 'rotate'), + a.ensure(e, 'ref'), + a.ensure(e, 'userUnit'), + a.ensure(e, 'view'), + ]).then(function ([e, t, a, r]) { + return { rotate: e, ref: t, userUnit: a, view: r }; + }); + }); + }); + x.on('GetPageIndex', function (e) { + const t = n.Ref.get(e.num, e.gen); + return a.ensureCatalog('getPageIndex', [t]); + }); + x.on('GetDestinations', function (e) { + return a.ensureCatalog('destinations'); + }); + x.on('GetDestination', function (e) { + return a.ensureCatalog('getDestination', [e.id]); + }); + x.on('GetPageLabels', function (e) { + return a.ensureCatalog('pageLabels'); + }); + x.on('GetPageLayout', function (e) { + return a.ensureCatalog('pageLayout'); + }); + x.on('GetPageMode', function (e) { + return a.ensureCatalog('pageMode'); + }); + x.on('GetViewerPreferences', function (e) { + return a.ensureCatalog('viewerPreferences'); + }); + x.on('GetOpenAction', function (e) { + return a.ensureCatalog('openAction'); + }); + x.on('GetAttachments', function (e) { + return a.ensureCatalog('attachments'); + }); + x.on('GetJavaScript', function (e) { + return a.ensureCatalog('javaScript'); + }); + x.on('GetDocJSActions', function (e) { + return a.ensureCatalog('jsActions'); + }); + x.on('GetPageJSActions', function ({ pageIndex: e }) { + return a.getPage(e).then(function (e) { + return a.ensure(e, 'jsActions'); + }); + }); + x.on('GetOutline', function (e) { + return a.ensureCatalog('documentOutline'); + }); + x.on('GetOptionalContentConfig', function (e) { + return a.ensureCatalog('optionalContentConfig'); + }); + x.on('GetPermissions', function (e) { + return a.ensureCatalog('permissions'); + }); + x.on('GetMetadata', function (e) { + return Promise.all([a.ensureDoc('documentInfo'), a.ensureCatalog('metadata')]); + }); + x.on('GetMarkInfo', function (e) { + return a.ensureCatalog('markInfo'); + }); + x.on('GetData', function (e) { + return a.requestLoadedStream().then(function (e) { + return e.bytes; + }); + }); + x.on('GetAnnotations', function ({ pageIndex: e, intent: t }) { + return a.getPage(e).then(function (a) { + const r = new WorkerTask(`GetAnnotations: page ${e}`); + startWorkerTask(r); + return a.getAnnotationsData(x, r, t).then( + (e) => { + finishWorkerTask(r); + return e; + }, + (e) => { + finishWorkerTask(r); + throw e; + }, + ); + }); + }); + x.on('GetFieldObjects', function (e) { + return a.ensureDoc('fieldObjects'); + }); + x.on('HasJSActions', function (e) { + return a.ensureDoc('hasJSActions'); + }); + x.on('GetCalculationOrderIds', function (e) { + return a.ensureDoc('calculationOrderIds'); + }); + x.on( + 'SaveDocument', + function ({ isPureXfa: e, numPages: t, annotationStorage: s, filename: o }) { + const l = [ + a.requestLoadedStream(), + a.ensureCatalog('acroForm'), + a.ensureCatalog('acroFormRef'), + a.ensureDoc('xref'), + a.ensureDoc('startXRef'), + ], + h = e ? null : (0, i.getNewAnnotationsMap)(s); + if (h) + for (const [e, t] of h) + l.push( + a.getPage(e).then((a) => { + const r = new WorkerTask(`Save (editor): page ${e}`); + return a.saveNewAnnotations(x, r, t).finally(function () { + finishWorkerTask(r); + }); + }), + ); + if (e) l.push(a.serializeXfaData(s)); + else + for (let e = 0; e < t; e++) + l.push( + a.getPage(e).then(function (t) { + const a = new WorkerTask(`Save: page ${e}`); + return t.save(x, a, s).finally(function () { + finishWorkerTask(a); + }); + }), + ); + return Promise.all(l).then(function ([t, a, i, s, l, ...h]) { + let u = [], + d = null; + if (e) { + d = h[0]; + if (!d) return t.bytes; + } else { + u = h.flat(2); + if (0 === u.length) return t.bytes; + } + const f = i && a instanceof n.Dict && u.some((e) => e.needAppearances), + g = (a instanceof n.Dict && a.get('XFA')) || null; + let p = null, + m = !1; + if (Array.isArray(g)) { + for (let e = 0, t = g.length; e < t; e += 2) + if ('datasets' === g[e]) { + p = g[e + 1]; + m = !0; + } + null === p && (p = s.getNewTemporaryRef()); + } else g && (0, r.warn)('Unsupported XFA type.'); + let b = Object.create(null); + if (s.trailer) { + const e = Object.create(null), + t = s.trailer.get('Info') || null; + t instanceof n.Dict && + t.forEach((t, a) => { + 'string' == typeof a && (e[t] = (0, r.stringToPDFString)(a)); + }); + b = { + rootRef: s.trailer.getRaw('Root') || null, + encryptRef: s.trailer.getRaw('Encrypt') || null, + newRef: s.getNewTemporaryRef(), + infoRef: s.trailer.getRaw('Info') || null, + info: e, + fileIds: s.trailer.get('ID') || null, + startXRef: s.lastXRefStreamPos ?? l, + filename: o, + }; + } + try { + return (0, + c.incrementalUpdate)({ originalData: t.bytes, xrefInfo: b, newRefs: u, xref: s, hasXfa: !!g, xfaDatasetsRef: p, hasXfaDatasetsEntry: m, needAppearances: f, acroFormRef: i, acroForm: a, xfaData: d }); + } finally { + s.resetNewTemporaryRef(); + } + }); + }, + ); + x.on('GetOperatorList', function (e, t) { + const i = e.pageIndex; + a.getPage(i).then(function (a) { + const n = new WorkerTask(`GetOperatorList: page ${i}`); + startWorkerTask(n); + const s = p >= r.VerbosityLevel.INFOS ? Date.now() : 0; + a.getOperatorList({ + handler: x, + sink: t, + task: n, + intent: e.intent, + cacheKey: e.cacheKey, + annotationStorage: e.annotationStorage, + }).then( + function (e) { + finishWorkerTask(n); + s && + (0, r.info)( + `page=${i + 1} - getOperatorList: time=${Date.now() - s}ms, len=${ + e.length + }`, + ); + t.close(); + }, + function (e) { + finishWorkerTask(n); + n.terminated || t.error(e); + }, + ); + }); + }); + x.on('GetTextContent', function (e, t) { + const { pageIndex: i, includeMarkedContent: n, disableNormalization: s } = e; + a.getPage(i).then(function (e) { + const a = new WorkerTask('GetTextContent: page ' + i); + startWorkerTask(a); + const o = p >= r.VerbosityLevel.INFOS ? Date.now() : 0; + e.extractTextContent({ + handler: x, + task: a, + sink: t, + includeMarkedContent: n, + disableNormalization: s, + }).then( + function () { + finishWorkerTask(a); + o && + (0, r.info)( + `page=${i + 1} - getTextContent: time=` + (Date.now() - o) + 'ms', + ); + t.close(); + }, + function (e) { + finishWorkerTask(a); + a.terminated || t.error(e); + }, + ); + }); + }); + x.on('GetStructTree', function (e) { + return a.getPage(e.pageIndex).then(function (e) { + return a.ensure(e, 'getStructTree'); + }); + }); + x.on('FontFallback', function (e) { + return a.fontFallback(e.id, x); + }); + x.on('Cleanup', function (e) { + return a.cleanup(!0); + }); + x.on('Terminate', function (e) { + d = !0; + const t = []; + if (a) { + a.terminate(new r.AbortException('Worker was terminated.')); + const e = a.cleanup(); + t.push(e); + a = null; + } else (0, o.clearGlobalCaches)(); + f && f(new r.AbortException('Worker was terminated.')); + for (const e of g) { + t.push(e.finished); + e.terminate(); + } + return Promise.all(t).then(function () { + x.destroy(); + x = null; + }); + }); + x.on('Ready', function (t) { + !(function setupDoc(e) { + function onSuccess(e) { + ensureNotTerminated(); + x.send('GetDoc', { pdfInfo: e }); + } + function onFailure(e) { + ensureNotTerminated(); + if (e instanceof r.PasswordException) { + const t = new WorkerTask(`PasswordException: response ${e.code}`); + startWorkerTask(t); + x.sendWithPromise('PasswordRequest', e) + .then(function ({ password: e }) { + finishWorkerTask(t); + a.updatePassword(e); + pdfManagerReady(); + }) + .catch(function () { + finishWorkerTask(t); + x.send('DocException', e); + }); + } else + e instanceof r.InvalidPDFException || + e instanceof r.MissingPDFException || + e instanceof r.UnexpectedResponseException || + e instanceof r.UnknownErrorException + ? x.send('DocException', e) + : x.send( + 'DocException', + new r.UnknownErrorException(e.message, e.toString()), + ); + } + function pdfManagerReady() { + ensureNotTerminated(); + loadDocument(!1).then(onSuccess, function (e) { + ensureNotTerminated(); + e instanceof i.XRefParseException + ? a.requestLoadedStream().then(function () { + ensureNotTerminated(); + loadDocument(!0).then(onSuccess, onFailure); + }) + : onFailure(e); + }); + } + ensureNotTerminated(); + getPdfManager(e) + .then(function (e) { + if (d) { + e.terminate(new r.AbortException('Worker was terminated.')); + throw new Error('Worker was terminated'); + } + a = e; + a.requestLoadedStream(!0).then((e) => { + x.send('DataLoaded', { length: e.bytes.byteLength }); + }); + }) + .then(pdfManagerReady, onFailure); + })(e); + e = null; + }); + return S; + } + static initializeFromPort(e) { + const t = new h.MessageHandler('worker', 'main', e); + WorkerMessageHandler.setup(t, e); + t.send('ready', null); + } + } + t.WorkerMessageHandler = WorkerMessageHandler; + 'undefined' == typeof window && + !l.isNodeJS && + 'undefined' != typeof self && + (function isMessagePort(e) { + return 'function' == typeof e.postMessage && 'onmessage' in e; + })(self) && + WorkerMessageHandler.initializeFromPort(self); + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.VerbosityLevel = + t.Util = + t.UnknownErrorException = + t.UnexpectedResponseException = + t.TextRenderingMode = + t.RenderingIntentFlag = + t.PromiseCapability = + t.PermissionFlag = + t.PasswordResponses = + t.PasswordException = + t.PageActionEventType = + t.OPS = + t.MissingPDFException = + t.MAX_IMAGE_SIZE_TO_CACHE = + t.LINE_FACTOR = + t.LINE_DESCENT_FACTOR = + t.InvalidPDFException = + t.ImageKind = + t.IDENTITY_MATRIX = + t.FormatError = + t.FeatureTest = + t.FONT_IDENTITY_MATRIX = + t.DocumentActionEventType = + t.CMapCompressionType = + t.BaseException = + t.BASELINE_FACTOR = + t.AnnotationType = + t.AnnotationStateModelType = + t.AnnotationReviewState = + t.AnnotationReplyType = + t.AnnotationMode = + t.AnnotationMarkedState = + t.AnnotationFlag = + t.AnnotationFieldFlag = + t.AnnotationEditorType = + t.AnnotationEditorPrefix = + t.AnnotationEditorParamsType = + t.AnnotationBorderStyleType = + t.AnnotationActionEventType = + t.AbortException = + void 0; + t.assert = function assert(e, t) { + e || unreachable(t); + }; + t.bytesToString = function bytesToString(e) { + ('object' == typeof e && void 0 !== e?.length) || + unreachable('Invalid argument for bytesToString'); + const t = e.length, + a = 8192; + if (t < a) return String.fromCharCode.apply(null, e); + const r = []; + for (let i = 0; i < t; i += a) { + const n = Math.min(i + a, t), + s = e.subarray(i, n); + r.push(String.fromCharCode.apply(null, s)); + } + return r.join(''); + }; + t.createValidAbsoluteUrl = function createValidAbsoluteUrl(e, t = null, a = null) { + if (!e) return null; + try { + if (a && 'string' == typeof e) { + if (a.addDefaultProtocol && e.startsWith('www.')) { + const t = e.match(/\./g); + t?.length >= 2 && (e = `http://${e}`); + } + if (a.tryConvertEncoding) + try { + e = stringToUTF8String(e); + } catch (e) {} + } + const r = t ? new URL(e, t) : new URL(e); + if ( + (function _isValidProtocol(e) { + switch (e?.protocol) { + case 'http:': + case 'https:': + case 'ftp:': + case 'mailto:': + case 'tel:': + return !0; + default: + return !1; + } + })(r) + ) + return r; + } catch (e) {} + return null; + }; + t.getModificationDate = function getModificationDate(e = new Date()) { + return [ + e.getUTCFullYear().toString(), + (e.getUTCMonth() + 1).toString().padStart(2, '0'), + e.getUTCDate().toString().padStart(2, '0'), + e.getUTCHours().toString().padStart(2, '0'), + e.getUTCMinutes().toString().padStart(2, '0'), + e.getUTCSeconds().toString().padStart(2, '0'), + ].join(''); + }; + t.getVerbosityLevel = function getVerbosityLevel() { + return r; + }; + t.info = function info(e) { + r >= a.INFOS && console.log(`Info: ${e}`); + }; + t.isArrayBuffer = function isArrayBuffer(e) { + return 'object' == typeof e && void 0 !== e?.byteLength; + }; + t.isArrayEqual = function isArrayEqual(e, t) { + if (e.length !== t.length) return !1; + for (let a = 0, r = e.length; a < r; a++) if (e[a] !== t[a]) return !1; + return !0; + }; + t.normalizeUnicode = function normalizeUnicode(e) { + if (!o) { + o = + /([\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; + c = new Map([['ſt', 'ſt']]); + } + return e.replaceAll(o, (e, t, a) => (t ? t.normalize('NFKC') : c.get(a))); + }; + t.objectFromMap = function objectFromMap(e) { + const t = Object.create(null); + for (const [a, r] of e) t[a] = r; + return t; + }; + t.objectSize = function objectSize(e) { + return Object.keys(e).length; + }; + t.setVerbosityLevel = function setVerbosityLevel(e) { + Number.isInteger(e) && (r = e); + }; + t.shadow = shadow; + t.string32 = function string32(e) { + return String.fromCharCode((e >> 24) & 255, (e >> 16) & 255, (e >> 8) & 255, 255 & e); + }; + t.stringToBytes = stringToBytes; + t.stringToPDFString = function stringToPDFString(e) { + if (e[0] >= 'ï') { + let t; + 'þ' === e[0] && 'ÿ' === e[1] + ? (t = 'utf-16be') + : 'ÿ' === e[0] && 'þ' === e[1] + ? (t = 'utf-16le') + : 'ï' === e[0] && '»' === e[1] && '¿' === e[2] && (t = 'utf-8'); + if (t) + try { + const a = new TextDecoder(t, { fatal: !0 }), + r = stringToBytes(e); + return a.decode(r); + } catch (e) { + warn(`stringToPDFString: "${e}".`); + } + } + const t = []; + for (let a = 0, r = e.length; a < r; a++) { + const r = s[e.charCodeAt(a)]; + t.push(r ? String.fromCharCode(r) : e.charAt(a)); + } + return t.join(''); + }; + t.stringToUTF8String = stringToUTF8String; + t.unreachable = unreachable; + t.utf8StringToString = function utf8StringToString(e) { + return unescape(encodeURIComponent(e)); + }; + t.warn = warn; + t.IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; + t.FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; + t.MAX_IMAGE_SIZE_TO_CACHE = 1e7; + t.LINE_FACTOR = 1.35; + t.LINE_DESCENT_FACTOR = 0.35; + t.BASELINE_FACTOR = 0.25925925925925924; + t.RenderingIntentFlag = { + ANY: 1, + DISPLAY: 2, + PRINT: 4, + SAVE: 8, + ANNOTATIONS_FORMS: 16, + ANNOTATIONS_STORAGE: 32, + ANNOTATIONS_DISABLE: 64, + OPLIST: 256, + }; + t.AnnotationMode = { DISABLE: 0, ENABLE: 1, ENABLE_FORMS: 2, ENABLE_STORAGE: 3 }; + t.AnnotationEditorPrefix = 'pdfjs_internal_editor_'; + t.AnnotationEditorType = { DISABLE: -1, NONE: 0, FREETEXT: 3, INK: 15 }; + t.AnnotationEditorParamsType = { + FREETEXT_SIZE: 1, + FREETEXT_COLOR: 2, + FREETEXT_OPACITY: 3, + INK_COLOR: 11, + INK_THICKNESS: 12, + INK_OPACITY: 13, + }; + t.PermissionFlag = { + PRINT: 4, + MODIFY_CONTENTS: 8, + COPY: 16, + MODIFY_ANNOTATIONS: 32, + FILL_INTERACTIVE_FORMS: 256, + COPY_FOR_ACCESSIBILITY: 512, + ASSEMBLE: 1024, + PRINT_HIGH_QUALITY: 2048, + }; + t.TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7, + FILL_STROKE_MASK: 3, + ADD_TO_PATH_FLAG: 4, + }; + t.ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; + t.AnnotationType = { + 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, + }; + t.AnnotationStateModelType = { MARKED: 'Marked', REVIEW: 'Review' }; + t.AnnotationMarkedState = { MARKED: 'Marked', UNMARKED: 'Unmarked' }; + t.AnnotationReviewState = { + ACCEPTED: 'Accepted', + REJECTED: 'Rejected', + CANCELLED: 'Cancelled', + COMPLETED: 'Completed', + NONE: 'None', + }; + t.AnnotationReplyType = { GROUP: 'Group', REPLY: 'R' }; + t.AnnotationFlag = { + INVISIBLE: 1, + HIDDEN: 2, + PRINT: 4, + NOZOOM: 8, + NOROTATE: 16, + NOVIEW: 32, + READONLY: 64, + LOCKED: 128, + TOGGLENOVIEW: 256, + LOCKEDCONTENTS: 512, + }; + t.AnnotationFieldFlag = { + READONLY: 1, + REQUIRED: 2, + NOEXPORT: 4, + MULTILINE: 4096, + PASSWORD: 8192, + NOTOGGLETOOFF: 16384, + RADIO: 32768, + PUSHBUTTON: 65536, + COMBO: 131072, + EDIT: 262144, + SORT: 524288, + FILESELECT: 1048576, + MULTISELECT: 2097152, + DONOTSPELLCHECK: 4194304, + DONOTSCROLL: 8388608, + COMB: 16777216, + RICHTEXT: 33554432, + RADIOSINUNISON: 33554432, + COMMITONSELCHANGE: 67108864, + }; + t.AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, INSET: 4, UNDERLINE: 5 }; + t.AnnotationActionEventType = { + 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', + }; + t.DocumentActionEventType = { + WC: 'WillClose', + WS: 'WillSave', + DS: 'DidSave', + WP: 'WillPrint', + DP: 'DidPrint', + }; + t.PageActionEventType = { O: 'PageOpen', C: 'PageClose' }; + const a = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }; + t.VerbosityLevel = a; + t.CMapCompressionType = { NONE: 0, BINARY: 1 }; + t.OPS = { + 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, + }; + t.PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; + let r = a.WARNINGS; + function warn(e) { + r >= a.WARNINGS && console.log(`Warning: ${e}`); + } + function unreachable(e) { + throw new Error(e); + } + function shadow(e, t, a, r = !1) { + Object.defineProperty(e, t, { + value: a, + enumerable: !r, + configurable: !0, + writable: !1, + }); + return a; + } + const i = (function BaseExceptionClosure() { + function BaseException(e, t) { + this.constructor === BaseException && unreachable('Cannot initialize BaseException.'); + this.message = e; + this.name = t; + } + BaseException.prototype = new Error(); + BaseException.constructor = BaseException; + return BaseException; + })(); + t.BaseException = i; + t.PasswordException = class PasswordException extends i { + constructor(e, t) { + super(e, 'PasswordException'); + this.code = t; + } + }; + t.UnknownErrorException = class UnknownErrorException extends i { + constructor(e, t) { + super(e, 'UnknownErrorException'); + this.details = t; + } + }; + t.InvalidPDFException = class InvalidPDFException extends i { + constructor(e) { + super(e, 'InvalidPDFException'); + } + }; + t.MissingPDFException = class MissingPDFException extends i { + constructor(e) { + super(e, 'MissingPDFException'); + } + }; + t.UnexpectedResponseException = class UnexpectedResponseException extends i { + constructor(e, t) { + super(e, 'UnexpectedResponseException'); + this.status = t; + } + }; + t.FormatError = class FormatError extends i { + constructor(e) { + super(e, 'FormatError'); + } + }; + t.AbortException = class AbortException extends i { + constructor(e) { + super(e, 'AbortException'); + } + }; + function stringToBytes(e) { + 'string' != typeof e && unreachable('Invalid argument for stringToBytes'); + const t = e.length, + a = new Uint8Array(t); + for (let r = 0; r < t; ++r) a[r] = 255 & e.charCodeAt(r); + return a; + } + t.FeatureTest = class FeatureTest { + static get isLittleEndian() { + return shadow( + this, + 'isLittleEndian', + (function isLittleEndian() { + const e = new Uint8Array(4); + e[0] = 1; + return 1 === new Uint32Array(e.buffer, 0, 1)[0]; + })(), + ); + } + static get isEvalSupported() { + return shadow( + this, + 'isEvalSupported', + (function isEvalSupported() { + try { + new Function(''); + return !0; + } catch (e) { + return !1; + } + })(), + ); + } + static get isOffscreenCanvasSupported() { + return shadow( + this, + 'isOffscreenCanvasSupported', + 'undefined' != typeof OffscreenCanvas, + ); + } + static get platform() { + return 'undefined' == typeof navigator + ? shadow(this, 'platform', { isWin: !1, isMac: !1 }) + : shadow(this, 'platform', { + isWin: navigator.platform.includes('Win'), + isMac: navigator.platform.includes('Mac'), + }); + } + }; + const n = [...Array(256).keys()].map((e) => e.toString(16).padStart(2, '0')); + class Util { + static makeHexColor(e, t, a) { + return `#${n[e]}${n[t]}${n[a]}`; + } + static scaleMinMax(e, t) { + let a; + if (e[0]) { + if (e[0] < 0) { + a = t[0]; + t[0] = t[1]; + t[1] = a; + } + t[0] *= e[0]; + t[1] *= e[0]; + if (e[3] < 0) { + a = t[2]; + t[2] = t[3]; + t[3] = a; + } + t[2] *= e[3]; + t[3] *= e[3]; + } else { + a = t[0]; + t[0] = t[2]; + t[2] = a; + a = t[1]; + t[1] = t[3]; + t[3] = a; + if (e[1] < 0) { + a = t[2]; + t[2] = t[3]; + t[3] = a; + } + t[2] *= e[1]; + t[3] *= e[1]; + if (e[2] < 0) { + a = t[0]; + t[0] = t[1]; + t[1] = a; + } + t[0] *= e[2]; + t[1] *= e[2]; + } + t[0] += e[4]; + t[1] += e[4]; + t[2] += e[5]; + t[3] += e[5]; + } + static transform(e, t) { + return [ + e[0] * t[0] + e[2] * t[1], + e[1] * t[0] + e[3] * t[1], + e[0] * t[2] + e[2] * t[3], + e[1] * t[2] + e[3] * t[3], + e[0] * t[4] + e[2] * t[5] + e[4], + e[1] * t[4] + e[3] * t[5] + e[5], + ]; + } + static applyTransform(e, t) { + return [e[0] * t[0] + e[1] * t[2] + t[4], e[0] * t[1] + e[1] * t[3] + t[5]]; + } + static applyInverseTransform(e, t) { + const a = t[0] * t[3] - t[1] * t[2]; + return [ + (e[0] * t[3] - e[1] * t[2] + t[2] * t[5] - t[4] * t[3]) / a, + (-e[0] * t[1] + e[1] * t[0] + t[4] * t[1] - t[5] * t[0]) / a, + ]; + } + static getAxialAlignedBoundingBox(e, t) { + const a = Util.applyTransform(e, t), + r = Util.applyTransform(e.slice(2, 4), t), + i = Util.applyTransform([e[0], e[3]], t), + n = Util.applyTransform([e[2], e[1]], t); + return [ + Math.min(a[0], r[0], i[0], n[0]), + Math.min(a[1], r[1], i[1], n[1]), + Math.max(a[0], r[0], i[0], n[0]), + Math.max(a[1], r[1], i[1], n[1]), + ]; + } + static inverseTransform(e) { + const t = e[0] * e[3] - e[1] * e[2]; + return [ + e[3] / t, + -e[1] / t, + -e[2] / t, + e[0] / t, + (e[2] * e[5] - e[4] * e[3]) / t, + (e[4] * e[1] - e[5] * e[0]) / t, + ]; + } + static singularValueDecompose2dScale(e) { + const t = [e[0], e[2], e[1], e[3]], + a = e[0] * t[0] + e[1] * t[2], + r = e[0] * t[1] + e[1] * t[3], + i = e[2] * t[0] + e[3] * t[2], + n = e[2] * t[1] + e[3] * t[3], + s = (a + n) / 2, + o = Math.sqrt((a + n) ** 2 - 4 * (a * n - i * r)) / 2, + c = s + o || 1, + l = s - o || 1; + return [Math.sqrt(c), Math.sqrt(l)]; + } + static normalizeRect(e) { + const t = e.slice(0); + if (e[0] > e[2]) { + t[0] = e[2]; + t[2] = e[0]; + } + if (e[1] > e[3]) { + t[1] = e[3]; + t[3] = e[1]; + } + return t; + } + static intersect(e, t) { + const a = Math.max(Math.min(e[0], e[2]), Math.min(t[0], t[2])), + r = Math.min(Math.max(e[0], e[2]), Math.max(t[0], t[2])); + if (a > r) return null; + const i = Math.max(Math.min(e[1], e[3]), Math.min(t[1], t[3])), + n = Math.min(Math.max(e[1], e[3]), Math.max(t[1], t[3])); + return i > n ? null : [a, i, r, n]; + } + static bezierBoundingBox(e, t, a, r, i, n, s, o) { + const c = [], + l = [[], []]; + let h, u, d, f, g, p, m, b; + for (let l = 0; l < 2; ++l) { + if (0 === l) { + u = 6 * e - 12 * a + 6 * i; + h = -3 * e + 9 * a - 9 * i + 3 * s; + d = 3 * a - 3 * e; + } else { + u = 6 * t - 12 * r + 6 * n; + h = -3 * t + 9 * r - 9 * n + 3 * o; + d = 3 * r - 3 * t; + } + if (Math.abs(h) < 1e-12) { + if (Math.abs(u) < 1e-12) continue; + f = -d / u; + 0 < f && f < 1 && c.push(f); + } else { + m = u * u - 4 * d * h; + b = Math.sqrt(m); + if (!(m < 0)) { + g = (-u + b) / (2 * h); + 0 < g && g < 1 && c.push(g); + p = (-u - b) / (2 * h); + 0 < p && p < 1 && c.push(p); + } + } + } + let y, + w = c.length; + const S = w; + for (; w--; ) { + f = c[w]; + y = 1 - f; + l[0][w] = y * y * y * e + 3 * y * y * f * a + 3 * y * f * f * i + f * f * f * s; + l[1][w] = y * y * y * t + 3 * y * y * f * r + 3 * y * f * f * n + f * f * f * o; + } + l[0][S] = e; + l[1][S] = t; + l[0][S + 1] = s; + l[1][S + 1] = o; + l[0].length = l[1].length = S + 2; + return [Math.min(...l[0]), Math.min(...l[1]), Math.max(...l[0]), Math.max(...l[1])]; + } + } + t.Util = Util; + const s = [ + 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, + ]; + function stringToUTF8String(e) { + return decodeURIComponent(escape(e)); + } + t.PromiseCapability = class PromiseCapability { + #e = !1; + constructor() { + this.promise = new Promise((e, t) => { + this.resolve = (t) => { + this.#e = !0; + e(t); + }; + this.reject = (e) => { + this.#e = !0; + t(e); + }; + }); + } + get settled() { + return this.#e; + } + }; + let o = null, + c = null; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XRefParseException = + t.XRefEntryException = + t.ParserEOFException = + t.PDF_VERSION_REGEXP = + t.MissingDataException = + void 0; + t.arrayBuffersToBytes = function arrayBuffersToBytes(e) { + const t = e.length; + if (0 === t) return new Uint8Array(0); + if (1 === t) return new Uint8Array(e[0]); + let a = 0; + for (let r = 0; r < t; r++) a += e[r].byteLength; + const r = new Uint8Array(a); + let i = 0; + for (let a = 0; a < t; a++) { + const t = new Uint8Array(e[a]); + r.set(t, i); + i += t.byteLength; + } + return r; + }; + t.collectActions = function collectActions(e, t, a) { + const n = Object.create(null), + s = getInheritableProperty({ dict: t, key: 'AA', stopWhenFound: !1 }); + if (s) + for (let t = s.length - 1; t >= 0; t--) { + const r = s[t]; + if (r instanceof i.Dict) + for (const t of r.getKeys()) { + const s = a[t]; + if (!s) continue; + const o = []; + _collectJS(r.getRaw(t), e, o, new i.RefSet()); + o.length > 0 && (n[s] = o); + } + } + if (t.has('A')) { + const a = []; + _collectJS(t.get('A'), e, a, new i.RefSet()); + a.length > 0 && (n.Action = a); + } + return (0, r.objectSize)(n) > 0 ? n : null; + }; + t.encodeToXmlString = function encodeToXmlString(e) { + const t = []; + let a = 0; + for (let r = 0, i = e.length; r < i; r++) { + const i = e.codePointAt(r); + if (32 <= i && i <= 126) { + const n = o[i]; + if (n) { + a < r && t.push(e.substring(a, r)); + t.push(n); + a = r + 1; + } + } else { + a < r && t.push(e.substring(a, r)); + t.push(`&#x${i.toString(16).toUpperCase()};`); + i > 55295 && (i < 57344 || i > 65533) && r++; + a = r + 1; + } + } + if (0 === t.length) return e; + a < e.length && t.push(e.substring(a, e.length)); + return t.join(''); + }; + t.escapePDFName = function escapePDFName(e) { + const t = []; + let a = 0; + for (let r = 0, i = e.length; r < i; r++) { + const i = e.charCodeAt(r); + if ( + i < 33 || + i > 126 || + 35 === i || + 40 === i || + 41 === i || + 60 === i || + 62 === i || + 91 === i || + 93 === i || + 123 === i || + 125 === i || + 47 === i || + 37 === i + ) { + a < r && t.push(e.substring(a, r)); + t.push(`#${i.toString(16)}`); + a = r + 1; + } + } + if (0 === t.length) return e; + a < e.length && t.push(e.substring(a, e.length)); + return t.join(''); + }; + t.escapeString = function escapeString(e) { + return e.replaceAll(/([()\\\n\r])/g, (e) => + '\n' === e ? '\\n' : '\r' === e ? '\\r' : `\\${e}`, + ); + }; + t.getInheritableProperty = getInheritableProperty; + t.getLookupTableFactory = function getLookupTableFactory(e) { + let t; + return function () { + if (e) { + t = Object.create(null); + e(t); + e = null; + } + return t; + }; + }; + t.getNewAnnotationsMap = function getNewAnnotationsMap(e) { + if (!e) return null; + const t = new Map(); + for (const [a, i] of e) { + if (!a.startsWith(r.AnnotationEditorPrefix)) continue; + let e = t.get(i.pageIndex); + if (!e) { + e = []; + t.set(i.pageIndex, e); + } + e.push(i); + } + return t.size > 0 ? t : null; + }; + t.getRotationMatrix = function getRotationMatrix(e, t, a) { + switch (e) { + case 90: + return [0, 1, -1, 0, t, 0]; + case 180: + return [-1, 0, 0, -1, t, a]; + case 270: + return [0, -1, 1, 0, 0, a]; + default: + throw new Error('Invalid rotation'); + } + }; + t.isAscii = function isAscii(e) { + return /^[\x00-\x7F]*$/.test(e); + }; + t.isWhiteSpace = function isWhiteSpace(e) { + return 32 === e || 9 === e || 13 === e || 10 === e; + }; + t.log2 = function log2(e) { + if (e <= 0) return 0; + return Math.ceil(Math.log2(e)); + }; + t.numberToString = function numberToString(e) { + if (Number.isInteger(e)) return e.toString(); + const t = Math.round(100 * e); + if (t % 100 == 0) return (t / 100).toString(); + if (t % 10 == 0) return e.toFixed(1); + return e.toFixed(2); + }; + t.parseXFAPath = function parseXFAPath(e) { + const t = /(.+)\[(\d+)\]$/; + return e.split('.').map((e) => { + const a = e.match(t); + return a ? { name: a[1], pos: parseInt(a[2], 10) } : { name: e, pos: 0 }; + }); + }; + t.readInt8 = function readInt8(e, t) { + return (e[t] << 24) >> 24; + }; + t.readUint16 = function readUint16(e, t) { + return (e[t] << 8) | e[t + 1]; + }; + t.readUint32 = function readUint32(e, t) { + return ((e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]) >>> 0; + }; + t.recoverJsURL = function recoverJsURL(e) { + const t = new RegExp( + '^\\s*(' + + ['app.launchURL', 'window.open', 'xfa.host.gotoURL'] + .join('|') + .replaceAll('.', '\\.') + + ')\\((?:\'|")([^\'"]*)(?:\'|")(?:,\\s*(\\w+)\\)|\\))', + 'i', + ).exec(e); + if (t && t[2]) { + const e = t[2]; + let a = !1; + 'true' === t[3] && 'app.launchURL' === t[1] && (a = !0); + return { url: e, newWindow: a }; + } + return null; + }; + t.stringToUTF16HexString = function stringToUTF16HexString(e) { + const t = []; + for (let a = 0, r = e.length; a < r; a++) { + const r = e.charCodeAt(a); + t.push( + ((r >> 8) & 255).toString(16).padStart(2, '0'), + (255 & r).toString(16).padStart(2, '0'), + ); + } + return t.join(''); + }; + t.stringToUTF16String = function stringToUTF16String(e, t = !1) { + const a = []; + t && a.push('þÿ'); + for (let t = 0, r = e.length; t < r; t++) { + const r = e.charCodeAt(t); + a.push(String.fromCharCode((r >> 8) & 255), String.fromCharCode(255 & r)); + } + return a.join(''); + }; + t.toRomanNumerals = function toRomanNumerals(e, t = !1) { + (0, r.assert)(Number.isInteger(e) && e > 0, 'The number should be a positive integer.'); + const a = []; + let i; + for (; e >= 1e3; ) { + e -= 1e3; + a.push('M'); + } + i = (e / 100) | 0; + e %= 100; + a.push(s[i]); + i = (e / 10) | 0; + e %= 10; + a.push(s[10 + i]); + a.push(s[20 + e]); + const n = a.join(''); + return t ? n.toLowerCase() : n; + }; + t.validateCSSFont = function validateCSSFont(e) { + const t = new Set([ + '100', + '200', + '300', + '400', + '500', + '600', + '700', + '800', + '900', + '1000', + 'normal', + 'bold', + 'bolder', + 'lighter', + ]), + { fontFamily: a, fontWeight: i, italicAngle: n } = e, + s = /^("|').*("|')$/.exec(a); + if (s && s[1] === s[2]) { + if (new RegExp(`[^\\\\]${s[1]}`).test(a.slice(1, -1))) { + (0, r.warn)(`XFA - FontFamily contains unescaped ${s[1]}: ${a}.`); + return !1; + } + } else + for (const e of a.split(/[ \t]+/)) + if (/^(\d|(-(\d|-)))/.test(e) || !/^[\w-\\]+$/.test(e)) { + (0, r.warn)(`XFA - FontFamily contains invalid : ${a}.`); + return !1; + } + const o = i ? i.toString() : ''; + e.fontWeight = t.has(o) ? o : '400'; + const c = parseFloat(n); + e.italicAngle = isNaN(c) || c < -90 || c > 90 ? '14' : n.toString(); + return !0; + }; + var r = a(2), + i = a(4), + n = a(5); + t.PDF_VERSION_REGEXP = /^[1-9]\.\d$/; + class MissingDataException extends r.BaseException { + constructor(e, t) { + super(`Missing data [${e}, ${t})`, 'MissingDataException'); + this.begin = e; + this.end = t; + } + } + t.MissingDataException = MissingDataException; + class ParserEOFException extends r.BaseException { + constructor(e) { + super(e, 'ParserEOFException'); + } + } + t.ParserEOFException = ParserEOFException; + class XRefEntryException extends r.BaseException { + constructor(e) { + super(e, 'XRefEntryException'); + } + } + t.XRefEntryException = XRefEntryException; + class XRefParseException extends r.BaseException { + constructor(e) { + super(e, 'XRefParseException'); + } + } + t.XRefParseException = XRefParseException; + function getInheritableProperty({ + dict: e, + key: t, + getArray: a = !1, + stopWhenFound: r = !0, + }) { + let n; + const s = new i.RefSet(); + for (; e instanceof i.Dict && (!e.objId || !s.has(e.objId)); ) { + e.objId && s.put(e.objId); + const i = a ? e.getArray(t) : e.get(t); + if (void 0 !== i) { + if (r) return i; + (n ||= []).push(i); + } + e = e.get('Parent'); + } + return n; + } + const s = [ + '', + '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', + ]; + function _collectJS(e, t, a, s) { + if (!e) return; + let o = null; + if (e instanceof i.Ref) { + if (s.has(e)) return; + o = e; + s.put(o); + e = t.fetch(e); + } + if (Array.isArray(e)) for (const r of e) _collectJS(r, t, a, s); + else if (e instanceof i.Dict) { + if ((0, i.isName)(e.get('S'), 'JavaScript')) { + const t = e.get('JS'); + let i; + t instanceof n.BaseStream ? (i = t.getString()) : 'string' == typeof t && (i = t); + i &&= (0, r.stringToPDFString)(i).replaceAll('\0', ''); + i && a.push(i); + } + _collectJS(e.getRaw('Next'), t, a, s); + } + o && s.remove(o); + } + const o = { 60: '<', 62: '>', 38: '&', 34: '"', 39: ''' }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.RefSetCache = + t.RefSet = + t.Ref = + t.Name = + t.EOF = + t.Dict = + t.Cmd = + t.CIRCULAR_REF = + void 0; + t.clearPrimitiveCaches = function clearPrimitiveCaches() { + s = Object.create(null); + o = Object.create(null); + c = Object.create(null); + }; + t.isCmd = function isCmd(e, t) { + return e instanceof Cmd && (void 0 === t || e.cmd === t); + }; + t.isDict = function isDict(e, t) { + return e instanceof Dict && (void 0 === t || isName(e.get('Type'), t)); + }; + t.isName = isName; + t.isRefsEqual = function isRefsEqual(e, t) { + return e.num === t.num && e.gen === t.gen; + }; + var r = a(2); + const i = Symbol('CIRCULAR_REF'); + t.CIRCULAR_REF = i; + const n = Symbol('EOF'); + t.EOF = n; + let s = Object.create(null), + o = Object.create(null), + c = Object.create(null); + class Name { + constructor(e) { + this.name = e; + } + static get(e) { + return (o[e] ||= new Name(e)); + } + } + t.Name = Name; + class Cmd { + constructor(e) { + this.cmd = e; + } + static get(e) { + return (s[e] ||= new Cmd(e)); + } + } + t.Cmd = Cmd; + const l = function nonSerializableClosure() { + return l; + }; + class Dict { + constructor(e = null) { + this._map = Object.create(null); + this.xref = e; + this.objId = null; + this.suppressEncryption = !1; + this.__nonSerializable__ = l; + } + assignXref(e) { + this.xref = e; + } + get size() { + return Object.keys(this._map).length; + } + get(e, t, a) { + let r = this._map[e]; + if (void 0 === r && void 0 !== t) { + r = this._map[t]; + void 0 === r && void 0 !== a && (r = this._map[a]); + } + return r instanceof Ref && this.xref + ? this.xref.fetch(r, this.suppressEncryption) + : r; + } + async getAsync(e, t, a) { + let r = this._map[e]; + if (void 0 === r && void 0 !== t) { + r = this._map[t]; + void 0 === r && void 0 !== a && (r = this._map[a]); + } + return r instanceof Ref && this.xref + ? this.xref.fetchAsync(r, this.suppressEncryption) + : r; + } + getArray(e, t, a) { + let r = this._map[e]; + if (void 0 === r && void 0 !== t) { + r = this._map[t]; + void 0 === r && void 0 !== a && (r = this._map[a]); + } + r instanceof Ref && this.xref && (r = this.xref.fetch(r, this.suppressEncryption)); + if (Array.isArray(r)) { + r = r.slice(); + for (let e = 0, t = r.length; e < t; e++) + r[e] instanceof Ref && + this.xref && + (r[e] = this.xref.fetch(r[e], this.suppressEncryption)); + } + return r; + } + getRaw(e) { + return this._map[e]; + } + getKeys() { + return Object.keys(this._map); + } + getRawValues() { + return Object.values(this._map); + } + set(e, t) { + this._map[e] = t; + } + has(e) { + return void 0 !== this._map[e]; + } + forEach(e) { + for (const t in this._map) e(t, this.get(t)); + } + static get empty() { + const e = new Dict(null); + e.set = (e, t) => { + (0, r.unreachable)('Should not call `set` on the empty dictionary.'); + }; + return (0, r.shadow)(this, 'empty', e); + } + static merge({ xref: e, dictArray: t, mergeSubDicts: a = !1 }) { + const r = new Dict(e), + i = new Map(); + for (const e of t) + if (e instanceof Dict) + for (const [t, r] of Object.entries(e._map)) { + let e = i.get(t); + if (void 0 === e) { + e = []; + i.set(t, e); + } else if (!(a && r instanceof Dict)) continue; + e.push(r); + } + for (const [t, a] of i) { + if (1 === a.length || !(a[0] instanceof Dict)) { + r._map[t] = a[0]; + continue; + } + const i = new Dict(e); + for (const e of a) + for (const [t, a] of Object.entries(e._map)) + void 0 === i._map[t] && (i._map[t] = a); + i.size > 0 && (r._map[t] = i); + } + i.clear(); + return r.size > 0 ? r : Dict.empty; + } + } + t.Dict = Dict; + class Ref { + constructor(e, t) { + this.num = e; + this.gen = t; + } + toString() { + return 0 === this.gen ? `${this.num}R` : `${this.num}R${this.gen}`; + } + static get(e, t) { + const a = 0 === t ? `${e}R` : `${e}R${t}`; + return (c[a] ||= new Ref(e, t)); + } + } + t.Ref = Ref; + class RefSet { + constructor(e = null) { + this._set = new Set(e && 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(); + } + } + t.RefSet = RefSet; + class RefSetCache { + constructor() { + this._map = 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, t) { + this._map.set(e.toString(), t); + } + putAlias(e, t) { + this._map.set(e.toString(), this.get(t)); + } + [Symbol.iterator]() { + return this._map.values(); + } + clear() { + this._map.clear(); + } + } + t.RefSetCache = RefSetCache; + function isName(e, t) { + return e instanceof Name && (void 0 === t || e.name === t); + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.BaseStream = void 0; + var r = a(2); + class BaseStream { + constructor() { + this.constructor === BaseStream && + (0, r.unreachable)('Cannot initialize BaseStream.'); + } + get length() { + (0, r.unreachable)('Abstract getter `length` accessed'); + } + get isEmpty() { + (0, r.unreachable)('Abstract getter `isEmpty` accessed'); + } + get isDataLoaded() { + return (0, r.shadow)(this, 'isDataLoaded', !0); + } + getByte() { + (0, r.unreachable)('Abstract method `getByte` called'); + } + getBytes(e) { + (0, r.unreachable)('Abstract method `getBytes` called'); + } + peekByte() { + const e = this.getByte(); + -1 !== e && this.pos--; + return e; + } + peekBytes(e) { + const t = this.getBytes(e); + this.pos -= t.length; + return t; + } + getUint16() { + const e = this.getByte(), + t = this.getByte(); + return -1 === e || -1 === t ? -1 : (e << 8) + t; + } + getInt32() { + return ( + (this.getByte() << 24) + + (this.getByte() << 16) + + (this.getByte() << 8) + + this.getByte() + ); + } + getByteRange(e, t) { + (0, r.unreachable)('Abstract method `getByteRange` called'); + } + getString(e) { + return (0, r.bytesToString)(this.getBytes(e)); + } + skip(e) { + this.pos += e || 1; + } + reset() { + (0, r.unreachable)('Abstract method `reset` called'); + } + moveStart() { + (0, r.unreachable)('Abstract method `moveStart` called'); + } + makeSubStream(e, t, a = null) { + (0, r.unreachable)('Abstract method `makeSubStream` called'); + } + getBaseStreams() { + return null; + } + } + t.BaseStream = BaseStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.NetworkPdfManager = t.LocalPdfManager = void 0; + var r = a(2), + i = a(7), + n = a(3), + s = a(9), + o = a(8); + class BasePdfManager { + constructor(e) { + this.constructor === BasePdfManager && + (0, r.unreachable)('Cannot initialize BasePdfManager.'); + this._docBaseUrl = (function parseDocBaseUrl(e) { + if (e) { + const t = (0, r.createValidAbsoluteUrl)(e); + if (t) return t.href; + (0, r.warn)(`Invalid absolute docBaseUrl: "${e}".`); + } + return null; + })(e.docBaseUrl); + this._docId = e.docId; + this._password = e.password; + this.enableXfa = e.enableXfa; + e.evaluatorOptions.isOffscreenCanvasSupported &&= + r.FeatureTest.isOffscreenCanvasSupported; + this.evaluatorOptions = e.evaluatorOptions; + } + get docId() { + return this._docId; + } + get password() { + return this._password; + } + get docBaseUrl() { + const e = this.pdfDocument.catalog; + return (0, r.shadow)(this, 'docBaseUrl', e.baseUrl || this._docBaseUrl); + } + ensureDoc(e, t) { + return this.ensure(this.pdfDocument, e, t); + } + ensureXRef(e, t) { + return this.ensure(this.pdfDocument.xref, e, t); + } + ensureCatalog(e, t) { + return this.ensure(this.pdfDocument.catalog, e, t); + } + getPage(e) { + return this.pdfDocument.getPage(e); + } + fontFallback(e, t) { + return this.pdfDocument.fontFallback(e, t); + } + loadXfaFonts(e, t) { + return this.pdfDocument.loadXfaFonts(e, t); + } + loadXfaImages() { + return this.pdfDocument.loadXfaImages(); + } + serializeXfaData(e) { + return this.pdfDocument.serializeXfaData(e); + } + cleanup(e = !1) { + return this.pdfDocument.cleanup(e); + } + async ensure(e, t, a) { + (0, r.unreachable)('Abstract method `ensure` called'); + } + requestRange(e, t) { + (0, r.unreachable)('Abstract method `requestRange` called'); + } + requestLoadedStream(e = !1) { + (0, r.unreachable)('Abstract method `requestLoadedStream` called'); + } + sendProgressiveData(e) { + (0, r.unreachable)('Abstract method `sendProgressiveData` called'); + } + updatePassword(e) { + this._password = e; + } + terminate(e) { + (0, r.unreachable)('Abstract method `terminate` called'); + } + } + t.LocalPdfManager = class LocalPdfManager extends BasePdfManager { + constructor(e) { + super(e); + const t = new o.Stream(e.source); + this.pdfDocument = new s.PDFDocument(this, t); + this._loadedStreamPromise = Promise.resolve(t); + } + async ensure(e, t, a) { + const r = e[t]; + return 'function' == typeof r ? r.apply(e, a) : r; + } + requestRange(e, t) { + return Promise.resolve(); + } + requestLoadedStream(e = !1) { + return this._loadedStreamPromise; + } + terminate(e) {} + }; + t.NetworkPdfManager = class NetworkPdfManager extends BasePdfManager { + constructor(e) { + super(e); + this.streamManager = new i.ChunkedStreamManager(e.source, { + msgHandler: e.handler, + length: e.length, + disableAutoFetch: e.disableAutoFetch, + rangeChunkSize: e.rangeChunkSize, + }); + this.pdfDocument = new s.PDFDocument(this, this.streamManager.getStream()); + } + async ensure(e, t, a) { + try { + const r = e[t]; + return 'function' == typeof r ? r.apply(e, a) : r; + } catch (r) { + if (!(r instanceof n.MissingDataException)) throw r; + await this.requestRange(r.begin, r.end); + return this.ensure(e, t, a); + } + } + requestRange(e, t) { + return this.streamManager.requestRange(e, t); + } + requestLoadedStream(e = !1) { + return this.streamManager.requestAllChunks(e); + } + sendProgressiveData(e) { + this.streamManager.onReceiveData({ chunk: e }); + } + terminate(e) { + this.streamManager.abort(e); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ChunkedStreamManager = t.ChunkedStream = void 0; + var r = a(3), + i = a(2), + n = a(8); + class ChunkedStream extends n.Stream { + constructor(e, t, a) { + super(new Uint8Array(e), 0, e, null); + this.chunkSize = t; + this._loadedChunks = new Set(); + this.numChunks = Math.ceil(e / t); + this.manager = a; + this.progressiveDataLength = 0; + this.lastSuccessfulEnsureByteChunk = -1; + } + getMissingChunks() { + const e = []; + for (let t = 0, a = this.numChunks; t < a; ++t) + this._loadedChunks.has(t) || e.push(t); + return e; + } + get numChunksLoaded() { + return this._loadedChunks.size; + } + get isDataLoaded() { + return this.numChunksLoaded === this.numChunks; + } + onReceiveData(e, t) { + const a = this.chunkSize; + if (e % a != 0) throw new Error(`Bad begin offset: ${e}`); + const r = e + t.byteLength; + if (r % a != 0 && r !== this.bytes.length) throw new Error(`Bad end offset: ${r}`); + this.bytes.set(new Uint8Array(t), e); + const i = Math.floor(e / a), + n = Math.floor((r - 1) / a) + 1; + for (let e = i; e < n; ++e) this._loadedChunks.add(e); + } + onReceiveProgressiveData(e) { + let t = this.progressiveDataLength; + const a = Math.floor(t / this.chunkSize); + this.bytes.set(new Uint8Array(e), t); + t += e.byteLength; + this.progressiveDataLength = t; + const r = t >= this.end ? this.numChunks : Math.floor(t / this.chunkSize); + for (let e = a; e < r; ++e) this._loadedChunks.add(e); + } + ensureByte(e) { + if (e < this.progressiveDataLength) return; + const t = Math.floor(e / this.chunkSize); + if (!(t > this.numChunks) && t !== this.lastSuccessfulEnsureByteChunk) { + if (!this._loadedChunks.has(t)) throw new r.MissingDataException(e, e + 1); + this.lastSuccessfulEnsureByteChunk = t; + } + } + ensureRange(e, t) { + if (e >= t) return; + if (t <= this.progressiveDataLength) return; + const a = Math.floor(e / this.chunkSize); + if (a > this.numChunks) return; + const i = Math.min(Math.floor((t - 1) / this.chunkSize) + 1, this.numChunks); + for (let n = a; n < i; ++n) + if (!this._loadedChunks.has(n)) throw new r.MissingDataException(e, t); + } + nextEmptyChunk(e) { + const t = this.numChunks; + for (let a = 0; a < t; ++a) { + const r = (e + a) % t; + if (!this._loadedChunks.has(r)) return r; + } + return null; + } + hasChunk(e) { + return this._loadedChunks.has(e); + } + getByte() { + const e = this.pos; + if (e >= this.end) return -1; + e >= this.progressiveDataLength && this.ensureByte(e); + return this.bytes[this.pos++]; + } + getBytes(e) { + const t = this.bytes, + a = this.pos, + r = this.end; + if (!e) { + r > this.progressiveDataLength && this.ensureRange(a, r); + return t.subarray(a, r); + } + let i = a + e; + i > r && (i = r); + i > this.progressiveDataLength && this.ensureRange(a, i); + this.pos = i; + return t.subarray(a, i); + } + getByteRange(e, t) { + e < 0 && (e = 0); + t > this.end && (t = this.end); + t > this.progressiveDataLength && this.ensureRange(e, t); + return this.bytes.subarray(e, t); + } + makeSubStream(e, t, a = null) { + t + ? e + t > this.progressiveDataLength && this.ensureRange(e, e + t) + : e >= this.progressiveDataLength && this.ensureByte(e); + function ChunkedStreamSubstream() {} + ChunkedStreamSubstream.prototype = Object.create(this); + ChunkedStreamSubstream.prototype.getMissingChunks = function () { + const e = this.chunkSize, + t = Math.floor(this.start / e), + a = Math.floor((this.end - 1) / e) + 1, + r = []; + for (let e = t; e < a; ++e) this._loadedChunks.has(e) || r.push(e); + return r; + }; + Object.defineProperty(ChunkedStreamSubstream.prototype, 'isDataLoaded', { + get() { + return ( + this.numChunksLoaded === this.numChunks || 0 === this.getMissingChunks().length + ); + }, + configurable: !0, + }); + const r = new ChunkedStreamSubstream(); + r.pos = r.start = e; + r.end = e + t || this.end; + r.dict = a; + return r; + } + getBaseStreams() { + return [this]; + } + } + t.ChunkedStream = ChunkedStream; + t.ChunkedStreamManager = class ChunkedStreamManager { + constructor(e, t) { + this.length = t.length; + this.chunkSize = t.rangeChunkSize; + this.stream = new ChunkedStream(this.length, this.chunkSize, this); + this.pdfNetworkStream = e; + this.disableAutoFetch = t.disableAutoFetch; + this.msgHandler = t.msgHandler; + this.currRequestId = 0; + this._chunksNeededByRequest = new Map(); + this._requestsByChunk = new Map(); + this._promisesByRequest = new Map(); + this.progressiveDataLength = 0; + this.aborted = !1; + this._loadedStreamCapability = new i.PromiseCapability(); + } + sendRequest(e, t) { + const a = this.pdfNetworkStream.getRangeReader(e, t); + a.isStreamingSupported || (a.onProgress = this.onProgress.bind(this)); + let i = [], + n = 0; + return new Promise((e, t) => { + const readChunk = ({ value: s, done: o }) => { + try { + if (o) { + const t = (0, r.arrayBuffersToBytes)(i); + i = null; + e(t); + return; + } + n += s.byteLength; + a.isStreamingSupported && this.onProgress({ loaded: n }); + i.push(s); + a.read().then(readChunk, t); + } catch (e) { + t(e); + } + }; + a.read().then(readChunk, t); + }).then((t) => { + this.aborted || this.onReceiveData({ chunk: t, begin: e }); + }); + } + requestAllChunks(e = !1) { + if (!e) { + const e = this.stream.getMissingChunks(); + this._requestChunks(e); + } + return this._loadedStreamCapability.promise; + } + _requestChunks(e) { + const t = this.currRequestId++, + a = new Set(); + this._chunksNeededByRequest.set(t, a); + for (const t of e) this.stream.hasChunk(t) || a.add(t); + if (0 === a.size) return Promise.resolve(); + const r = new i.PromiseCapability(); + this._promisesByRequest.set(t, r); + const n = []; + for (const e of a) { + let a = this._requestsByChunk.get(e); + if (!a) { + a = []; + this._requestsByChunk.set(e, a); + n.push(e); + } + a.push(t); + } + if (n.length > 0) { + const e = this.groupChunks(n); + for (const t of e) { + const e = t.beginChunk * this.chunkSize, + a = Math.min(t.endChunk * this.chunkSize, this.length); + this.sendRequest(e, a).catch(r.reject); + } + } + return r.promise.catch((e) => { + if (!this.aborted) throw e; + }); + } + getStream() { + return this.stream; + } + requestRange(e, t) { + t = Math.min(t, this.length); + const a = this.getBeginChunk(e), + r = this.getEndChunk(t), + i = []; + for (let e = a; e < r; ++e) i.push(e); + return this._requestChunks(i); + } + requestRanges(e = []) { + const t = []; + for (const a of e) { + const e = this.getBeginChunk(a.begin), + r = this.getEndChunk(a.end); + for (let a = e; a < r; ++a) t.includes(a) || t.push(a); + } + t.sort(function (e, t) { + return e - t; + }); + return this._requestChunks(t); + } + groupChunks(e) { + const t = []; + let a = -1, + r = -1; + for (let i = 0, n = e.length; i < n; ++i) { + const n = e[i]; + a < 0 && (a = n); + if (r >= 0 && r + 1 !== n) { + t.push({ beginChunk: a, endChunk: r + 1 }); + a = n; + } + i + 1 === e.length && t.push({ beginChunk: a, endChunk: n + 1 }); + r = n; + } + return t; + } + onProgress(e) { + this.msgHandler.send('DocProgress', { + loaded: this.stream.numChunksLoaded * this.chunkSize + e.loaded, + total: this.length, + }); + } + onReceiveData(e) { + const t = e.chunk, + a = void 0 === e.begin, + r = a ? this.progressiveDataLength : e.begin, + i = r + t.byteLength, + n = Math.floor(r / this.chunkSize), + s = + i < this.length ? Math.floor(i / this.chunkSize) : Math.ceil(i / this.chunkSize); + if (a) { + this.stream.onReceiveProgressiveData(t); + this.progressiveDataLength = i; + } else this.stream.onReceiveData(r, t); + this.stream.isDataLoaded && this._loadedStreamCapability.resolve(this.stream); + const o = []; + for (let e = n; e < s; ++e) { + const t = this._requestsByChunk.get(e); + if (t) { + this._requestsByChunk.delete(e); + for (const a of t) { + const t = this._chunksNeededByRequest.get(a); + t.has(e) && t.delete(e); + t.size > 0 || o.push(a); + } + } + } + if (!this.disableAutoFetch && 0 === this._requestsByChunk.size) { + let e; + if (1 === this.stream.numChunksLoaded) { + const t = this.stream.numChunks - 1; + this.stream.hasChunk(t) || (e = t); + } else e = this.stream.nextEmptyChunk(s); + Number.isInteger(e) && this._requestChunks([e]); + } + for (const e of o) { + const t = this._promisesByRequest.get(e); + this._promisesByRequest.delete(e); + t.resolve(); + } + this.msgHandler.send('DocProgress', { + loaded: this.stream.numChunksLoaded * this.chunkSize, + total: this.length, + }); + } + 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 = !0; + this.pdfNetworkStream && this.pdfNetworkStream.cancelAllRequests(e); + for (const t of this._promisesByRequest.values()) t.reject(e); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.StringStream = t.Stream = t.NullStream = void 0; + var r = a(5), + i = a(2); + class Stream extends r.BaseStream { + constructor(e, t, a, r) { + super(); + this.bytes = e instanceof Uint8Array ? e : new Uint8Array(e); + this.start = t || 0; + this.pos = this.start; + this.end = t + a || this.bytes.length; + this.dict = r; + } + get length() { + return this.end - this.start; + } + get isEmpty() { + return 0 === this.length; + } + getByte() { + return this.pos >= this.end ? -1 : this.bytes[this.pos++]; + } + getBytes(e) { + const t = this.bytes, + a = this.pos, + r = this.end; + if (!e) return t.subarray(a, r); + let i = a + e; + i > r && (i = r); + this.pos = i; + return t.subarray(a, i); + } + getByteRange(e, t) { + e < 0 && (e = 0); + t > this.end && (t = this.end); + return this.bytes.subarray(e, t); + } + reset() { + this.pos = this.start; + } + moveStart() { + this.start = this.pos; + } + makeSubStream(e, t, a = null) { + return new Stream(this.bytes.buffer, e, t, a); + } + } + t.Stream = Stream; + t.StringStream = class StringStream extends Stream { + constructor(e) { + super((0, i.stringToBytes)(e)); + } + }; + t.NullStream = class NullStream extends Stream { + constructor() { + super(new Uint8Array(0)); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Page = t.PDFDocument = void 0; + var r = a(10), + i = a(2), + n = a(3), + s = a(4), + o = a(51), + c = a(5), + l = a(67), + h = a(69), + u = a(71), + d = a(100), + f = a(16), + g = a(8), + p = a(75), + m = a(63), + b = a(13), + y = a(18), + w = a(74), + S = a(65), + x = a(76), + C = a(101); + const k = [0, 0, 612, 792]; + class Page { + constructor({ + pdfManager: e, + xref: t, + pageIndex: a, + pageDict: r, + ref: i, + globalIdFactory: n, + fontCache: s, + builtInCMapCache: o, + standardFontDataCache: c, + globalImageCache: l, + nonBlendModesSet: h, + xfaFactory: u, + }) { + this.pdfManager = e; + this.pageIndex = a; + this.pageDict = r; + this.xref = t; + this.ref = i; + this.fontCache = s; + this.builtInCMapCache = o; + this.standardFontDataCache = c; + this.globalImageCache = l; + this.nonBlendModesSet = h; + this.evaluatorOptions = e.evaluatorOptions; + this.resourcesPromise = null; + this.xfaFactory = u; + const d = { obj: 0 }; + this._localIdFactory = class extends n { + static createObjId() { + return `p${a}_${++d.obj}`; + } + static getPageObjId() { + return `page${i.toString()}`; + } + }; + } + _getInheritableProperty(e, t = !1) { + const a = (0, n.getInheritableProperty)({ + dict: this.pageDict, + key: e, + getArray: t, + stopWhenFound: !1, + }); + return Array.isArray(a) + ? 1 !== a.length && a[0] instanceof s.Dict + ? s.Dict.merge({ xref: this.xref, dictArray: a }) + : a[0] + : a; + } + get content() { + return this.pageDict.getArray('Contents'); + } + get resources() { + const e = this._getInheritableProperty('Resources'); + return (0, i.shadow)(this, 'resources', e instanceof s.Dict ? e : s.Dict.empty); + } + _getBoundingBox(e) { + if (this.xfaData) return this.xfaData.bbox; + let t = this._getInheritableProperty(e, !0); + if (Array.isArray(t) && 4 === t.length) { + t = i.Util.normalizeRect(t); + if (t[2] - t[0] > 0 && t[3] - t[1] > 0) return t; + (0, i.warn)(`Empty, or invalid, /${e} entry.`); + } + return null; + } + get mediaBox() { + return (0, i.shadow)(this, 'mediaBox', this._getBoundingBox('MediaBox') || k); + } + get cropBox() { + return (0, i.shadow)( + this, + 'cropBox', + this._getBoundingBox('CropBox') || this.mediaBox, + ); + } + get userUnit() { + let e = this.pageDict.get('UserUnit'); + ('number' != typeof e || e <= 0) && (e = 1); + return (0, i.shadow)(this, 'userUnit', e); + } + get view() { + const { cropBox: e, mediaBox: t } = this; + if (e !== t && !(0, i.isArrayEqual)(e, t)) { + const a = i.Util.intersect(e, t); + if (a && a[2] - a[0] > 0 && a[3] - a[1] > 0) return (0, i.shadow)(this, 'view', a); + (0, i.warn)('Empty /CropBox and /MediaBox intersection.'); + } + return (0, i.shadow)(this, 'view', t); + } + get rotate() { + let e = this._getInheritableProperty('Rotate') || 0; + e % 90 != 0 + ? (e = 0) + : e >= 360 + ? (e %= 360) + : e < 0 && (e = ((e % 360) + 360) % 360); + return (0, i.shadow)(this, 'rotate', e); + } + _onSubStreamError(e, t) { + if (!this.evaluatorOptions.ignoreErrors) throw e; + (0, i.warn)(`getContentStream - ignoring sub-stream (${t}): "${e}".`); + } + getContentStream() { + return this.pdfManager + .ensure(this, 'content') + .then((e) => + e instanceof c.BaseStream + ? e + : Array.isArray(e) + ? new y.StreamsSequenceStream(e, this._onSubStreamError.bind(this)) + : new g.NullStream(), + ); + } + get xfaData() { + return (0, i.shadow)( + this, + 'xfaData', + this.xfaFactory ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) } : null, + ); + } + async saveNewAnnotations(e, t, a) { + if (this.xfaFactory) throw new Error('XFA: Cannot save new annotations.'); + const i = new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }), + n = this.pageDict, + s = this.annotations.slice(), + o = await r.AnnotationFactory.saveNewAnnotations(i, t, a); + for (const { ref: e } of o.annotations) s.push(e); + const c = n.get('Annots'); + n.set('Annots', s); + const l = []; + let h = null; + this.xref.encrypt && + (h = this.xref.encrypt.createCipherTransform(this.ref.num, this.ref.gen)); + (0, S.writeObject)(this.ref, n, l, h); + c && n.set('Annots', c); + const u = o.dependencies; + u.push({ ref: this.ref, data: l.join('') }, ...o.annotations); + return u; + } + save(e, t, a) { + const r = new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }); + return this._parsedAnnotations.then(function (e) { + const n = []; + for (const s of e) + s.mustBePrinted(a) && + n.push( + s.save(r, t, a).catch(function (e) { + (0, + i.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`); + return null; + }), + ); + return Promise.all(n).then(function (e) { + return e.filter((e) => !!e); + }); + }); + } + loadResources(e) { + this.resourcesPromise || + (this.resourcesPromise = this.pdfManager.ensure(this, 'resources')); + return this.resourcesPromise.then(() => + new p.ObjectLoader(this.resources, e, this.xref).load(), + ); + } + getOperatorList({ + handler: e, + sink: t, + task: a, + intent: s, + cacheKey: o, + annotationStorage: c = null, + }) { + const l = this.getContentStream(), + h = this.loadResources([ + 'ColorSpace', + 'ExtGState', + 'Font', + 'Pattern', + 'Properties', + 'Shading', + 'XObject', + ]), + u = new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }), + d = this.xfaFactory ? null : (0, n.getNewAnnotationsMap)(c); + let f = Promise.resolve(null); + if (d) { + const e = d.get(this.pageIndex); + e && (f = r.AnnotationFactory.printNewAnnotations(u, a, e)); + } + const g = Promise.all([l, h]).then(([r]) => { + const i = new m.OperatorList(s, t); + e.send('StartRenderPage', { + transparency: u.hasBlendModes(this.resources, this.nonBlendModesSet), + pageIndex: this.pageIndex, + cacheKey: o, + }); + return u + .getOperatorList({ + stream: r, + task: a, + resources: this.resources, + operatorList: i, + }) + .then(function () { + return i; + }); + }); + return Promise.all([g, this._parsedAnnotations, f]).then(function ([e, t, r]) { + r && (t = t.concat(r)); + if (0 === t.length || s & i.RenderingIntentFlag.ANNOTATIONS_DISABLE) { + e.flush(!0); + return { length: e.totalLength }; + } + const n = !!(s & i.RenderingIntentFlag.ANNOTATIONS_FORMS), + o = !!(s & i.RenderingIntentFlag.ANY), + l = !!(s & i.RenderingIntentFlag.DISPLAY), + h = !!(s & i.RenderingIntentFlag.PRINT), + d = []; + for (const e of t) + (o || (l && e.mustBeViewed(c)) || (h && e.mustBePrinted(c))) && + d.push( + e.getOperatorList(u, a, s, n, c).catch(function (e) { + (0, + i.warn)(`getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`); + return { opList: null, separateForm: !1, separateCanvas: !1 }; + }), + ); + return Promise.all(d).then(function (t) { + let a = !1, + r = !1; + for (const { opList: i, separateForm: n, separateCanvas: s } of t) { + e.addOpList(i); + a ||= n; + r ||= s; + } + e.flush(!0, { form: a, canvas: r }); + return { length: e.totalLength }; + }); + }); + } + extractTextContent({ + handler: e, + task: t, + includeMarkedContent: a, + disableNormalization: r, + sink: i, + }) { + const n = this.getContentStream(), + s = this.loadResources(['ExtGState', 'Font', 'Properties', 'XObject']); + return Promise.all([n, s]).then(([n]) => + new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }).getTextContent({ + stream: n, + task: t, + resources: this.resources, + includeMarkedContent: a, + disableNormalization: r, + sink: i, + viewBox: this.view, + }), + ); + } + async getStructTree() { + const e = await this.pdfManager.ensureCatalog('structTreeRoot'); + if (!e) return null; + return (await this.pdfManager.ensure(this, '_parseStructTree', [e])).serializable; + } + _parseStructTree(e) { + const t = new w.StructTreePage(e, this.pageDict); + t.parse(); + return t; + } + async getAnnotationsData(e, t, a) { + const r = await this._parsedAnnotations; + if (0 === r.length) return []; + const n = [], + s = []; + let o; + const c = !!(a & i.RenderingIntentFlag.ANY), + l = !!(a & i.RenderingIntentFlag.DISPLAY), + h = !!(a & i.RenderingIntentFlag.PRINT); + for (const a of r) { + const r = c || (l && a.viewable); + (r || (h && a.printable)) && n.push(a.data); + if (a.hasTextContent && r) { + o ||= new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions, + }); + s.push( + a.extractTextContent(o, t, this.view).catch(function (e) { + (0, + i.warn)(`getAnnotationsData - ignoring textContent during "${t.name}" task: "${e}".`); + }), + ); + } + } + await Promise.all(s); + return n; + } + get annotations() { + const e = this._getInheritableProperty('Annots'); + return (0, i.shadow)(this, 'annotations', Array.isArray(e) ? e : []); + } + get _parsedAnnotations() { + const e = this.pdfManager.ensure(this, 'annotations').then(() => { + const e = []; + for (const t of this.annotations) + e.push( + r.AnnotationFactory.create( + this.xref, + t, + this.pdfManager, + this._localIdFactory, + !1, + ).catch(function (e) { + (0, i.warn)(`_parsedAnnotations: "${e}".`); + return null; + }), + ); + return Promise.all(e).then(function (e) { + if (0 === e.length) return e; + const t = []; + let a; + for (const i of e) + i && (i instanceof r.PopupAnnotation ? (a ||= []).push(i) : t.push(i)); + a && t.push(...a); + return t; + }); + }); + return (0, i.shadow)(this, '_parsedAnnotations', e); + } + get jsActions() { + const e = (0, n.collectActions)(this.xref, this.pageDict, i.PageActionEventType); + return (0, i.shadow)(this, 'jsActions', e); + } + } + t.Page = Page; + const v = new Uint8Array([37, 80, 68, 70, 45]), + F = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]), + O = new Uint8Array([101, 110, 100, 111, 98, 106]); + function find(e, t, a = 1024, r = !1) { + const i = t.length, + n = e.peekBytes(a), + s = n.length - i; + if (s <= 0) return !1; + if (r) { + const a = i - 1; + let r = n.length - 1; + for (; r >= a; ) { + let s = 0; + for (; s < i && n[r - s] === t[a - s]; ) s++; + if (s >= i) { + e.pos += r - a; + return !0; + } + r--; + } + } else { + let a = 0; + for (; a <= s; ) { + let r = 0; + for (; r < i && n[a + r] === t[r]; ) r++; + if (r >= i) { + e.pos += a; + return !0; + } + a++; + } + } + return !1; + } + t.PDFDocument = class PDFDocument { + constructor(e, t) { + if (t.length <= 0) + throw new i.InvalidPDFException( + 'The PDF file is empty, i.e. its size is zero bytes.', + ); + this.pdfManager = e; + this.stream = t; + this.xref = new C.XRef(t, e); + this._pagePromises = new Map(); + this._version = null; + const a = { font: 0 }; + this._globalIdFactory = class { + static getDocId() { + return `g_${e.docId}`; + } + static createFontId() { + return 'f' + ++a.font; + } + static createObjId() { + (0, i.unreachable)('Abstract method `createObjId` called.'); + } + static getPageObjId() { + (0, i.unreachable)('Abstract method `getPageObjId` called.'); + } + }; + } + parse(e) { + this.xref.parse(e); + this.catalog = new h.Catalog(this.pdfManager, this.xref); + } + get linearization() { + let e = null; + try { + e = f.Linearization.create(this.stream); + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, i.info)(e); + } + return (0, i.shadow)(this, 'linearization', e); + } + get startXRef() { + const e = this.stream; + let t = 0; + if (this.linearization) { + e.reset(); + find(e, O) && (t = e.pos + 6 - e.start); + } else { + const a = 1024, + r = F.length; + let i = !1, + s = e.end; + for (; !i && s > 0; ) { + s -= a - r; + s < 0 && (s = 0); + e.pos = s; + i = find(e, F, a, !0); + } + if (i) { + e.skip(9); + let a; + do { + a = e.getByte(); + } while ((0, n.isWhiteSpace)(a)); + let r = ''; + for (; a >= 32 && a <= 57; ) { + r += String.fromCharCode(a); + a = e.getByte(); + } + t = parseInt(r, 10); + isNaN(t) && (t = 0); + } + } + return (0, i.shadow)(this, 'startXRef', t); + } + checkHeader() { + const e = this.stream; + e.reset(); + if (!find(e, v)) return; + e.moveStart(); + e.skip(v.length); + let t, + a = ''; + for (; (t = e.getByte()) > 32 && a.length < 7; ) a += String.fromCharCode(t); + n.PDF_VERSION_REGEXP.test(a) + ? (this._version = a) + : (0, i.warn)(`Invalid PDF header version: ${a}`); + } + parseStartXRef() { + this.xref.setStartXRef(this.startXRef); + } + get numPages() { + let e = 0; + e = this.catalog.hasActualNumPages + ? this.catalog.numPages + : this.xfaFactory + ? this.xfaFactory.getNumPages() + : this.linearization + ? this.linearization.numPages + : this.catalog.numPages; + return (0, i.shadow)(this, 'numPages', e); + } + _hasOnlyDocumentSignatures(e, t = 0) { + return ( + !!Array.isArray(e) && + e.every((e) => { + if (!((e = this.xref.fetchIfRef(e)) instanceof s.Dict)) return !1; + if (e.has('Kids')) { + if (++t > 10) { + (0, i.warn)('_hasOnlyDocumentSignatures: maximum recursion depth reached'); + return !1; + } + return this._hasOnlyDocumentSignatures(e.get('Kids'), t); + } + const a = (0, s.isName)(e.get('FT'), 'Sig'), + r = e.get('Rect'), + n = Array.isArray(r) && r.every((e) => 0 === e); + return a && n; + }) + ); + } + get _xfaStreams() { + const e = this.catalog.acroForm; + if (!e) return null; + const t = e.get('XFA'), + a = { + 'xdp:xdp': '', + template: '', + datasets: '', + config: '', + connectionSet: '', + localeSet: '', + stylesheet: '', + '/xdp:xdp': '', + }; + if (t instanceof c.BaseStream && !t.isEmpty) { + a['xdp:xdp'] = t; + return a; + } + if (!Array.isArray(t) || 0 === t.length) return null; + for (let e = 0, r = t.length; e < r; e += 2) { + let i; + i = 0 === e ? 'xdp:xdp' : e === r - 2 ? '/xdp:xdp' : t[e]; + if (!a.hasOwnProperty(i)) continue; + const n = this.xref.fetchIfRef(t[e + 1]); + n instanceof c.BaseStream && !n.isEmpty && (a[i] = n); + } + return a; + } + get xfaDatasets() { + const e = this._xfaStreams; + if (!e) return (0, i.shadow)(this, 'xfaDatasets', null); + for (const t of ['datasets', 'xdp:xdp']) { + const a = e[t]; + if (a) + try { + const e = { [t]: (0, i.stringToUTF8String)(a.getString()) }; + return (0, i.shadow)(this, 'xfaDatasets', new d.DatasetReader(e)); + } catch (e) { + (0, i.warn)('XFA - Invalid utf-8 string.'); + break; + } + } + return (0, i.shadow)(this, 'xfaDatasets', null); + } + get xfaData() { + const e = this._xfaStreams; + if (!e) return null; + const t = Object.create(null); + for (const [a, r] of Object.entries(e)) + if (r) + try { + t[a] = (0, i.stringToUTF8String)(r.getString()); + } catch (e) { + (0, i.warn)('XFA - Invalid utf-8 string.'); + return null; + } + return t; + } + get xfaFactory() { + let e; + this.pdfManager.enableXfa && + this.catalog.needsRendering && + this.formInfo.hasXfa && + !this.formInfo.hasAcroForm && + (e = this.xfaData); + return (0, i.shadow)(this, 'xfaFactory', e ? new x.XFAFactory(e) : null); + } + get isPureXfa() { + return !!this.xfaFactory && this.xfaFactory.isValid(); + } + get htmlForXfa() { + return this.xfaFactory ? this.xfaFactory.getPages() : null; + } + async loadXfaImages() { + const e = await this.pdfManager.ensureCatalog('xfaImages'); + if (!e) return; + const t = e.getKeys(), + a = new p.ObjectLoader(e, t, this.xref); + await a.load(); + const r = new Map(); + for (const a of t) { + const t = e.get(a); + t instanceof c.BaseStream && r.set(a, t.getBytes()); + } + this.xfaFactory.setImages(r); + } + async loadXfaFonts(e, t) { + const a = await this.pdfManager.ensureCatalog('acroForm'); + if (!a) return; + const r = await a.getAsync('DR'); + if (!(r instanceof s.Dict)) return; + const c = new p.ObjectLoader(r, ['Font'], this.xref); + await c.load(); + const l = r.get('Font'); + if (!(l instanceof s.Dict)) return; + const h = Object.assign(Object.create(null), this.pdfManager.evaluatorOptions); + h.useSystemFonts = !1; + const u = new b.PartialEvaluator({ + xref: this.xref, + handler: e, + pageIndex: -1, + idFactory: this._globalIdFactory, + fontCache: this.catalog.fontCache, + builtInCMapCache: this.catalog.builtInCMapCache, + standardFontDataCache: this.catalog.standardFontDataCache, + options: h, + }), + d = new m.OperatorList(), + f = [], + g = { + get font() { + return f.at(-1); + }, + set font(e) { + f.push(e); + }, + clone() { + return this; + }, + }, + y = new Map(); + l.forEach((e, t) => { + y.set(e, t); + }); + const w = []; + for (const [e, a] of y) { + const o = a.get('FontDescriptor'); + if (!(o instanceof s.Dict)) continue; + let c = o.get('FontFamily'); + c = c.replaceAll(/[ ]+(\d)/g, '$1'); + const l = { + fontFamily: c, + fontWeight: o.get('FontWeight'), + italicAngle: -o.get('ItalicAngle'), + }; + (0, n.validateCSSFont)(l) && + w.push( + u + .handleSetFont(r, [s.Name.get(e), 1], null, d, t, g, null, l) + .catch(function (e) { + (0, i.warn)(`loadXfaFonts: "${e}".`); + return null; + }), + ); + } + await Promise.all(w); + const S = this.xfaFactory.setFonts(f); + if (!S) return; + h.ignoreErrors = !0; + w.length = 0; + f.length = 0; + const x = new Set(); + for (const e of S) (0, o.getXfaFontName)(`${e}-Regular`) || x.add(e); + x.size && S.push('PdfJS-Fallback'); + for (const e of S) + if (!x.has(e)) + for (const a 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 n = `${e}-${a.name}`, + c = (0, o.getXfaFontDict)(n); + w.push( + u + .handleSetFont(r, [s.Name.get(n), 1], null, d, t, g, c, { + fontFamily: e, + fontWeight: a.fontWeight, + italicAngle: a.italicAngle, + }) + .catch(function (e) { + (0, i.warn)(`loadXfaFonts: "${e}".`); + return null; + }), + ); + } + await Promise.all(w); + this.xfaFactory.appendFonts(f, x); + } + async serializeXfaData(e) { + return this.xfaFactory ? this.xfaFactory.serializeData(e) : null; + } + get version() { + return this.catalog.version || this._version; + } + get formInfo() { + const e = { hasFields: !1, hasAcroForm: !1, hasXfa: !1, hasSignatures: !1 }, + t = this.catalog.acroForm; + if (!t) return (0, i.shadow)(this, 'formInfo', e); + try { + const a = t.get('Fields'), + r = Array.isArray(a) && a.length > 0; + e.hasFields = r; + const i = t.get('XFA'); + e.hasXfa = + (Array.isArray(i) && i.length > 0) || (i instanceof c.BaseStream && !i.isEmpty); + const n = !!(1 & t.get('SigFlags')), + s = n && this._hasOnlyDocumentSignatures(a); + e.hasAcroForm = r && !s; + e.hasSignatures = n; + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, i.warn)(`Cannot fetch form information: "${e}".`); + } + return (0, i.shadow)(this, 'formInfo', e); + } + get documentInfo() { + const e = { + PDFFormatVersion: this.version, + Language: this.catalog.lang, + EncryptFilterName: this.xref.encrypt ? this.xref.encrypt.filterName : null, + IsLinearized: !!this.linearization, + IsAcroFormPresent: this.formInfo.hasAcroForm, + IsXFAPresent: this.formInfo.hasXfa, + IsCollectionPresent: !!this.catalog.collection, + IsSignaturesPresent: this.formInfo.hasSignatures, + }; + let t; + try { + t = this.xref.trailer.get('Info'); + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, i.info)('The document information dictionary is invalid.'); + } + if (!(t instanceof s.Dict)) return (0, i.shadow)(this, 'documentInfo', e); + for (const a of t.getKeys()) { + const r = t.get(a); + switch (a) { + case 'Title': + case 'Author': + case 'Subject': + case 'Keywords': + case 'Creator': + case 'Producer': + case 'CreationDate': + case 'ModDate': + if ('string' == typeof r) { + e[a] = (0, i.stringToPDFString)(r); + continue; + } + break; + case 'Trapped': + if (r instanceof s.Name) { + e[a] = r; + continue; + } + break; + default: + let t; + switch (typeof r) { + case 'string': + t = (0, i.stringToPDFString)(r); + break; + case 'number': + case 'boolean': + t = r; + break; + default: + r instanceof s.Name && (t = r); + } + if (void 0 === t) { + (0, i.warn)(`Bad value, for custom key "${a}", in Info: ${r}.`); + continue; + } + e.Custom || (e.Custom = Object.create(null)); + e.Custom[a] = t; + continue; + } + (0, i.warn)(`Bad value, for key "${a}", in Info: ${r}.`); + } + return (0, i.shadow)(this, 'documentInfo', e); + } + get fingerprints() { + function validate(e) { + return ( + 'string' == typeof e && e.length > 0 && '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' !== e + ); + } + function hexString(e) { + const t = []; + for (const a of e) { + const e = a.toString(16); + t.push(e.padStart(2, '0')); + } + return t.join(''); + } + const e = this.xref.trailer.get('ID'); + let t, a; + if (Array.isArray(e) && validate(e[0])) { + t = (0, i.stringToBytes)(e[0]); + e[1] !== e[0] && validate(e[1]) && (a = (0, i.stringToBytes)(e[1])); + } else t = (0, l.calculateMD5)(this.stream.getByteRange(0, 1024), 0, 1024); + return (0, i.shadow)(this, 'fingerprints', [hexString(t), a ? hexString(a) : null]); + } + async _getLinearizationPage(e) { + const { catalog: t, linearization: a, xref: r } = this, + n = s.Ref.get(a.objectNumberFirst, 0); + try { + const e = await r.fetchAsync(n); + if (e instanceof s.Dict) { + let a = e.getRaw('Type'); + a instanceof s.Ref && (a = await r.fetchAsync(a)); + if ((0, s.isName)(a, 'Page') || (!e.has('Type') && !e.has('Kids'))) { + t.pageKidsCountCache.has(n) || t.pageKidsCountCache.put(n, 1); + t.pageIndexCache.has(n) || t.pageIndexCache.put(n, 0); + return [e, n]; + } + } + throw new i.FormatError( + "The Linearization dictionary doesn't point to a valid Page dictionary.", + ); + } catch (a) { + (0, i.warn)(`_getLinearizationPage: "${a.message}".`); + return t.getPageDict(e); + } + } + getPage(e) { + const t = this._pagePromises.get(e); + if (t) return t; + const { catalog: a, linearization: r, xfaFactory: i } = this; + let n; + n = i + ? Promise.resolve([s.Dict.empty, null]) + : r && r.pageFirst === e + ? this._getLinearizationPage(e) + : a.getPageDict(e); + n = n.then( + ([t, r]) => + new Page({ + pdfManager: this.pdfManager, + xref: this.xref, + pageIndex: e, + pageDict: t, + ref: r, + globalIdFactory: this._globalIdFactory, + fontCache: a.fontCache, + builtInCMapCache: a.builtInCMapCache, + standardFontDataCache: a.standardFontDataCache, + globalImageCache: a.globalImageCache, + nonBlendModesSet: a.nonBlendModesSet, + xfaFactory: i, + }), + ); + this._pagePromises.set(e, n); + return n; + } + async checkFirstPage(e = !1) { + if (!e) + try { + await this.getPage(0); + } catch (e) { + if (e instanceof n.XRefEntryException) { + this._pagePromises.delete(0); + await this.cleanup(); + throw new n.XRefParseException(); + } + } + } + async checkLastPage(e = !1) { + const { catalog: t, pdfManager: a } = this; + t.setActualNumPages(); + let r; + try { + await Promise.all([ + a.ensureDoc('xfaFactory'), + a.ensureDoc('linearization'), + a.ensureCatalog('numPages'), + ]); + if (this.xfaFactory) return; + r = this.linearization ? this.linearization.numPages : t.numPages; + if (!Number.isInteger(r)) throw new i.FormatError('Page count is not an integer.'); + if (r <= 1) return; + await this.getPage(r - 1); + } catch (s) { + this._pagePromises.delete(r - 1); + await this.cleanup(); + if (s instanceof n.XRefEntryException && !e) throw new n.XRefParseException(); + (0, i.warn)(`checkLastPage - invalid /Pages tree /Count: ${r}.`); + let o; + try { + o = await t.getAllPageDicts(e); + } catch (a) { + if (a instanceof n.XRefEntryException && !e) throw new n.XRefParseException(); + t.setActualNumPages(1); + return; + } + for (const [e, [r, i]] of o) { + let n; + if (r instanceof Error) { + n = Promise.reject(r); + n.catch(() => {}); + } else + n = Promise.resolve( + new Page({ + pdfManager: a, + xref: this.xref, + pageIndex: e, + pageDict: r, + ref: i, + globalIdFactory: this._globalIdFactory, + fontCache: t.fontCache, + builtInCMapCache: t.builtInCMapCache, + standardFontDataCache: t.standardFontDataCache, + globalImageCache: t.globalImageCache, + nonBlendModesSet: t.nonBlendModesSet, + xfaFactory: null, + }), + ); + this._pagePromises.set(e, n); + } + t.setActualNumPages(o.size); + } + } + fontFallback(e, t) { + return this.catalog.fontFallback(e, t); + } + async cleanup(e = !1) { + return this.catalog ? this.catalog.cleanup(e) : (0, u.clearGlobalCaches)(); + } + _collectFieldObjects(e, t, a) { + const n = this.xref.fetchIfRef(t); + if (n.has('T')) { + const t = (0, i.stringToPDFString)(n.get('T')); + e = '' === e ? t : `${e}.${t}`; + } + a.has(e) || a.set(e, []); + a.get(e).push( + r.AnnotationFactory.create(this.xref, t, this.pdfManager, this._localIdFactory, !0) + .then((e) => e && e.getFieldObject()) + .catch(function (e) { + (0, i.warn)(`_collectFieldObjects: "${e}".`); + return null; + }), + ); + if (n.has('Kids')) { + const t = n.get('Kids'); + for (const r of t) this._collectFieldObjects(e, r, a); + } + } + get fieldObjects() { + if (!this.formInfo.hasFields) + return (0, i.shadow)(this, 'fieldObjects', Promise.resolve(null)); + const e = Object.create(null), + t = new Map(); + for (const e of this.catalog.acroForm.get('Fields')) + this._collectFieldObjects('', e, t); + const a = []; + for (const [r, i] of t) + a.push( + Promise.all(i).then((t) => { + (t = t.filter((e) => !!e)).length > 0 && (e[r] = t); + }), + ); + return (0, i.shadow)( + this, + 'fieldObjects', + Promise.all(a).then(() => e), + ); + } + get hasJSActions() { + const e = this.pdfManager.ensureDoc('_parseHasJSActions'); + return (0, i.shadow)(this, 'hasJSActions', e); + } + async _parseHasJSActions() { + const [e, t] = await Promise.all([ + this.pdfManager.ensureCatalog('jsActions'), + this.pdfManager.ensureDoc('fieldObjects'), + ]); + return ( + !!e || (!!t && Object.values(t).some((e) => e.some((e) => null !== e.actions))) + ); + } + get calculationOrderIds() { + const e = this.catalog.acroForm; + if (!e || !e.has('CO')) return (0, i.shadow)(this, 'calculationOrderIds', null); + const t = e.get('CO'); + if (!Array.isArray(t) || 0 === t.length) + return (0, i.shadow)(this, 'calculationOrderIds', null); + const a = []; + for (const e of t) e instanceof s.Ref && a.push(e.toString()); + return 0 === a.length + ? (0, i.shadow)(this, 'calculationOrderIds', null) + : (0, i.shadow)(this, 'calculationOrderIds', a); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PopupAnnotation = + t.MarkupAnnotation = + t.AnnotationFactory = + t.AnnotationBorderStyle = + t.Annotation = + void 0; + t.getQuadPoints = getQuadPoints; + var r = a(2), + i = a(3), + n = a(11), + s = a(4), + o = a(65), + c = a(5), + l = a(60), + h = a(69), + u = a(12), + d = a(72), + f = a(75), + g = a(63), + p = a(8), + m = a(76); + t.AnnotationFactory = class AnnotationFactory { + static create(e, t, a, r, i) { + return Promise.all([ + a.ensureCatalog('acroForm'), + a.ensureCatalog('baseUrl'), + a.ensureCatalog('attachments'), + a.ensureDoc('xfaDatasets'), + i ? this._getPageIndex(e, t, a) : -1, + ]).then(([n, s, o, c, l]) => a.ensure(this, '_create', [e, t, a, r, n, o, c, i, l])); + } + static _create(e, t, a, n, o, c = null, l, h, u = -1) { + const d = e.fetchIfRef(t); + if (!(d instanceof s.Dict)) return; + const f = t instanceof s.Ref ? t.toString() : `annot_${n.createObjId()}`; + let g = d.get('Subtype'); + g = g instanceof s.Name ? g.name : null; + const p = o instanceof s.Dict ? o : s.Dict.empty, + m = { + xref: e, + ref: t, + dict: d, + subtype: g, + id: f, + pdfManager: a, + acroForm: p, + attachments: c, + xfaDatasets: l, + collectFields: h, + needAppearances: !h && !0 === p.get('NeedAppearances'), + pageIndex: u, + isOffscreenCanvasSupported: a.evaluatorOptions.isOffscreenCanvasSupported, + }; + switch (g) { + case 'Link': + return new LinkAnnotation(m); + case 'Text': + return new TextAnnotation(m); + case 'Widget': + let e = (0, i.getInheritableProperty)({ dict: d, key: 'FT' }); + e = e instanceof s.Name ? e.name : null; + switch (e) { + case 'Tx': + return new TextWidgetAnnotation(m); + case 'Btn': + return new ButtonWidgetAnnotation(m); + case 'Ch': + return new ChoiceWidgetAnnotation(m); + case 'Sig': + return new SignatureWidgetAnnotation(m); + } + (0, r.warn)( + `Unimplemented widget field type "${e}", falling back to base field type.`, + ); + return new WidgetAnnotation(m); + case 'Popup': + return new PopupAnnotation(m); + case 'FreeText': + return new FreeTextAnnotation(m); + case 'Line': + return new LineAnnotation(m); + case 'Square': + return new SquareAnnotation(m); + case 'Circle': + return new CircleAnnotation(m); + case 'PolyLine': + return new PolylineAnnotation(m); + case 'Polygon': + return new PolygonAnnotation(m); + case 'Caret': + return new CaretAnnotation(m); + case 'Ink': + return new InkAnnotation(m); + case 'Highlight': + return new HighlightAnnotation(m); + case 'Underline': + return new UnderlineAnnotation(m); + case 'Squiggly': + return new SquigglyAnnotation(m); + case 'StrikeOut': + return new StrikeOutAnnotation(m); + case 'Stamp': + return new StampAnnotation(m); + case 'FileAttachment': + return new FileAttachmentAnnotation(m); + default: + h || + (g + ? (0, r.warn)( + `Unimplemented annotation type "${g}", falling back to base annotation.`, + ) + : (0, r.warn)('Annotation is missing the required /Subtype.')); + return new Annotation(m); + } + } + static async _getPageIndex(e, t, a) { + try { + const r = await e.fetchIfRefAsync(t); + if (!(r instanceof s.Dict)) return -1; + const i = r.getRaw('P'); + if (!(i instanceof s.Ref)) return -1; + return await a.ensureCatalog('getPageIndex', [i]); + } catch (e) { + (0, r.warn)(`_getPageIndex: "${e}".`); + return -1; + } + } + static async saveNewAnnotations(e, t, a) { + const i = e.xref; + let n; + const c = [], + l = []; + for (const h of a) + switch (h.annotationType) { + case r.AnnotationEditorType.FREETEXT: + if (!n) { + const e = new s.Dict(i); + e.set('BaseFont', s.Name.get('Helvetica')); + e.set('Type', s.Name.get('Font')); + e.set('Subtype', s.Name.get('Type1')); + e.set('Encoding', s.Name.get('WinAnsiEncoding')); + const t = []; + n = i.getNewTemporaryRef(); + (0, o.writeObject)(n, e, t, null); + c.push({ ref: n, data: t.join('') }); + } + l.push( + FreeTextAnnotation.createNewAnnotation(i, h, c, { + evaluator: e, + task: t, + baseFontRef: n, + }), + ); + break; + case r.AnnotationEditorType.INK: + l.push(InkAnnotation.createNewAnnotation(i, h, c)); + } + return { annotations: await Promise.all(l), dependencies: c }; + } + static async printNewAnnotations(e, t, a) { + if (!a) return null; + const i = e.xref, + { isOffscreenCanvasSupported: n } = e.options, + s = []; + for (const o of a) + switch (o.annotationType) { + case r.AnnotationEditorType.FREETEXT: + s.push( + FreeTextAnnotation.createNewPrintAnnotation(i, o, { + evaluator: e, + task: t, + isOffscreenCanvasSupported: n, + }), + ); + break; + case r.AnnotationEditorType.INK: + s.push( + InkAnnotation.createNewPrintAnnotation(i, o, { + isOffscreenCanvasSupported: n, + }), + ); + } + return Promise.all(s); + } + }; + function getRgbColor(e, t = new Uint8ClampedArray(3)) { + if (!Array.isArray(e)) return t; + const a = t || new Uint8ClampedArray(3); + switch (e.length) { + case 0: + return null; + case 1: + u.ColorSpace.singletons.gray.getRgbItem(e, 0, a, 0); + return a; + case 3: + u.ColorSpace.singletons.rgb.getRgbItem(e, 0, a, 0); + return a; + case 4: + u.ColorSpace.singletons.cmyk.getRgbItem(e, 0, a, 0); + return a; + default: + return t; + } + } + function getPdfColorArray(e) { + return Array.from(e, (e) => e / 255); + } + function getQuadPoints(e, t) { + const a = e.getArray('QuadPoints'); + if (!Array.isArray(a) || 0 === a.length || a.length % 8 > 0) return null; + const r = []; + for (let e = 0, i = a.length / 8; e < i; e++) { + let i = 1 / 0, + n = -1 / 0, + s = 1 / 0, + o = -1 / 0; + for (let t = 8 * e, r = 8 * e + 8; t < r; t += 2) { + const e = a[t], + r = a[t + 1]; + i = Math.min(e, i); + n = Math.max(e, n); + s = Math.min(r, s); + o = Math.max(r, o); + } + if (null !== t && (i < t[0] || n > t[2] || s < t[1] || o > t[3])) return null; + r.push([ + { x: i, y: o }, + { x: n, y: o }, + { x: i, y: s }, + { x: n, y: s }, + ]); + } + return r; + } + function getTransformMatrix(e, t, a) { + const [i, n, s, o] = r.Util.getAxialAlignedBoundingBox(t, a); + if (i === s || n === o) return [1, 0, 0, 1, e[0], e[1]]; + const c = (e[2] - e[0]) / (s - i), + l = (e[3] - e[1]) / (o - n); + return [c, 0, 0, l, e[0] - i * c, e[1] - n * l]; + } + class Annotation { + constructor(e) { + const { dict: t, xref: a } = e; + this.setTitle(t.get('T')); + this.setContents(t.get('Contents')); + this.setModificationDate(t.get('M')); + this.setFlags(t.get('F')); + this.setRectangle(t.getArray('Rect')); + this.setColor(t.getArray('C')); + this.setBorderStyle(t); + this.setAppearance(t); + this.setOptionalContent(t); + const n = t.get('MK'); + this.setBorderAndBackgroundColors(n); + this.setRotation(n); + this._streams = []; + this.appearance && this._streams.push(this.appearance); + const o = !!(this.flags & r.AnnotationFlag.LOCKED), + c = !!(this.flags & r.AnnotationFlag.LOCKEDCONTENTS); + this.data = { + 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: e.subtype, + hasOwnCanvas: !1, + noRotate: !!(this.flags & r.AnnotationFlag.NOROTATE), + noHTML: o && c, + }; + if (e.collectFields) { + const n = t.get('Kids'); + if (Array.isArray(n)) { + const e = []; + for (const t of n) t instanceof s.Ref && e.push(t.toString()); + 0 !== e.length && (this.data.kidIds = e); + } + this.data.actions = (0, i.collectActions)(a, t, r.AnnotationActionEventType); + this.data.fieldName = this._constructFieldName(t); + this.data.pageIndex = e.pageIndex; + } + this._isOffscreenCanvasSupported = e.isOffscreenCanvasSupported; + this._fallbackFontDict = null; + this._needAppearances = !1; + } + _hasFlag(e, t) { + return !!(e & t); + } + _isViewable(e) { + return ( + !this._hasFlag(e, r.AnnotationFlag.INVISIBLE) && + !this._hasFlag(e, r.AnnotationFlag.NOVIEW) + ); + } + _isPrintable(e) { + return ( + this._hasFlag(e, r.AnnotationFlag.PRINT) && + !this._hasFlag(e, r.AnnotationFlag.INVISIBLE) + ); + } + mustBeViewed(e) { + const t = e && e.get(this.data.id); + return t && void 0 !== t.hidden + ? !t.hidden + : this.viewable && !this._hasFlag(this.flags, r.AnnotationFlag.HIDDEN); + } + mustBePrinted(e) { + const t = e && e.get(this.data.id); + return t && void 0 !== t.print ? t.print : this.printable; + } + get viewable() { + return ( + null !== this.data.quadPoints && (0 === this.flags || this._isViewable(this.flags)) + ); + } + get printable() { + return ( + null !== this.data.quadPoints && 0 !== this.flags && this._isPrintable(this.flags) + ); + } + _parseStringHelper(e) { + const t = 'string' == typeof e ? (0, r.stringToPDFString)(e) : ''; + return { str: t, dir: t && 'rtl' === (0, l.bidi)(t).dir ? 'rtl' : 'ltr' }; + } + setDefaultAppearance(e) { + const t = + (0, i.getInheritableProperty)({ dict: e.dict, key: 'DA' }) || e.acroForm.get('DA'); + this._defaultAppearance = 'string' == typeof t ? t : ''; + this.data.defaultAppearanceData = (0, n.parseDefaultAppearance)( + this._defaultAppearance, + ); + } + setTitle(e) { + this._title = this._parseStringHelper(e); + } + setContents(e) { + this._contents = this._parseStringHelper(e); + } + setModificationDate(e) { + this.modificationDate = 'string' == typeof e ? e : null; + } + setFlags(e) { + this.flags = Number.isInteger(e) && e > 0 ? e : 0; + } + hasFlag(e) { + return this._hasFlag(this.flags, e); + } + setRectangle(e) { + Array.isArray(e) && 4 === e.length + ? (this.rectangle = r.Util.normalizeRect(e)) + : (this.rectangle = [0, 0, 0, 0]); + } + setColor(e) { + this.color = getRgbColor(e); + } + setLineEndings(e) { + this.lineEndings = ['None', 'None']; + if (Array.isArray(e) && 2 === e.length) + for (let t = 0; t < 2; t++) { + const a = e[t]; + if (a instanceof s.Name) + switch (a.name) { + case 'None': + continue; + case 'Square': + case 'Circle': + case 'Diamond': + case 'OpenArrow': + case 'ClosedArrow': + case 'Butt': + case 'ROpenArrow': + case 'RClosedArrow': + case 'Slash': + this.lineEndings[t] = a.name; + continue; + } + (0, r.warn)(`Ignoring invalid lineEnding: ${a}`); + } + } + setRotation(e) { + this.rotation = 0; + if (e instanceof s.Dict) { + let t = e.get('R') || 0; + if (Number.isInteger(t) && 0 !== t) { + t %= 360; + t < 0 && (t += 360); + t % 90 == 0 && (this.rotation = t); + } + } + } + setBorderAndBackgroundColors(e) { + if (e instanceof s.Dict) { + this.borderColor = getRgbColor(e.getArray('BC'), null); + this.backgroundColor = getRgbColor(e.getArray('BG'), null); + } else this.borderColor = this.backgroundColor = null; + } + setBorderStyle(e) { + this.borderStyle = new AnnotationBorderStyle(); + if (e instanceof s.Dict) + if (e.has('BS')) { + const t = e.get('BS'), + a = t.get('Type'); + if (!a || (0, s.isName)(a, 'Border')) { + this.borderStyle.setWidth(t.get('W'), this.rectangle); + this.borderStyle.setStyle(t.get('S')); + this.borderStyle.setDashArray(t.getArray('D')); + } + } else if (e.has('Border')) { + const t = e.getArray('Border'); + if (Array.isArray(t) && t.length >= 3) { + this.borderStyle.setHorizontalCornerRadius(t[0]); + this.borderStyle.setVerticalCornerRadius(t[1]); + this.borderStyle.setWidth(t[2], this.rectangle); + 4 === t.length && this.borderStyle.setDashArray(t[3], !0); + } + } else this.borderStyle.setWidth(0); + } + setAppearance(e) { + this.appearance = null; + const t = e.get('AP'); + if (!(t instanceof s.Dict)) return; + const a = t.get('N'); + if (a instanceof c.BaseStream) { + this.appearance = a; + return; + } + if (!(a instanceof s.Dict)) return; + const r = e.get('AS'); + if (!(r instanceof s.Name && a.has(r.name))) return; + const i = a.get(r.name); + i instanceof c.BaseStream && (this.appearance = i); + } + setOptionalContent(e) { + this.oc = null; + const t = e.get('OC'); + t instanceof s.Name + ? (0, r.warn)('setOptionalContent: Support for /Name-entry is not implemented.') + : t instanceof s.Dict && (this.oc = t); + } + loadResources(e, t) { + return t.dict.getAsync('Resources').then((t) => { + if (!t) return; + return new f.ObjectLoader(t, e, t.xref).load().then(function () { + return t; + }); + }); + } + async getOperatorList(e, t, a, i, n) { + const o = this.data; + let c = this.appearance; + const l = !!(this.data.hasOwnCanvas && a & r.RenderingIntentFlag.DISPLAY); + if (!c) { + if (!l) + return { opList: new g.OperatorList(), separateForm: !1, separateCanvas: !1 }; + c = new p.StringStream(''); + c.dict = new s.Dict(); + } + const h = c.dict, + u = await this.loadResources( + ['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font'], + c, + ), + d = h.getArray('BBox') || [0, 0, 1, 1], + f = h.getArray('Matrix') || [1, 0, 0, 1, 0, 0], + m = getTransformMatrix(o.rect, d, f), + b = new g.OperatorList(); + let y; + this.oc && (y = await e.parseMarkedContentProps(this.oc, null)); + void 0 !== y && b.addOp(r.OPS.beginMarkedContentProps, ['OC', y]); + b.addOp(r.OPS.beginAnnotation, [o.id, o.rect, m, f, l]); + await e.getOperatorList({ + stream: c, + task: t, + resources: u, + operatorList: b, + fallbackFontDict: this._fallbackFontDict, + }); + b.addOp(r.OPS.endAnnotation, []); + void 0 !== y && b.addOp(r.OPS.endMarkedContent, []); + this.reset(); + return { opList: b, separateForm: !1, separateCanvas: l }; + } + async save(e, t, a) { + return null; + } + get hasTextContent() { + return !1; + } + async extractTextContent(e, t, a) { + if (!this.appearance) return; + const r = await this.loadResources( + ['ExtGState', 'Font', 'Properties', 'XObject'], + this.appearance, + ), + i = [], + n = [], + s = { + desiredSize: Math.Infinity, + ready: !0, + enqueue(e, t) { + for (const t of e.items) { + n.push(t.str); + if (t.hasEOL) { + i.push(n.join('')); + n.length = 0; + } + } + }, + }; + await e.getTextContent({ + stream: this.appearance, + task: t, + resources: r, + includeMarkedContent: !0, + sink: s, + viewBox: a, + }); + this.reset(); + n.length && i.push(n.join('')); + i.length > 0 && (this.data.textContent = i); + } + 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')) { + (0, r.warn)('Unknown field name, falling back to empty field name.'); + return ''; + } + if (!e.has('Parent')) return (0, r.stringToPDFString)(e.get('T')); + const t = []; + e.has('T') && t.unshift((0, r.stringToPDFString)(e.get('T'))); + let a = e; + const i = new s.RefSet(); + e.objId && i.put(e.objId); + for (; a.has('Parent'); ) { + a = a.get('Parent'); + if (!(a instanceof s.Dict) || (a.objId && i.has(a.objId))) break; + a.objId && i.put(a.objId); + if (a.has('T')) { + const e = (0, r.stringToPDFString)(a.get('T')); + e.startsWith('#') || t.unshift(e); + } + } + return t.join('.'); + } + } + t.Annotation = Annotation; + class AnnotationBorderStyle { + constructor() { + this.width = 1; + this.style = r.AnnotationBorderStyleType.SOLID; + this.dashArray = [3]; + this.horizontalCornerRadius = 0; + this.verticalCornerRadius = 0; + } + setWidth(e, t = [0, 0, 0, 0]) { + if (e instanceof s.Name) this.width = 0; + else if ('number' == typeof e) { + if (e > 0) { + const a = (t[2] - t[0]) / 2, + i = (t[3] - t[1]) / 2; + if (a > 0 && i > 0 && (e > a || e > i)) { + (0, r.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`); + e = 1; + } + } + this.width = e; + } + } + setStyle(e) { + if (e instanceof s.Name) + switch (e.name) { + case 'S': + this.style = r.AnnotationBorderStyleType.SOLID; + break; + case 'D': + this.style = r.AnnotationBorderStyleType.DASHED; + break; + case 'B': + this.style = r.AnnotationBorderStyleType.BEVELED; + break; + case 'I': + this.style = r.AnnotationBorderStyleType.INSET; + break; + case 'U': + this.style = r.AnnotationBorderStyleType.UNDERLINE; + } + } + setDashArray(e, t = !1) { + if (Array.isArray(e) && e.length > 0) { + let a = !0, + r = !0; + for (const t of e) { + if (!(+t >= 0)) { + a = !1; + break; + } + t > 0 && (r = !1); + } + if (a && !r) { + this.dashArray = e; + t && this.setStyle(s.Name.get('D')); + } else this.width = 0; + } else e && (this.width = 0); + } + setHorizontalCornerRadius(e) { + Number.isInteger(e) && (this.horizontalCornerRadius = e); + } + setVerticalCornerRadius(e) { + Number.isInteger(e) && (this.verticalCornerRadius = e); + } + } + t.AnnotationBorderStyle = AnnotationBorderStyle; + class MarkupAnnotation extends Annotation { + constructor(e) { + super(e); + const { dict: t } = e; + if (t.has('IRT')) { + const e = t.getRaw('IRT'); + this.data.inReplyTo = e instanceof s.Ref ? e.toString() : null; + const a = t.get('RT'); + this.data.replyType = a instanceof s.Name ? a.name : r.AnnotationReplyType.REPLY; + } + if (this.data.replyType === r.AnnotationReplyType.GROUP) { + const e = t.get('IRT'); + this.setTitle(e.get('T')); + this.data.titleObj = this._title; + this.setContents(e.get('Contents')); + this.data.contentsObj = this._contents; + if (e.has('CreationDate')) { + this.setCreationDate(e.get('CreationDate')); + this.data.creationDate = this.creationDate; + } else this.data.creationDate = null; + if (e.has('M')) { + this.setModificationDate(e.get('M')); + this.data.modificationDate = this.modificationDate; + } else this.data.modificationDate = null; + this.data.hasPopup = e.has('Popup'); + if (e.has('C')) { + this.setColor(e.getArray('C')); + this.data.color = this.color; + } else this.data.color = null; + } else { + this.data.titleObj = this._title; + this.setCreationDate(t.get('CreationDate')); + this.data.creationDate = this.creationDate; + this.data.hasPopup = t.has('Popup'); + t.has('C') || (this.data.color = null); + } + t.has('RC') && (this.data.richText = m.XFAFactory.getRichTextAsHtml(t.get('RC'))); + } + setCreationDate(e) { + this.creationDate = 'string' == typeof e ? e : null; + } + _setDefaultAppearance({ + xref: e, + extra: t, + strokeColor: a, + fillColor: r, + blendMode: i, + strokeAlpha: n, + fillAlpha: o, + pointsCallback: c, + }) { + let l = Number.MAX_VALUE, + h = Number.MAX_VALUE, + u = Number.MIN_VALUE, + d = Number.MIN_VALUE; + const f = ['q']; + t && f.push(t); + a && f.push(`${a[0]} ${a[1]} ${a[2]} RG`); + r && f.push(`${r[0]} ${r[1]} ${r[2]} rg`); + let g = this.data.quadPoints; + g || + (g = [ + [ + { x: this.rectangle[0], y: this.rectangle[3] }, + { x: this.rectangle[2], y: this.rectangle[3] }, + { x: this.rectangle[0], y: this.rectangle[1] }, + { x: this.rectangle[2], y: this.rectangle[1] }, + ], + ]); + for (const e of g) { + const [t, a, r, i] = c(f, e); + l = Math.min(l, t); + u = Math.max(u, a); + h = Math.min(h, r); + d = Math.max(d, i); + } + f.push('Q'); + const m = new s.Dict(e), + b = new s.Dict(e); + b.set('Subtype', s.Name.get('Form')); + const y = new p.StringStream(f.join(' ')); + y.dict = b; + m.set('Fm0', y); + const w = new s.Dict(e); + i && w.set('BM', s.Name.get(i)); + 'number' == typeof n && w.set('CA', n); + 'number' == typeof o && w.set('ca', o); + const S = new s.Dict(e); + S.set('GS0', w); + const x = new s.Dict(e); + x.set('ExtGState', S); + x.set('XObject', m); + const C = new s.Dict(e); + C.set('Resources', x); + const k = (this.data.rect = [l, h, u, d]); + C.set('BBox', k); + this.appearance = new p.StringStream('/GS0 gs /Fm0 Do'); + this.appearance.dict = C; + this._streams.push(this.appearance, y); + } + static async createNewAnnotation(e, t, a, r) { + const i = e.getNewTemporaryRef(), + n = await this.createNewAppearanceStream(t, e, r), + s = []; + let c; + if (n) { + const r = e.getNewTemporaryRef(); + c = this.createNewDict(t, e, { apRef: r }); + const i = e.encrypt ? e.encrypt.createCipherTransform(r.num, r.gen) : null; + (0, o.writeObject)(r, n, s, i); + a.push({ ref: r, data: s.join('') }); + } else c = this.createNewDict(t, e, {}); + s.length = 0; + const l = e.encrypt ? e.encrypt.createCipherTransform(i.num, i.gen) : null; + (0, o.writeObject)(i, c, s, l); + return { ref: i, data: s.join('') }; + } + static async createNewPrintAnnotation(e, t, a) { + const r = await this.createNewAppearanceStream(t, e, a), + i = this.createNewDict(t, e, { ap: r }); + return new this.prototype.constructor({ + dict: i, + xref: e, + isOffscreenCanvasSupported: a.isOffscreenCanvasSupported, + }); + } + } + t.MarkupAnnotation = MarkupAnnotation; + class WidgetAnnotation extends Annotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e, + n = this.data; + this.ref = e.ref; + this._needAppearances = e.needAppearances; + n.annotationType = r.AnnotationType.WIDGET; + void 0 === n.fieldName && (n.fieldName = this._constructFieldName(t)); + void 0 === n.actions && + (n.actions = (0, i.collectActions)(a, t, r.AnnotationActionEventType)); + let o = (0, i.getInheritableProperty)({ dict: t, key: 'V', getArray: !0 }); + n.fieldValue = this._decodeFormValue(o); + const c = (0, i.getInheritableProperty)({ dict: t, key: 'DV', getArray: !0 }); + n.defaultFieldValue = this._decodeFormValue(c); + if (void 0 === o && e.xfaDatasets) { + const t = this._title.str; + if (t) { + this._hasValueFromXFA = !0; + n.fieldValue = o = e.xfaDatasets.getValue(t); + } + } + void 0 === o && null !== n.defaultFieldValue && (n.fieldValue = n.defaultFieldValue); + n.alternativeText = (0, r.stringToPDFString)(t.get('TU') || ''); + this.setDefaultAppearance(e); + n.hasAppearance ||= + this._needAppearances && void 0 !== n.fieldValue && null !== n.fieldValue; + const l = (0, i.getInheritableProperty)({ dict: t, key: 'FT' }); + n.fieldType = l instanceof s.Name ? l.name : null; + const h = (0, i.getInheritableProperty)({ dict: t, key: 'DR' }), + u = e.acroForm.get('DR'), + d = this.appearance && this.appearance.dict.get('Resources'); + this._fieldResources = { + localResources: h, + acroFormResources: u, + appearanceResources: d, + mergedResources: s.Dict.merge({ xref: a, dictArray: [h, d, u], mergeSubDicts: !0 }), + }; + n.fieldFlags = (0, i.getInheritableProperty)({ dict: t, key: 'Ff' }); + (!Number.isInteger(n.fieldFlags) || n.fieldFlags < 0) && (n.fieldFlags = 0); + n.readOnly = this.hasFieldFlag(r.AnnotationFieldFlag.READONLY); + n.required = this.hasFieldFlag(r.AnnotationFieldFlag.REQUIRED); + n.hidden = this._hasFlag(n.annotationFlags, r.AnnotationFlag.HIDDEN); + } + _decodeFormValue(e) { + return Array.isArray(e) + ? e.filter((e) => 'string' == typeof e).map((e) => (0, r.stringToPDFString)(e)) + : e instanceof s.Name + ? (0, r.stringToPDFString)(e.name) + : 'string' == typeof e + ? (0, r.stringToPDFString)(e) + : null; + } + hasFieldFlag(e) { + return !!(this.data.fieldFlags & e); + } + getRotationMatrix(e) { + const t = e ? e.get(this.data.id) : void 0; + let a = t && t.rotation; + void 0 === a && (a = this.rotation); + if (0 === a) return r.IDENTITY_MATRIX; + const n = this.data.rect[2] - this.data.rect[0], + s = this.data.rect[3] - this.data.rect[1]; + return (0, i.getRotationMatrix)(a, n, s); + } + getBorderAndBackgroundAppearances(e) { + const t = e ? e.get(this.data.id) : void 0; + let a = t && t.rotation; + void 0 === a && (a = this.rotation); + if (!this.backgroundColor && !this.borderColor) return ''; + const r = this.data.rect[2] - this.data.rect[0], + i = this.data.rect[3] - this.data.rect[1], + s = 0 === a || 180 === a ? `0 0 ${r} ${i} re` : `0 0 ${i} ${r} re`; + let o = ''; + this.backgroundColor && + (o = `${(0, n.getPdfColor)(this.backgroundColor, !0)} ${s} f `); + if (this.borderColor) { + o += `${this.borderStyle.width || 1} w ${(0, n.getPdfColor)( + this.borderColor, + !1, + )} ${s} S `; + } + return o; + } + async getOperatorList(e, t, a, i, n) { + if ( + i && + !(this instanceof SignatureWidgetAnnotation) && + !this.data.noHTML && + !this.data.hasOwnCanvas + ) + return { opList: new g.OperatorList(), separateForm: !0, separateCanvas: !1 }; + if (!this._hasText) return super.getOperatorList(e, t, a, i, n); + const s = await this._getAppearance(e, t, a, n); + if (this.appearance && null === s) return super.getOperatorList(e, t, a, i, n); + const o = new g.OperatorList(); + if (!this._defaultAppearance || null === s) + return { opList: o, separateForm: !1, separateCanvas: !1 }; + const c = [ + 0, + 0, + this.data.rect[2] - this.data.rect[0], + this.data.rect[3] - this.data.rect[1], + ], + l = getTransformMatrix(this.data.rect, c, [1, 0, 0, 1, 0, 0]); + let h; + this.oc && (h = await e.parseMarkedContentProps(this.oc, null)); + void 0 !== h && o.addOp(r.OPS.beginMarkedContentProps, ['OC', h]); + o.addOp(r.OPS.beginAnnotation, [ + this.data.id, + this.data.rect, + l, + this.getRotationMatrix(n), + !1, + ]); + const u = new p.StringStream(s); + await e.getOperatorList({ + stream: u, + task: t, + resources: this._fieldResources.mergedResources, + operatorList: o, + }); + o.addOp(r.OPS.endAnnotation, []); + void 0 !== h && o.addOp(r.OPS.endMarkedContent, []); + return { opList: o, separateForm: !1, separateCanvas: !1 }; + } + _getMKDict(e) { + const t = new s.Dict(null); + e && t.set('R', e); + this.borderColor && t.set('BC', getPdfColorArray(this.borderColor)); + this.backgroundColor && t.set('BG', getPdfColorArray(this.backgroundColor)); + return t.size > 0 ? t : null; + } + amendSavedDict(e, t) {} + async save(e, t, a) { + const n = a ? a.get(this.data.id) : void 0; + let c = n && n.value, + l = n && n.rotation; + if (c === this.data.fieldValue || void 0 === c) { + if (!this._hasValueFromXFA && void 0 === l) return null; + c ||= this.data.fieldValue; + } + if ( + void 0 === l && + !this._hasValueFromXFA && + Array.isArray(c) && + Array.isArray(this.data.fieldValue) && + c.length === this.data.fieldValue.length && + c.every((e, t) => e === this.data.fieldValue[t]) + ) + return null; + void 0 === l && (l = this.rotation); + let h = null; + if (!this._needAppearances) { + h = await this._getAppearance(e, t, r.RenderingIntentFlag.SAVE, a); + if (null === h) return null; + } + let u = !1; + if (h && h.needAppearances) { + u = !0; + h = null; + } + const { xref: d } = e, + f = d.fetchIfRef(this.ref); + if (!(f instanceof s.Dict)) return null; + const g = new s.Dict(d); + for (const e of f.getKeys()) 'AP' !== e && g.set(e, f.getRaw(e)); + const m = { path: this.data.fieldName, value: c }, + encoder = (e) => ((0, i.isAscii)(e) ? e : (0, i.stringToUTF16String)(e, !0)); + g.set('V', Array.isArray(c) ? c.map(encoder) : encoder(c)); + this.amendSavedDict(a, g); + const b = this._getMKDict(l); + b && g.set('MK', b); + const y = d.encrypt, + w = y ? y.createCipherTransform(this.ref.num, this.ref.gen) : null, + S = [], + x = [{ ref: this.ref, data: '', xfa: m, needAppearances: u }]; + if (null !== h) { + const e = d.getNewTemporaryRef(), + t = new s.Dict(d); + g.set('AP', t); + t.set('N', e); + let i = null; + y && (i = y.createCipherTransform(e.num, e.gen)); + const n = this._getSaveFieldResources(d), + c = new p.StringStream(h), + l = (c.dict = new s.Dict(d)); + l.set('Subtype', s.Name.get('Form')); + l.set('Resources', n); + l.set('BBox', [ + 0, + 0, + this.data.rect[2] - this.data.rect[0], + this.data.rect[3] - this.data.rect[1], + ]); + const u = this.getRotationMatrix(a); + u !== r.IDENTITY_MATRIX && l.set('Matrix', u); + (0, o.writeObject)(e, c, S, i); + x.push({ ref: e, data: S.join(''), xfa: null, needAppearances: !1 }); + S.length = 0; + } + g.set('M', `D:${(0, r.getModificationDate)()}`); + (0, o.writeObject)(this.ref, g, S, w); + x[0].data = S.join(''); + return x; + } + async _getAppearance(e, t, a, s) { + if (this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD)) return null; + const o = s ? s.get(this.data.id) : void 0; + let c, l; + if (o) { + c = o.formattedValue || o.value; + l = o.rotation; + } + if ( + void 0 === l && + void 0 === c && + !this._needAppearances && + (!this._hasValueFromXFA || this.appearance) + ) + return null; + const h = this.getBorderAndBackgroundAppearances(s); + if (void 0 === c) { + c = this.data.fieldValue; + if (!c) return `/Tx BMC q ${h}Q EMC`; + } + Array.isArray(c) && 1 === c.length && (c = c[0]); + (0, r.assert)('string' == typeof c, 'Expected `value` to be a string.'); + c = c.trim(); + if (this.data.combo) { + const e = this.data.options.find(({ exportValue: e }) => c === e); + c = (e && e.displayValue) || c; + } + if ('' === c) return `/Tx BMC q ${h}Q EMC`; + void 0 === l && (l = this.rotation); + let u, + d = -1; + if (this.data.multiLine) { + u = c.split(/\r\n?|\n/).map((e) => e.normalize('NFC')); + d = u.length; + } else u = [c.replace(/\r\n?|\n/, '').normalize('NFC')]; + let f = this.data.rect[3] - this.data.rect[1], + g = this.data.rect[2] - this.data.rect[0]; + (90 !== l && 270 !== l) || ([g, f] = [f, g]); + this._defaultAppearance || + (this.data.defaultAppearanceData = (0, n.parseDefaultAppearance)( + (this._defaultAppearance = '/Helvetica 0 Tf 0 g'), + )); + let p, + m, + b, + y = await WidgetAnnotation._getFontData( + e, + t, + this.data.defaultAppearanceData, + this._fieldResources.mergedResources, + ); + const w = []; + let S = !1; + for (const e of u) { + const t = y.encodeString(e); + t.length > 1 && (S = !0); + w.push(t.join('')); + } + if (S && a & r.RenderingIntentFlag.SAVE) return { needAppearances: !0 }; + if (S && this._isOffscreenCanvasSupported) { + const a = this.data.comb ? 'monospace' : 'sans-serif', + r = new n.FakeUnicodeFont(e.xref, a), + s = r.createFontResources(u.join('')), + o = s.getRaw('Font'); + if (this._fieldResources.mergedResources.has('Font')) { + const e = this._fieldResources.mergedResources.get('Font'); + for (const t of o.getKeys()) e.set(t, o.getRaw(t)); + } else this._fieldResources.mergedResources.set('Font', o); + const l = r.fontName.name; + y = await WidgetAnnotation._getFontData(e, t, { fontName: l, fontSize: 0 }, s); + for (let e = 0, t = w.length; e < t; e++) w[e] = (0, i.stringToUTF16String)(u[e]); + const h = Object.assign(Object.create(null), this.data.defaultAppearanceData); + this.data.defaultAppearanceData.fontSize = 0; + this.data.defaultAppearanceData.fontName = l; + [p, m, b] = this._computeFontSize(f - 2, g - 4, c, y, d); + this.data.defaultAppearanceData = h; + } else { + this._isOffscreenCanvasSupported || + (0, r.warn)( + '_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly.', + ); + [p, m, b] = this._computeFontSize(f - 2, g - 4, c, y, d); + } + let x = y.descent; + x = isNaN(x) + ? r.BASELINE_FACTOR * b + : Math.max(r.BASELINE_FACTOR * b, Math.abs(x) * m); + const C = Math.min(Math.floor((f - m) / 2), 1), + k = this.data.textAlignment; + if (this.data.multiLine) + return this._getMultilineAppearance(p, w, y, m, g, f, k, 2, C, x, b, s); + if (this.data.comb) + return this._getCombAppearance(p, y, w[0], m, g, f, 2, C, x, b, s); + const v = C + x; + if (0 === k || k > 2) + return ( + `/Tx BMC q ${h}BT ` + + p + + ` 1 0 0 1 ${(0, i.numberToString)(2)} ${(0, i.numberToString)(v)} Tm (${(0, + i.escapeString)(w[0])}) Tj ET Q EMC` + ); + return ( + `/Tx BMC q ${h}BT ` + + p + + ` 1 0 0 1 0 0 Tm ${this._renderText(w[0], y, m, g, k, { shift: 0 }, 2, v)} ET Q EMC` + ); + } + static async _getFontData(e, t, a, r) { + const i = new g.OperatorList(), + n = { + font: null, + clone() { + return this; + }, + }, + { fontName: o, fontSize: c } = a; + await e.handleSetFont(r, [o && s.Name.get(o), c], null, i, t, n, null); + return n.font; + } + _getTextWidth(e, t) { + return t.charsToGlyphs(e).reduce((e, t) => e + t.width, 0) / 1e3; + } + _computeFontSize(e, t, a, i, s) { + let { fontSize: o } = this.data.defaultAppearanceData, + c = (o || 12) * r.LINE_FACTOR, + l = Math.round(e / c); + if (!o) { + const roundWithTwoDigits = (e) => Math.floor(100 * e) / 100; + if (-1 === s) { + const n = this._getTextWidth(a, i); + o = roundWithTwoDigits(Math.min(e / r.LINE_FACTOR, n > t ? t / n : 1 / 0)); + l = 1; + } else { + const n = a.split(/\r\n?|\n/), + h = []; + for (const e of n) { + const t = i.encodeString(e).join(''), + a = i.charsToGlyphs(t), + r = i.getCharPositions(t); + h.push({ line: t, glyphs: a, positions: r }); + } + const isTooBig = (a) => { + let r = 0; + for (const n of h) { + r += this._splitLine(null, i, a, t, n).length * a; + if (r > e) return !0; + } + return !1; + }; + l = Math.max(l, s); + for (;;) { + c = e / l; + o = roundWithTwoDigits(c / r.LINE_FACTOR); + if (!isTooBig(o)) break; + l++; + } + } + const { fontName: h, fontColor: u } = this.data.defaultAppearanceData; + this._defaultAppearance = (0, n.createDefaultAppearance)({ + fontSize: o, + fontName: h, + fontColor: u, + }); + } + return [this._defaultAppearance, o, e / l]; + } + _renderText(e, t, a, r, n, s, o, c) { + let l; + if (1 === n) { + l = (r - this._getTextWidth(e, t) * a) / 2; + } else if (2 === n) { + l = r - this._getTextWidth(e, t) * a - o; + } else l = o; + const h = (0, i.numberToString)(l - s.shift); + s.shift = l; + return `${h} ${(c = (0, i.numberToString)(c))} Td (${(0, i.escapeString)(e)}) Tj`; + } + _getSaveFieldResources(e) { + const { + localResources: t, + appearanceResources: a, + acroFormResources: r, + } = this._fieldResources, + i = this.data.defaultAppearanceData && this.data.defaultAppearanceData.fontName; + if (!i) return t || s.Dict.empty; + for (const e of [t, a]) + if (e instanceof s.Dict) { + const t = e.get('Font'); + if (t instanceof s.Dict && t.has(i)) return e; + } + if (r instanceof s.Dict) { + const a = r.get('Font'); + if (a instanceof s.Dict && a.has(i)) { + const r = new s.Dict(e); + r.set(i, a.getRaw(i)); + const n = new s.Dict(e); + n.set('Font', r); + return s.Dict.merge({ xref: e, dictArray: [n, t], mergeSubDicts: !0 }); + } + } + return t || s.Dict.empty; + } + getFieldObject() { + return null; + } + } + class TextWidgetAnnotation extends WidgetAnnotation { + constructor(e) { + super(e); + this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML; + this._hasText = !0; + const t = e.dict; + 'string' != typeof this.data.fieldValue && (this.data.fieldValue = ''); + let a = (0, i.getInheritableProperty)({ dict: t, key: 'Q' }); + (!Number.isInteger(a) || a < 0 || a > 2) && (a = null); + this.data.textAlignment = a; + let n = (0, i.getInheritableProperty)({ dict: t, key: 'MaxLen' }); + (!Number.isInteger(n) || n < 0) && (n = 0); + this.data.maxLen = n; + this.data.multiLine = this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE); + this.data.comb = + this.hasFieldFlag(r.AnnotationFieldFlag.COMB) && + !this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE) && + !this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD) && + !this.hasFieldFlag(r.AnnotationFieldFlag.FILESELECT) && + 0 !== this.data.maxLen; + this.data.doNotScroll = this.hasFieldFlag(r.AnnotationFieldFlag.DONOTSCROLL); + } + _getCombAppearance(e, t, a, r, n, s, o, c, l, h, u) { + const d = n / this.data.maxLen, + f = this.getBorderAndBackgroundAppearances(u), + g = [], + p = t.getCharPositions(a); + for (const [e, t] of p) g.push(`(${(0, i.escapeString)(a.substring(e, t))}) Tj`); + const m = g.join(` ${(0, i.numberToString)(d)} 0 Td `); + return ( + `/Tx BMC q ${f}BT ` + + e + + ` 1 0 0 1 ${(0, i.numberToString)(o)} ${(0, i.numberToString)( + c + l, + )} Tm ${m} ET Q EMC` + ); + } + _getMultilineAppearance(e, t, a, r, n, s, o, c, l, h, u, d) { + const f = [], + g = n - 2 * c, + p = { shift: 0 }; + for (let e = 0, i = t.length; e < i; e++) { + const i = t[e], + s = this._splitLine(i, a, r, g); + for (let t = 0, i = s.length; t < i; t++) { + const i = s[t], + d = 0 === e && 0 === t ? -l - (u - h) : -u; + f.push(this._renderText(i, a, r, n, o, p, c, d)); + } + } + const m = this.getBorderAndBackgroundAppearances(d), + b = f.join('\n'); + return ( + `/Tx BMC q ${m}BT ` + e + ` 1 0 0 1 0 ${(0, i.numberToString)(s)} Tm ${b} ET Q EMC` + ); + } + _splitLine(e, t, a, r, i = {}) { + e = i.line || e; + const n = i.glyphs || t.charsToGlyphs(e); + if (n.length <= 1) return [e]; + const s = i.positions || t.getCharPositions(e), + o = a / 1e3, + c = []; + let l = -1, + h = -1, + u = -1, + d = 0, + f = 0; + for (let t = 0, a = n.length; t < a; t++) { + const [a, i] = s[t], + g = n[t], + p = g.width * o; + if (' ' === g.unicode) + if (f + p > r) { + c.push(e.substring(d, a)); + d = a; + f = p; + l = -1; + u = -1; + } else { + f += p; + l = a; + h = i; + u = t; + } + else if (f + p > r) + if (-1 !== l) { + c.push(e.substring(d, h)); + d = h; + t = u + 1; + l = -1; + f = 0; + } else { + c.push(e.substring(d, a)); + d = a; + f = p; + } + else f += p; + } + d < e.length && c.push(e.substring(d, e.length)); + return c; + } + getFieldObject() { + return { + id: this.data.id, + value: this.data.fieldValue, + defaultValue: this.data.defaultFieldValue || '', + multiline: this.data.multiLine, + password: this.hasFieldFlag(r.AnnotationFieldFlag.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, + type: 'text', + }; + } + } + class ButtonWidgetAnnotation extends WidgetAnnotation { + constructor(e) { + super(e); + this.checkedAppearance = null; + this.uncheckedAppearance = null; + this.data.checkBox = + !this.hasFieldFlag(r.AnnotationFieldFlag.RADIO) && + !this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON); + this.data.radioButton = + this.hasFieldFlag(r.AnnotationFieldFlag.RADIO) && + !this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON); + this.data.pushButton = this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON); + this.data.isTooltipOnly = !1; + if (this.data.checkBox) this._processCheckBox(e); + else if (this.data.radioButton) this._processRadioButton(e); + else if (this.data.pushButton) { + this.data.hasOwnCanvas = !0; + this._processPushButton(e); + } else (0, r.warn)('Invalid field flags for button widget annotation'); + } + async getOperatorList(e, t, a, i, n) { + if (this.data.pushButton) return super.getOperatorList(e, t, a, !1, n); + let s = null, + o = null; + if (n) { + const e = n.get(this.data.id); + s = e ? e.value : null; + o = e ? e.rotation : null; + } + if (null === s && this.appearance) return super.getOperatorList(e, t, a, i, n); + null == s && + (s = this.data.checkBox + ? this.data.fieldValue === this.data.exportValue + : this.data.fieldValue === this.data.buttonValue); + const c = s ? this.checkedAppearance : this.uncheckedAppearance; + if (c) { + const s = this.appearance, + l = c.dict.getArray('Matrix') || r.IDENTITY_MATRIX; + o && c.dict.set('Matrix', this.getRotationMatrix(n)); + this.appearance = c; + const h = super.getOperatorList(e, t, a, i, n); + this.appearance = s; + c.dict.set('Matrix', l); + return h; + } + return { opList: new g.OperatorList(), separateForm: !1, separateCanvas: !1 }; + } + async save(e, t, a) { + return this.data.checkBox + ? this._saveCheckbox(e, t, a) + : this.data.radioButton + ? this._saveRadioButton(e, t, a) + : null; + } + async _saveCheckbox(e, t, a) { + if (!a) return null; + const i = a.get(this.data.id); + let n = i && i.rotation, + c = i && i.value; + if (void 0 === n) { + if (void 0 === c) return null; + if ((this.data.fieldValue === this.data.exportValue) === c) return null; + } + const l = e.xref.fetchIfRef(this.ref); + if (!(l instanceof s.Dict)) return null; + void 0 === n && (n = this.rotation); + void 0 === c && (c = this.data.fieldValue === this.data.exportValue); + const h = { path: this.data.fieldName, value: c ? this.data.exportValue : '' }, + u = s.Name.get(c ? this.data.exportValue : 'Off'); + l.set('V', u); + l.set('AS', u); + l.set('M', `D:${(0, r.getModificationDate)()}`); + const d = this._getMKDict(n); + d && l.set('MK', d); + const f = e.xref.encrypt; + let g = null; + f && (g = f.createCipherTransform(this.ref.num, this.ref.gen)); + const p = [`${this.ref.num} ${this.ref.gen} obj\n`]; + (0, o.writeDict)(l, p, g); + p.push('\nendobj\n'); + return [{ ref: this.ref, data: p.join(''), xfa: h }]; + } + async _saveRadioButton(e, t, a) { + if (!a) return null; + const i = a.get(this.data.id); + let n = i && i.rotation, + c = i && i.value; + if (void 0 === n) { + if (void 0 === c) return null; + if ((this.data.fieldValue === this.data.buttonValue) === c) return null; + } + const l = e.xref.fetchIfRef(this.ref); + if (!(l instanceof s.Dict)) return null; + void 0 === c && (c = this.data.fieldValue === this.data.buttonValue); + void 0 === n && (n = this.rotation); + const h = { path: this.data.fieldName, value: c ? this.data.buttonValue : '' }, + u = s.Name.get(c ? this.data.buttonValue : 'Off'); + let d = null; + const f = e.xref.encrypt; + if (c) + if (this.parent instanceof s.Ref) { + const t = e.xref.fetch(this.parent); + let a = null; + f && (a = f.createCipherTransform(this.parent.num, this.parent.gen)); + t.set('V', u); + d = [`${this.parent.num} ${this.parent.gen} obj\n`]; + (0, o.writeDict)(t, d, a); + d.push('\nendobj\n'); + } else this.parent instanceof s.Dict && this.parent.set('V', u); + l.set('AS', u); + l.set('M', `D:${(0, r.getModificationDate)()}`); + const g = this._getMKDict(n); + g && l.set('MK', g); + let p = null; + f && (p = f.createCipherTransform(this.ref.num, this.ref.gen)); + const m = [`${this.ref.num} ${this.ref.gen} obj\n`]; + (0, o.writeDict)(l, m, p); + m.push('\nendobj\n'); + const b = [{ ref: this.ref, data: m.join(''), xfa: h }]; + null !== d && b.push({ ref: this.parent, data: d.join(''), xfa: null }); + return b; + } + _getDefaultCheckedAppearance(e, t) { + const a = this.data.rect[2] - this.data.rect[0], + n = this.data.rect[3] - this.data.rect[1], + o = [0, 0, a, n], + c = 0.8 * Math.min(a, n); + let l, h; + if ('check' === t) { + l = { width: 0.755 * c, height: 0.705 * c }; + h = '3'; + } else if ('disc' === t) { + l = { width: 0.791 * c, height: 0.705 * c }; + h = 'l'; + } else (0, r.unreachable)(`_getDefaultCheckedAppearance - unsupported type: ${t}`); + const u = `q BT /PdfJsZaDb ${c} Tf 0 g ${(0, i.numberToString)( + (a - l.width) / 2, + )} ${(0, i.numberToString)((n - l.height) / 2)} Td (${h}) Tj ET Q`, + d = new s.Dict(e.xref); + d.set('FormType', 1); + d.set('Subtype', s.Name.get('Form')); + d.set('Type', s.Name.get('XObject')); + d.set('BBox', o); + d.set('Matrix', [1, 0, 0, 1, 0, 0]); + d.set('Length', u.length); + const f = new s.Dict(e.xref), + g = new s.Dict(e.xref); + g.set('PdfJsZaDb', this.fallbackFontDict); + f.set('Font', g); + d.set('Resources', f); + this.checkedAppearance = new p.StringStream(u); + this.checkedAppearance.dict = d; + this._streams.push(this.checkedAppearance); + } + _processCheckBox(e) { + const t = e.dict.get('AP'); + if (!(t instanceof s.Dict)) return; + const a = t.get('N'); + if (!(a instanceof s.Dict)) return; + const r = this._decodeFormValue(e.dict.get('AS')); + 'string' == typeof r && (this.data.fieldValue = r); + const i = + null !== this.data.fieldValue && 'Off' !== this.data.fieldValue + ? this.data.fieldValue + : 'Yes', + n = a.getKeys(); + if (0 === n.length) n.push('Off', i); + else if (1 === n.length) 'Off' === n[0] ? n.push(i) : n.unshift('Off'); + else if (n.includes(i)) { + n.length = 0; + n.push('Off', i); + } else { + const e = n.find((e) => 'Off' !== e); + n.length = 0; + n.push('Off', e); + } + n.includes(this.data.fieldValue) || (this.data.fieldValue = 'Off'); + this.data.exportValue = n[1]; + const o = a.get(this.data.exportValue); + this.checkedAppearance = o instanceof c.BaseStream ? o : null; + const l = a.get('Off'); + this.uncheckedAppearance = l instanceof c.BaseStream ? l : null; + this.checkedAppearance + ? this._streams.push(this.checkedAppearance) + : this._getDefaultCheckedAppearance(e, 'check'); + this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance); + this._fallbackFontDict = this.fallbackFontDict; + } + _processRadioButton(e) { + this.data.fieldValue = this.data.buttonValue = null; + const t = e.dict.get('Parent'); + if (t instanceof s.Dict) { + this.parent = e.dict.getRaw('Parent'); + const a = t.get('V'); + a instanceof s.Name && (this.data.fieldValue = this._decodeFormValue(a)); + } + const a = e.dict.get('AP'); + if (!(a instanceof s.Dict)) return; + const r = a.get('N'); + if (!(r instanceof s.Dict)) return; + for (const e of r.getKeys()) + if ('Off' !== e) { + this.data.buttonValue = this._decodeFormValue(e); + break; + } + const i = r.get(this.data.buttonValue); + this.checkedAppearance = i instanceof c.BaseStream ? i : null; + const n = r.get('Off'); + this.uncheckedAppearance = n instanceof c.BaseStream ? n : null; + this.checkedAppearance + ? this._streams.push(this.checkedAppearance) + : this._getDefaultCheckedAppearance(e, 'disc'); + this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance); + this._fallbackFontDict = this.fallbackFontDict; + } + _processPushButton(e) { + if (e.dict.has('A') || e.dict.has('AA') || this.data.alternativeText) { + this.data.isTooltipOnly = !e.dict.has('A') && !e.dict.has('AA'); + h.Catalog.parseDestDictionary({ + destDict: e.dict, + resultObj: this.data, + docBaseUrl: e.pdfManager.docBaseUrl, + docAttachments: e.attachments, + }); + } else (0, r.warn)('Push buttons without action dictionaries are not supported'); + } + getFieldObject() { + let e, + t = 'button'; + if (this.data.checkBox) { + t = 'checkbox'; + e = this.data.exportValue; + } else if (this.data.radioButton) { + t = 'radiobutton'; + e = this.data.buttonValue; + } + return { + id: this.data.id, + value: this.data.fieldValue || 'Off', + defaultValue: this.data.defaultFieldValue, + exportValues: e, + 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: t, + }; + } + get fallbackFontDict() { + const e = new s.Dict(); + e.set('BaseFont', s.Name.get('ZapfDingbats')); + e.set('Type', s.Name.get('FallbackType')); + e.set('Subtype', s.Name.get('FallbackType')); + e.set('Encoding', s.Name.get('ZapfDingbatsEncoding')); + return (0, r.shadow)(this, 'fallbackFontDict', e); + } + } + class ChoiceWidgetAnnotation extends WidgetAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.indices = t.getArray('I'); + this.hasIndices = Array.isArray(this.indices) && this.indices.length > 0; + this.data.options = []; + const n = (0, i.getInheritableProperty)({ dict: t, key: 'Opt' }); + if (Array.isArray(n)) + for (let e = 0, t = n.length; e < t; e++) { + const t = a.fetchIfRef(n[e]), + r = Array.isArray(t); + this.data.options[e] = { + exportValue: this._decodeFormValue(r ? a.fetchIfRef(t[0]) : t), + displayValue: this._decodeFormValue(r ? a.fetchIfRef(t[1]) : t), + }; + } + if (this.hasIndices) { + this.data.fieldValue = []; + const e = this.data.options.length; + for (const t of this.indices) + Number.isInteger(t) && + t >= 0 && + t < e && + this.data.fieldValue.push(this.data.options[t].exportValue); + } else + 'string' == typeof this.data.fieldValue + ? (this.data.fieldValue = [this.data.fieldValue]) + : this.data.fieldValue || (this.data.fieldValue = []); + this.data.combo = this.hasFieldFlag(r.AnnotationFieldFlag.COMBO); + this.data.multiSelect = this.hasFieldFlag(r.AnnotationFieldFlag.MULTISELECT); + this._hasText = !0; + } + getFieldObject() { + const e = this.data.combo ? 'combobox' : 'listbox', + t = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null; + return { + id: this.data.id, + value: t, + 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, t) { + if (!this.hasIndices) return; + const a = e ? e.get(this.data.id) : void 0; + let r = a && a.value; + Array.isArray(r) || (r = [r]); + const i = [], + { options: n } = this.data; + for (let e = 0, t = 0, a = n.length; e < a; e++) + if (n[e].exportValue === r[t]) { + i.push(e); + t += 1; + } + t.set('I', i); + } + async _getAppearance(e, t, a, i) { + if (this.data.combo) return super._getAppearance(e, t, a, i); + let s, o; + const c = i ? i.get(this.data.id) : void 0; + if (c) { + o = c.rotation; + s = c.value; + } + if (void 0 === o && void 0 === s && !this._needAppearances) return null; + void 0 === s ? (s = this.data.fieldValue) : Array.isArray(s) || (s = [s]); + let l = this.data.rect[3] - this.data.rect[1], + h = this.data.rect[2] - this.data.rect[0]; + (90 !== o && 270 !== o) || ([h, l] = [l, h]); + const u = this.data.options.length, + d = []; + for (let e = 0; e < u; e++) { + const { exportValue: t } = this.data.options[e]; + s.includes(t) && d.push(e); + } + this._defaultAppearance || + (this.data.defaultAppearanceData = (0, n.parseDefaultAppearance)( + (this._defaultAppearance = '/Helvetica 0 Tf 0 g'), + )); + const f = await WidgetAnnotation._getFontData( + e, + t, + this.data.defaultAppearanceData, + this._fieldResources.mergedResources, + ); + let g, + { fontSize: p } = this.data.defaultAppearanceData; + if (p) g = this._defaultAppearance; + else { + const e = (l - 1) / u; + let t, + a = -1; + for (const { displayValue: e } of this.data.options) { + const r = this._getTextWidth(e, f); + if (r > a) { + a = r; + t = e; + } + } + [g, p] = this._computeFontSize(e, h - 4, t, f, -1); + } + const m = p * r.LINE_FACTOR, + b = (m - p) / 2, + y = Math.floor(l / m); + let w; + if (1 === d.length) { + const e = d[0]; + w = e - (e % y); + } else w = d.length ? d[0] : 0; + const S = Math.min(w + y + 1, u), + x = ['/Tx BMC q', `1 1 ${h} ${l} re W n`]; + if (d.length) { + x.push('0.600006 0.756866 0.854904 rg'); + for (const e of d) + w <= e && e < S && x.push(`1 ${l - (e - w + 1) * m} ${h} ${m} re f`); + } + x.push('BT', g, `1 0 0 1 0 ${l} Tm`); + const C = { shift: 0 }; + for (let e = w; e < S; e++) { + const { displayValue: t } = this.data.options[e], + a = e === w ? b : 0; + x.push(this._renderText(t, f, p, h, 0, C, 2, -m + a)); + } + x.push('ET Q EMC'); + return x.join('\n'); + } + } + class SignatureWidgetAnnotation extends WidgetAnnotation { + constructor(e) { + super(e); + this.data.fieldValue = null; + this.data.hasOwnCanvas = this.data.noRotate; + } + getFieldObject() { + return { + id: this.data.id, + value: null, + page: this.data.pageIndex, + type: 'signature', + }; + } + } + class TextAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.noRotate = !0; + this.data.hasOwnCanvas = this.data.noRotate; + const { dict: t } = e; + this.data.annotationType = r.AnnotationType.TEXT; + if (this.data.hasAppearance) this.data.name = 'NoIcon'; + else { + this.data.rect[1] = this.data.rect[3] - 22; + this.data.rect[2] = this.data.rect[0] + 22; + this.data.name = t.has('Name') ? t.get('Name').name : 'Note'; + } + if (t.has('State')) { + this.data.state = t.get('State') || null; + this.data.stateModel = t.get('StateModel') || null; + } else { + this.data.state = null; + this.data.stateModel = null; + } + } + } + class LinkAnnotation extends Annotation { + constructor(e) { + super(e); + this.data.annotationType = r.AnnotationType.LINK; + const t = getQuadPoints(e.dict, this.rectangle); + t && (this.data.quadPoints = t); + this.data.borderColor ||= this.data.color; + h.Catalog.parseDestDictionary({ + destDict: e.dict, + resultObj: this.data, + docBaseUrl: e.pdfManager.docBaseUrl, + docAttachments: e.attachments, + }); + } + } + class PopupAnnotation extends Annotation { + constructor(e) { + super(e); + const { dict: t } = e; + this.data.annotationType = r.AnnotationType.POPUP; + let a = t.get('Parent'); + if (!a) { + (0, r.warn)('Popup annotation has a missing or invalid parent annotation.'); + return; + } + const i = a.get('Subtype'); + this.data.parentType = i instanceof s.Name ? i.name : null; + const n = t.getRaw('Parent'); + this.data.parentId = n instanceof s.Ref ? n.toString() : null; + const o = a.getArray('Rect'); + Array.isArray(o) && 4 === o.length + ? (this.data.parentRect = r.Util.normalizeRect(o)) + : (this.data.parentRect = [0, 0, 0, 0]); + const c = a.get('RT'); + (0, s.isName)(c, r.AnnotationReplyType.GROUP) && (a = a.get('IRT')); + if (a.has('M')) { + this.setModificationDate(a.get('M')); + this.data.modificationDate = this.modificationDate; + } else this.data.modificationDate = null; + if (a.has('C')) { + this.setColor(a.getArray('C')); + this.data.color = this.color; + } else this.data.color = null; + if (!this.viewable) { + const e = a.get('F'); + this._isViewable(e) && this.setFlags(e); + } + this.setTitle(a.get('T')); + this.data.titleObj = this._title; + this.setContents(a.get('Contents')); + this.data.contentsObj = this._contents; + a.has('RC') && (this.data.richText = m.XFAFactory.getRichTextAsHtml(a.get('RC'))); + } + } + t.PopupAnnotation = PopupAnnotation; + class FreeTextAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.hasOwnCanvas = this.data.noRotate; + const { xref: t } = e; + this.data.annotationType = r.AnnotationType.FREETEXT; + this.setDefaultAppearance(e); + if (!this.appearance && this._isOffscreenCanvasSupported) { + const a = e.dict.get('CA'), + r = new n.FakeUnicodeFont(t, 'sans-serif'), + i = this.data.defaultAppearanceData; + this.appearance = r.createAppearance( + this._contents.str, + this.rectangle, + this.rotation, + i.fontSize || 10, + i.fontColor, + a, + ); + this._streams.push(this.appearance, n.FakeUnicodeFont.toUnicodeStream); + } else + this._isOffscreenCanvasSupported || + (0, r.warn)( + 'FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.', + ); + } + get hasTextContent() { + return !!this.appearance; + } + static createNewDict(e, t, { apRef: a, ap: o }) { + const { color: c, fontSize: l, rect: h, rotation: u, user: d, value: f } = e, + g = new s.Dict(t); + g.set('Type', s.Name.get('Annot')); + g.set('Subtype', s.Name.get('FreeText')); + g.set('CreationDate', `D:${(0, r.getModificationDate)()}`); + g.set('Rect', h); + const p = `/Helv ${l} Tf ${(0, n.getPdfColor)(c, !0)}`; + g.set('DA', p); + g.set('Contents', (0, i.isAscii)(f) ? f : (0, i.stringToUTF16String)(f, !0)); + g.set('F', 4); + g.set('Border', [0, 0, 0]); + g.set('Rotate', u); + d && g.set('T', (0, i.isAscii)(d) ? d : (0, i.stringToUTF16String)(d, !0)); + if (a || o) { + const e = new s.Dict(t); + g.set('AP', e); + a ? e.set('N', a) : e.set('N', o); + } + return g; + } + static async createNewAppearanceStream(e, t, a) { + const { baseFontRef: o, evaluator: c, task: l } = a, + { color: h, fontSize: u, rect: d, rotation: f, value: g } = e, + m = new s.Dict(t), + b = new s.Dict(t); + if (o) b.set('Helv', o); + else { + const e = new s.Dict(t); + e.set('BaseFont', s.Name.get('Helvetica')); + e.set('Type', s.Name.get('Font')); + e.set('Subtype', s.Name.get('Type1')); + e.set('Encoding', s.Name.get('WinAnsiEncoding')); + b.set('Helv', e); + } + m.set('Font', b); + const y = await WidgetAnnotation._getFontData( + c, + l, + { fontName: 'Helvetica', fontSize: u }, + m, + ), + [w, S, x, C] = d; + let k = x - w, + v = C - S; + f % 180 != 0 && ([k, v] = [v, k]); + const F = g.split('\n'), + O = u / 1e3; + let T = -1 / 0; + const M = []; + for (let e of F) { + const t = y.encodeString(e); + if (t.length > 1) return null; + e = t.join(''); + M.push(e); + let a = 0; + const r = y.charsToGlyphs(e); + for (const e of r) a += e.width * O; + T = Math.max(T, a); + } + let E = 1; + T > k && (E = k / T); + let D = 1; + const N = r.LINE_FACTOR * u, + R = r.LINE_DESCENT_FACTOR * u, + L = N * F.length; + L > v && (D = v / L); + const _ = u * Math.min(E, D), + $ = [ + 'q', + `0 0 ${(0, i.numberToString)(k)} ${(0, i.numberToString)(v)} re W n`, + 'BT', + `1 0 0 1 0 ${(0, i.numberToString)(v + R)} Tm 0 Tc ${(0, n.getPdfColor)(h, !0)}`, + `/Helv ${(0, i.numberToString)(_)} Tf`, + ], + j = (0, i.numberToString)(N); + for (const e of M) $.push(`0 -${j} Td (${(0, i.escapeString)(e)}) Tj`); + $.push('ET', 'Q'); + const U = $.join('\n'), + X = new s.Dict(t); + X.set('FormType', 1); + X.set('Subtype', s.Name.get('Form')); + X.set('Type', s.Name.get('XObject')); + X.set('BBox', [0, 0, k, v]); + X.set('Resources', m); + if (f) { + const e = (0, i.getRotationMatrix)(f, k, v); + X.set('Matrix', e); + } + const H = new p.StringStream(U); + H.dict = X; + return H; + } + } + class LineAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.LINE; + this.data.hasOwnCanvas = this.data.noRotate; + const i = t.getArray('L'); + this.data.lineCoordinates = r.Util.normalizeRect(i); + this.setLineEndings(t.getArray('LE')); + this.data.lineEndings = this.lineEndings; + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + n = t.get('CA'), + s = getRgbColor(t.getArray('IC'), null), + o = s ? getPdfColorArray(s) : null, + c = o ? n : null, + l = this.borderStyle.width || 1, + h = 2 * l, + u = [ + this.data.lineCoordinates[0] - h, + this.data.lineCoordinates[1] - h, + this.data.lineCoordinates[2] + h, + this.data.lineCoordinates[3] + h, + ]; + r.Util.intersect(this.rectangle, u) || (this.rectangle = u); + this._setDefaultAppearance({ + xref: a, + extra: `${l} w`, + strokeColor: e, + fillColor: o, + strokeAlpha: n, + fillAlpha: c, + pointsCallback: (e, t) => { + e.push(`${i[0]} ${i[1]} m`, `${i[2]} ${i[3]} l`, 'S'); + return [t[0].x - l, t[1].x + l, t[3].y - l, t[1].y + l]; + }, + }); + } + } + } + class SquareAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.SQUARE; + this.data.hasOwnCanvas = this.data.noRotate; + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'), + i = getRgbColor(t.getArray('IC'), null), + n = i ? getPdfColorArray(i) : null, + s = n ? r : null; + if (0 === this.borderStyle.width && !n) return; + this._setDefaultAppearance({ + xref: a, + extra: `${this.borderStyle.width} w`, + strokeColor: e, + fillColor: n, + strokeAlpha: r, + fillAlpha: s, + pointsCallback: (e, t) => { + const a = t[2].x + this.borderStyle.width / 2, + r = t[2].y + this.borderStyle.width / 2, + i = t[3].x - t[2].x - this.borderStyle.width, + s = t[1].y - t[3].y - this.borderStyle.width; + e.push(`${a} ${r} ${i} ${s} re`); + n ? e.push('B') : e.push('S'); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } + } + class CircleAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.CIRCLE; + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'), + i = getRgbColor(t.getArray('IC'), null), + n = i ? getPdfColorArray(i) : null, + s = n ? r : null; + if (0 === this.borderStyle.width && !n) return; + const o = (4 / 3) * Math.tan(Math.PI / 8); + this._setDefaultAppearance({ + xref: a, + extra: `${this.borderStyle.width} w`, + strokeColor: e, + fillColor: n, + strokeAlpha: r, + fillAlpha: s, + pointsCallback: (e, t) => { + const a = t[0].x + this.borderStyle.width / 2, + r = t[0].y - this.borderStyle.width / 2, + i = t[3].x - this.borderStyle.width / 2, + s = t[3].y + this.borderStyle.width / 2, + c = a + (i - a) / 2, + l = r + (s - r) / 2, + h = ((i - a) / 2) * o, + u = ((s - r) / 2) * o; + e.push( + `${c} ${s} m`, + `${c + h} ${s} ${i} ${l + u} ${i} ${l} c`, + `${i} ${l - u} ${c + h} ${r} ${c} ${r} c`, + `${c - h} ${r} ${a} ${l - u} ${a} ${l} c`, + `${a} ${l + u} ${c - h} ${s} ${c} ${s} c`, + 'h', + ); + n ? e.push('B') : e.push('S'); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } + } + class PolylineAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.POLYLINE; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.vertices = []; + if (!(this instanceof PolygonAnnotation)) { + this.setLineEndings(t.getArray('LE')); + this.data.lineEndings = this.lineEndings; + } + const i = t.getArray('Vertices'); + if (Array.isArray(i)) { + for (let e = 0, t = i.length; e < t; e += 2) + this.data.vertices.push({ x: i[e], y: i[e + 1] }); + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + i = t.get('CA'), + n = this.borderStyle.width || 1, + s = 2 * n, + o = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; + for (const e of this.data.vertices) { + o[0] = Math.min(o[0], e.x - s); + o[1] = Math.min(o[1], e.y - s); + o[2] = Math.max(o[2], e.x + s); + o[3] = Math.max(o[3], e.y + s); + } + r.Util.intersect(this.rectangle, o) || (this.rectangle = o); + this._setDefaultAppearance({ + xref: a, + extra: `${n} w`, + strokeColor: e, + strokeAlpha: i, + pointsCallback: (e, t) => { + const a = this.data.vertices; + for (let t = 0, r = a.length; t < r; t++) + e.push(`${a[t].x} ${a[t].y} ${0 === t ? 'm' : 'l'}`); + e.push('S'); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } + } + } + class PolygonAnnotation extends PolylineAnnotation { + constructor(e) { + super(e); + this.data.annotationType = r.AnnotationType.POLYGON; + } + } + class CaretAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.annotationType = r.AnnotationType.CARET; + } + } + class InkAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.hasOwnCanvas = this.data.noRotate; + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.INK; + this.data.inkLists = []; + const i = t.getArray('InkList'); + if (Array.isArray(i)) { + for (let e = 0, t = i.length; e < t; ++e) { + this.data.inkLists.push([]); + for (let t = 0, r = i[e].length; t < r; t += 2) + this.data.inkLists[e].push({ + x: a.fetchIfRef(i[e][t]), + y: a.fetchIfRef(i[e][t + 1]), + }); + } + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + i = t.get('CA'), + n = this.borderStyle.width || 1, + s = 2 * n, + o = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; + for (const e of this.data.inkLists) + for (const t of e) { + o[0] = Math.min(o[0], t.x - s); + o[1] = Math.min(o[1], t.y - s); + o[2] = Math.max(o[2], t.x + s); + o[3] = Math.max(o[3], t.y + s); + } + r.Util.intersect(this.rectangle, o) || (this.rectangle = o); + this._setDefaultAppearance({ + xref: a, + extra: `${n} w`, + strokeColor: e, + strokeAlpha: i, + pointsCallback: (e, t) => { + for (const t of this.data.inkLists) { + for (let a = 0, r = t.length; a < r; a++) + e.push(`${t[a].x} ${t[a].y} ${0 === a ? 'm' : 'l'}`); + e.push('S'); + } + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } + } + static createNewDict(e, t, { apRef: a, ap: i }) { + const { paths: n, rect: o, rotation: c } = e, + l = new s.Dict(t); + l.set('Type', s.Name.get('Annot')); + l.set('Subtype', s.Name.get('Ink')); + l.set('CreationDate', `D:${(0, r.getModificationDate)()}`); + l.set('Rect', o); + l.set( + 'InkList', + n.map((e) => e.points), + ); + l.set('F', 4); + l.set('Border', [0, 0, 0]); + l.set('Rotate', c); + const h = new s.Dict(t); + l.set('AP', h); + a ? h.set('N', a) : h.set('N', i); + return l; + } + static async createNewAppearanceStream(e, t, a) { + const { color: r, rect: o, rotation: c, paths: l, thickness: h, opacity: u } = e, + [d, f, g, m] = o; + let b = g - d, + y = m - f; + c % 180 != 0 && ([b, y] = [y, b]); + const w = [`${h} w 1 J 1 j`, `${(0, n.getPdfColor)(r, !1)}`]; + 1 !== u && w.push('/R0 gs'); + const S = []; + for (const { bezier: e } of l) { + S.length = 0; + S.push(`${(0, i.numberToString)(e[0])} ${(0, i.numberToString)(e[1])} m`); + for (let t = 2, a = e.length; t < a; t += 6) { + const a = e + .slice(t, t + 6) + .map(i.numberToString) + .join(' '); + S.push(`${a} c`); + } + S.push('S'); + w.push(S.join('\n')); + } + const x = w.join('\n'), + C = new s.Dict(t); + C.set('FormType', 1); + C.set('Subtype', s.Name.get('Form')); + C.set('Type', s.Name.get('XObject')); + C.set('BBox', [0, 0, b, y]); + C.set('Length', x.length); + if (c) { + const e = (0, i.getRotationMatrix)(c, b, y); + C.set('Matrix', e); + } + if (1 !== u) { + const e = new s.Dict(t), + a = new s.Dict(t), + r = new s.Dict(t); + r.set('CA', u); + r.set('Type', s.Name.get('ExtGState')); + a.set('R0', r); + e.set('ExtGState', a); + C.set('Resources', e); + } + const k = new p.StringStream(x); + k.dict = C; + return k; + } + } + class HighlightAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.HIGHLIGHT; + if ((this.data.quadPoints = getQuadPoints(t, null))) { + const e = this.appearance && this.appearance.dict.get('Resources'); + if (!this.appearance || !e || !e.has('ExtGState')) { + this.appearance && + (0, r.warn)('HighlightAnnotation - ignoring built-in appearance stream.'); + const e = this.color ? getPdfColorArray(this.color) : [1, 1, 0], + i = t.get('CA'); + this._setDefaultAppearance({ + xref: a, + fillColor: e, + blendMode: 'Multiply', + fillAlpha: i, + pointsCallback: (e, t) => { + e.push( + `${t[0].x} ${t[0].y} m`, + `${t[1].x} ${t[1].y} l`, + `${t[3].x} ${t[3].y} l`, + `${t[2].x} ${t[2].y} l`, + 'f', + ); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } else this.data.hasPopup = !1; + } + } + class UnderlineAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.UNDERLINE; + if ((this.data.quadPoints = getQuadPoints(t, null))) { + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'); + this._setDefaultAppearance({ + xref: a, + extra: '[] 0 d 1 w', + strokeColor: e, + strokeAlpha: r, + pointsCallback: (e, t) => { + e.push(`${t[2].x} ${t[2].y} m`, `${t[3].x} ${t[3].y} l`, 'S'); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } else this.data.hasPopup = !1; + } + } + class SquigglyAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.SQUIGGLY; + if ((this.data.quadPoints = getQuadPoints(t, null))) { + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'); + this._setDefaultAppearance({ + xref: a, + extra: '[] 0 d 1 w', + strokeColor: e, + strokeAlpha: r, + pointsCallback: (e, t) => { + const a = (t[0].y - t[2].y) / 6; + let r = a, + i = t[2].x; + const n = t[2].y, + s = t[3].x; + e.push(`${i} ${n + r} m`); + do { + i += 2; + r = 0 === r ? a : 0; + e.push(`${i} ${n + r} l`); + } while (i < s); + e.push('S'); + return [t[2].x, s, n - 2 * a, n + 2 * a]; + }, + }); + } + } else this.data.hasPopup = !1; + } + } + class StrikeOutAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e; + this.data.annotationType = r.AnnotationType.STRIKEOUT; + if ((this.data.quadPoints = getQuadPoints(t, null))) { + if (!this.appearance) { + const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0], + r = t.get('CA'); + this._setDefaultAppearance({ + xref: a, + extra: '[] 0 d 1 w', + strokeColor: e, + strokeAlpha: r, + pointsCallback: (e, t) => { + e.push( + (t[0].x + t[2].x) / 2 + ' ' + (t[0].y + t[2].y) / 2 + ' m', + (t[1].x + t[3].x) / 2 + ' ' + (t[1].y + t[3].y) / 2 + ' l', + 'S', + ); + return [t[0].x, t[1].x, t[3].y, t[1].y]; + }, + }); + } + } else this.data.hasPopup = !1; + } + } + class StampAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + this.data.annotationType = r.AnnotationType.STAMP; + this.data.hasOwnCanvas = this.data.noRotate; + } + } + class FileAttachmentAnnotation extends MarkupAnnotation { + constructor(e) { + super(e); + const { dict: t, xref: a } = e, + i = new d.FileSpec(t.get('FS'), a); + this.data.annotationType = r.AnnotationType.FILEATTACHMENT; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.file = i.serializable; + const n = t.get('Name'); + this.data.name = n instanceof s.Name ? (0, r.stringToPDFString)(n.name) : 'PushPin'; + } + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FakeUnicodeFont = void 0; + t.createDefaultAppearance = function createDefaultAppearance({ + fontSize: e, + fontName: t, + fontColor: a, + }) { + return `/${(0, i.escapePDFName)(t)} ${e} Tf ${getPdfColor(a, !0)}`; + }; + t.getPdfColor = getPdfColor; + t.parseDefaultAppearance = function parseDefaultAppearance(e) { + return new DefaultAppearanceEvaluator(e).parse(); + }; + var r = a(4), + i = a(3), + n = a(2), + s = a(12), + o = a(13), + c = a(8); + class DefaultAppearanceEvaluator extends o.EvaluatorPreprocessor { + constructor(e) { + super(new c.StringStream(e)); + } + parse() { + const e = { fn: 0, args: [] }, + t = { fontSize: 0, fontName: '', fontColor: new Uint8ClampedArray(3) }; + try { + for (;;) { + e.args.length = 0; + if (!this.read(e)) break; + if (0 !== this.savedStatesDepth) continue; + const { fn: a, args: i } = e; + switch (0 | a) { + case n.OPS.setFont: + const [e, a] = i; + e instanceof r.Name && (t.fontName = e.name); + 'number' == typeof a && a > 0 && (t.fontSize = a); + break; + case n.OPS.setFillRGBColor: + s.ColorSpace.singletons.rgb.getRgbItem(i, 0, t.fontColor, 0); + break; + case n.OPS.setFillGray: + s.ColorSpace.singletons.gray.getRgbItem(i, 0, t.fontColor, 0); + break; + case n.OPS.setFillColorSpace: + s.ColorSpace.singletons.cmyk.getRgbItem(i, 0, t.fontColor, 0); + } + } + } catch (e) { + (0, n.warn)(`parseDefaultAppearance - ignoring errors: "${e}".`); + } + return t; + } + } + function getPdfColor(e, t) { + if (e[0] === e[1] && e[1] === e[2]) { + const a = e[0] / 255; + return `${(0, i.numberToString)(a)} ${t ? 'g' : 'G'}`; + } + return ( + Array.from(e, (e) => (0, i.numberToString)(e / 255)).join(' ') + + ' ' + + (t ? 'rg' : 'RG') + ); + } + class FakeUnicodeFont { + constructor(e, t) { + this.xref = e; + this.widths = null; + this.firstChar = 1 / 0; + this.lastChar = -1 / 0; + this.fontFamily = t; + const a = new OffscreenCanvas(1, 1); + this.ctxMeasure = a.getContext('2d'); + FakeUnicodeFont._fontNameId || (FakeUnicodeFont._fontNameId = 1); + this.fontName = r.Name.get(`InvalidPDFjsFont_${t}_${FakeUnicodeFont._fontNameId++}`); + } + get toUnicodeRef() { + if (!FakeUnicodeFont._toUnicodeRef) { + const e = + '/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo\n<< /Registry (Adobe)\n/Ordering (UCS) /Supplement 0 >> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000> \nendcodespacerange\n1 beginbfrange\n<0000> <0000>\nendbfrange\nendcmap CMapName currentdict /CMap defineresource pop end end', + t = (FakeUnicodeFont.toUnicodeStream = new c.StringStream(e)), + a = new r.Dict(this.xref); + t.dict = a; + a.set('Length', e.length); + FakeUnicodeFont._toUnicodeRef = this.xref.getNewPersistentRef(t); + } + return FakeUnicodeFont._toUnicodeRef; + } + get fontDescriptorRef() { + if (!FakeUnicodeFont._fontDescriptorRef) { + const e = new r.Dict(this.xref); + e.set('Type', r.Name.get('FontDescriptor')); + e.set('FontName', this.fontName); + e.set('FontFamily', 'MyriadPro Regular'); + e.set('FontBBox', [0, 0, 0, 0]); + e.set('FontStretch', r.Name.get('Normal')); + e.set('FontWeight', 400); + e.set('ItalicAngle', 0); + FakeUnicodeFont._fontDescriptorRef = this.xref.getNewPersistentRef(e); + } + return FakeUnicodeFont._fontDescriptorRef; + } + get descendantFontRef() { + const e = new r.Dict(this.xref); + e.set('BaseFont', this.fontName); + e.set('Type', r.Name.get('Font')); + e.set('Subtype', r.Name.get('CIDFontType0')); + e.set('CIDToGIDMap', r.Name.get('Identity')); + e.set('FirstChar', this.firstChar); + e.set('LastChar', this.lastChar); + e.set('FontDescriptor', this.fontDescriptorRef); + e.set('DW', 1e3); + const t = [], + a = [...this.widths.entries()].sort(); + let i = null, + n = null; + for (const [e, r] of a) + if (i) + if (e === i + n.length) n.push(r); + else { + t.push(i, n); + i = e; + n = [r]; + } + else { + i = e; + n = [r]; + } + i && t.push(i, n); + e.set('W', t); + const s = new r.Dict(this.xref); + s.set('Ordering', 'Identity'); + s.set('Registry', 'Adobe'); + s.set('Supplement', 0); + e.set('CIDSystemInfo', s); + return this.xref.getNewPersistentRef(e); + } + get baseFontRef() { + const e = new r.Dict(this.xref); + e.set('BaseFont', this.fontName); + e.set('Type', r.Name.get('Font')); + e.set('Subtype', r.Name.get('Type0')); + e.set('Encoding', r.Name.get('Identity-H')); + e.set('DescendantFonts', [this.descendantFontRef]); + e.set('ToUnicode', this.toUnicodeRef); + return this.xref.getNewPersistentRef(e); + } + get resources() { + const e = new r.Dict(this.xref), + t = new r.Dict(this.xref); + t.set(this.fontName.name, this.baseFontRef); + e.set('Font', t); + return e; + } + _createContext() { + this.widths = new Map(); + this.ctxMeasure.font = `1000px ${this.fontFamily}`; + return this.ctxMeasure; + } + createFontResources(e) { + const t = this._createContext(); + for (const a of e.split(/\r\n?|\n/)) + for (const e of a.split('')) { + const a = e.charCodeAt(0); + if (this.widths.has(a)) continue; + const r = t.measureText(e), + i = Math.ceil(r.width); + this.widths.set(a, i); + this.firstChar = Math.min(a, this.firstChar); + this.lastChar = Math.max(a, this.lastChar); + } + return this.resources; + } + createAppearance(e, t, a, s, o, l) { + const h = this._createContext(), + u = []; + let d = -1 / 0; + for (const t of e.split(/\r\n?|\n/)) { + u.push(t); + const e = h.measureText(t).width; + d = Math.max(d, e); + for (const e of t.split('')) { + const t = e.charCodeAt(0); + let a = this.widths.get(t); + if (void 0 === a) { + const r = h.measureText(e); + a = Math.ceil(r.width); + this.widths.set(t, a); + this.firstChar = Math.min(t, this.firstChar); + this.lastChar = Math.max(t, this.lastChar); + } + } + } + d *= s / 1e3; + const [f, g, p, m] = t; + let b = p - f, + y = m - g; + a % 180 != 0 && ([b, y] = [y, b]); + let w = 1; + d > b && (w = b / d); + let S = 1; + const x = n.LINE_FACTOR * s, + C = n.LINE_DESCENT_FACTOR * s, + k = x * u.length; + k > y && (S = y / k); + const v = s * Math.min(w, S), + F = [ + 'q', + `0 0 ${(0, i.numberToString)(b)} ${(0, i.numberToString)(y)} re W n`, + 'BT', + `1 0 0 1 0 ${(0, i.numberToString)(y + C)} Tm 0 Tc ${getPdfColor(o, !0)}`, + `/${this.fontName.name} ${(0, i.numberToString)(v)} Tf`, + ], + { resources: O } = this; + if (1 !== (l = 'number' == typeof l && l >= 0 && l <= 1 ? l : 1)) { + F.push('/R0 gs'); + const e = new r.Dict(this.xref), + t = new r.Dict(this.xref); + t.set('ca', l); + t.set('CA', l); + t.set('Type', r.Name.get('ExtGState')); + e.set('R0', t); + O.set('ExtGState', e); + } + const T = (0, i.numberToString)(x); + for (const e of u) F.push(`0 -${T} Td <${(0, i.stringToUTF16HexString)(e)}> Tj`); + F.push('ET', 'Q'); + const M = F.join('\n'), + E = new r.Dict(this.xref); + E.set('Subtype', r.Name.get('Form')); + E.set('Type', r.Name.get('XObject')); + E.set('BBox', [0, 0, b, y]); + E.set('Length', M.length); + E.set('Resources', O); + if (a) { + const e = (0, i.getRotationMatrix)(a, b, y); + E.set('Matrix', e); + } + const D = new c.StringStream(M); + D.dict = E; + return D; + } + } + t.FakeUnicodeFont = FakeUnicodeFont; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ColorSpace = void 0; + var r = a(2), + i = a(4), + n = a(5), + s = a(3); + class ColorSpace { + constructor(e, t) { + this.constructor === ColorSpace && + (0, r.unreachable)('Cannot initialize ColorSpace.'); + this.name = e; + this.numComps = t; + } + getRgb(e, t) { + const a = new Uint8ClampedArray(3); + this.getRgbItem(e, t, a, 0); + return a; + } + getRgbItem(e, t, a, i) { + (0, r.unreachable)('Should not call ColorSpace.getRgbItem'); + } + getRgbBuffer(e, t, a, i, n, s, o) { + (0, r.unreachable)('Should not call ColorSpace.getRgbBuffer'); + } + getOutputLength(e, t) { + (0, r.unreachable)('Should not call ColorSpace.getOutputLength'); + } + isPassthrough(e) { + return !1; + } + isDefaultDecode(e, t) { + return ColorSpace.isDefaultDecode(e, this.numComps); + } + fillRgb(e, t, a, r, i, n, s, o, c) { + const l = t * a; + let h = null; + const u = 1 << s, + d = a !== i || t !== r; + if (this.isPassthrough(s)) h = o; + else if ( + 1 === this.numComps && + l > u && + 'DeviceGray' !== this.name && + 'DeviceRGB' !== this.name + ) { + const t = s <= 8 ? new Uint8Array(u) : new Uint16Array(u); + for (let e = 0; e < u; e++) t[e] = e; + const a = new Uint8ClampedArray(3 * u); + this.getRgbBuffer(t, 0, u, a, 0, s, 0); + if (d) { + h = new Uint8Array(3 * l); + let e = 0; + for (let t = 0; t < l; ++t) { + const r = 3 * o[t]; + h[e++] = a[r]; + h[e++] = a[r + 1]; + h[e++] = a[r + 2]; + } + } else { + let t = 0; + for (let r = 0; r < l; ++r) { + const i = 3 * o[r]; + e[t++] = a[i]; + e[t++] = a[i + 1]; + e[t++] = a[i + 2]; + t += c; + } + } + } else if (d) { + h = new Uint8ClampedArray(3 * l); + this.getRgbBuffer(o, 0, l, h, 0, s, 0); + } else this.getRgbBuffer(o, 0, r * n, e, 0, s, c); + if (h) + if (d) + !(function resizeRgbImage(e, t, a, r, i, n, s) { + s = 1 !== s ? 0 : s; + const o = a / i, + c = r / n; + let l, + h = 0; + const u = new Uint16Array(i), + d = 3 * a; + for (let e = 0; e < i; e++) u[e] = 3 * Math.floor(e * o); + for (let a = 0; a < n; a++) { + const r = Math.floor(a * c) * d; + for (let a = 0; a < i; a++) { + l = r + u[a]; + t[h++] = e[l++]; + t[h++] = e[l++]; + t[h++] = e[l++]; + h += s; + } + } + })(h, e, t, a, r, i, c); + else { + let t = 0, + a = 0; + for (let i = 0, s = r * n; i < s; i++) { + e[t++] = h[a++]; + e[t++] = h[a++]; + e[t++] = h[a++]; + t += c; + } + } + } + get usesZeroToOneRange() { + return (0, r.shadow)(this, 'usesZeroToOneRange', !0); + } + static _cache(e, t, a, r) { + if (!a) + throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.'); + if (!r) throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.'); + let n, s; + if (e instanceof i.Ref) { + s = e; + e = t.fetch(e); + } + e instanceof i.Name && (n = e.name); + (n || s) && a.set(n, s, r); + } + static getCached(e, t, a) { + if (!a) + throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.'); + if (e instanceof i.Ref) { + const r = a.getByRef(e); + if (r) return r; + try { + e = t.fetch(e); + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + } + } + if (e instanceof i.Name) { + const t = a.getByName(e.name); + if (t) return t; + } + return null; + } + static async parseAsync({ + cs: e, + xref: t, + resources: a = null, + pdfFunctionFactory: r, + localColorSpaceCache: i, + }) { + const n = this._parse(e, t, a, r); + this._cache(e, t, i, n); + return n; + } + static parse({ + cs: e, + xref: t, + resources: a = null, + pdfFunctionFactory: r, + localColorSpaceCache: i, + }) { + const n = this.getCached(e, t, i); + if (n) return n; + const s = this._parse(e, t, a, r); + this._cache(e, t, i, s); + return s; + } + static _parse(e, t, a = null, n) { + if ((e = t.fetchIfRef(e)) instanceof i.Name) + switch (e.name) { + case 'G': + case 'DeviceGray': + return this.singletons.gray; + case 'RGB': + case 'DeviceRGB': + return this.singletons.rgb; + case 'CMYK': + case 'DeviceCMYK': + return this.singletons.cmyk; + case 'Pattern': + return new PatternCS(null); + default: + if (a instanceof i.Dict) { + const r = a.get('ColorSpace'); + if (r instanceof i.Dict) { + const s = r.get(e.name); + if (s) { + if (s instanceof i.Name) return this._parse(s, t, a, n); + e = s; + break; + } + } + } + throw new r.FormatError(`Unrecognized ColorSpace: ${e.name}`); + } + if (Array.isArray(e)) { + const i = t.fetchIfRef(e[0]).name; + let s, o, u, d, f, g; + switch (i) { + case 'G': + case 'DeviceGray': + return this.singletons.gray; + case 'RGB': + case 'DeviceRGB': + return this.singletons.rgb; + case 'CMYK': + case 'DeviceCMYK': + return this.singletons.cmyk; + case 'CalGray': + s = t.fetchIfRef(e[1]); + d = s.getArray('WhitePoint'); + f = s.getArray('BlackPoint'); + g = s.get('Gamma'); + return new c(d, f, g); + case 'CalRGB': + s = t.fetchIfRef(e[1]); + d = s.getArray('WhitePoint'); + f = s.getArray('BlackPoint'); + g = s.getArray('Gamma'); + const p = s.getArray('Matrix'); + return new l(d, f, g, p); + case 'ICCBased': + const m = t.fetchIfRef(e[1]).dict; + o = m.get('N'); + const b = m.get('Alternate'); + if (b) { + const e = this._parse(b, t, a, n); + if (e.numComps === o) return e; + (0, r.warn)('ICCBased color space: Ignoring incorrect /Alternate entry.'); + } + if (1 === o) return this.singletons.gray; + if (3 === o) return this.singletons.rgb; + if (4 === o) return this.singletons.cmyk; + break; + case 'Pattern': + u = e[1] || null; + u && (u = this._parse(u, t, a, n)); + return new PatternCS(u); + case 'I': + case 'Indexed': + u = this._parse(e[1], t, a, n); + const y = t.fetchIfRef(e[2]) + 1, + w = t.fetchIfRef(e[3]); + return new IndexedCS(u, y, w); + case 'Separation': + case 'DeviceN': + const S = t.fetchIfRef(e[1]); + o = Array.isArray(S) ? S.length : 1; + u = this._parse(e[2], t, a, n); + const x = n.create(e[3]); + return new AlternateCS(o, u, x); + case 'Lab': + s = t.fetchIfRef(e[1]); + d = s.getArray('WhitePoint'); + f = s.getArray('BlackPoint'); + const C = s.getArray('Range'); + return new h(d, f, C); + default: + throw new r.FormatError(`Unimplemented ColorSpace object: ${i}`); + } + } + throw new r.FormatError(`Unrecognized ColorSpace object: ${e}`); + } + static isDefaultDecode(e, t) { + if (!Array.isArray(e)) return !0; + if (2 * t !== e.length) { + (0, r.warn)('The decode map is not the correct length'); + return !0; + } + for (let t = 0, a = e.length; t < a; t += 2) + if (0 !== e[t] || 1 !== e[t + 1]) return !1; + return !0; + } + static get singletons() { + return (0, r.shadow)(this, 'singletons', { + get gray() { + return (0, r.shadow)(this, 'gray', new DeviceGrayCS()); + }, + get rgb() { + return (0, r.shadow)(this, 'rgb', new DeviceRgbCS()); + }, + get cmyk() { + return (0, r.shadow)(this, 'cmyk', new o()); + }, + }); + } + } + t.ColorSpace = ColorSpace; + class AlternateCS extends ColorSpace { + constructor(e, t, a) { + super('Alternate', e); + this.base = t; + this.tintFn = a; + this.tmpBuf = new Float32Array(t.numComps); + } + getRgbItem(e, t, a, r) { + const i = this.tmpBuf; + this.tintFn(e, t, i, 0); + this.base.getRgbItem(i, 0, a, r); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = this.tintFn, + c = this.base, + l = 1 / ((1 << n) - 1), + h = c.numComps, + u = c.usesZeroToOneRange, + d = (c.isPassthrough(8) || !u) && 0 === s; + let f = d ? i : 0; + const g = d ? r : new Uint8ClampedArray(h * a), + p = this.numComps, + m = new Float32Array(p), + b = new Float32Array(h); + let y, w; + for (y = 0; y < a; y++) { + for (w = 0; w < p; w++) m[w] = e[t++] * l; + o(m, 0, b, 0); + if (u) for (w = 0; w < h; w++) g[f++] = 255 * b[w]; + else { + c.getRgbItem(b, 0, g, f); + f += h; + } + } + d || c.getRgbBuffer(g, 0, a, r, i, 8, s); + } + getOutputLength(e, t) { + return this.base.getOutputLength((e * this.base.numComps) / this.numComps, t); + } + } + class PatternCS extends ColorSpace { + constructor(e) { + super('Pattern', null); + this.base = e; + } + isDefaultDecode(e, t) { + (0, r.unreachable)('Should not call PatternCS.isDefaultDecode'); + } + } + class IndexedCS extends ColorSpace { + constructor(e, t, a) { + super('Indexed', 1); + this.base = e; + this.highVal = t; + const i = e.numComps * t; + this.lookup = new Uint8Array(i); + if (a instanceof n.BaseStream) { + const e = a.getBytes(i); + this.lookup.set(e); + } else { + if ('string' != typeof a) + throw new r.FormatError(`IndexedCS - unrecognized lookup table: ${a}`); + for (let e = 0; e < i; ++e) this.lookup[e] = 255 & a.charCodeAt(e); + } + } + getRgbItem(e, t, a, r) { + const i = this.base.numComps, + n = e[t] * i; + this.base.getRgbBuffer(this.lookup, n, 1, a, r, 8, 0); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = this.base, + c = o.numComps, + l = o.getOutputLength(c, s), + h = this.lookup; + for (let n = 0; n < a; ++n) { + const a = e[t++] * c; + o.getRgbBuffer(h, a, 1, r, i, 8, s); + i += l; + } + } + getOutputLength(e, t) { + return this.base.getOutputLength(e * this.base.numComps, t); + } + isDefaultDecode(e, t) { + if (!Array.isArray(e)) return !0; + if (2 !== e.length) { + (0, r.warn)('Decode map length is not correct'); + return !0; + } + if (!Number.isInteger(t) || t < 1) { + (0, r.warn)('Bits per component is not correct'); + return !0; + } + return 0 === e[0] && e[1] === (1 << t) - 1; + } + } + class DeviceGrayCS extends ColorSpace { + constructor() { + super('DeviceGray', 1); + } + getRgbItem(e, t, a, r) { + const i = 255 * e[t]; + a[r] = a[r + 1] = a[r + 2] = i; + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = 255 / ((1 << n) - 1); + let c = t, + l = i; + for (let t = 0; t < a; ++t) { + const t = o * e[c++]; + r[l++] = t; + r[l++] = t; + r[l++] = t; + l += s; + } + } + getOutputLength(e, t) { + return e * (3 + t); + } + } + class DeviceRgbCS extends ColorSpace { + constructor() { + super('DeviceRGB', 3); + } + getRgbItem(e, t, a, r) { + a[r] = 255 * e[t]; + a[r + 1] = 255 * e[t + 1]; + a[r + 2] = 255 * e[t + 2]; + } + getRgbBuffer(e, t, a, r, i, n, s) { + if (8 === n && 0 === s) { + r.set(e.subarray(t, t + 3 * a), i); + return; + } + const o = 255 / ((1 << n) - 1); + let c = t, + l = i; + for (let t = 0; t < a; ++t) { + r[l++] = o * e[c++]; + r[l++] = o * e[c++]; + r[l++] = o * e[c++]; + l += s; + } + } + getOutputLength(e, t) { + return ((e * (3 + t)) / 3) | 0; + } + isPassthrough(e) { + return 8 === e; + } + } + const o = (function DeviceCmykCSClosure() { + function convertToRgb(e, t, a, r, i) { + const n = e[t] * a, + s = e[t + 1] * a, + o = e[t + 2] * a, + c = e[t + 3] * a; + r[i] = + 255 + + n * + (-4.387332384609988 * n + + 54.48615194189176 * s + + 18.82290502165302 * o + + 212.25662451639585 * c - + 285.2331026137004) + + s * + (1.7149763477362134 * s - + 5.6096736904047315 * o + + -17.873870861415444 * c - + 5.497006427196366) + + o * (-2.5217340131683033 * o - 21.248923337353073 * c + 17.5119270841813) + + c * (-21.86122147463605 * c - 189.48180835922747); + r[i + 1] = + 255 + + n * + (8.841041422036149 * n + + 60.118027045597366 * s + + 6.871425592049007 * o + + 31.159100130055922 * c - + 79.2970844816548) + + s * + (-15.310361306967817 * s + + 17.575251261109482 * o + + 131.35250912493976 * c - + 190.9453302588951) + + o * (4.444339102852739 * o + 9.8632861493405 * c - 24.86741582555878) + + c * (-20.737325471181034 * c - 187.80453709719578); + r[i + 2] = + 255 + + n * + (0.8842522430003296 * n + + 8.078677503112928 * s + + 30.89978309703729 * o - + 0.23883238689178934 * c - + 14.183576799673286) + + s * + (10.49593273432072 * s + + 63.02378494754052 * o + + 50.606957656360734 * c - + 112.23884253719248) + + o * (0.03296041114873217 * o + 115.60384449646641 * c - 193.58209356861505) + + c * (-22.33816807309886 * c - 180.12613974708367); + } + return class DeviceCmykCS extends ColorSpace { + constructor() { + super('DeviceCMYK', 4); + } + getRgbItem(e, t, a, r) { + convertToRgb(e, t, 1, a, r); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = 1 / ((1 << n) - 1); + for (let n = 0; n < a; n++) { + convertToRgb(e, t, o, r, i); + t += 4; + i += 3 + s; + } + } + getOutputLength(e, t) { + return ((e / 4) * (3 + t)) | 0; + } + }; + })(), + c = (function CalGrayCSClosure() { + function convertToRgb(e, t, a, r, i, n) { + const s = (t[a] * n) ** e.G, + o = e.YW * s, + c = Math.max(295.8 * o ** 0.3333333333333333 - 40.8, 0); + r[i] = c; + r[i + 1] = c; + r[i + 2] = c; + } + return class CalGrayCS extends ColorSpace { + constructor(e, t, a) { + super('CalGray', 1); + if (!e) + throw new r.FormatError( + 'WhitePoint missing - required for color space CalGray', + ); + t = t || [0, 0, 0]; + a = a || 1; + this.XW = e[0]; + this.YW = e[1]; + this.ZW = e[2]; + this.XB = t[0]; + this.YB = t[1]; + this.ZB = t[2]; + this.G = a; + if (this.XW < 0 || this.ZW < 0 || 1 !== this.YW) + throw new r.FormatError( + `Invalid WhitePoint components for ${this.name}, no fallback available`, + ); + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + (0, r.info)(`Invalid BlackPoint for ${this.name}, falling back to default.`); + this.XB = this.YB = this.ZB = 0; + } + (0 === this.XB && 0 === this.YB && 0 === this.ZB) || + (0, r.warn)( + `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ZB: ${this.ZB}, only default values are supported.`, + ); + if (this.G < 1) { + (0, r.info)( + `Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`, + ); + this.G = 1; + } + } + getRgbItem(e, t, a, r) { + convertToRgb(this, e, t, a, r, 1); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = 1 / ((1 << n) - 1); + for (let n = 0; n < a; ++n) { + convertToRgb(this, e, t, r, i, o); + t += 1; + i += 3 + s; + } + } + getOutputLength(e, t) { + return e * (3 + t); + } + }; + })(), + l = (function CalRGBCSClosure() { + const e = new Float32Array([ + 0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296, + ]), + t = new Float32Array([ + 0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, + 0.0400428, 0.9684867, + ]), + a = new Float32Array([ + 3.2404542, -1.5371385, -0.4985314, -0.969266, 1.8760108, 0.041556, 0.0556434, + -0.2040259, 1.0572252, + ]), + i = new Float32Array([1, 1, 1]), + n = new Float32Array(3), + s = new Float32Array(3), + o = new Float32Array(3), + c = (24 / 116) ** 3 / 8; + function matrixProduct(e, t, a) { + a[0] = e[0] * t[0] + e[1] * t[1] + e[2] * t[2]; + a[1] = e[3] * t[0] + e[4] * t[1] + e[5] * t[2]; + a[2] = e[6] * t[0] + e[7] * t[1] + e[8] * t[2]; + } + function sRGBTransferFunction(e) { + return e <= 0.0031308 + ? adjustToRange(0, 1, 12.92 * e) + : e >= 0.99554525 + ? 1 + : adjustToRange(0, 1, 1.055 * e ** (1 / 2.4) - 0.055); + } + function adjustToRange(e, t, a) { + return Math.max(e, Math.min(t, a)); + } + function decodeL(e) { + return e < 0 ? -decodeL(-e) : e > 8 ? ((e + 16) / 116) ** 3 : e * c; + } + function convertToRgb(r, c, l, h, u, d) { + const f = adjustToRange(0, 1, c[l] * d), + g = adjustToRange(0, 1, c[l + 1] * d), + p = adjustToRange(0, 1, c[l + 2] * d), + m = 1 === f ? 1 : f ** r.GR, + b = 1 === g ? 1 : g ** r.GG, + y = 1 === p ? 1 : p ** r.GB, + w = r.MXA * m + r.MXB * b + r.MXC * y, + S = r.MYA * m + r.MYB * b + r.MYC * y, + x = r.MZA * m + r.MZB * b + r.MZC * y, + C = s; + C[0] = w; + C[1] = S; + C[2] = x; + const k = o; + !(function normalizeWhitePointToFlat(a, r, i) { + if (1 === a[0] && 1 === a[2]) { + i[0] = r[0]; + i[1] = r[1]; + i[2] = r[2]; + return; + } + const s = i; + matrixProduct(e, r, s); + const o = n; + !(function convertToFlat(e, t, a) { + a[0] = (1 * t[0]) / e[0]; + a[1] = (1 * t[1]) / e[1]; + a[2] = (1 * t[2]) / e[2]; + })(a, s, o); + matrixProduct(t, o, i); + })(r.whitePoint, C, k); + const v = s; + !(function compensateBlackPoint(e, t, a) { + if (0 === e[0] && 0 === e[1] && 0 === e[2]) { + a[0] = t[0]; + a[1] = t[1]; + a[2] = t[2]; + return; + } + const r = decodeL(0), + i = (1 - r) / (1 - decodeL(e[0])), + n = 1 - i, + s = (1 - r) / (1 - decodeL(e[1])), + o = 1 - s, + c = (1 - r) / (1 - decodeL(e[2])), + l = 1 - c; + a[0] = t[0] * i + n; + a[1] = t[1] * s + o; + a[2] = t[2] * c + l; + })(r.blackPoint, k, v); + const F = o; + !(function normalizeWhitePointToD65(a, r, i) { + const s = i; + matrixProduct(e, r, s); + const o = n; + !(function convertToD65(e, t, a) { + a[0] = (0.95047 * t[0]) / e[0]; + a[1] = (1 * t[1]) / e[1]; + a[2] = (1.08883 * t[2]) / e[2]; + })(a, s, o); + matrixProduct(t, o, i); + })(i, v, F); + const O = s; + matrixProduct(a, F, O); + h[u] = 255 * sRGBTransferFunction(O[0]); + h[u + 1] = 255 * sRGBTransferFunction(O[1]); + h[u + 2] = 255 * sRGBTransferFunction(O[2]); + } + return class CalRGBCS extends ColorSpace { + constructor(e, t, a, i) { + super('CalRGB', 3); + if (!e) + throw new r.FormatError('WhitePoint missing - required for color space CalRGB'); + t ||= new Float32Array(3); + a ||= new Float32Array([1, 1, 1]); + i ||= new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]); + const n = e[0], + s = e[1], + o = e[2]; + this.whitePoint = e; + const c = t[0], + l = t[1], + h = t[2]; + this.blackPoint = t; + this.GR = a[0]; + this.GG = a[1]; + this.GB = a[2]; + this.MXA = i[0]; + this.MYA = i[1]; + this.MZA = i[2]; + this.MXB = i[3]; + this.MYB = i[4]; + this.MZB = i[5]; + this.MXC = i[6]; + this.MYC = i[7]; + this.MZC = i[8]; + if (n < 0 || o < 0 || 1 !== s) + throw new r.FormatError( + `Invalid WhitePoint components for ${this.name}, no fallback available`, + ); + if (c < 0 || l < 0 || h < 0) { + (0, r.info)( + `Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`, + ); + this.blackPoint = new Float32Array(3); + } + if (this.GR < 0 || this.GG < 0 || this.GB < 0) { + (0, r.info)( + `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`, + ); + this.GR = this.GG = this.GB = 1; + } + } + getRgbItem(e, t, a, r) { + convertToRgb(this, e, t, a, r, 1); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = 1 / ((1 << n) - 1); + for (let n = 0; n < a; ++n) { + convertToRgb(this, e, t, r, i, o); + t += 3; + i += 3 + s; + } + } + getOutputLength(e, t) { + return ((e * (3 + t)) / 3) | 0; + } + }; + })(), + h = (function LabCSClosure() { + function fn_g(e) { + let t; + t = e >= 6 / 29 ? e ** 3 : (108 / 841) * (e - 4 / 29); + return t; + } + function decode(e, t, a, r) { + return a + (e * (r - a)) / t; + } + function convertToRgb(e, t, a, r, i, n) { + let s = t[a], + o = t[a + 1], + c = t[a + 2]; + if (!1 !== r) { + s = decode(s, r, 0, 100); + o = decode(o, r, e.amin, e.amax); + c = decode(c, r, e.bmin, e.bmax); + } + o > e.amax ? (o = e.amax) : o < e.amin && (o = e.amin); + c > e.bmax ? (c = e.bmax) : c < e.bmin && (c = e.bmin); + const l = (s + 16) / 116, + h = l + o / 500, + u = l - c / 200, + d = e.XW * fn_g(h), + f = e.YW * fn_g(l), + g = e.ZW * fn_g(u); + let p, m, b; + if (e.ZW < 1) { + p = 3.1339 * d + -1.617 * f + -0.4906 * g; + m = -0.9785 * d + 1.916 * f + 0.0333 * g; + b = 0.072 * d + -0.229 * f + 1.4057 * g; + } else { + p = 3.2406 * d + -1.5372 * f + -0.4986 * g; + m = -0.9689 * d + 1.8758 * f + 0.0415 * g; + b = 0.0557 * d + -0.204 * f + 1.057 * g; + } + i[n] = 255 * Math.sqrt(p); + i[n + 1] = 255 * Math.sqrt(m); + i[n + 2] = 255 * Math.sqrt(b); + } + return class LabCS extends ColorSpace { + constructor(e, t, a) { + super('Lab', 3); + if (!e) + throw new r.FormatError('WhitePoint missing - required for color space Lab'); + t ||= [0, 0, 0]; + a ||= [-100, 100, -100, 100]; + this.XW = e[0]; + this.YW = e[1]; + this.ZW = e[2]; + this.amin = a[0]; + this.amax = a[1]; + this.bmin = a[2]; + this.bmax = a[3]; + this.XB = t[0]; + this.YB = t[1]; + this.ZB = t[2]; + if (this.XW < 0 || this.ZW < 0 || 1 !== this.YW) + throw new r.FormatError('Invalid WhitePoint components, no fallback available'); + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + (0, r.info)('Invalid BlackPoint, falling back to default'); + this.XB = this.YB = this.ZB = 0; + } + if (this.amin > this.amax || this.bmin > this.bmax) { + (0, r.info)('Invalid Range, falling back to defaults'); + this.amin = -100; + this.amax = 100; + this.bmin = -100; + this.bmax = 100; + } + } + getRgbItem(e, t, a, r) { + convertToRgb(this, e, t, !1, a, r); + } + getRgbBuffer(e, t, a, r, i, n, s) { + const o = (1 << n) - 1; + for (let n = 0; n < a; n++) { + convertToRgb(this, e, t, o, r, i); + t += 3; + i += 3 + s; + } + } + getOutputLength(e, t) { + return ((e * (3 + t)) / 3) | 0; + } + isDefaultDecode(e, t) { + return !0; + } + get usesZeroToOneRange() { + return (0, r.shadow)(this, 'usesZeroToOneRange', !1); + } + }; + })(); + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PartialEvaluator = t.EvaluatorPreprocessor = void 0; + var r = a(2), + i = a(14), + n = a(4), + s = a(34), + o = a(37), + c = a(41), + l = a(50), + h = a(51), + u = a(42), + d = a(57), + f = a(16), + g = a(59), + p = a(8), + m = a(5), + b = a(60), + y = a(12), + w = a(18), + S = a(38), + x = a(39), + C = a(3), + k = a(45), + v = a(40), + F = a(61), + O = a(62), + T = a(63), + M = a(64); + const E = Object.freeze({ + maxImageSize: -1, + disableFontFace: !1, + ignoreErrors: !1, + isEvalSupported: !0, + isOffscreenCanvasSupported: !1, + canvasMaxAreaInBytes: -1, + fontExtraProperties: !1, + useSystemFonts: !0, + cMapUrl: null, + standardFontDataUrl: null, + }), + D = 1, + N = 2, + R = Promise.resolve(); + function normalizeBlendMode(e, t = !1) { + if (Array.isArray(e)) { + for (const t of e) { + const e = normalizeBlendMode(t, !0); + if (e) return e; + } + (0, r.warn)(`Unsupported blend mode Array: ${e}`); + return 'source-over'; + } + if (!(e instanceof n.Name)) return t ? null : 'source-over'; + switch (e.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'; + } + if (t) return null; + (0, r.warn)(`Unsupported blend mode: ${e.name}`); + return 'source-over'; + } + function incrementCachedImageMaskCount(e) { + e.fn === r.OPS.paintImageMaskXObject && + e.args[0] && + e.args[0].count > 0 && + e.args[0].count++; + } + class TimeSlotManager { + static TIME_SLOT_DURATION_MS = 20; + static CHECK_TIME_EVERY = 100; + constructor() { + this.reset(); + } + check() { + if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) return !1; + this.checked = 0; + return this.endTime <= Date.now(); + } + reset() { + this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS; + this.checked = 0; + } + } + class PartialEvaluator { + constructor({ + xref: e, + handler: t, + pageIndex: a, + idFactory: r, + fontCache: i, + builtInCMapCache: n, + standardFontDataCache: s, + globalImageCache: o, + options: c = null, + }) { + this.xref = e; + this.handler = t; + this.pageIndex = a; + this.idFactory = r; + this.fontCache = i; + this.builtInCMapCache = n; + this.standardFontDataCache = s; + this.globalImageCache = o; + this.options = c || E; + this.parsingType3Font = !1; + this._regionalImageCache = new g.RegionalImageCache(); + this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this); + F.ImageResizer.setMaxArea(this.options.canvasMaxAreaInBytes); + } + get _pdfFunctionFactory() { + const e = new d.PDFFunctionFactory({ + xref: this.xref, + isEvalSupported: this.options.isEvalSupported, + }); + return (0, r.shadow)(this, '_pdfFunctionFactory', e); + } + clone(e = null) { + const t = Object.create(this); + t.options = Object.assign(Object.create(null), this.options, e); + return t; + } + hasBlendModes(e, t) { + if (!(e instanceof n.Dict)) return !1; + if (e.objId && t.has(e.objId)) return !1; + const a = new n.RefSet(t); + e.objId && a.put(e.objId); + const i = [e], + s = this.xref; + for (; i.length; ) { + const e = i.shift(), + t = e.get('ExtGState'); + if (t instanceof n.Dict) + for (let e of t.getRawValues()) { + if (e instanceof n.Ref) { + if (a.has(e)) continue; + try { + e = s.fetch(e); + } catch (t) { + a.put(e); + (0, r.info)(`hasBlendModes - ignoring ExtGState: "${t}".`); + continue; + } + } + if (!(e instanceof n.Dict)) continue; + e.objId && a.put(e.objId); + const t = e.get('BM'); + if (t instanceof n.Name) { + if ('Normal' !== t.name) return !0; + } else if (void 0 !== t && Array.isArray(t)) + for (const e of t) if (e instanceof n.Name && 'Normal' !== e.name) return !0; + } + const o = e.get('XObject'); + if (o instanceof n.Dict) + for (let e of o.getRawValues()) { + if (e instanceof n.Ref) { + if (a.has(e)) continue; + try { + e = s.fetch(e); + } catch (t) { + a.put(e); + (0, r.info)(`hasBlendModes - ignoring XObject: "${t}".`); + continue; + } + } + if (!(e instanceof m.BaseStream)) continue; + e.dict.objId && a.put(e.dict.objId); + const t = e.dict.get('Resources'); + if (t instanceof n.Dict && (!t.objId || !a.has(t.objId))) { + i.push(t); + t.objId && a.put(t.objId); + } + } + } + for (const e of a) t.put(e); + return !1; + } + async fetchBuiltInCMap(e) { + const t = this.builtInCMapCache.get(e); + if (t) return t; + let a; + if (null !== this.options.cMapUrl) { + const t = `${this.options.cMapUrl}${e}.bcmap`, + i = await fetch(t); + if (!i.ok) + throw new Error( + `fetchBuiltInCMap: failed to fetch file "${t}" with "${i.statusText}".`, + ); + a = { + cMapData: new Uint8Array(await i.arrayBuffer()), + compressionType: r.CMapCompressionType.BINARY, + }; + } else a = await this.handler.sendWithPromise('FetchBuiltInCMap', { name: e }); + a.compressionType !== r.CMapCompressionType.NONE && this.builtInCMapCache.set(e, a); + return a; + } + async fetchStandardFontData(e) { + const t = this.standardFontDataCache.get(e); + if (t) return new p.Stream(t); + if (this.options.useSystemFonts && 'Symbol' !== e && 'ZapfDingbats' !== e) + return null; + const a = (0, c.getFontNameToFileMap)()[e]; + let i; + if (null !== this.options.standardFontDataUrl) { + const e = `${this.options.standardFontDataUrl}${a}`, + t = await fetch(e); + t.ok + ? (i = await t.arrayBuffer()) + : (0, r.warn)( + `fetchStandardFontData: failed to fetch file "${e}" with "${t.statusText}".`, + ); + } else + try { + i = await this.handler.sendWithPromise('FetchStandardFontData', { filename: a }); + } catch (e) { + (0, r.warn)(`fetchStandardFontData: failed to fetch file "${a}" with "${e}".`); + } + if (!i) return null; + this.standardFontDataCache.set(e, i); + return new p.Stream(i); + } + async buildFormXObject(e, t, a, i, s, o, c) { + const l = t.dict, + h = l.getArray('Matrix'); + let u, + d, + f = l.getArray('BBox'); + f = Array.isArray(f) && 4 === f.length ? r.Util.normalizeRect(f) : null; + l.has('OC') && (u = await this.parseMarkedContentProps(l.get('OC'), e)); + void 0 !== u && i.addOp(r.OPS.beginMarkedContentProps, ['OC', u]); + const g = l.get('Group'); + if (g) { + d = { matrix: h, bbox: f, smask: a, isolated: !1, knockout: !1 }; + const t = g.get('S'); + let s = null; + if ((0, n.isName)(t, 'Transparency')) { + d.isolated = g.get('I') || !1; + d.knockout = g.get('K') || !1; + if (g.has('CS')) { + const t = g.getRaw('CS'), + a = y.ColorSpace.getCached(t, this.xref, c); + s = + a || + (await this.parseColorSpace({ + cs: t, + resources: e, + localColorSpaceCache: c, + })); + } + } + if (a && a.backdrop) { + s ||= y.ColorSpace.singletons.rgb; + a.backdrop = s.getRgb(a.backdrop, 0); + } + i.addOp(r.OPS.beginGroup, [d]); + } + const p = g ? [h, null] : [h, f]; + i.addOp(r.OPS.paintFormXObjectBegin, p); + return this.getOperatorList({ + stream: t, + task: s, + resources: l.get('Resources') || e, + operatorList: i, + initialState: o, + }).then(function () { + i.addOp(r.OPS.paintFormXObjectEnd, []); + g && i.addOp(r.OPS.endGroup, [d]); + void 0 !== u && i.addOp(r.OPS.endMarkedContent, []); + }); + } + _sendImgData(e, t, a = !1) { + const r = t ? [t.bitmap || t.data.buffer] : null; + return this.parsingType3Font || a + ? this.handler.send('commonobj', [e, 'Image', t], r) + : this.handler.send('obj', [e, this.pageIndex, 'Image', t], r); + } + async buildPaintImageXObject({ + resources: e, + image: t, + isInline: a = !1, + operatorList: i, + cacheKey: n, + localImageCache: s, + localColorSpaceCache: o, + }) { + const c = t.dict, + l = c.objId, + h = c.get('W', 'Width'), + u = c.get('H', 'Height'); + if (!h || 'number' != typeof h || !u || 'number' != typeof u) { + (0, r.warn)('Image dimensions are missing, or not numbers.'); + return; + } + const d = this.options.maxImageSize; + if (-1 !== d && h * u > d) { + const e = 'Image exceeded maximum allowed size and was removed.'; + if (this.options.ignoreErrors) { + (0, r.warn)(e); + return; + } + throw new Error(e); + } + let f; + c.has('OC') && (f = await this.parseMarkedContentProps(c.get('OC'), e)); + let g, p; + if (c.get('IM', 'ImageMask') || !1) { + const e = c.get('I', 'Interpolate'), + a = (h + 7) >> 3, + o = t.getBytes(a * u), + d = c.getArray('D', 'Decode'); + if (this.parsingType3Font) { + g = M.PDFImage.createRawMask({ + imgArray: o, + width: h, + height: u, + imageIsFromDecodeStream: t instanceof w.DecodeStream, + inverseDecode: !!d && d[0] > 0, + interpolate: e, + }); + g.cached = !!n; + p = [g]; + i.addImageOps(r.OPS.paintImageMaskXObject, p, f); + if (n) { + const e = { fn: r.OPS.paintImageMaskXObject, args: p, optionalContent: f }; + s.set(n, l, e); + l && this._regionalImageCache.set(null, l, e); + } + return; + } + g = await M.PDFImage.createMask({ + imgArray: o, + width: h, + height: u, + imageIsFromDecodeStream: t instanceof w.DecodeStream, + inverseDecode: !!d && d[0] > 0, + interpolate: e, + isOffscreenCanvasSupported: this.options.isOffscreenCanvasSupported, + }); + if (g.isSingleOpaquePixel) { + i.addImageOps(r.OPS.paintSolidColorImageMask, [], f); + if (n) { + const e = { fn: r.OPS.paintSolidColorImageMask, args: [], optionalContent: f }; + s.set(n, l, e); + l && this._regionalImageCache.set(null, l, e); + } + return; + } + const m = `mask_${this.idFactory.createObjId()}`; + i.addDependency(m); + this._sendImgData(m, g); + p = [ + { + data: m, + width: g.width, + height: g.height, + interpolate: g.interpolate, + count: 1, + }, + ]; + i.addImageOps(r.OPS.paintImageMaskXObject, p, f); + if (n) { + const e = { fn: r.OPS.paintImageMaskXObject, args: p, optionalContent: f }; + s.set(n, l, e); + l && this._regionalImageCache.set(null, l, e); + } + return; + } + const m = c.get('SM', 'SMask') || !1, + b = c.get('Mask') || !1; + if (a && !m && !b && h + u < 200) { + const n = new M.PDFImage({ + xref: this.xref, + res: e, + image: t, + isInline: a, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache: o, + }); + g = await n.createImageData(!0, !1); + i.isOffscreenCanvasSupported = this.options.isOffscreenCanvasSupported; + i.addImageOps(r.OPS.paintInlineImageXObject, [g], f); + return; + } + let y = `img_${this.idFactory.createObjId()}`, + S = !1; + if (this.parsingType3Font) y = `${this.idFactory.getDocId()}_type3_${y}`; + else if (l) { + S = this.globalImageCache.shouldCache(l, this.pageIndex); + S && (y = `${this.idFactory.getDocId()}_${y}`); + } + i.addDependency(y); + p = [y, h, u]; + M.PDFImage.buildImage({ + xref: this.xref, + res: e, + image: t, + isInline: a, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache: o, + }) + .then(async (e) => { + g = await e.createImageData(!1, this.options.isOffscreenCanvasSupported); + if (n && l && S) { + let e = 0; + e = g.bitmap ? g.width * g.height * 4 : g.data.length; + this.globalImageCache.addByteSize(l, e); + } + return this._sendImgData(y, g, S); + }) + .catch((e) => { + (0, r.warn)(`Unable to decode image "${y}": "${e}".`); + return this._sendImgData(y, null, S); + }); + i.addImageOps(r.OPS.paintImageXObject, p, f); + if (n) { + const e = { fn: r.OPS.paintImageXObject, args: p, optionalContent: f }; + s.set(n, l, e); + if (l) { + this._regionalImageCache.set(null, l, e); + if (S) { + (0, r.assert)(!a, 'Cannot cache an inline image globally.'); + this.globalImageCache.setData(l, { + objId: y, + fn: r.OPS.paintImageXObject, + args: p, + optionalContent: f, + byteSize: 0, + }); + } + } + } + } + handleSMask(e, t, a, r, i, n) { + const s = e.get('G'), + o = { subtype: e.get('S').name, backdrop: e.get('BC') }, + c = e.get('TR'); + if ((0, d.isPDFFunction)(c)) { + const e = this._pdfFunctionFactory.create(c), + t = new Uint8Array(256), + a = new Float32Array(1); + for (let r = 0; r < 256; r++) { + a[0] = r / 255; + e(a, 0, a, 0); + t[r] = (255 * a[0]) | 0; + } + o.transferMap = t; + } + return this.buildFormXObject(t, s, o, a, r, i.state.clone(), n); + } + handleTransferFunction(e) { + let t; + if (Array.isArray(e)) t = e; + else { + if (!(0, d.isPDFFunction)(e)) return null; + t = [e]; + } + const a = []; + let r = 0, + i = 0; + for (const e of t) { + const t = this.xref.fetchIfRef(e); + r++; + if ((0, n.isName)(t, 'Identity')) { + a.push(null); + continue; + } + if (!(0, d.isPDFFunction)(t)) return null; + const s = this._pdfFunctionFactory.create(t), + o = new Uint8Array(256), + c = new Float32Array(1); + for (let e = 0; e < 256; e++) { + c[0] = e / 255; + s(c, 0, c, 0); + o[e] = (255 * c[0]) | 0; + } + a.push(o); + i++; + } + return (1 !== r && 4 !== r) || 0 === i ? null : a; + } + handleTilingType(e, t, a, i, s, o, c, h) { + const u = new T.OperatorList(), + d = n.Dict.merge({ xref: this.xref, dictArray: [s.get('Resources'), a] }); + return this.getOperatorList({ stream: i, task: c, resources: d, operatorList: u }) + .then(function () { + const a = u.getIR(), + r = (0, l.getTilingPatternIR)(a, s, t); + o.addDependencies(u.dependencies); + o.addOp(e, r); + s.objId && h.set(null, s.objId, { operatorListIR: a, dict: s }); + }) + .catch((e) => { + if (!(e instanceof r.AbortException)) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`handleTilingType - ignoring pattern: "${e}".`); + } + }); + } + handleSetFont(e, t, a, r, i, o, c = null, l = null) { + const h = t && t[0] instanceof n.Name ? t[0].name : null; + return this.loadFont(h, a, e, c, l) + .then((t) => + t.font.isType3Font + ? t + .loadType3Data(this, e, i) + .then(function () { + r.addDependencies(t.type3Dependencies); + return t; + }) + .catch( + (e) => + new TranslatedFont({ + loadedName: 'g_font_error', + font: new s.ErrorFont(`Type3 font load error: ${e}`), + dict: t.font, + evaluatorOptions: this.options, + }), + ) + : t, + ) + .then((e) => { + o.font = e.font; + e.send(this.handler); + return e.loadedName; + }); + } + handleText(e, t) { + const a = t.font, + i = a.charsToGlyphs(e); + if (a.data) { + (!!(t.textRenderingMode & r.TextRenderingMode.ADD_TO_PATH_FLAG) || + 'Pattern' === t.fillColorSpace.name || + a.disableFontFace || + this.options.disableFontFace) && + PartialEvaluator.buildFontPaths(a, i, this.handler, this.options); + } + return i; + } + ensureStateFont(e) { + if (e.font) return; + const t = new r.FormatError( + 'Missing setFont (Tf) operator before text rendering operator.', + ); + if (!this.options.ignoreErrors) throw t; + (0, r.warn)(`ensureStateFont: "${t}".`); + } + async setGState({ + resources: e, + gState: t, + operatorList: a, + cacheKey: i, + task: s, + stateManager: o, + localGStateCache: c, + localColorSpaceCache: l, + }) { + const h = t.objId; + let u = !0; + const d = []; + let f = Promise.resolve(); + for (const i of t.getKeys()) { + const c = t.get(i); + switch (i) { + case 'Type': + break; + case 'LW': + case 'LC': + case 'LJ': + case 'ML': + case 'D': + case 'RI': + case 'FL': + case 'CA': + case 'ca': + d.push([i, c]); + break; + case 'Font': + u = !1; + f = f.then(() => + this.handleSetFont(e, null, c[0], a, s, o.state).then(function (e) { + a.addDependency(e); + d.push([i, [e, c[1]]]); + }), + ); + break; + case 'BM': + d.push([i, normalizeBlendMode(c)]); + break; + case 'SMask': + if ((0, n.isName)(c, 'None')) { + d.push([i, !1]); + break; + } + if (c instanceof n.Dict) { + u = !1; + f = f.then(() => this.handleSMask(c, e, a, s, o, l)); + d.push([i, !0]); + } else (0, r.warn)('Unsupported SMask type'); + break; + case 'TR': + const t = this.handleTransferFunction(c); + d.push([i, t]); + 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': + (0, r.info)('graphic state operator ' + i); + break; + default: + (0, r.info)('Unknown graphic state operator ' + i); + } + } + return f.then(function () { + d.length > 0 && a.addOp(r.OPS.setGState, [d]); + u && c.set(i, h, d); + }); + } + loadFont(e, t, a, i = null, o = null) { + const errorFont = async () => + new TranslatedFont({ + loadedName: 'g_font_error', + font: new s.ErrorFont(`Font "${e}" is not available.`), + dict: t, + evaluatorOptions: this.options, + }), + c = this.xref; + let l; + if (t) t instanceof n.Ref && (l = t); + else { + const t = a.get('Font'); + t && (l = t.getRaw(e)); + } + if (!l) { + const a = `Font "${e || (t && t.toString())}" is not available`; + if (!this.options.ignoreErrors && !this.parsingType3Font) { + (0, r.warn)(`${a}.`); + return errorFont(); + } + (0, r.warn)(`${a} -- attempting to fallback to a default font.`); + l = i || PartialEvaluator.fallbackFontDict; + } + if (this.parsingType3Font && this.type3FontRefs.has(l)) return errorFont(); + if (this.fontCache.has(l)) return this.fontCache.get(l); + if (!((t = c.fetchIfRef(l)) instanceof n.Dict)) return errorFont(); + if (t.cacheKey && this.fontCache.has(t.cacheKey)) + return this.fontCache.get(t.cacheKey); + const h = new r.PromiseCapability(); + let u; + try { + u = this.preEvaluateFont(t); + u.cssFontInfo = o; + } catch (e) { + (0, r.warn)(`loadFont - preEvaluateFont failed: "${e}".`); + return errorFont(); + } + const { descriptor: d, hash: f } = u, + g = l instanceof n.Ref; + let p; + g && (p = `f${l.toString()}`); + if (f && d instanceof n.Dict) { + const e = (d.fontAliases ||= Object.create(null)); + if (e[f]) { + const t = e[f].aliasRef; + if (g && t && this.fontCache.has(t)) { + this.fontCache.putAlias(l, t); + return this.fontCache.get(l); + } + } else e[f] = { fontID: this.idFactory.createFontId() }; + g && (e[f].aliasRef = l); + p = e[f].fontID; + } + if (g) this.fontCache.put(l, h.promise); + else { + p || (p = this.idFactory.createFontId()); + t.cacheKey = `cacheKey_${p}`; + this.fontCache.put(t.cacheKey, h.promise); + } + (0, r.assert)(p && p.startsWith('f'), 'The "fontID" must be (correctly) defined.'); + t.loadedName = `${this.idFactory.getDocId()}_${p}`; + this.translateFont(u) + .then((e) => { + h.resolve( + new TranslatedFont({ + loadedName: t.loadedName, + font: e, + dict: t, + evaluatorOptions: this.options, + }), + ); + }) + .catch((e) => { + (0, r.warn)(`loadFont - translateFont failed: "${e}".`); + h.resolve( + new TranslatedFont({ + loadedName: t.loadedName, + font: new s.ErrorFont(e instanceof Error ? e.message : e), + dict: t, + evaluatorOptions: this.options, + }), + ); + }); + return h.promise; + } + buildPath(e, t, a, i = !1) { + const n = e.length - 1; + a || (a = []); + if (n < 0 || e.fnArray[n] !== r.OPS.constructPath) { + if (i) { + (0, r.warn)(`Encountered path operator "${t}" inside of a text object.`); + e.addOp(r.OPS.save, null); + } + let n; + switch (t) { + case r.OPS.rectangle: + const e = a[0] + a[2], + t = a[1] + a[3]; + n = [ + Math.min(a[0], e), + Math.max(a[0], e), + Math.min(a[1], t), + Math.max(a[1], t), + ]; + break; + case r.OPS.moveTo: + case r.OPS.lineTo: + n = [a[0], a[0], a[1], a[1]]; + break; + default: + n = [1 / 0, -1 / 0, 1 / 0, -1 / 0]; + } + e.addOp(r.OPS.constructPath, [[t], a, n]); + i && e.addOp(r.OPS.restore, null); + } else { + const i = e.argsArray[n]; + i[0].push(t); + i[1].push(...a); + const s = i[2]; + switch (t) { + case r.OPS.rectangle: + const e = a[0] + a[2], + t = a[1] + a[3]; + s[0] = Math.min(s[0], a[0], e); + s[1] = Math.max(s[1], a[0], e); + s[2] = Math.min(s[2], a[1], t); + s[3] = Math.max(s[3], a[1], t); + break; + case r.OPS.moveTo: + case r.OPS.lineTo: + s[0] = Math.min(s[0], a[0]); + s[1] = Math.max(s[1], a[0]); + s[2] = Math.min(s[2], a[1]); + s[3] = Math.max(s[3], a[1]); + } + } + } + parseColorSpace({ cs: e, resources: t, localColorSpaceCache: a }) { + return y.ColorSpace.parseAsync({ + cs: e, + xref: this.xref, + resources: t, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache: a, + }).catch((e) => { + if (e instanceof r.AbortException) return null; + if (this.options.ignoreErrors) { + (0, r.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`); + return null; + } + throw e; + }); + } + parseShading({ + shading: e, + resources: t, + localColorSpaceCache: a, + localShadingPatternCache: r, + }) { + let i = r.get(e); + if (!i) { + const n = l.Pattern.parseShading( + e, + this.xref, + t, + this._pdfFunctionFactory, + a, + ).getIR(); + i = `pattern_${this.idFactory.createObjId()}`; + this.parsingType3Font && (i = `${this.idFactory.getDocId()}_type3_${i}`); + r.set(e, i); + this.parsingType3Font + ? this.handler.send('commonobj', [i, 'Pattern', n]) + : this.handler.send('obj', [i, this.pageIndex, 'Pattern', n]); + } + return i; + } + handleColorN(e, t, a, i, s, o, c, h, u, d) { + const f = a.pop(); + if (f instanceof n.Name) { + const g = s.getRaw(f.name), + p = g instanceof n.Ref && u.getByRef(g); + if (p) + try { + const r = i.base ? i.base.getRgb(a, 0) : null, + n = (0, l.getTilingPatternIR)(p.operatorListIR, p.dict, r); + e.addOp(t, n); + return; + } catch (e) {} + const b = this.xref.fetchIfRef(g); + if (b) { + const n = b instanceof m.BaseStream ? b.dict : b, + s = n.get('PatternType'); + if (s === D) { + const r = i.base ? i.base.getRgb(a, 0) : null; + return this.handleTilingType(t, r, o, b, n, e, c, u); + } + if (s === N) { + const a = n.get('Shading'), + r = n.getArray('Matrix'), + i = this.parseShading({ + shading: a, + resources: o, + localColorSpaceCache: h, + localShadingPatternCache: d, + }); + e.addOp(t, ['Shading', i, r]); + return; + } + throw new r.FormatError(`Unknown PatternType: ${s}`); + } + } + throw new r.FormatError(`Unknown PatternName: ${f}`); + } + _parseVisibilityExpression(e, t, a) { + if (++t > 10) { + (0, r.warn)('Visibility expression is too deeply nested'); + return; + } + const i = e.length, + s = this.xref.fetchIfRef(e[0]); + if (!(i < 2) && s instanceof n.Name) { + switch (s.name) { + case 'And': + case 'Or': + case 'Not': + a.push(s.name); + break; + default: + (0, r.warn)(`Invalid operator ${s.name} in visibility expression`); + return; + } + for (let r = 1; r < i; r++) { + const i = e[r], + s = this.xref.fetchIfRef(i); + if (Array.isArray(s)) { + const e = []; + a.push(e); + this._parseVisibilityExpression(s, t, e); + } else i instanceof n.Ref && a.push(i.toString()); + } + } else (0, r.warn)('Invalid visibility expression'); + } + async parseMarkedContentProps(e, t) { + let a; + if (e instanceof n.Name) { + a = t.get('Properties').get(e.name); + } else { + if (!(e instanceof n.Dict)) + throw new r.FormatError('Optional content properties malformed.'); + a = e; + } + const i = a.get('Type').name; + if ('OCG' === i) return { type: i, id: a.objId }; + if ('OCMD' === i) { + const e = a.get('VE'); + if (Array.isArray(e)) { + const t = []; + this._parseVisibilityExpression(e, 0, t); + if (t.length > 0) return { type: 'OCMD', expression: t }; + } + const t = a.get('OCGs'); + if (Array.isArray(t) || t instanceof n.Dict) { + const e = []; + if (Array.isArray(t)) for (const a of t) e.push(a.toString()); + else e.push(t.objId); + return { + type: i, + ids: e, + policy: a.get('P') instanceof n.Name ? a.get('P').name : null, + expression: null, + }; + } + if (t instanceof n.Ref) return { type: i, id: t.toString() }; + } + return null; + } + getOperatorList({ + stream: e, + task: t, + resources: a, + operatorList: i, + initialState: s = null, + fallbackFontDict: o = null, + }) { + a ||= n.Dict.empty; + s ||= new EvalState(); + if (!i) throw new Error('getOperatorList: missing "operatorList" parameter'); + const c = this, + l = this.xref; + let h = !1; + const u = new g.LocalImageCache(), + d = new g.LocalColorSpaceCache(), + f = new g.LocalGStateCache(), + p = new g.LocalTilingPatternCache(), + b = new Map(), + w = a.get('XObject') || n.Dict.empty, + S = a.get('Pattern') || n.Dict.empty, + x = new StateManager(s), + C = new EvaluatorPreprocessor(e, l, x), + k = new TimeSlotManager(); + function closePendingRestoreOPS(e) { + for (let e = 0, t = C.savedStatesDepth; e < t; e++) i.addOp(r.OPS.restore, []); + } + return new Promise(function promiseBody(e, s) { + const next = function (t) { + Promise.all([t, i.ready]).then(function () { + try { + promiseBody(e, s); + } catch (e) { + s(e); + } + }, s); + }; + t.ensureNotTerminated(); + k.reset(); + const g = {}; + let v, F, O, T, M, E; + for (; !(v = k.check()); ) { + g.args = null; + if (!C.read(g)) break; + let e = g.args, + s = g.fn; + switch (0 | s) { + case r.OPS.paintXObject: + E = e[0] instanceof n.Name; + M = e[0].name; + if (E) { + const t = u.getByName(M); + if (t) { + i.addImageOps(t.fn, t.args, t.optionalContent); + incrementCachedImageMaskCount(t); + e = null; + continue; + } + } + next( + new Promise(function (e, s) { + if (!E) throw new r.FormatError('XObject must be referred to by name.'); + let o = w.getRaw(M); + if (o instanceof n.Ref) { + const t = u.getByRef(o) || c._regionalImageCache.getByRef(o); + if (t) { + i.addImageOps(t.fn, t.args, t.optionalContent); + incrementCachedImageMaskCount(t); + e(); + return; + } + const a = c.globalImageCache.getData(o, c.pageIndex); + if (a) { + i.addDependency(a.objId); + i.addImageOps(a.fn, a.args, a.optionalContent); + e(); + return; + } + o = l.fetch(o); + } + if (!(o instanceof m.BaseStream)) + throw new r.FormatError('XObject should be a stream'); + const h = o.dict.get('Subtype'); + if (!(h instanceof n.Name)) + throw new r.FormatError('XObject should have a Name subtype'); + if ('Form' !== h.name) + if ('Image' !== h.name) { + if ('PS' !== h.name) + throw new r.FormatError(`Unhandled XObject subtype ${h.name}`); + (0, r.info)('Ignored XObject subtype PS'); + e(); + } else + c.buildPaintImageXObject({ + resources: a, + image: o, + operatorList: i, + cacheKey: M, + localImageCache: u, + localColorSpaceCache: d, + }).then(e, s); + else { + x.save(); + c.buildFormXObject(a, o, null, i, t, x.state.clone(), d).then( + function () { + x.restore(); + e(); + }, + s, + ); + } + }).catch(function (e) { + if (!(e instanceof r.AbortException)) { + if (!c.options.ignoreErrors) throw e; + (0, r.warn)(`getOperatorList - ignoring XObject: "${e}".`); + } + }), + ); + return; + case r.OPS.setFont: + var D = e[1]; + next( + c.handleSetFont(a, e, null, i, t, x.state, o).then(function (e) { + i.addDependency(e); + i.addOp(r.OPS.setFont, [e, D]); + }), + ); + return; + case r.OPS.beginText: + h = !0; + break; + case r.OPS.endText: + h = !1; + break; + case r.OPS.endInlineImage: + var N = e[0].cacheKey; + if (N) { + const t = u.getByName(N); + if (t) { + i.addImageOps(t.fn, t.args, t.optionalContent); + incrementCachedImageMaskCount(t); + e = null; + continue; + } + } + next( + c.buildPaintImageXObject({ + resources: a, + image: e[0], + isInline: !0, + operatorList: i, + cacheKey: N, + localImageCache: u, + localColorSpaceCache: d, + }), + ); + return; + case r.OPS.showText: + if (!x.state.font) { + c.ensureStateFont(x.state); + continue; + } + e[0] = c.handleText(e[0], x.state); + break; + case r.OPS.showSpacedText: + if (!x.state.font) { + c.ensureStateFont(x.state); + continue; + } + var L = [], + _ = x.state; + for (const t of e[0]) + 'string' == typeof t + ? L.push(...c.handleText(t, _)) + : 'number' == typeof t && L.push(t); + e[0] = L; + s = r.OPS.showText; + break; + case r.OPS.nextLineShowText: + if (!x.state.font) { + c.ensureStateFont(x.state); + continue; + } + i.addOp(r.OPS.nextLine); + e[0] = c.handleText(e[0], x.state); + s = r.OPS.showText; + break; + case r.OPS.nextLineSetSpacingShowText: + if (!x.state.font) { + c.ensureStateFont(x.state); + continue; + } + i.addOp(r.OPS.nextLine); + i.addOp(r.OPS.setWordSpacing, [e.shift()]); + i.addOp(r.OPS.setCharSpacing, [e.shift()]); + e[0] = c.handleText(e[0], x.state); + s = r.OPS.showText; + break; + case r.OPS.setTextRenderingMode: + x.state.textRenderingMode = e[0]; + break; + case r.OPS.setFillColorSpace: { + const t = y.ColorSpace.getCached(e[0], l, d); + if (t) { + x.state.fillColorSpace = t; + continue; + } + next( + c + .parseColorSpace({ cs: e[0], resources: a, localColorSpaceCache: d }) + .then(function (e) { + e && (x.state.fillColorSpace = e); + }), + ); + return; + } + case r.OPS.setStrokeColorSpace: { + const t = y.ColorSpace.getCached(e[0], l, d); + if (t) { + x.state.strokeColorSpace = t; + continue; + } + next( + c + .parseColorSpace({ cs: e[0], resources: a, localColorSpaceCache: d }) + .then(function (e) { + e && (x.state.strokeColorSpace = e); + }), + ); + return; + } + case r.OPS.setFillColor: + T = x.state.fillColorSpace; + e = T.getRgb(e, 0); + s = r.OPS.setFillRGBColor; + break; + case r.OPS.setStrokeColor: + T = x.state.strokeColorSpace; + e = T.getRgb(e, 0); + s = r.OPS.setStrokeRGBColor; + break; + case r.OPS.setFillGray: + x.state.fillColorSpace = y.ColorSpace.singletons.gray; + e = y.ColorSpace.singletons.gray.getRgb(e, 0); + s = r.OPS.setFillRGBColor; + break; + case r.OPS.setStrokeGray: + x.state.strokeColorSpace = y.ColorSpace.singletons.gray; + e = y.ColorSpace.singletons.gray.getRgb(e, 0); + s = r.OPS.setStrokeRGBColor; + break; + case r.OPS.setFillCMYKColor: + x.state.fillColorSpace = y.ColorSpace.singletons.cmyk; + e = y.ColorSpace.singletons.cmyk.getRgb(e, 0); + s = r.OPS.setFillRGBColor; + break; + case r.OPS.setStrokeCMYKColor: + x.state.strokeColorSpace = y.ColorSpace.singletons.cmyk; + e = y.ColorSpace.singletons.cmyk.getRgb(e, 0); + s = r.OPS.setStrokeRGBColor; + break; + case r.OPS.setFillRGBColor: + x.state.fillColorSpace = y.ColorSpace.singletons.rgb; + e = y.ColorSpace.singletons.rgb.getRgb(e, 0); + break; + case r.OPS.setStrokeRGBColor: + x.state.strokeColorSpace = y.ColorSpace.singletons.rgb; + e = y.ColorSpace.singletons.rgb.getRgb(e, 0); + break; + case r.OPS.setFillColorN: + T = x.state.fillColorSpace; + if ('Pattern' === T.name) { + next(c.handleColorN(i, r.OPS.setFillColorN, e, T, S, a, t, d, p, b)); + return; + } + e = T.getRgb(e, 0); + s = r.OPS.setFillRGBColor; + break; + case r.OPS.setStrokeColorN: + T = x.state.strokeColorSpace; + if ('Pattern' === T.name) { + next(c.handleColorN(i, r.OPS.setStrokeColorN, e, T, S, a, t, d, p, b)); + return; + } + e = T.getRgb(e, 0); + s = r.OPS.setStrokeRGBColor; + break; + case r.OPS.shadingFill: + var $ = a.get('Shading'); + if (!$) throw new r.FormatError('No shading resource found'); + var j = $.get(e[0].name); + if (!j) throw new r.FormatError('No shading object found'); + e = [ + c.parseShading({ + shading: j, + resources: a, + localColorSpaceCache: d, + localShadingPatternCache: b, + }), + ]; + s = r.OPS.shadingFill; + break; + case r.OPS.setGState: + E = e[0] instanceof n.Name; + M = e[0].name; + if (E) { + const t = f.getByName(M); + if (t) { + t.length > 0 && i.addOp(r.OPS.setGState, [t]); + e = null; + continue; + } + } + next( + new Promise(function (e, s) { + if (!E) throw new r.FormatError('GState must be referred to by name.'); + const o = a.get('ExtGState'); + if (!(o instanceof n.Dict)) + throw new r.FormatError('ExtGState should be a dictionary.'); + const l = o.get(M); + if (!(l instanceof n.Dict)) + throw new r.FormatError('GState should be a dictionary.'); + c.setGState({ + resources: a, + gState: l, + operatorList: i, + cacheKey: M, + task: t, + stateManager: x, + localGStateCache: f, + localColorSpaceCache: d, + }).then(e, s); + }).catch(function (e) { + if (!(e instanceof r.AbortException)) { + if (!c.options.ignoreErrors) throw e; + (0, r.warn)(`getOperatorList - ignoring ExtGState: "${e}".`); + } + }), + ); + return; + case r.OPS.moveTo: + case r.OPS.lineTo: + case r.OPS.curveTo: + case r.OPS.curveTo2: + case r.OPS.curveTo3: + case r.OPS.closePath: + case r.OPS.rectangle: + c.buildPath(i, s, e, h); + continue; + case r.OPS.markPoint: + case r.OPS.markPointProps: + case r.OPS.beginCompat: + case r.OPS.endCompat: + continue; + case r.OPS.beginMarkedContentProps: + if (!(e[0] instanceof n.Name)) { + (0, r.warn)(`Expected name for beginMarkedContentProps arg0=${e[0]}`); + continue; + } + if ('OC' === e[0].name) { + next( + c + .parseMarkedContentProps(e[1], a) + .then((e) => { + i.addOp(r.OPS.beginMarkedContentProps, ['OC', e]); + }) + .catch((e) => { + if (!(e instanceof r.AbortException)) { + if (!c.options.ignoreErrors) throw e; + (0, r.warn)( + `getOperatorList - ignoring beginMarkedContentProps: "${e}".`, + ); + } + }), + ); + return; + } + e = [e[0].name, e[1] instanceof n.Dict ? e[1].get('MCID') : null]; + break; + case r.OPS.beginMarkedContent: + case r.OPS.endMarkedContent: + default: + if (null !== e) { + for (F = 0, O = e.length; F < O && !(e[F] instanceof n.Dict); F++); + if (F < O) { + (0, r.warn)('getOperatorList - ignoring operator: ' + s); + continue; + } + } + } + i.addOp(s, e); + } + if (v) next(R); + else { + closePendingRestoreOPS(); + e(); + } + }).catch((e) => { + if (!(e instanceof r.AbortException)) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`); + closePendingRestoreOPS(); + } + }); + } + getTextContent({ + stream: e, + task: t, + resources: a, + stateManager: i = null, + includeMarkedContent: s = !1, + sink: o, + seenStyles: c = new Set(), + viewBox: l, + markedContentData: h = null, + disableNormalization: u = !1, + }) { + a ||= n.Dict.empty; + i ||= new StateManager(new TextState()); + s && (h ||= { level: 0 }); + const d = { items: [], styles: Object.create(null) }, + f = { + initialized: !1, + str: [], + totalWidth: 0, + totalHeight: 0, + width: 0, + height: 0, + vertical: !1, + prevTransform: null, + textAdvanceScale: 0, + spaceInFlowMin: 0, + spaceInFlowMax: 0, + trackingSpaceMin: 1 / 0, + negativeSpaceMax: -1 / 0, + notASpace: -1 / 0, + transform: null, + fontName: null, + hasEOL: !1, + }, + p = [' ', ' ']; + let y = 0; + function saveLastChar(e) { + const t = (y + 1) % 2, + a = ' ' !== p[y] && ' ' === p[t]; + p[y] = e; + y = t; + return a; + } + function shouldAddWhitepsace() { + return ' ' !== p[y] && ' ' === p[(y + 1) % 2]; + } + function resetLastChars() { + p[0] = p[1] = ' '; + y = 0; + } + const w = this, + S = this.xref, + x = []; + let C = null; + const k = new g.LocalImageCache(), + v = new g.LocalGStateCache(), + F = new EvaluatorPreprocessor(e, S, i); + let O; + function pushWhitespace({ + width: e = 0, + height: t = 0, + transform: a = f.prevTransform, + fontName: r = f.fontName, + }) { + d.items.push({ + str: ' ', + dir: 'ltr', + width: e, + height: t, + transform: a, + fontName: r, + hasEOL: !1, + }); + } + function getCurrentTextTransform() { + const e = O.font, + t = [O.fontSize * O.textHScale, 0, 0, O.fontSize, 0, O.textRise]; + if ( + e.isType3Font && + (O.fontSize <= 1 || e.isCharBBox) && + !(0, r.isArrayEqual)(O.fontMatrix, r.FONT_IDENTITY_MATRIX) + ) { + const a = e.bbox[3] - e.bbox[1]; + a > 0 && (t[3] *= a * O.fontMatrix[3]); + } + return r.Util.transform(O.ctm, r.Util.transform(O.textMatrix, t)); + } + function ensureTextContentItem() { + if (f.initialized) return f; + const { font: e, loadedName: t } = O; + if (!c.has(t)) { + c.add(t); + d.styles[t] = { + fontFamily: e.fallbackName, + ascent: e.ascent, + descent: e.descent, + vertical: e.vertical, + }; + } + f.fontName = t; + const a = (f.transform = getCurrentTextTransform()); + if (e.vertical) { + f.width = f.totalWidth = Math.hypot(a[0], a[1]); + f.height = f.totalHeight = 0; + f.vertical = !0; + } else { + f.width = f.totalWidth = 0; + f.height = f.totalHeight = Math.hypot(a[2], a[3]); + f.vertical = !1; + } + const r = Math.hypot(O.textLineMatrix[0], O.textLineMatrix[1]), + i = Math.hypot(O.ctm[0], O.ctm[1]); + f.textAdvanceScale = i * r; + const { fontSize: n } = O; + f.trackingSpaceMin = 0.102 * n; + f.notASpace = 0.03 * n; + f.negativeSpaceMax = -0.2 * n; + f.spaceInFlowMin = 0.102 * n; + f.spaceInFlowMax = 0.6 * n; + f.hasEOL = !1; + f.initialized = !0; + return f; + } + function updateAdvanceScale() { + if (!f.initialized) return; + const e = Math.hypot(O.textLineMatrix[0], O.textLineMatrix[1]), + t = Math.hypot(O.ctm[0], O.ctm[1]) * e; + if (t !== f.textAdvanceScale) { + if (f.vertical) { + f.totalHeight += f.height * f.textAdvanceScale; + f.height = 0; + } else { + f.totalWidth += f.width * f.textAdvanceScale; + f.width = 0; + } + f.textAdvanceScale = t; + } + } + function handleSetFont(e, i) { + return w + .loadFont(e, i, a) + .then(function (e) { + return e.font.isType3Font + ? e + .loadType3Data(w, a, t) + .catch(function () {}) + .then(function () { + return e; + }) + : e; + }) + .then(function (e) { + O.loadedName = e.loadedName; + O.font = e.font; + O.fontMatrix = e.font.fontMatrix || r.FONT_IDENTITY_MATRIX; + }); + } + function applyInverseRotation(e, t, a) { + const r = Math.hypot(a[0], a[1]); + return [(a[0] * e + a[1] * t) / r, (a[2] * e + a[3] * t) / r]; + } + function compareWithLastPosition(e) { + const t = getCurrentTextTransform(); + let a = t[4], + r = t[5]; + if (O.font && O.font.vertical) { + if (a < l[0] || a > l[2] || r + e < l[1] || r > l[3]) return !1; + } else if (a + e < l[0] || a > l[2] || r < l[1] || r > l[3]) return !1; + if (!O.font || !f.prevTransform) return !0; + let i = f.prevTransform[4], + n = f.prevTransform[5]; + if (i === a && n === r) return !0; + let s = -1; + t[0] && 0 === t[1] && 0 === t[2] + ? (s = t[0] > 0 ? 0 : 180) + : t[1] && 0 === t[0] && 0 === t[3] && (s = t[1] > 0 ? 90 : 270); + switch (s) { + case 0: + break; + case 90: + [a, r] = [r, a]; + [i, n] = [n, i]; + break; + case 180: + [a, r, i, n] = [-a, -r, -i, -n]; + break; + case 270: + [a, r] = [-r, -a]; + [i, n] = [-n, -i]; + break; + default: + [a, r] = applyInverseRotation(a, r, t); + [i, n] = applyInverseRotation(i, n, f.prevTransform); + } + if (O.font.vertical) { + const e = (n - r) / f.textAdvanceScale, + t = a - i, + s = Math.sign(f.height); + if (e < s * f.negativeSpaceMax) { + if (Math.abs(t) > 0.5 * f.width) { + appendEOL(); + return !0; + } + resetLastChars(); + flushTextContentItem(); + return !0; + } + if (Math.abs(t) > f.width) { + appendEOL(); + return !0; + } + e <= s * f.notASpace && resetLastChars(); + if (e <= s * f.trackingSpaceMin) + if (shouldAddWhitepsace()) { + resetLastChars(); + flushTextContentItem(); + pushWhitespace({ height: Math.abs(e) }); + } else f.height += e; + else if (!addFakeSpaces(e, f.prevTransform, s)) + if (0 === f.str.length) { + resetLastChars(); + pushWhitespace({ height: Math.abs(e) }); + } else f.height += e; + Math.abs(t) > 0.25 * f.width && flushTextContentItem(); + return !0; + } + const o = (a - i) / f.textAdvanceScale, + c = r - n, + h = Math.sign(f.width); + if (o < h * f.negativeSpaceMax) { + if (Math.abs(c) > 0.5 * f.height) { + appendEOL(); + return !0; + } + resetLastChars(); + flushTextContentItem(); + return !0; + } + if (Math.abs(c) > f.height) { + appendEOL(); + return !0; + } + o <= h * f.notASpace && resetLastChars(); + if (o <= h * f.trackingSpaceMin) + if (shouldAddWhitepsace()) { + resetLastChars(); + flushTextContentItem(); + pushWhitespace({ width: Math.abs(o) }); + } else f.width += o; + else if (!addFakeSpaces(o, f.prevTransform, h)) + if (0 === f.str.length) { + resetLastChars(); + pushWhitespace({ width: Math.abs(o) }); + } else f.width += o; + Math.abs(c) > 0.25 * f.height && flushTextContentItem(); + return !0; + } + function buildTextContentItem({ chars: e, extraSpacing: t }) { + const a = O.font; + if (!e) { + const e = O.charSpacing + t; + e && + (a.vertical + ? O.translateTextMatrix(0, -e) + : O.translateTextMatrix(e * O.textHScale, 0)); + return; + } + const r = a.charsToGlyphs(e), + i = O.fontMatrix[0] * O.fontSize; + for (let e = 0, n = r.length; e < n; e++) { + const s = r[e], + { category: o } = s; + if (o.isInvisibleFormatMark) continue; + let c = O.charSpacing + (e + 1 === n ? t : 0), + l = s.width; + a.vertical && (l = s.vmetric ? s.vmetric[0] : -l); + let h = l * i; + if (o.isWhitespace) { + if (a.vertical) { + c += -h + O.wordSpacing; + O.translateTextMatrix(0, -c); + } else { + c += h + O.wordSpacing; + O.translateTextMatrix(c * O.textHScale, 0); + } + saveLastChar(' '); + continue; + } + if (!o.isZeroWidthDiacritic && !compareWithLastPosition(h)) { + a.vertical + ? O.translateTextMatrix(0, h) + : O.translateTextMatrix(h * O.textHScale, 0); + continue; + } + const u = ensureTextContentItem(); + o.isZeroWidthDiacritic && (h = 0); + if (a.vertical) { + O.translateTextMatrix(0, h); + h = Math.abs(h); + u.height += h; + } else { + h *= O.textHScale; + O.translateTextMatrix(h, 0); + u.width += h; + } + h && (u.prevTransform = getCurrentTextTransform()); + const d = s.unicode; + saveLastChar(d) && u.str.push(' '); + u.str.push(d); + c && + (a.vertical + ? O.translateTextMatrix(0, -c) + : O.translateTextMatrix(c * O.textHScale, 0)); + } + } + function appendEOL() { + resetLastChars(); + if (f.initialized) { + f.hasEOL = !0; + flushTextContentItem(); + } else + d.items.push({ + str: '', + dir: 'ltr', + width: 0, + height: 0, + transform: getCurrentTextTransform(), + fontName: O.loadedName, + hasEOL: !0, + }); + } + function addFakeSpaces(e, t, a) { + if (a * f.spaceInFlowMin <= e && e <= a * f.spaceInFlowMax) { + if (f.initialized) { + resetLastChars(); + f.str.push(' '); + } + return !1; + } + const r = f.fontName; + let i = 0; + if (f.vertical) { + i = e; + e = 0; + } + flushTextContentItem(); + resetLastChars(); + pushWhitespace({ + width: Math.abs(e), + height: Math.abs(i), + transform: t || getCurrentTextTransform(), + fontName: r, + }); + return !0; + } + function flushTextContentItem() { + if (f.initialized && f.str) { + f.vertical + ? (f.totalHeight += f.height * f.textAdvanceScale) + : (f.totalWidth += f.width * f.textAdvanceScale); + d.items.push( + (function runBidiTransform(e) { + let t = e.str.join(''); + u || (t = (0, r.normalizeUnicode)(t)); + const a = (0, b.bidi)(t, -1, e.vertical); + return { + str: a.str, + dir: a.dir, + width: Math.abs(e.totalWidth), + height: Math.abs(e.totalHeight), + transform: e.transform, + fontName: e.fontName, + hasEOL: e.hasEOL, + }; + })(f), + ); + f.initialized = !1; + f.str.length = 0; + } + } + function enqueueChunk(e = !1) { + const t = d.items.length; + if (0 !== t && !(e && t < 10)) { + o.enqueue(d, t); + d.items = []; + d.styles = Object.create(null); + } + } + const T = new TimeSlotManager(); + return new Promise(function promiseBody(e, f) { + const next = function (t) { + enqueueChunk(!0); + Promise.all([t, o.ready]).then(function () { + try { + promiseBody(e, f); + } catch (e) { + f(e); + } + }, f); + }; + t.ensureNotTerminated(); + T.reset(); + const g = {}; + let p, + b = []; + for (; !(p = T.check()); ) { + b.length = 0; + g.args = b; + if (!F.read(g)) break; + O = i.state; + const e = g.fn; + b = g.args; + switch (0 | e) { + case r.OPS.setFont: + var y = b[0].name, + M = b[1]; + if (O.font && y === O.fontName && M === O.fontSize) break; + flushTextContentItem(); + O.fontName = y; + O.fontSize = M; + next(handleSetFont(y, null)); + return; + case r.OPS.setTextRise: + O.textRise = b[0]; + break; + case r.OPS.setHScale: + O.textHScale = b[0] / 100; + break; + case r.OPS.setLeading: + O.leading = b[0]; + break; + case r.OPS.moveText: + O.translateTextLineMatrix(b[0], b[1]); + O.textMatrix = O.textLineMatrix.slice(); + break; + case r.OPS.setLeadingMoveText: + O.leading = -b[1]; + O.translateTextLineMatrix(b[0], b[1]); + O.textMatrix = O.textLineMatrix.slice(); + break; + case r.OPS.nextLine: + O.carriageReturn(); + break; + case r.OPS.setTextMatrix: + O.setTextMatrix(b[0], b[1], b[2], b[3], b[4], b[5]); + O.setTextLineMatrix(b[0], b[1], b[2], b[3], b[4], b[5]); + updateAdvanceScale(); + break; + case r.OPS.setCharSpacing: + O.charSpacing = b[0]; + break; + case r.OPS.setWordSpacing: + O.wordSpacing = b[0]; + break; + case r.OPS.beginText: + O.textMatrix = r.IDENTITY_MATRIX.slice(); + O.textLineMatrix = r.IDENTITY_MATRIX.slice(); + break; + case r.OPS.showSpacedText: + if (!i.state.font) { + w.ensureStateFont(i.state); + continue; + } + const e = ((O.font.vertical ? 1 : -1) * O.fontSize) / 1e3, + f = b[0]; + for (let t = 0, a = f.length; t < a - 1; t++) { + const a = f[t]; + if ('string' == typeof a) x.push(a); + else if ('number' == typeof a && 0 !== a) { + const t = x.join(''); + x.length = 0; + buildTextContentItem({ chars: t, extraSpacing: a * e }); + } + } + const g = f.at(-1); + 'string' == typeof g && x.push(g); + if (x.length > 0) { + const e = x.join(''); + x.length = 0; + buildTextContentItem({ chars: e, extraSpacing: 0 }); + } + break; + case r.OPS.showText: + if (!i.state.font) { + w.ensureStateFont(i.state); + continue; + } + buildTextContentItem({ chars: b[0], extraSpacing: 0 }); + break; + case r.OPS.nextLineShowText: + if (!i.state.font) { + w.ensureStateFont(i.state); + continue; + } + O.carriageReturn(); + buildTextContentItem({ chars: b[0], extraSpacing: 0 }); + break; + case r.OPS.nextLineSetSpacingShowText: + if (!i.state.font) { + w.ensureStateFont(i.state); + continue; + } + O.wordSpacing = b[0]; + O.charSpacing = b[1]; + O.carriageReturn(); + buildTextContentItem({ chars: b[2], extraSpacing: 0 }); + break; + case r.OPS.paintXObject: + flushTextContentItem(); + C || (C = a.get('XObject') || n.Dict.empty); + var E = b[0] instanceof n.Name, + D = b[0].name; + if (E && k.getByName(D)) break; + next( + new Promise(function (e, d) { + if (!E) throw new r.FormatError('XObject must be referred to by name.'); + let f = C.getRaw(D); + if (f instanceof n.Ref) { + if (k.getByRef(f)) { + e(); + return; + } + if (w.globalImageCache.getData(f, w.pageIndex)) { + e(); + return; + } + f = S.fetch(f); + } + if (!(f instanceof m.BaseStream)) + throw new r.FormatError('XObject should be a stream'); + const g = f.dict.get('Subtype'); + if (!(g instanceof n.Name)) + throw new r.FormatError('XObject should have a Name subtype'); + if ('Form' !== g.name) { + k.set(D, f.dict.objId, !0); + e(); + return; + } + const p = i.state.clone(), + b = new StateManager(p), + y = f.dict.getArray('Matrix'); + Array.isArray(y) && 6 === y.length && b.transform(y); + enqueueChunk(); + const x = { + enqueueInvoked: !1, + enqueue(e, t) { + this.enqueueInvoked = !0; + o.enqueue(e, t); + }, + get desiredSize() { + return o.desiredSize; + }, + get ready() { + return o.ready; + }, + }; + w.getTextContent({ + stream: f, + task: t, + resources: f.dict.get('Resources') || a, + stateManager: b, + includeMarkedContent: s, + sink: x, + seenStyles: c, + viewBox: l, + markedContentData: h, + disableNormalization: u, + }).then(function () { + x.enqueueInvoked || k.set(D, f.dict.objId, !0); + e(); + }, d); + }).catch(function (e) { + if (!(e instanceof r.AbortException)) { + if (!w.options.ignoreErrors) throw e; + (0, r.warn)(`getTextContent - ignoring XObject: "${e}".`); + } + }), + ); + return; + case r.OPS.setGState: + E = b[0] instanceof n.Name; + D = b[0].name; + if (E && v.getByName(D)) break; + next( + new Promise(function (e, t) { + if (!E) throw new r.FormatError('GState must be referred to by name.'); + const i = a.get('ExtGState'); + if (!(i instanceof n.Dict)) + throw new r.FormatError('ExtGState should be a dictionary.'); + const s = i.get(D); + if (!(s instanceof n.Dict)) + throw new r.FormatError('GState should be a dictionary.'); + const o = s.get('Font'); + if (o) { + flushTextContentItem(); + O.fontName = null; + O.fontSize = o[1]; + handleSetFont(null, o[0]).then(e, t); + } else { + v.set(D, s.objId, !0); + e(); + } + }).catch(function (e) { + if (!(e instanceof r.AbortException)) { + if (!w.options.ignoreErrors) throw e; + (0, r.warn)(`getTextContent - ignoring ExtGState: "${e}".`); + } + }), + ); + return; + case r.OPS.beginMarkedContent: + flushTextContentItem(); + if (s) { + h.level++; + d.items.push({ + type: 'beginMarkedContent', + tag: b[0] instanceof n.Name ? b[0].name : null, + }); + } + break; + case r.OPS.beginMarkedContentProps: + flushTextContentItem(); + if (s) { + h.level++; + let e = null; + b[1] instanceof n.Dict && (e = b[1].get('MCID')); + d.items.push({ + type: 'beginMarkedContentProps', + id: Number.isInteger(e) ? `${w.idFactory.getPageObjId()}_mcid${e}` : null, + tag: b[0] instanceof n.Name ? b[0].name : null, + }); + } + break; + case r.OPS.endMarkedContent: + flushTextContentItem(); + if (s) { + if (0 === h.level) break; + h.level--; + d.items.push({ type: 'endMarkedContent' }); + } + } + if (d.items.length >= o.desiredSize) { + p = !0; + break; + } + } + if (p) next(R); + else { + flushTextContentItem(); + enqueueChunk(); + e(); + } + }).catch((e) => { + if (!(e instanceof r.AbortException)) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`); + flushTextContentItem(); + enqueueChunk(); + } + }); + } + extractDataStructures(e, t, a) { + const i = this.xref; + let s; + const c = this.readToUnicode(a.toUnicode || e.get('ToUnicode') || t.get('ToUnicode')); + if (a.composite) { + const t = e.get('CIDSystemInfo'); + t instanceof n.Dict && + (a.cidSystemInfo = { + registry: (0, r.stringToPDFString)(t.get('Registry')), + ordering: (0, r.stringToPDFString)(t.get('Ordering')), + supplement: t.get('Supplement'), + }); + try { + const t = e.get('CIDToGIDMap'); + t instanceof m.BaseStream && (s = t.getBytes()); + } catch (e) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`extractDataStructures - ignoring CIDToGIDMap data: "${e}".`); + } + } + const l = []; + let h, + u = null; + if (e.has('Encoding')) { + h = e.get('Encoding'); + if (h instanceof n.Dict) { + u = h.get('BaseEncoding'); + u = u instanceof n.Name ? u.name : null; + if (h.has('Differences')) { + const e = h.get('Differences'); + let t = 0; + for (const a of e) { + const e = i.fetchIfRef(a); + if ('number' == typeof e) t = e; + else { + if (!(e instanceof n.Name)) + throw new r.FormatError(`Invalid entry in 'Differences' array: ${e}`); + l[t++] = e.name; + } + } + } + } else if (h instanceof n.Name) u = h.name; + else { + const e = 'Encoding is not a Name nor a Dict'; + if (!this.options.ignoreErrors) throw new r.FormatError(e); + (0, r.warn)(e); + } + 'MacRomanEncoding' !== u && + 'MacExpertEncoding' !== u && + 'WinAnsiEncoding' !== u && + (u = null); + } + if (u) a.defaultEncoding = (0, o.getEncoding)(u); + else { + const e = !!(a.flags & S.FontFlags.Symbolic), + t = !!(a.flags & S.FontFlags.Nonsymbolic); + h = o.StandardEncoding; + 'TrueType' !== a.type || t || (h = o.WinAnsiEncoding); + if (e) { + h = o.MacRomanEncoding; + (a.file && !a.isInternalFont) || + (/Symbol/i.test(a.name) + ? (h = o.SymbolSetEncoding) + : /Dingbats|Wingdings/i.test(a.name) && (h = o.ZapfDingbatsEncoding)); + } + a.defaultEncoding = h; + } + a.differences = l; + a.baseEncodingName = u; + a.hasEncoding = !!u || l.length > 0; + a.dict = e; + return c + .then((e) => { + a.toUnicode = e; + return this.buildToUnicode(a); + }) + .then((e) => { + a.toUnicode = e; + s && (a.cidToGidMap = this.readCidToGidMap(s, e)); + return a; + }); + } + _simpleFontToUnicode(e, t = !1) { + (0, r.assert)(!e.composite, 'Must be a simple font.'); + const a = [], + i = e.defaultEncoding.slice(), + n = e.baseEncodingName, + s = e.differences; + for (const e in s) { + const t = s[e]; + '.notdef' !== t && (i[e] = t); + } + const c = (0, x.getGlyphsUnicode)(); + for (const r in i) { + let s = i[r]; + if ('' === s) continue; + let l = c[s]; + if (void 0 !== l) { + a[r] = String.fromCharCode(l); + continue; + } + let h = 0; + switch (s[0]) { + case 'G': + 3 === s.length && (h = parseInt(s.substring(1), 16)); + break; + case 'g': + 5 === s.length && (h = parseInt(s.substring(1), 16)); + break; + case 'C': + case 'c': + if (s.length >= 3 && s.length <= 4) { + const a = s.substring(1); + if (t) { + h = parseInt(a, 16); + break; + } + h = +a; + if (Number.isNaN(h) && Number.isInteger(parseInt(a, 16))) + return this._simpleFontToUnicode(e, !0); + } + break; + case 'u': + l = (0, v.getUnicodeForGlyph)(s, c); + -1 !== l && (h = l); + break; + default: + switch (s) { + case 'f_h': + case 'f_t': + case 'T_h': + a[r] = s.replaceAll('_', ''); + continue; + } + } + if (h > 0 && h <= 1114111 && Number.isInteger(h)) { + if (n && h === +r) { + const e = (0, o.getEncoding)(n); + if (e && (s = e[r])) { + a[r] = String.fromCharCode(c[s]); + continue; + } + } + a[r] = String.fromCodePoint(h); + } + } + return a; + } + async buildToUnicode(e) { + e.hasIncludedToUnicodeMap = !!e.toUnicode && e.toUnicode.length > 0; + if (e.hasIncludedToUnicodeMap) { + !e.composite && + e.hasEncoding && + (e.fallbackToUnicode = this._simpleFontToUnicode(e)); + return e.toUnicode; + } + if (!e.composite) return new u.ToUnicodeMap(this._simpleFontToUnicode(e)); + if ( + e.composite && + ((e.cMap.builtInCMap && !(e.cMap instanceof i.IdentityCMap)) || + ('Adobe' === e.cidSystemInfo.registry && + ('GB1' === e.cidSystemInfo.ordering || + 'CNS1' === e.cidSystemInfo.ordering || + 'Japan1' === e.cidSystemInfo.ordering || + 'Korea1' === e.cidSystemInfo.ordering))) + ) { + const { registry: t, ordering: a } = e.cidSystemInfo, + s = n.Name.get(`${t}-${a}-UCS2`), + o = await i.CMapFactory.create({ + encoding: s, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null, + }), + c = [], + l = []; + e.cMap.forEach(function (e, t) { + if (t > 65535) throw new r.FormatError('Max size of CID is 65,535'); + const a = o.lookup(t); + if (a) { + l.length = 0; + for (let e = 0, t = a.length; e < t; e += 2) + l.push((a.charCodeAt(e) << 8) + a.charCodeAt(e + 1)); + c[e] = String.fromCharCode(...l); + } + }); + return new u.ToUnicodeMap(c); + } + return new u.IdentityToUnicodeMap(e.firstChar, e.lastChar); + } + readToUnicode(e) { + return e + ? e instanceof n.Name + ? i.CMapFactory.create({ + encoding: e, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null, + }).then(function (e) { + return e instanceof i.IdentityCMap + ? new u.IdentityToUnicodeMap(0, 65535) + : new u.ToUnicodeMap(e.getMap()); + }) + : e instanceof m.BaseStream + ? i.CMapFactory.create({ + encoding: e, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null, + }).then( + function (e) { + if (e instanceof i.IdentityCMap) + return new u.IdentityToUnicodeMap(0, 65535); + const t = new Array(e.length); + e.forEach(function (e, a) { + if ('number' == typeof a) { + t[e] = String.fromCodePoint(a); + return; + } + const r = []; + for (let e = 0; e < a.length; e += 2) { + const t = (a.charCodeAt(e) << 8) | a.charCodeAt(e + 1); + if (55296 != (63488 & t)) { + r.push(t); + continue; + } + e += 2; + const i = (a.charCodeAt(e) << 8) | a.charCodeAt(e + 1); + r.push(((1023 & t) << 10) + (1023 & i) + 65536); + } + t[e] = String.fromCodePoint(...r); + }); + return new u.ToUnicodeMap(t); + }, + (e) => { + if (e instanceof r.AbortException) return null; + if (this.options.ignoreErrors) { + (0, r.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`); + return null; + } + throw e; + }, + ) + : Promise.resolve(null) + : Promise.resolve(null); + } + readCidToGidMap(e, t) { + const a = []; + for (let r = 0, i = e.length; r < i; r++) { + const i = (e[r++] << 8) | e[r], + n = r >> 1; + (0 !== i || t.has(n)) && (a[n] = i); + } + return a; + } + extractWidths(e, t, a) { + const r = this.xref; + let i = [], + s = 0; + const o = []; + let c, l, h, u, d, f, g, p; + if (a.composite) { + s = e.has('DW') ? e.get('DW') : 1e3; + p = e.get('W'); + if (p) + for (l = 0, h = p.length; l < h; l++) { + f = r.fetchIfRef(p[l++]); + g = r.fetchIfRef(p[l]); + if (Array.isArray(g)) + for (u = 0, d = g.length; u < d; u++) i[f++] = r.fetchIfRef(g[u]); + else { + const e = r.fetchIfRef(p[++l]); + for (u = f; u <= g; u++) i[u] = e; + } + } + if (a.vertical) { + let t = e.getArray('DW2') || [880, -1e3]; + c = [t[1], 0.5 * s, t[0]]; + t = e.get('W2'); + if (t) + for (l = 0, h = t.length; l < h; l++) { + f = r.fetchIfRef(t[l++]); + g = r.fetchIfRef(t[l]); + if (Array.isArray(g)) + for (u = 0, d = g.length; u < d; u++) + o[f++] = [r.fetchIfRef(g[u++]), r.fetchIfRef(g[u++]), r.fetchIfRef(g[u])]; + else { + const e = [ + r.fetchIfRef(t[++l]), + r.fetchIfRef(t[++l]), + r.fetchIfRef(t[++l]), + ]; + for (u = f; u <= g; u++) o[u] = e; + } + } + } + } else { + const o = a.firstChar; + p = e.get('Widths'); + if (p) { + u = o; + for (l = 0, h = p.length; l < h; l++) i[u++] = r.fetchIfRef(p[l]); + s = parseFloat(t.get('MissingWidth')) || 0; + } else { + const t = e.get('BaseFont'); + if (t instanceof n.Name) { + const e = this.getBaseFontMetrics(t.name); + i = this.buildCharCodeToWidth(e.widths, a); + s = e.defaultWidth; + } + } + } + let m = !0, + b = s; + for (const e in i) { + const t = i[e]; + if (t) + if (b) { + if (b !== t) { + m = !1; + break; + } + } else b = t; + } + m && (a.flags |= S.FontFlags.FixedPitch); + a.defaultWidth = s; + a.widths = i; + a.defaultVMetrics = c; + a.vmetrics = o; + } + isSerifFont(e) { + const t = e.split('-')[0]; + return t in (0, c.getSerifFonts)() || /serif/gi.test(t); + } + getBaseFontMetrics(e) { + let t = 0, + a = Object.create(null), + r = !1; + let i = (0, c.getStdFontMap)()[e] || e; + const n = (0, k.getMetrics)(); + i in n || (i = this.isSerifFont(e) ? 'Times-Roman' : 'Helvetica'); + const s = n[i]; + if ('number' == typeof s) { + t = s; + r = !0; + } else a = s(); + return { defaultWidth: t, monospace: r, widths: a }; + } + buildCharCodeToWidth(e, t) { + const a = Object.create(null), + r = t.differences, + i = t.defaultEncoding; + for (let t = 0; t < 256; t++) + t in r && e[r[t]] ? (a[t] = e[r[t]]) : t in i && e[i[t]] && (a[t] = e[i[t]]); + return a; + } + preEvaluateFont(e) { + const t = e; + let a = e.get('Subtype'); + if (!(a instanceof n.Name)) throw new r.FormatError('invalid font Subtype'); + let i, + s, + o = !1; + if ('Type0' === a.name) { + const t = e.get('DescendantFonts'); + if (!t) throw new r.FormatError('Descendant fonts are not specified'); + if (!((e = Array.isArray(t) ? this.xref.fetchIfRef(t[0]) : t) instanceof n.Dict)) + throw new r.FormatError('Descendant font is not a dictionary.'); + a = e.get('Subtype'); + if (!(a instanceof n.Name)) throw new r.FormatError('invalid font Subtype'); + o = !0; + } + const c = e.get('FirstChar') || 0, + l = e.get('LastChar') || (o ? 65535 : 255), + h = e.get('FontDescriptor'); + if (h) { + i = new O.MurmurHash3_64(); + const a = t.getRaw('Encoding'); + if (a instanceof n.Name) i.update(a.name); + else if (a instanceof n.Ref) i.update(a.toString()); + else if (a instanceof n.Dict) + for (const e of a.getRawValues()) + if (e instanceof n.Name) i.update(e.name); + else if (e instanceof n.Ref) i.update(e.toString()); + else if (Array.isArray(e)) { + const t = e.length, + a = new Array(t); + for (let r = 0; r < t; r++) { + const t = e[r]; + t instanceof n.Name + ? (a[r] = t.name) + : ('number' == typeof t || t instanceof n.Ref) && (a[r] = t.toString()); + } + i.update(a.join()); + } + i.update(`${c}-${l}`); + s = e.get('ToUnicode') || t.get('ToUnicode'); + if (s instanceof m.BaseStream) { + const e = s.str || s, + t = e.buffer + ? new Uint8Array(e.buffer.buffer, 0, e.bufferLength) + : new Uint8Array(e.bytes.buffer, e.start, e.end - e.start); + i.update(t); + } else s instanceof n.Name && i.update(s.name); + const r = e.get('Widths') || t.get('Widths'); + if (Array.isArray(r)) { + const e = []; + for (const t of r) + ('number' == typeof t || t instanceof n.Ref) && e.push(t.toString()); + i.update(e.join()); + } + if (o) { + i.update('compositeFont'); + const a = e.get('W') || t.get('W'); + if (Array.isArray(a)) { + const e = []; + for (const t of a) + if ('number' == typeof t || t instanceof n.Ref) e.push(t.toString()); + else if (Array.isArray(t)) { + const a = []; + for (const e of t) + ('number' == typeof e || e instanceof n.Ref) && a.push(e.toString()); + e.push(`[${a.join()}]`); + } + i.update(e.join()); + } + const r = e.getRaw('CIDToGIDMap') || t.getRaw('CIDToGIDMap'); + r instanceof n.Name + ? i.update(r.name) + : r instanceof n.Ref + ? i.update(r.toString()) + : r instanceof m.BaseStream && i.update(r.peekBytes()); + } + } + return { + descriptor: h, + dict: e, + baseDict: t, + composite: o, + type: a.name, + firstChar: c, + lastChar: l, + toUnicode: s, + hash: i ? i.hexdigest() : '', + }; + } + async translateFont({ + descriptor: e, + dict: t, + baseDict: a, + composite: o, + type: l, + firstChar: u, + lastChar: d, + toUnicode: f, + cssFontInfo: g, + }) { + const m = 'Type3' === l; + let b; + if (!e) { + if (!m) { + let e = t.get('BaseFont'); + if (!(e instanceof n.Name)) throw new r.FormatError('Base font is not specified'); + e = e.name.replaceAll(/[,_]/g, '-'); + const i = this.getBaseFontMetrics(e), + o = e.split('-')[0], + h = + (this.isSerifFont(o) ? S.FontFlags.Serif : 0) | + (i.monospace ? S.FontFlags.FixedPitch : 0) | + ((0, c.getSymbolsFonts)()[o] + ? S.FontFlags.Symbolic + : S.FontFlags.Nonsymbolic); + b = { + type: l, + name: e, + loadedName: a.loadedName, + widths: i.widths, + defaultWidth: i.defaultWidth, + isSimulatedFlags: !0, + flags: h, + firstChar: u, + lastChar: d, + toUnicode: f, + xHeight: 0, + capHeight: 0, + italicAngle: 0, + isType3Font: m, + }; + const g = t.get('Widths'), + p = (0, c.getStandardFontName)(e); + let y = null; + if (p) { + y = await this.fetchStandardFontData(p); + b.isInternalFont = !!y; + } + return this.extractDataStructures(t, t, b).then((t) => { + if (g) { + const e = []; + let a = u; + for (const t of g) e[a++] = this.xref.fetchIfRef(t); + t.widths = e; + } else t.widths = this.buildCharCodeToWidth(i.widths, t); + return new s.Font(e, y, t); + }); + } + (e = new n.Dict(null)).set('FontName', n.Name.get(l)); + e.set('FontBBox', t.getArray('FontBBox') || [0, 0, 0, 0]); + } + let y, + w, + x, + C, + k, + v = e.get('FontName'), + F = t.get('BaseFont'); + 'string' == typeof v && (v = n.Name.get(v)); + 'string' == typeof F && (F = n.Name.get(F)); + if (!m) { + const e = v && v.name, + t = F && F.name; + if (e !== t) { + (0, r.info)( + `The FontDescriptor's FontName is "${e}" but should be the same as the Font's BaseFont "${t}".`, + ); + e && t && t.startsWith(e) && (v = F); + } + } + v ||= F; + if (!(v instanceof n.Name)) throw new r.FormatError('invalid font name'); + try { + y = e.get('FontFile', 'FontFile2', 'FontFile3'); + } catch (e) { + if (!this.options.ignoreErrors) throw e; + (0, r.warn)(`translateFont - fetching "${v.name}" font file: "${e}".`); + y = new p.NullStream(); + } + let O = !1, + T = null; + if (y) { + if (y.dict) { + const e = y.dict.get('Subtype'); + e instanceof n.Name && (w = e.name); + x = y.dict.get('Length1'); + C = y.dict.get('Length2'); + k = y.dict.get('Length3'); + } + } else if (g) { + const e = (0, h.getXfaFontName)(v.name); + if (e) { + g.fontFamily = `${g.fontFamily}-PdfJS-XFA`; + g.metrics = e.metrics || null; + T = e.factors || null; + y = await this.fetchStandardFontData(e.name); + O = !!y; + a = t = (0, h.getXfaFontDict)(v.name); + o = !0; + } + } else if (!m) { + const e = (0, c.getStandardFontName)(v.name); + if (e) { + y = await this.fetchStandardFontData(e); + O = !!y; + } + } + b = { + type: l, + name: v.name, + subtype: w, + file: y, + length1: x, + length2: C, + length3: k, + isInternalFont: O, + loadedName: a.loadedName, + composite: o, + fixedPitch: !1, + fontMatrix: t.getArray('FontMatrix') || r.FONT_IDENTITY_MATRIX, + firstChar: u, + lastChar: d, + toUnicode: f, + bbox: e.getArray('FontBBox') || t.getArray('FontBBox'), + ascent: e.get('Ascent'), + descent: e.get('Descent'), + xHeight: e.get('XHeight') || 0, + capHeight: e.get('CapHeight') || 0, + flags: e.get('Flags'), + italicAngle: e.get('ItalicAngle') || 0, + isType3Font: m, + cssFontInfo: g, + scaleFactors: T, + }; + if (o) { + const e = a.get('Encoding'); + e instanceof n.Name && (b.cidEncoding = e.name); + const t = await i.CMapFactory.create({ + encoding: e, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null, + }); + b.cMap = t; + b.vertical = b.cMap.vertical; + } + return this.extractDataStructures(t, a, b).then((a) => { + this.extractWidths(t, e, a); + return new s.Font(v.name, y, a); + }); + } + static buildFontPaths(e, t, a, i) { + function buildPath(t) { + const n = `${e.loadedName}_path_${t}`; + try { + if (e.renderer.hasBuiltPath(t)) return; + a.send('commonobj', [n, 'FontPath', e.renderer.getPathJs(t)]); + } catch (e) { + if (i.ignoreErrors) { + (0, r.warn)(`buildFontPaths - ignoring ${n} glyph: "${e}".`); + return; + } + throw e; + } + } + for (const e of t) { + buildPath(e.fontChar); + const t = e.accent; + t && t.fontChar && buildPath(t.fontChar); + } + } + static get fallbackFontDict() { + const e = new n.Dict(); + e.set('BaseFont', n.Name.get('PDFJS-FallbackFont')); + e.set('Type', n.Name.get('FallbackType')); + e.set('Subtype', n.Name.get('FallbackType')); + e.set('Encoding', n.Name.get('WinAnsiEncoding')); + return (0, r.shadow)(this, 'fallbackFontDict', e); + } + } + t.PartialEvaluator = PartialEvaluator; + class TranslatedFont { + constructor({ loadedName: e, font: t, dict: a, evaluatorOptions: r }) { + this.loadedName = e; + this.font = t; + this.dict = a; + this._evaluatorOptions = r || E; + this.type3Loaded = null; + this.type3Dependencies = t.isType3Font ? new Set() : null; + this.sent = !1; + } + send(e) { + if (!this.sent) { + this.sent = !0; + e.send('commonobj', [ + this.loadedName, + 'Font', + this.font.exportData(this._evaluatorOptions.fontExtraProperties), + ]); + } + } + fallback(e) { + if (this.font.data) { + this.font.disableFontFace = !0; + PartialEvaluator.buildFontPaths( + this.font, + this.font.glyphCacheValues, + e, + this._evaluatorOptions, + ); + } + } + loadType3Data(e, t, a) { + if (this.type3Loaded) return this.type3Loaded; + if (!this.font.isType3Font) throw new Error('Must be a Type3 font.'); + const i = e.clone({ ignoreErrors: !1 }); + i.parsingType3Font = !0; + const s = new n.RefSet(e.type3FontRefs); + this.dict.objId && !s.has(this.dict.objId) && s.put(this.dict.objId); + i.type3FontRefs = s; + const o = this.font, + c = this.type3Dependencies; + let l = Promise.resolve(); + const h = this.dict.get('CharProcs'), + u = this.dict.get('Resources') || t, + d = Object.create(null), + f = r.Util.normalizeRect(o.bbox || [0, 0, 0, 0]), + g = f[2] - f[0], + p = f[3] - f[1], + m = Math.hypot(g, p); + for (const e of h.getKeys()) + l = l.then(() => { + const t = h.get(e), + n = new T.OperatorList(); + return i + .getOperatorList({ stream: t, task: a, resources: u, operatorList: n }) + .then(() => { + n.fnArray[0] === r.OPS.setCharWidthAndBounds && + this._removeType3ColorOperators(n, m); + d[e] = n.getIR(); + for (const e of n.dependencies) c.add(e); + }) + .catch(function (t) { + (0, r.warn)(`Type3 font resource "${e}" is not available.`); + const a = new T.OperatorList(); + d[e] = a.getIR(); + }); + }); + this.type3Loaded = l.then(() => { + o.charProcOperatorList = d; + if (this._bbox) { + o.isCharBBox = !0; + o.bbox = this._bbox; + } + }); + return this.type3Loaded; + } + _removeType3ColorOperators(e, t = NaN) { + const a = r.Util.normalizeRect(e.argsArray[0].slice(2)), + i = a[2] - a[0], + n = a[3] - a[1], + s = Math.hypot(i, n); + if (0 === i || 0 === n) { + e.fnArray.splice(0, 1); + e.argsArray.splice(0, 1); + } else if (0 === t || Math.round(s / t) >= 10) { + this._bbox || (this._bbox = [1 / 0, 1 / 0, -1 / 0, -1 / 0]); + this._bbox[0] = Math.min(this._bbox[0], a[0]); + this._bbox[1] = Math.min(this._bbox[1], a[1]); + this._bbox[2] = Math.max(this._bbox[2], a[2]); + this._bbox[3] = Math.max(this._bbox[3], a[3]); + } + let o = 0, + c = e.length; + for (; o < c; ) { + switch (e.fnArray[o]) { + case r.OPS.setCharWidthAndBounds: + break; + case r.OPS.setStrokeColorSpace: + case r.OPS.setFillColorSpace: + case r.OPS.setStrokeColor: + case r.OPS.setStrokeColorN: + case r.OPS.setFillColor: + case r.OPS.setFillColorN: + case r.OPS.setStrokeGray: + case r.OPS.setFillGray: + case r.OPS.setStrokeRGBColor: + case r.OPS.setFillRGBColor: + case r.OPS.setStrokeCMYKColor: + case r.OPS.setFillCMYKColor: + case r.OPS.shadingFill: + case r.OPS.setRenderingIntent: + e.fnArray.splice(o, 1); + e.argsArray.splice(o, 1); + c--; + continue; + case r.OPS.setGState: + const [t] = e.argsArray[o]; + let a = 0, + i = t.length; + for (; a < i; ) { + const [e] = t[a]; + switch (e) { + case 'TR': + case 'TR2': + case 'HT': + case 'BG': + case 'BG2': + case 'UCR': + case 'UCR2': + t.splice(a, 1); + i--; + continue; + } + a++; + } + } + o++; + } + } + } + class StateManager { + constructor(e = new EvalState()) { + 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 = r.Util.transform(this.state.ctm, e); + } + } + class TextState { + constructor() { + this.ctm = new Float32Array(r.IDENTITY_MATRIX); + this.fontName = null; + this.fontSize = 0; + this.loadedName = null; + this.font = null; + this.fontMatrix = r.FONT_IDENTITY_MATRIX; + this.textMatrix = r.IDENTITY_MATRIX.slice(); + this.textLineMatrix = r.IDENTITY_MATRIX.slice(); + this.charSpacing = 0; + this.wordSpacing = 0; + this.leading = 0; + this.textHScale = 1; + this.textRise = 0; + } + setTextMatrix(e, t, a, r, i, n) { + const s = this.textMatrix; + s[0] = e; + s[1] = t; + s[2] = a; + s[3] = r; + s[4] = i; + s[5] = n; + } + setTextLineMatrix(e, t, a, r, i, n) { + const s = this.textLineMatrix; + s[0] = e; + s[1] = t; + s[2] = a; + s[3] = r; + s[4] = i; + s[5] = n; + } + translateTextMatrix(e, t) { + const a = this.textMatrix; + a[4] = a[0] * e + a[2] * t + a[4]; + a[5] = a[1] * e + a[3] * t + a[5]; + } + translateTextLineMatrix(e, t) { + const a = this.textLineMatrix; + a[4] = a[0] * e + a[2] * t + a[4]; + a[5] = a[1] * e + a[3] * t + a[5]; + } + carriageReturn() { + this.translateTextLineMatrix(0, -this.leading); + this.textMatrix = this.textLineMatrix.slice(); + } + clone() { + const e = Object.create(this); + e.textMatrix = this.textMatrix.slice(); + e.textLineMatrix = this.textLineMatrix.slice(); + e.fontMatrix = this.fontMatrix.slice(); + return e; + } + } + class EvalState { + constructor() { + this.ctm = new Float32Array(r.IDENTITY_MATRIX); + this.font = null; + this.textRenderingMode = r.TextRenderingMode.FILL; + this.fillColorSpace = y.ColorSpace.singletons.gray; + this.strokeColorSpace = y.ColorSpace.singletons.gray; + } + clone() { + return Object.create(this); + } + } + class EvaluatorPreprocessor { + static get opMap() { + const e = (0, C.getLookupTableFactory)(function (e) { + e.w = { id: r.OPS.setLineWidth, numArgs: 1, variableArgs: !1 }; + e.J = { id: r.OPS.setLineCap, numArgs: 1, variableArgs: !1 }; + e.j = { id: r.OPS.setLineJoin, numArgs: 1, variableArgs: !1 }; + e.M = { id: r.OPS.setMiterLimit, numArgs: 1, variableArgs: !1 }; + e.d = { id: r.OPS.setDash, numArgs: 2, variableArgs: !1 }; + e.ri = { id: r.OPS.setRenderingIntent, numArgs: 1, variableArgs: !1 }; + e.i = { id: r.OPS.setFlatness, numArgs: 1, variableArgs: !1 }; + e.gs = { id: r.OPS.setGState, numArgs: 1, variableArgs: !1 }; + e.q = { id: r.OPS.save, numArgs: 0, variableArgs: !1 }; + e.Q = { id: r.OPS.restore, numArgs: 0, variableArgs: !1 }; + e.cm = { id: r.OPS.transform, numArgs: 6, variableArgs: !1 }; + e.m = { id: r.OPS.moveTo, numArgs: 2, variableArgs: !1 }; + e.l = { id: r.OPS.lineTo, numArgs: 2, variableArgs: !1 }; + e.c = { id: r.OPS.curveTo, numArgs: 6, variableArgs: !1 }; + e.v = { id: r.OPS.curveTo2, numArgs: 4, variableArgs: !1 }; + e.y = { id: r.OPS.curveTo3, numArgs: 4, variableArgs: !1 }; + e.h = { id: r.OPS.closePath, numArgs: 0, variableArgs: !1 }; + e.re = { id: r.OPS.rectangle, numArgs: 4, variableArgs: !1 }; + e.S = { id: r.OPS.stroke, numArgs: 0, variableArgs: !1 }; + e.s = { id: r.OPS.closeStroke, numArgs: 0, variableArgs: !1 }; + e.f = { id: r.OPS.fill, numArgs: 0, variableArgs: !1 }; + e.F = { id: r.OPS.fill, numArgs: 0, variableArgs: !1 }; + e['f*'] = { id: r.OPS.eoFill, numArgs: 0, variableArgs: !1 }; + e.B = { id: r.OPS.fillStroke, numArgs: 0, variableArgs: !1 }; + e['B*'] = { id: r.OPS.eoFillStroke, numArgs: 0, variableArgs: !1 }; + e.b = { id: r.OPS.closeFillStroke, numArgs: 0, variableArgs: !1 }; + e['b*'] = { id: r.OPS.closeEOFillStroke, numArgs: 0, variableArgs: !1 }; + e.n = { id: r.OPS.endPath, numArgs: 0, variableArgs: !1 }; + e.W = { id: r.OPS.clip, numArgs: 0, variableArgs: !1 }; + e['W*'] = { id: r.OPS.eoClip, numArgs: 0, variableArgs: !1 }; + e.BT = { id: r.OPS.beginText, numArgs: 0, variableArgs: !1 }; + e.ET = { id: r.OPS.endText, numArgs: 0, variableArgs: !1 }; + e.Tc = { id: r.OPS.setCharSpacing, numArgs: 1, variableArgs: !1 }; + e.Tw = { id: r.OPS.setWordSpacing, numArgs: 1, variableArgs: !1 }; + e.Tz = { id: r.OPS.setHScale, numArgs: 1, variableArgs: !1 }; + e.TL = { id: r.OPS.setLeading, numArgs: 1, variableArgs: !1 }; + e.Tf = { id: r.OPS.setFont, numArgs: 2, variableArgs: !1 }; + e.Tr = { id: r.OPS.setTextRenderingMode, numArgs: 1, variableArgs: !1 }; + e.Ts = { id: r.OPS.setTextRise, numArgs: 1, variableArgs: !1 }; + e.Td = { id: r.OPS.moveText, numArgs: 2, variableArgs: !1 }; + e.TD = { id: r.OPS.setLeadingMoveText, numArgs: 2, variableArgs: !1 }; + e.Tm = { id: r.OPS.setTextMatrix, numArgs: 6, variableArgs: !1 }; + e['T*'] = { id: r.OPS.nextLine, numArgs: 0, variableArgs: !1 }; + e.Tj = { id: r.OPS.showText, numArgs: 1, variableArgs: !1 }; + e.TJ = { id: r.OPS.showSpacedText, numArgs: 1, variableArgs: !1 }; + e["'"] = { id: r.OPS.nextLineShowText, numArgs: 1, variableArgs: !1 }; + e['"'] = { id: r.OPS.nextLineSetSpacingShowText, numArgs: 3, variableArgs: !1 }; + e.d0 = { id: r.OPS.setCharWidth, numArgs: 2, variableArgs: !1 }; + e.d1 = { id: r.OPS.setCharWidthAndBounds, numArgs: 6, variableArgs: !1 }; + e.CS = { id: r.OPS.setStrokeColorSpace, numArgs: 1, variableArgs: !1 }; + e.cs = { id: r.OPS.setFillColorSpace, numArgs: 1, variableArgs: !1 }; + e.SC = { id: r.OPS.setStrokeColor, numArgs: 4, variableArgs: !0 }; + e.SCN = { id: r.OPS.setStrokeColorN, numArgs: 33, variableArgs: !0 }; + e.sc = { id: r.OPS.setFillColor, numArgs: 4, variableArgs: !0 }; + e.scn = { id: r.OPS.setFillColorN, numArgs: 33, variableArgs: !0 }; + e.G = { id: r.OPS.setStrokeGray, numArgs: 1, variableArgs: !1 }; + e.g = { id: r.OPS.setFillGray, numArgs: 1, variableArgs: !1 }; + e.RG = { id: r.OPS.setStrokeRGBColor, numArgs: 3, variableArgs: !1 }; + e.rg = { id: r.OPS.setFillRGBColor, numArgs: 3, variableArgs: !1 }; + e.K = { id: r.OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: !1 }; + e.k = { id: r.OPS.setFillCMYKColor, numArgs: 4, variableArgs: !1 }; + e.sh = { id: r.OPS.shadingFill, numArgs: 1, variableArgs: !1 }; + e.BI = { id: r.OPS.beginInlineImage, numArgs: 0, variableArgs: !1 }; + e.ID = { id: r.OPS.beginImageData, numArgs: 0, variableArgs: !1 }; + e.EI = { id: r.OPS.endInlineImage, numArgs: 1, variableArgs: !1 }; + e.Do = { id: r.OPS.paintXObject, numArgs: 1, variableArgs: !1 }; + e.MP = { id: r.OPS.markPoint, numArgs: 1, variableArgs: !1 }; + e.DP = { id: r.OPS.markPointProps, numArgs: 2, variableArgs: !1 }; + e.BMC = { id: r.OPS.beginMarkedContent, numArgs: 1, variableArgs: !1 }; + e.BDC = { id: r.OPS.beginMarkedContentProps, numArgs: 2, variableArgs: !1 }; + e.EMC = { id: r.OPS.endMarkedContent, numArgs: 0, variableArgs: !1 }; + e.BX = { id: r.OPS.beginCompat, numArgs: 0, variableArgs: !1 }; + e.EX = { id: r.OPS.endCompat, numArgs: 0, variableArgs: !1 }; + e.BM = null; + e.BD = null; + e.true = null; + e.fa = null; + e.fal = null; + e.fals = null; + e.false = null; + e.nu = null; + e.nul = null; + e.null = null; + }); + return (0, r.shadow)(this, 'opMap', e()); + } + static MAX_INVALID_PATH_OPS = 10; + constructor(e, t, a = new StateManager()) { + this.parser = new f.Parser({ + lexer: new f.Lexer(e, EvaluatorPreprocessor.opMap), + xref: t, + }); + this.stateManager = a; + this.nonProcessedArgs = []; + this._isPathOp = !1; + this._numInvalidPathOPS = 0; + } + get savedStatesDepth() { + return this.stateManager.stateStack.length; + } + read(e) { + let t = e.args; + for (;;) { + const a = this.parser.getObj(); + if (a instanceof n.Cmd) { + const i = a.cmd, + n = EvaluatorPreprocessor.opMap[i]; + if (!n) { + (0, r.warn)(`Unknown command "${i}".`); + continue; + } + const s = n.id, + o = n.numArgs; + let c = null !== t ? t.length : 0; + this._isPathOp || (this._numInvalidPathOPS = 0); + this._isPathOp = s >= r.OPS.moveTo && s <= r.OPS.endPath; + if (n.variableArgs) + c > o && + (0, r.info)(`Command ${i}: expected [0, ${o}] args, but received ${c} args.`); + else { + if (c !== o) { + const e = this.nonProcessedArgs; + for (; c > o; ) { + e.push(t.shift()); + c--; + } + for (; c < o && 0 !== e.length; ) { + null === t && (t = []); + t.unshift(e.pop()); + c++; + } + } + if (c < o) { + const e = `command ${i}: expected ${o} args, but received ${c} args.`; + if ( + this._isPathOp && + ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS + ) + throw new r.FormatError(`Invalid ${e}`); + (0, r.warn)(`Skipping ${e}`); + null !== t && (t.length = 0); + continue; + } + } + this.preprocessCommand(s, t); + e.fn = s; + e.args = t; + return !0; + } + if (a === n.EOF) return !1; + if (null !== a) { + null === t && (t = []); + t.push(a); + if (t.length > 33) throw new r.FormatError('Too many arguments'); + } + } + } + preprocessCommand(e, t) { + switch (0 | e) { + case r.OPS.save: + this.stateManager.save(); + break; + case r.OPS.restore: + this.stateManager.restore(); + break; + case r.OPS.transform: + this.stateManager.transform(t); + } + } + } + t.EvaluatorPreprocessor = EvaluatorPreprocessor; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.IdentityCMap = t.CMapFactory = t.CMap = void 0; + var r = a(2), + i = a(4), + n = a(5), + s = a(15), + o = a(16), + c = a(3), + l = a(8); + const h = [ + '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', + ], + u = 2 ** 24 - 1; + class CMap { + constructor(e = !1) { + this.codespaceRanges = [[], [], [], []]; + this.numCodespaceRanges = 0; + this._map = []; + this.name = ''; + this.vertical = !1; + this.useCMap = null; + this.builtInCMap = e; + } + addCodespaceRange(e, t, a) { + this.codespaceRanges[e - 1].push(t, a); + this.numCodespaceRanges++; + } + mapCidRange(e, t, a) { + if (t - e > u) throw new Error('mapCidRange - ignoring data above MAX_MAP_RANGE.'); + for (; e <= t; ) this._map[e++] = a++; + } + mapBfRange(e, t, a) { + if (t - e > u) throw new Error('mapBfRange - ignoring data above MAX_MAP_RANGE.'); + const r = a.length - 1; + for (; e <= t; ) { + this._map[e++] = a; + const t = a.charCodeAt(r) + 1; + t > 255 + ? (a = + a.substring(0, r - 1) + String.fromCharCode(a.charCodeAt(r - 1) + 1) + '\0') + : (a = a.substring(0, r) + String.fromCharCode(t)); + } + } + mapBfRangeToArray(e, t, a) { + if (t - e > u) + throw new Error('mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.'); + const r = a.length; + let i = 0; + for (; e <= t && i < r; ) { + this._map[e] = a[i++]; + ++e; + } + } + mapOne(e, t) { + this._map[e] = t; + } + lookup(e) { + return this._map[e]; + } + contains(e) { + return void 0 !== this._map[e]; + } + forEach(e) { + const t = this._map, + a = t.length; + if (a <= 65536) for (let r = 0; r < a; r++) void 0 !== t[r] && e(r, t[r]); + else for (const a in t) e(a, t[a]); + } + charCodeOf(e) { + const t = this._map; + if (t.length <= 65536) return t.indexOf(e); + for (const a in t) if (t[a] === e) return 0 | a; + return -1; + } + getMap() { + return this._map; + } + readCharCode(e, t, a) { + let r = 0; + const i = this.codespaceRanges; + for (let n = 0, s = i.length; n < s; n++) { + r = ((r << 8) | e.charCodeAt(t + n)) >>> 0; + const s = i[n]; + for (let e = 0, t = s.length; e < t; ) { + const t = s[e++], + i = s[e++]; + if (r >= t && r <= i) { + a.charcode = r; + a.length = n + 1; + return; + } + } + } + a.charcode = 0; + a.length = 1; + } + getCharCodeLength(e) { + const t = this.codespaceRanges; + for (let a = 0, r = t.length; a < r; a++) { + const r = t[a]; + for (let t = 0, i = r.length; t < i; ) { + const i = r[t++], + n = r[t++]; + if (e >= i && e <= n) return a + 1; + } + } + return 1; + } + get length() { + return this._map.length; + } + get isIdentityCMap() { + if ('Identity-H' !== this.name && 'Identity-V' !== this.name) return !1; + if (65536 !== this._map.length) return !1; + for (let e = 0; e < 65536; e++) if (this._map[e] !== e) return !1; + return !0; + } + } + t.CMap = CMap; + class IdentityCMap extends CMap { + constructor(e, t) { + super(); + this.vertical = e; + this.addCodespaceRange(t, 0, 65535); + } + mapCidRange(e, t, a) { + (0, r.unreachable)('should not call mapCidRange'); + } + mapBfRange(e, t, a) { + (0, r.unreachable)('should not call mapBfRange'); + } + mapBfRangeToArray(e, t, a) { + (0, r.unreachable)('should not call mapBfRangeToArray'); + } + mapOne(e, t) { + (0, r.unreachable)('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 t = 0; t <= 65535; t++) e(t, t); + } + charCodeOf(e) { + return Number.isInteger(e) && e <= 65535 ? e : -1; + } + getMap() { + const e = new Array(65536); + for (let t = 0; t <= 65535; t++) e[t] = t; + return e; + } + get length() { + return 65536; + } + get isIdentityCMap() { + (0, r.unreachable)('should not access .isIdentityCMap'); + } + } + t.IdentityCMap = IdentityCMap; + function strToInt(e) { + let t = 0; + for (let a = 0; a < e.length; a++) t = (t << 8) | e.charCodeAt(a); + return t >>> 0; + } + function expectString(e) { + if ('string' != typeof e) throw new r.FormatError('Malformed CMap: expected string.'); + } + function expectInt(e) { + if (!Number.isInteger(e)) throw new r.FormatError('Malformed CMap: expected int.'); + } + function parseBfChar(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endbfchar')) return; + expectString(a); + const r = strToInt(a); + a = t.getObj(); + expectString(a); + const n = a; + e.mapOne(r, n); + } + } + function parseBfRange(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endbfrange')) return; + expectString(a); + const r = strToInt(a); + a = t.getObj(); + expectString(a); + const n = strToInt(a); + a = t.getObj(); + if (Number.isInteger(a) || 'string' == typeof a) { + const t = Number.isInteger(a) ? String.fromCharCode(a) : a; + e.mapBfRange(r, n, t); + } else { + if (!(0, i.isCmd)(a, '[')) break; + { + a = t.getObj(); + const s = []; + for (; !(0, i.isCmd)(a, ']') && a !== i.EOF; ) { + s.push(a); + a = t.getObj(); + } + e.mapBfRangeToArray(r, n, s); + } + } + } + throw new r.FormatError('Invalid bf range.'); + } + function parseCidChar(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endcidchar')) return; + expectString(a); + const r = strToInt(a); + a = t.getObj(); + expectInt(a); + const n = a; + e.mapOne(r, n); + } + } + function parseCidRange(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endcidrange')) return; + expectString(a); + const r = strToInt(a); + a = t.getObj(); + expectString(a); + const n = strToInt(a); + a = t.getObj(); + expectInt(a); + const s = a; + e.mapCidRange(r, n, s); + } + } + function parseCodespaceRange(e, t) { + for (;;) { + let a = t.getObj(); + if (a === i.EOF) break; + if ((0, i.isCmd)(a, 'endcodespacerange')) return; + if ('string' != typeof a) break; + const r = strToInt(a); + a = t.getObj(); + if ('string' != typeof a) break; + const n = strToInt(a); + e.addCodespaceRange(a.length, r, n); + } + throw new r.FormatError('Invalid codespace range.'); + } + function parseWMode(e, t) { + const a = t.getObj(); + Number.isInteger(a) && (e.vertical = !!a); + } + function parseCMapName(e, t) { + const a = t.getObj(); + a instanceof i.Name && (e.name = a.name); + } + async function parseCMap(e, t, a, n) { + let s, o; + e: for (;;) + try { + const a = t.getObj(); + if (a === i.EOF) break; + if (a instanceof i.Name) { + 'WMode' === a.name + ? parseWMode(e, t) + : 'CMapName' === a.name && parseCMapName(e, t); + s = a; + } else if (a instanceof i.Cmd) + switch (a.cmd) { + case 'endcmap': + break e; + case 'usecmap': + s instanceof i.Name && (o = s.name); + break; + case 'begincodespacerange': + parseCodespaceRange(e, t); + break; + case 'beginbfchar': + parseBfChar(e, t); + break; + case 'begincidchar': + parseCidChar(e, t); + break; + case 'beginbfrange': + parseBfRange(e, t); + break; + case 'begincidrange': + parseCidRange(e, t); + } + } catch (e) { + if (e instanceof c.MissingDataException) throw e; + (0, r.warn)('Invalid cMap data: ' + e); + continue; + } + !n && o && (n = o); + return n ? extendCMap(e, a, n) : e; + } + async function extendCMap(e, t, a) { + e.useCMap = await createBuiltInCMap(a, t); + if (0 === e.numCodespaceRanges) { + const t = e.useCMap.codespaceRanges; + for (let a = 0; a < t.length; a++) e.codespaceRanges[a] = t[a].slice(); + e.numCodespaceRanges = e.useCMap.numCodespaceRanges; + } + e.useCMap.forEach(function (t, a) { + e.contains(t) || e.mapOne(t, e.useCMap.lookup(t)); + }); + return e; + } + async function createBuiltInCMap(e, t) { + if ('Identity-H' === e) return new IdentityCMap(!1, 2); + if ('Identity-V' === e) return new IdentityCMap(!0, 2); + if (!h.includes(e)) throw new Error('Unknown CMap name: ' + e); + if (!t) throw new Error('Built-in CMap parameters are not provided.'); + const { cMapData: a, compressionType: i } = await t(e), + n = new CMap(!0); + if (i === r.CMapCompressionType.BINARY) + return new s.BinaryCMapReader().process(a, n, (e) => extendCMap(n, t, e)); + if (i === r.CMapCompressionType.NONE) { + const e = new o.Lexer(new l.Stream(a)); + return parseCMap(n, e, t, null); + } + throw new Error(`Invalid CMap "compressionType" value: ${i}`); + } + t.CMapFactory = class CMapFactory { + static async create({ encoding: e, fetchBuiltInCMap: t, useCMap: a }) { + if (e instanceof i.Name) return createBuiltInCMap(e.name, t); + if (e instanceof n.BaseStream) { + const r = await parseCMap(new CMap(), new o.Lexer(e), t, a); + return r.isIdentityCMap ? createBuiltInCMap(r.name, t) : r; + } + throw new Error('Encoding required.'); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.BinaryCMapReader = void 0; + var r = a(2); + function hexToInt(e, t) { + let a = 0; + for (let r = 0; r <= t; r++) a = (a << 8) | e[r]; + return a >>> 0; + } + function hexToStr(e, t) { + return 1 === t + ? String.fromCharCode(e[0], e[1]) + : 3 === t + ? String.fromCharCode(e[0], e[1], e[2], e[3]) + : String.fromCharCode(...e.subarray(0, t + 1)); + } + function addHex(e, t, a) { + let r = 0; + for (let i = a; i >= 0; i--) { + r += e[i] + t[i]; + e[i] = 255 & r; + r >>= 8; + } + } + function incHex(e, t) { + let a = 1; + for (let r = t; r >= 0 && a > 0; r--) { + a += e[r]; + e[r] = 255 & a; + a >>= 8; + } + } + const i = 16; + class BinaryCMapStream { + constructor(e) { + this.buffer = e; + this.pos = 0; + this.end = e.length; + this.tmpBuf = new Uint8Array(19); + } + readByte() { + return this.pos >= this.end ? -1 : this.buffer[this.pos++]; + } + readNumber() { + let e, + t = 0; + do { + const a = this.readByte(); + if (a < 0) throw new r.FormatError('unexpected EOF in bcmap'); + e = !(128 & a); + t = (t << 7) | (127 & a); + } while (!e); + return t; + } + readSigned() { + const e = this.readNumber(); + return 1 & e ? ~(e >>> 1) : e >>> 1; + } + readHex(e, t) { + e.set(this.buffer.subarray(this.pos, this.pos + t + 1)); + this.pos += t + 1; + } + readHexNumber(e, t) { + let a; + const i = this.tmpBuf; + let n = 0; + do { + const e = this.readByte(); + if (e < 0) throw new r.FormatError('unexpected EOF in bcmap'); + a = !(128 & e); + i[n++] = 127 & e; + } while (!a); + let s = t, + o = 0, + c = 0; + for (; s >= 0; ) { + for (; c < 8 && i.length > 0; ) { + o |= i[--n] << c; + c += 7; + } + e[s] = 255 & o; + s--; + o >>= 8; + c -= 8; + } + } + readHexSigned(e, t) { + this.readHexNumber(e, t); + const a = 1 & e[t] ? 255 : 0; + let r = 0; + for (let i = 0; i <= t; i++) { + r = ((1 & r) << 8) | e[i]; + e[i] = (r >> 1) ^ a; + } + } + readString() { + const e = this.readNumber(), + t = new Array(e); + for (let a = 0; a < e; a++) t[a] = this.readNumber(); + return String.fromCharCode(...t); + } + } + t.BinaryCMapReader = class BinaryCMapReader { + async process(e, t, a) { + const r = new BinaryCMapStream(e), + n = r.readByte(); + t.vertical = !!(1 & n); + let s = null; + const o = new Uint8Array(i), + c = new Uint8Array(i), + l = new Uint8Array(i), + h = new Uint8Array(i), + u = new Uint8Array(i); + let d, f; + for (; (f = r.readByte()) >= 0; ) { + const e = f >> 5; + if (7 === e) { + switch (31 & f) { + case 0: + r.readString(); + break; + case 1: + s = r.readString(); + } + continue; + } + const a = !!(16 & f), + n = 15 & f; + if (n + 1 > i) throw new Error('BinaryCMapReader.process: Invalid dataSize.'); + const g = 1, + p = r.readNumber(); + switch (e) { + case 0: + r.readHex(o, n); + r.readHexNumber(c, n); + addHex(c, o, n); + t.addCodespaceRange(n + 1, hexToInt(o, n), hexToInt(c, n)); + for (let e = 1; e < p; e++) { + incHex(c, n); + r.readHexNumber(o, n); + addHex(o, c, n); + r.readHexNumber(c, n); + addHex(c, o, n); + t.addCodespaceRange(n + 1, hexToInt(o, n), hexToInt(c, n)); + } + break; + case 1: + r.readHex(o, n); + r.readHexNumber(c, n); + addHex(c, o, n); + r.readNumber(); + for (let e = 1; e < p; e++) { + incHex(c, n); + r.readHexNumber(o, n); + addHex(o, c, n); + r.readHexNumber(c, n); + addHex(c, o, n); + r.readNumber(); + } + break; + case 2: + r.readHex(l, n); + d = r.readNumber(); + t.mapOne(hexToInt(l, n), d); + for (let e = 1; e < p; e++) { + incHex(l, n); + if (!a) { + r.readHexNumber(u, n); + addHex(l, u, n); + } + d = r.readSigned() + (d + 1); + t.mapOne(hexToInt(l, n), d); + } + break; + case 3: + r.readHex(o, n); + r.readHexNumber(c, n); + addHex(c, o, n); + d = r.readNumber(); + t.mapCidRange(hexToInt(o, n), hexToInt(c, n), d); + for (let e = 1; e < p; e++) { + incHex(c, n); + if (a) o.set(c); + else { + r.readHexNumber(o, n); + addHex(o, c, n); + } + r.readHexNumber(c, n); + addHex(c, o, n); + d = r.readNumber(); + t.mapCidRange(hexToInt(o, n), hexToInt(c, n), d); + } + break; + case 4: + r.readHex(l, g); + r.readHex(h, n); + t.mapOne(hexToInt(l, g), hexToStr(h, n)); + for (let e = 1; e < p; e++) { + incHex(l, g); + if (!a) { + r.readHexNumber(u, g); + addHex(l, u, g); + } + incHex(h, n); + r.readHexSigned(u, n); + addHex(h, u, n); + t.mapOne(hexToInt(l, g), hexToStr(h, n)); + } + break; + case 5: + r.readHex(o, g); + r.readHexNumber(c, g); + addHex(c, o, g); + r.readHex(h, n); + t.mapBfRange(hexToInt(o, g), hexToInt(c, g), hexToStr(h, n)); + for (let e = 1; e < p; e++) { + incHex(c, g); + if (a) o.set(c); + else { + r.readHexNumber(o, g); + addHex(o, c, g); + } + r.readHexNumber(c, g); + addHex(c, o, g); + r.readHex(h, n); + t.mapBfRange(hexToInt(o, g), hexToInt(c, g), hexToStr(h, n)); + } + break; + default: + throw new Error(`BinaryCMapReader.process - unknown type: ${e}`); + } + } + return s ? a(s) : t; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Parser = t.Linearization = t.Lexer = void 0; + var r = a(2), + i = a(4), + n = a(3), + s = a(17), + o = a(19), + c = a(20), + l = a(22), + h = a(23), + u = a(26), + d = a(29), + f = a(31), + g = a(8), + p = a(32), + m = a(33); + class Parser { + constructor({ lexer: e, xref: t, allowStreams: a = !1, recoveryMode: r = !1 }) { + this.lexer = e; + this.xref = t; + this.allowStreams = a; + this.recoveryMode = r; + this.imageCache = Object.create(null); + this._imageId = 0; + this.refill(); + } + refill() { + this.buf1 = this.lexer.getObj(); + this.buf2 = this.lexer.getObj(); + } + shift() { + if (this.buf2 instanceof i.Cmd && 'ID' === this.buf2.cmd) { + this.buf1 = this.buf2; + this.buf2 = null; + } else { + this.buf1 = this.buf2; + this.buf2 = this.lexer.getObj(); + } + } + tryShift() { + try { + this.shift(); + return !0; + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + return !1; + } + } + getObj(e = null) { + const t = this.buf1; + this.shift(); + if (t instanceof i.Cmd) + switch (t.cmd) { + case 'BI': + return this.makeInlineImage(e); + case '[': + const a = []; + for (; !(0, i.isCmd)(this.buf1, ']') && this.buf1 !== i.EOF; ) + a.push(this.getObj(e)); + if (this.buf1 === i.EOF) { + if (this.recoveryMode) return a; + throw new n.ParserEOFException('End of file inside array.'); + } + this.shift(); + return a; + case '<<': + const s = new i.Dict(this.xref); + for (; !(0, i.isCmd)(this.buf1, '>>') && this.buf1 !== i.EOF; ) { + if (!(this.buf1 instanceof i.Name)) { + (0, r.info)('Malformed dictionary: key must be a name object'); + this.shift(); + continue; + } + const t = this.buf1.name; + this.shift(); + if (this.buf1 === i.EOF) break; + s.set(t, this.getObj(e)); + } + if (this.buf1 === i.EOF) { + if (this.recoveryMode) return s; + throw new n.ParserEOFException('End of file inside dictionary.'); + } + if ((0, i.isCmd)(this.buf2, 'stream')) + return this.allowStreams ? this.makeStream(s, e) : s; + this.shift(); + return s; + default: + return t; + } + if (Number.isInteger(t)) { + if (Number.isInteger(this.buf1) && (0, i.isCmd)(this.buf2, 'R')) { + const e = i.Ref.get(t, this.buf1); + this.shift(); + this.shift(); + return e; + } + return t; + } + return 'string' == typeof t && e ? e.decryptString(t) : t; + } + findDefaultInlineStreamEnd(e) { + const t = this.lexer, + a = e.pos; + let s, + o, + c = 0; + for (; -1 !== (s = e.getByte()); ) + if (0 === c) c = 69 === s ? 1 : 0; + else if (1 === c) c = 73 === s ? 2 : 0; + else if (32 === s || 10 === s || 13 === s) { + o = e.pos; + const a = e.peekBytes(10); + for (let e = 0, t = a.length; e < t; e++) { + s = a[e]; + if ( + (0 !== s || 0 === a[e + 1]) && + 10 !== s && + 13 !== s && + (s < 32 || s > 127) + ) { + c = 0; + break; + } + } + if (2 !== c) continue; + if (t.knownCommands) { + const e = t.peekObj(); + e instanceof i.Cmd && !t.knownCommands[e.cmd] && (c = 0); + } else + (0, r.warn)('findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.'); + if (2 === c) break; + } else c = 0; + if (-1 === s) { + (0, r.warn)( + 'findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker', + ); + if (o) { + (0, r.warn)('... trying to recover by using the last "EI" occurrence.'); + e.skip(-(e.pos - o)); + } + } + let l = 4; + e.skip(-l); + s = e.peekByte(); + e.skip(l); + (0, n.isWhiteSpace)(s) || l--; + return e.pos - l - a; + } + findDCTDecodeInlineStreamEnd(e) { + const t = e.pos; + let a, + i, + n = !1; + for (; -1 !== (a = e.getByte()); ) + if (255 === a) { + switch (e.getByte()) { + case 0: + break; + case 255: + e.skip(-1); + break; + case 217: + n = !0; + 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: + i = e.getUint16(); + i > 2 ? e.skip(i - 2) : e.skip(-2); + } + if (n) break; + } + const s = e.pos - t; + if (-1 === a) { + (0, r.warn)( + 'Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.', + ); + e.skip(-s); + return this.findDefaultInlineStreamEnd(e); + } + this.inlineStreamSkipEI(e); + return s; + } + findASCII85DecodeInlineStreamEnd(e) { + const t = e.pos; + let a; + for (; -1 !== (a = e.getByte()); ) + if (126 === a) { + const t = e.pos; + a = e.peekByte(); + for (; (0, n.isWhiteSpace)(a); ) { + e.skip(); + a = e.peekByte(); + } + if (62 === a) { + e.skip(); + break; + } + if (e.pos > t) { + const t = e.peekBytes(2); + if (69 === t[0] && 73 === t[1]) break; + } + } + const i = e.pos - t; + if (-1 === a) { + (0, r.warn)( + 'Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.', + ); + e.skip(-i); + return this.findDefaultInlineStreamEnd(e); + } + this.inlineStreamSkipEI(e); + return i; + } + findASCIIHexDecodeInlineStreamEnd(e) { + const t = e.pos; + let a; + for (; -1 !== (a = e.getByte()) && 62 !== a; ); + const i = e.pos - t; + if (-1 === a) { + (0, r.warn)( + 'Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.', + ); + e.skip(-i); + return this.findDefaultInlineStreamEnd(e); + } + this.inlineStreamSkipEI(e); + return i; + } + inlineStreamSkipEI(e) { + let t, + a = 0; + for (; -1 !== (t = e.getByte()); ) + if (0 === a) a = 69 === t ? 1 : 0; + else if (1 === a) a = 73 === t ? 2 : 0; + else if (2 === a) break; + } + makeInlineImage(e) { + const t = this.lexer, + a = t.stream, + n = Object.create(null); + let s; + for (; !(0, i.isCmd)(this.buf1, 'ID') && this.buf1 !== i.EOF; ) { + if (!(this.buf1 instanceof i.Name)) + throw new r.FormatError('Dictionary key must be a name object'); + const t = this.buf1.name; + this.shift(); + if (this.buf1 === i.EOF) break; + n[t] = this.getObj(e); + } + -1 !== t.beginInlineImagePos && (s = a.pos - t.beginInlineImagePos); + const o = this.xref.fetchIfRef(n.F || n.Filter); + let c; + if (o instanceof i.Name) c = o.name; + else if (Array.isArray(o)) { + const e = this.xref.fetchIfRef(o[0]); + e instanceof i.Name && (c = e.name); + } + const l = a.pos; + let h, u; + switch (c) { + case 'DCT': + case 'DCTDecode': + h = this.findDCTDecodeInlineStreamEnd(a); + break; + case 'A85': + case 'ASCII85Decode': + h = this.findASCII85DecodeInlineStreamEnd(a); + break; + case 'AHx': + case 'ASCIIHexDecode': + h = this.findASCIIHexDecodeInlineStreamEnd(a); + break; + default: + h = this.findDefaultInlineStreamEnd(a); + } + if (h < 1e3 && s > 0) { + const e = a.pos; + a.pos = t.beginInlineImagePos; + u = (function getInlineImageCacheKey(e) { + const t = [], + a = e.length; + let r = 0; + for (; r < a - 1; ) t.push((e[r++] << 8) | e[r++]); + r < a && t.push(e[r]); + return a + '_' + String.fromCharCode.apply(null, t); + })(a.getBytes(s + h)); + a.pos = e; + const r = this.imageCache[u]; + if (void 0 !== r) { + this.buf2 = i.Cmd.get('EI'); + this.shift(); + r.reset(); + return r; + } + } + const d = new i.Dict(this.xref); + for (const e in n) d.set(e, n[e]); + let f = a.makeSubStream(l, h, d); + e && (f = e.createStream(f, h)); + f = this.filter(f, d, h); + f.dict = d; + if (void 0 !== u) { + f.cacheKey = 'inline_img_' + ++this._imageId; + this.imageCache[u] = f; + } + this.buf2 = i.Cmd.get('EI'); + this.shift(); + return f; + } + _findStreamLength(e, t) { + const { stream: a } = this.lexer; + a.pos = e; + const r = t.length; + for (; a.pos < a.end; ) { + const i = a.peekBytes(2048), + n = i.length - r; + if (n <= 0) break; + let s = 0; + for (; s < n; ) { + let n = 0; + for (; n < r && i[s + n] === t[n]; ) n++; + if (n >= r) { + a.pos += s; + return a.pos - e; + } + s++; + } + a.pos += n; + } + return -1; + } + makeStream(e, t) { + const a = this.lexer; + let s = a.stream; + a.skipToNextLine(); + const o = s.pos - 1; + let c = e.get('Length'); + if (!Number.isInteger(c)) { + (0, r.info)(`Bad length "${c && c.toString()}" in stream.`); + c = 0; + } + s.pos = o + c; + a.nextChar(); + if (this.tryShift() && (0, i.isCmd)(this.buf2, 'endstream')) this.shift(); + else { + const e = new Uint8Array([101, 110, 100, 115, 116, 114, 101, 97, 109]); + let t = this._findStreamLength(o, e); + if (t < 0) { + const a = 1; + for (let i = 1; i <= a; i++) { + const a = e.length - i, + c = e.slice(0, a), + l = this._findStreamLength(o, c); + if (l >= 0) { + const e = s.peekBytes(a + 1)[a]; + if (!(0, n.isWhiteSpace)(e)) break; + (0, r.info)( + `Found "${(0, r.bytesToString)(c)}" when searching for endstream command.`, + ); + t = l; + break; + } + } + if (t < 0) throw new r.FormatError('Missing endstream command.'); + } + c = t; + a.nextChar(); + this.shift(); + this.shift(); + } + this.shift(); + s = s.makeSubStream(o, c, e); + t && (s = t.createStream(s, c)); + s = this.filter(s, e, c); + s.dict = e; + return s; + } + filter(e, t, a) { + let n = t.get('F', 'Filter'), + s = t.get('DP', 'DecodeParms'); + if (n instanceof i.Name) { + Array.isArray(s) && + (0, r.warn)('/DecodeParms should not be an Array, when /Filter is a Name.'); + return this.makeFilter(e, n.name, a, s); + } + let o = a; + if (Array.isArray(n)) { + const t = n, + a = s; + for (let c = 0, l = t.length; c < l; ++c) { + n = this.xref.fetchIfRef(t[c]); + if (!(n instanceof i.Name)) throw new r.FormatError(`Bad filter name "${n}"`); + s = null; + Array.isArray(a) && c in a && (s = this.xref.fetchIfRef(a[c])); + e = this.makeFilter(e, n.name, o, s); + o = null; + } + } + return e; + } + makeFilter(e, t, a, i) { + if (0 === a) { + (0, r.warn)(`Empty "${t}" stream.`); + return new g.NullStream(); + } + try { + switch (t) { + case 'Fl': + case 'FlateDecode': + return i + ? new p.PredictorStream(new l.FlateStream(e, a), a, i) + : new l.FlateStream(e, a); + case 'LZW': + case 'LZWDecode': + let t = 1; + if (i) { + i.has('EarlyChange') && (t = i.get('EarlyChange')); + return new p.PredictorStream(new f.LZWStream(e, a, t), a, i); + } + return new f.LZWStream(e, a, t); + case 'DCT': + case 'DCTDecode': + return new u.JpegStream(e, a, i); + case 'JPX': + case 'JPXDecode': + return new d.JpxStream(e, a, i); + case 'A85': + case 'ASCII85Decode': + return new s.Ascii85Stream(e, a); + case 'AHx': + case 'ASCIIHexDecode': + return new o.AsciiHexStream(e, a); + case 'CCF': + case 'CCITTFaxDecode': + return new c.CCITTFaxStream(e, a, i); + case 'RL': + case 'RunLengthDecode': + return new m.RunLengthStream(e, a); + case 'JBIG2Decode': + return new h.Jbig2Stream(e, a, i); + } + (0, r.warn)(`Filter "${t}" is not supported.`); + return e; + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, r.warn)(`Invalid stream: "${e}"`); + return new g.NullStream(); + } + } + } + t.Parser = Parser; + const b = [ + 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, + ]; + function toHexDigit(e) { + return e >= 48 && e <= 57 + ? 15 & e + : (e >= 65 && e <= 70) || (e >= 97 && e <= 102) + ? 9 + (15 & e) + : -1; + } + class Lexer { + constructor(e, t = null) { + this.stream = e; + this.nextChar(); + this.strBuf = []; + this.knownCommands = t; + this._hexStringNumWarn = 0; + this.beginInlineImagePos = -1; + } + nextChar() { + return (this.currentChar = this.stream.getByte()); + } + peekChar() { + return this.stream.peekByte(); + } + getNumber() { + let e = this.currentChar, + t = !1, + a = 0, + i = 0; + if (45 === e) { + i = -1; + e = this.nextChar(); + 45 === e && (e = this.nextChar()); + } else if (43 === e) { + i = 1; + e = this.nextChar(); + } + if (10 === e || 13 === e) + do { + e = this.nextChar(); + } while (10 === e || 13 === e); + if (46 === e) { + a = 10; + e = this.nextChar(); + } + if (e < 48 || e > 57) { + const t = `Invalid number: ${String.fromCharCode(e)} (charCode ${e})`; + if ((0, n.isWhiteSpace)(e) || -1 === e) { + (0, r.info)(`Lexer.getNumber - "${t}".`); + return 0; + } + throw new r.FormatError(t); + } + i ||= 1; + let s = e - 48, + o = 0, + c = 1; + for (; (e = this.nextChar()) >= 0; ) + if (e >= 48 && e <= 57) { + const r = e - 48; + if (t) o = 10 * o + r; + else { + 0 !== a && (a *= 10); + s = 10 * s + r; + } + } else if (46 === e) { + if (0 !== a) break; + a = 1; + } else if (45 === e) + (0, r.warn)('Badly formatted number: minus sign in the middle'); + else { + if (69 !== e && 101 !== e) break; + e = this.peekChar(); + if (43 === e || 45 === e) { + c = 45 === e ? -1 : 1; + this.nextChar(); + } else if (e < 48 || e > 57) break; + t = !0; + } + 0 !== a && (s /= a); + t && (s *= 10 ** (c * o)); + return i * s; + } + getString() { + let e = 1, + t = !1; + const a = this.strBuf; + a.length = 0; + let i = this.nextChar(); + for (;;) { + let n = !1; + switch (0 | i) { + case -1: + (0, r.warn)('Unterminated string'); + t = !0; + break; + case 40: + ++e; + a.push('('); + break; + case 41: + if (0 == --e) { + this.nextChar(); + t = !0; + } else a.push(')'); + break; + case 92: + i = this.nextChar(); + switch (i) { + case -1: + (0, r.warn)('Unterminated string'); + t = !0; + break; + case 110: + a.push('\n'); + break; + case 114: + a.push('\r'); + break; + case 116: + a.push('\t'); + break; + case 98: + a.push('\b'); + break; + case 102: + a.push('\f'); + break; + case 92: + case 40: + case 41: + a.push(String.fromCharCode(i)); + break; + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + let e = 15 & i; + i = this.nextChar(); + n = !0; + if (i >= 48 && i <= 55) { + e = (e << 3) + (15 & i); + i = this.nextChar(); + if (i >= 48 && i <= 55) { + n = !1; + e = (e << 3) + (15 & i); + } + } + a.push(String.fromCharCode(e)); + break; + case 13: + 10 === this.peekChar() && this.nextChar(); + break; + case 10: + break; + default: + a.push(String.fromCharCode(i)); + } + break; + default: + a.push(String.fromCharCode(i)); + } + if (t) break; + n || (i = this.nextChar()); + } + return a.join(''); + } + getName() { + let e, t; + const a = this.strBuf; + a.length = 0; + for (; (e = this.nextChar()) >= 0 && !b[e]; ) + if (35 === e) { + e = this.nextChar(); + if (b[e]) { + (0, r.warn)( + 'Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.', + ); + a.push('#'); + break; + } + const i = toHexDigit(e); + if (-1 !== i) { + t = e; + e = this.nextChar(); + const n = toHexDigit(e); + if (-1 === n) { + (0, r.warn)( + `Lexer_getName: Illegal digit (${String.fromCharCode( + e, + )}) in hexadecimal number.`, + ); + a.push('#', String.fromCharCode(t)); + if (b[e]) break; + a.push(String.fromCharCode(e)); + continue; + } + a.push(String.fromCharCode((i << 4) | n)); + } else a.push('#', String.fromCharCode(e)); + } else a.push(String.fromCharCode(e)); + a.length > 127 && + (0, r.warn)(`Name token is longer than allowed by the spec: ${a.length}`); + return i.Name.get(a.join('')); + } + _hexStringWarn(e) { + 5 != this._hexStringNumWarn++ + ? this._hexStringNumWarn > 5 || + (0, r.warn)(`getHexString - ignoring invalid character: ${e}`) + : (0, r.warn)('getHexString - ignoring additional invalid characters.'); + } + getHexString() { + const e = this.strBuf; + e.length = 0; + let t, + a, + i = this.currentChar, + n = !0; + this._hexStringNumWarn = 0; + for (;;) { + if (i < 0) { + (0, r.warn)('Unterminated hex string'); + break; + } + if (62 === i) { + this.nextChar(); + break; + } + if (1 !== b[i]) { + if (n) { + t = toHexDigit(i); + if (-1 === t) { + this._hexStringWarn(i); + i = this.nextChar(); + continue; + } + } else { + a = toHexDigit(i); + if (-1 === a) { + this._hexStringWarn(i); + i = this.nextChar(); + continue; + } + e.push(String.fromCharCode((t << 4) | a)); + } + n = !n; + i = this.nextChar(); + } else i = this.nextChar(); + } + return e.join(''); + } + getObj() { + let e = !1, + t = this.currentChar; + for (;;) { + if (t < 0) return i.EOF; + if (e) (10 !== t && 13 !== t) || (e = !1); + else if (37 === t) e = !0; + else if (1 !== b[t]) break; + t = this.nextChar(); + } + switch (0 | t) { + 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: + this.nextChar(); + return i.Cmd.get('['); + case 93: + this.nextChar(); + return i.Cmd.get(']'); + case 60: + t = this.nextChar(); + if (60 === t) { + this.nextChar(); + return i.Cmd.get('<<'); + } + return this.getHexString(); + case 62: + t = this.nextChar(); + if (62 === t) { + this.nextChar(); + return i.Cmd.get('>>'); + } + return i.Cmd.get('>'); + case 123: + this.nextChar(); + return i.Cmd.get('{'); + case 125: + this.nextChar(); + return i.Cmd.get('}'); + case 41: + this.nextChar(); + throw new r.FormatError(`Illegal character: ${t}`); + } + let a = String.fromCharCode(t); + if (t < 32 || t > 127) { + const e = this.peekChar(); + if (e >= 32 && e <= 127) { + this.nextChar(); + return i.Cmd.get(a); + } + } + const n = this.knownCommands; + let s = n && void 0 !== n[a]; + for (; (t = this.nextChar()) >= 0 && !b[t]; ) { + const e = a + String.fromCharCode(t); + if (s && void 0 === n[e]) break; + if (128 === a.length) + throw new r.FormatError(`Command token too long: ${a.length}`); + a = e; + s = n && void 0 !== n[a]; + } + if ('true' === a) return !0; + if ('false' === a) return !1; + if ('null' === a) return null; + 'BI' === a && (this.beginInlineImagePos = this.stream.pos); + return i.Cmd.get(a); + } + peekObj() { + const e = this.stream.pos, + t = this.currentChar, + a = this.beginInlineImagePos; + let i; + try { + i = this.getObj(); + } catch (e) { + if (e instanceof n.MissingDataException) throw e; + (0, r.warn)(`peekObj: ${e}`); + } + this.stream.pos = e; + this.currentChar = t; + this.beginInlineImagePos = a; + return i; + } + skipToNextLine() { + let e = this.currentChar; + for (; e >= 0; ) { + if (13 === e) { + e = this.nextChar(); + 10 === e && this.nextChar(); + break; + } + if (10 === e) { + this.nextChar(); + break; + } + e = this.nextChar(); + } + } + } + t.Lexer = Lexer; + t.Linearization = class Linearization { + static create(e) { + function getInt(e, t, a = !1) { + const r = e.get(t); + if (Number.isInteger(r) && (a ? r >= 0 : r > 0)) return r; + throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`); + } + const t = new Parser({ lexer: new Lexer(e), xref: null }), + a = t.getObj(), + r = t.getObj(), + n = t.getObj(), + s = t.getObj(); + let o, c; + if ( + !( + Number.isInteger(a) && + Number.isInteger(r) && + (0, i.isCmd)(n, 'obj') && + s instanceof i.Dict && + 'number' == typeof (o = s.get('Linearized')) && + o > 0 + ) + ) + return null; + if ((c = getInt(s, 'L')) !== e.length) + throw new Error( + 'The "L" parameter in the linearization dictionary does not equal the stream length.', + ); + return { + length: c, + hints: (function getHints(e) { + const t = e.get('H'); + let a; + if (Array.isArray(t) && (2 === (a = t.length) || 4 === a)) { + for (let e = 0; e < a; e++) { + const a = t[e]; + if (!(Number.isInteger(a) && a > 0)) + throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`); + } + return t; + } + throw new Error('Hint array in the linearization dictionary is invalid.'); + })(s), + objectNumberFirst: getInt(s, 'O'), + endFirst: getInt(s, 'E'), + numPages: getInt(s, 'N'), + mainXRefEntriesOffset: getInt(s, 'T'), + pageFirst: s.has('P') ? getInt(s, 'P', !0) : 0, + }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Ascii85Stream = void 0; + var r = a(18), + i = a(3); + class Ascii85Stream extends r.DecodeStream { + constructor(e, t) { + t && (t *= 0.8); + super(t); + this.str = e; + this.dict = e.dict; + this.input = new Uint8Array(5); + } + readBlock() { + const e = this.str; + let t = e.getByte(); + for (; (0, i.isWhiteSpace)(t); ) t = e.getByte(); + if (-1 === t || 126 === t) { + this.eof = !0; + return; + } + const a = this.bufferLength; + let r, n; + if (122 === t) { + r = this.ensureBuffer(a + 4); + for (n = 0; n < 4; ++n) r[a + n] = 0; + this.bufferLength += 4; + } else { + const s = this.input; + s[0] = t; + for (n = 1; n < 5; ++n) { + t = e.getByte(); + for (; (0, i.isWhiteSpace)(t); ) t = e.getByte(); + s[n] = t; + if (-1 === t || 126 === t) break; + } + r = this.ensureBuffer(a + n - 1); + this.bufferLength += n - 1; + if (n < 5) { + for (; n < 5; ++n) s[n] = 117; + this.eof = !0; + } + let o = 0; + for (n = 0; n < 5; ++n) o = 85 * o + (s[n] - 33); + for (n = 3; n >= 0; --n) { + r[a + n] = 255 & o; + o >>= 8; + } + } + } + } + t.Ascii85Stream = Ascii85Stream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.StreamsSequenceStream = t.DecodeStream = void 0; + var r = a(5), + i = a(8); + const n = new Uint8Array(0); + class DecodeStream extends r.BaseStream { + constructor(e) { + super(); + this._rawMinBufferLength = e || 0; + this.pos = 0; + this.bufferLength = 0; + this.eof = !1; + this.buffer = n; + this.minBufferLength = 512; + if (e) for (; this.minBufferLength < e; ) this.minBufferLength *= 2; + } + get isEmpty() { + for (; !this.eof && 0 === this.bufferLength; ) this.readBlock(); + return 0 === this.bufferLength; + } + ensureBuffer(e) { + const t = this.buffer; + if (e <= t.byteLength) return t; + let a = this.minBufferLength; + for (; a < e; ) a *= 2; + const r = new Uint8Array(a); + r.set(t); + return (this.buffer = r); + } + getByte() { + const e = this.pos; + for (; this.bufferLength <= e; ) { + if (this.eof) return -1; + this.readBlock(); + } + return this.buffer[this.pos++]; + } + getBytes(e) { + const t = this.pos; + let a; + if (e) { + this.ensureBuffer(t + e); + a = t + e; + for (; !this.eof && this.bufferLength < a; ) this.readBlock(); + const r = this.bufferLength; + a > r && (a = r); + } else { + for (; !this.eof; ) this.readBlock(); + a = this.bufferLength; + } + this.pos = a; + return this.buffer.subarray(t, a); + } + reset() { + this.pos = 0; + } + makeSubStream(e, t, a = null) { + if (void 0 === t) for (; !this.eof; ) this.readBlock(); + else { + const a = e + t; + for (; this.bufferLength <= a && !this.eof; ) this.readBlock(); + } + return new i.Stream(this.buffer, e, t, a); + } + getBaseStreams() { + return this.str ? this.str.getBaseStreams() : null; + } + } + t.DecodeStream = DecodeStream; + t.StreamsSequenceStream = class StreamsSequenceStream extends DecodeStream { + constructor(e, t = null) { + let a = 0; + for (const t of e) a += t instanceof DecodeStream ? t._rawMinBufferLength : t.length; + super(a); + this.streams = e; + this._onError = t; + } + readBlock() { + const e = this.streams; + if (0 === e.length) { + this.eof = !0; + return; + } + const t = e.shift(); + let a; + try { + a = t.getBytes(); + } catch (e) { + if (this._onError) { + this._onError(e, t.dict && t.dict.objId); + return; + } + throw e; + } + const r = this.bufferLength, + i = r + a.length; + this.ensureBuffer(i).set(a, r); + this.bufferLength = i; + } + getBaseStreams() { + const e = []; + for (const t of this.streams) { + const a = t.getBaseStreams(); + a && e.push(...a); + } + return e.length > 0 ? e : null; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.AsciiHexStream = void 0; + var r = a(18); + class AsciiHexStream extends r.DecodeStream { + constructor(e, t) { + t && (t *= 0.5); + super(t); + this.str = e; + this.dict = e.dict; + this.firstDigit = -1; + } + readBlock() { + const e = this.str.getBytes(8e3); + if (!e.length) { + this.eof = !0; + return; + } + const t = (e.length + 1) >> 1, + a = this.ensureBuffer(this.bufferLength + t); + let r = this.bufferLength, + i = this.firstDigit; + for (const t of e) { + let e; + if (t >= 48 && t <= 57) e = 15 & t; + else { + if (!((t >= 65 && t <= 70) || (t >= 97 && t <= 102))) { + if (62 === t) { + this.eof = !0; + break; + } + continue; + } + e = 9 + (15 & t); + } + if (i < 0) i = e; + else { + a[r++] = (i << 4) | e; + i = -1; + } + } + if (i >= 0 && this.eof) { + a[r++] = i << 4; + i = -1; + } + this.firstDigit = i; + this.bufferLength = r; + } + } + t.AsciiHexStream = AsciiHexStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CCITTFaxStream = void 0; + var r = a(21), + i = a(18), + n = a(4); + class CCITTFaxStream extends i.DecodeStream { + constructor(e, t, a) { + super(t); + this.str = e; + this.dict = e.dict; + a instanceof n.Dict || (a = n.Dict.empty); + const i = { next: () => e.getByte() }; + this.ccittFaxDecoder = new r.CCITTFaxDecoder(i, { + K: a.get('K'), + EndOfLine: a.get('EndOfLine'), + EncodedByteAlign: a.get('EncodedByteAlign'), + Columns: a.get('Columns'), + Rows: a.get('Rows'), + EndOfBlock: a.get('EndOfBlock'), + BlackIs1: a.get('BlackIs1'), + }); + } + readBlock() { + for (; !this.eof; ) { + const e = this.ccittFaxDecoder.readNextChar(); + if (-1 === e) { + this.eof = !0; + return; + } + this.ensureBuffer(this.bufferLength + 1); + this.buffer[this.bufferLength++] = e; + } + } + } + t.CCITTFaxStream = CCITTFaxStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CCITTFaxDecoder = void 0; + var r = a(2); + const i = -1, + n = [ + [-1, -1], + [-1, -1], + [7, 8], + [7, 7], + [6, 6], + [6, 6], + [6, 5], + [6, 5], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [4, 0], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [3, 1], + [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], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 4], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [3, 3], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + [1, 2], + ], + s = [ + [-1, -1], + [12, -2], + [-1, -1], + [-1, -1], + [-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], + ], + o = [ + [-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], + ], + c = [ + [-1, -1], + [-1, -1], + [12, -2], + [12, -2], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-1, -1], + [-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], + ], + l = [ + [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], + ], + h = [ + [-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], + ]; + t.CCITTFaxDecoder = class CCITTFaxDecoder { + constructor(e, t = {}) { + if (!e || 'function' != typeof e.next) + throw new Error('CCITTFaxDecoder - invalid "source" parameter.'); + this.source = e; + this.eof = !1; + this.encoding = t.K || 0; + this.eoline = t.EndOfLine || !1; + this.byteAlign = t.EncodedByteAlign || !1; + this.columns = t.Columns || 1728; + this.rows = t.Rows || 0; + let a, + r = t.EndOfBlock; + null == r && (r = !0); + this.eoblock = r; + this.black = t.BlackIs1 || !1; + 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 = !1; + for (; 0 === (a = this._lookBits(12)); ) this._eatBits(1); + 1 === a && this._eatBits(12); + if (this.encoding > 0) { + this.nextLine2D = !this._lookBits(1); + this._eatBits(1); + } + } + readNextChar() { + if (this.eof) return -1; + const e = this.refLine, + t = this.codingLine, + a = this.columns; + let n, s, o, c, l; + if (0 === this.outputBits) { + this.rowsDone && (this.eof = !0); + if (this.eof) return -1; + this.err = !1; + let o, l, h; + if (this.nextLine2D) { + for (c = 0; t[c] < a; ++c) e[c] = t[c]; + e[c++] = a; + e[c] = a; + t[0] = 0; + this.codingPos = 0; + n = 0; + s = 0; + for (; t[this.codingPos] < a; ) { + o = this._getTwoDimCode(); + switch (o) { + case 0: + this._addPixels(e[n + 1], s); + e[n + 1] < a && (n += 2); + break; + case 1: + o = l = 0; + if (s) { + do { + o += h = this._getBlackCode(); + } while (h >= 64); + do { + l += h = this._getWhiteCode(); + } while (h >= 64); + } else { + do { + o += h = this._getWhiteCode(); + } while (h >= 64); + do { + l += h = this._getBlackCode(); + } while (h >= 64); + } + this._addPixels(t[this.codingPos] + o, s); + t[this.codingPos] < a && this._addPixels(t[this.codingPos] + l, 1 ^ s); + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + break; + case 7: + this._addPixels(e[n] + 3, s); + s ^= 1; + if (t[this.codingPos] < a) { + ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 5: + this._addPixels(e[n] + 2, s); + s ^= 1; + if (t[this.codingPos] < a) { + ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 3: + this._addPixels(e[n] + 1, s); + s ^= 1; + if (t[this.codingPos] < a) { + ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 2: + this._addPixels(e[n], s); + s ^= 1; + if (t[this.codingPos] < a) { + ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 8: + this._addPixelsNeg(e[n] - 3, s); + s ^= 1; + if (t[this.codingPos] < a) { + n > 0 ? --n : ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 6: + this._addPixelsNeg(e[n] - 2, s); + s ^= 1; + if (t[this.codingPos] < a) { + n > 0 ? --n : ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case 4: + this._addPixelsNeg(e[n] - 1, s); + s ^= 1; + if (t[this.codingPos] < a) { + n > 0 ? --n : ++n; + for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2; + } + break; + case i: + this._addPixels(a, 0); + this.eof = !0; + break; + default: + (0, r.info)('bad 2d code'); + this._addPixels(a, 0); + this.err = !0; + } + } + } else { + t[0] = 0; + this.codingPos = 0; + s = 0; + for (; t[this.codingPos] < a; ) { + o = 0; + if (s) + do { + o += h = this._getBlackCode(); + } while (h >= 64); + else + do { + o += h = this._getWhiteCode(); + } while (h >= 64); + this._addPixels(t[this.codingPos] + o, s); + s ^= 1; + } + } + let u = !1; + this.byteAlign && (this.inputBits &= -8); + if (this.eoblock || this.row !== this.rows - 1) { + o = this._lookBits(12); + if (this.eoline) + for (; o !== i && 1 !== o; ) { + this._eatBits(1); + o = this._lookBits(12); + } + else + for (; 0 === o; ) { + this._eatBits(1); + o = this._lookBits(12); + } + if (1 === o) { + this._eatBits(12); + u = !0; + } else o === i && (this.eof = !0); + } else this.rowsDone = !0; + if (!this.eof && this.encoding > 0 && !this.rowsDone) { + this.nextLine2D = !this._lookBits(1); + this._eatBits(1); + } + if (this.eoblock && u && this.byteAlign) { + o = this._lookBits(12); + if (1 === o) { + this._eatBits(12); + if (this.encoding > 0) { + this._lookBits(1); + this._eatBits(1); + } + if (this.encoding >= 0) + for (c = 0; c < 4; ++c) { + o = this._lookBits(12); + 1 !== o && (0, r.info)('bad rtc code: ' + o); + this._eatBits(12); + if (this.encoding > 0) { + this._lookBits(1); + this._eatBits(1); + } + } + this.eof = !0; + } + } else if (this.err && this.eoline) { + for (;;) { + o = this._lookBits(13); + if (o === i) { + this.eof = !0; + return -1; + } + if (o >> 1 == 1) break; + this._eatBits(1); + } + this._eatBits(12); + if (this.encoding > 0) { + this._eatBits(1); + this.nextLine2D = !(1 & o); + } + } + t[0] > 0 + ? (this.outputBits = t[(this.codingPos = 0)]) + : (this.outputBits = t[(this.codingPos = 1)]); + this.row++; + } + if (this.outputBits >= 8) { + l = 1 & this.codingPos ? 0 : 255; + this.outputBits -= 8; + if (0 === this.outputBits && t[this.codingPos] < a) { + this.codingPos++; + this.outputBits = t[this.codingPos] - t[this.codingPos - 1]; + } + } else { + o = 8; + l = 0; + do { + if ('number' != typeof this.outputBits) + throw new r.FormatError( + 'Invalid /CCITTFaxDecode data, "outputBits" must be a number.', + ); + if (this.outputBits > o) { + l <<= o; + 1 & this.codingPos || (l |= 255 >> (8 - o)); + this.outputBits -= o; + o = 0; + } else { + l <<= this.outputBits; + 1 & this.codingPos || (l |= 255 >> (8 - this.outputBits)); + o -= this.outputBits; + this.outputBits = 0; + if (t[this.codingPos] < a) { + this.codingPos++; + this.outputBits = t[this.codingPos] - t[this.codingPos - 1]; + } else if (o > 0) { + l <<= o; + o = 0; + } + } + } while (o); + } + this.black && (l ^= 255); + return l; + } + _addPixels(e, t) { + const a = this.codingLine; + let i = this.codingPos; + if (e > a[i]) { + if (e > this.columns) { + (0, r.info)('row is wrong length'); + this.err = !0; + e = this.columns; + } + (1 & i) ^ t && ++i; + a[i] = e; + } + this.codingPos = i; + } + _addPixelsNeg(e, t) { + const a = this.codingLine; + let i = this.codingPos; + if (e > a[i]) { + if (e > this.columns) { + (0, r.info)('row is wrong length'); + this.err = !0; + e = this.columns; + } + (1 & i) ^ t && ++i; + a[i] = e; + } else if (e < a[i]) { + if (e < 0) { + (0, r.info)('invalid code'); + this.err = !0; + e = 0; + } + for (; i > 0 && e < a[i - 1]; ) --i; + a[i] = e; + } + this.codingPos = i; + } + _findTableCode(e, t, a, r) { + const n = r || 0; + for (let r = e; r <= t; ++r) { + let e = this._lookBits(r); + if (e === i) return [!0, 1, !1]; + r < t && (e <<= t - r); + if (!n || e >= n) { + const t = a[e - n]; + if (t[0] === r) { + this._eatBits(r); + return [!0, t[1], !0]; + } + } + } + return [!1, 0, !1]; + } + _getTwoDimCode() { + let e, + t = 0; + if (this.eoblock) { + t = this._lookBits(7); + e = n[t]; + if (e && e[0] > 0) { + this._eatBits(e[0]); + return e[1]; + } + } else { + const e = this._findTableCode(1, 7, n); + if (e[0] && e[2]) return e[1]; + } + (0, r.info)('Bad two dim code'); + return i; + } + _getWhiteCode() { + let e, + t = 0; + if (this.eoblock) { + t = this._lookBits(12); + if (t === i) return 1; + e = t >> 5 == 0 ? s[t] : o[t >> 3]; + if (e[0] > 0) { + this._eatBits(e[0]); + return e[1]; + } + } else { + let e = this._findTableCode(1, 9, o); + if (e[0]) return e[1]; + e = this._findTableCode(11, 12, s); + if (e[0]) return e[1]; + } + (0, r.info)('bad white code'); + this._eatBits(1); + return 1; + } + _getBlackCode() { + let e, t; + if (this.eoblock) { + e = this._lookBits(13); + if (e === i) return 1; + t = e >> 7 == 0 ? c[e] : e >> 9 == 0 && e >> 7 != 0 ? l[(e >> 1) - 64] : h[e >> 7]; + if (t[0] > 0) { + this._eatBits(t[0]); + return t[1]; + } + } else { + let e = this._findTableCode(2, 6, h); + if (e[0]) return e[1]; + e = this._findTableCode(7, 12, l, 64); + if (e[0]) return e[1]; + e = this._findTableCode(10, 13, c); + if (e[0]) return e[1]; + } + (0, r.info)('bad black code'); + this._eatBits(1); + return 1; + } + _lookBits(e) { + let t; + for (; this.inputBits < e; ) { + if (-1 === (t = this.source.next())) + return 0 === this.inputBits + ? i + : (this.inputBuf << (e - this.inputBits)) & (65535 >> (16 - e)); + this.inputBuf = (this.inputBuf << 8) | t; + this.inputBits += 8; + } + return (this.inputBuf >> (this.inputBits - e)) & (65535 >> (16 - e)); + } + _eatBits(e) { + (this.inputBits -= e) < 0 && (this.inputBits = 0); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FlateStream = void 0; + var r = a(18), + i = a(2); + const n = new Int32Array([ + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15, + ]), + s = 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, + ]), + o = 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, + ]), + c = [ + 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, + ], + l = [ + 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, + ]; + class FlateStream extends r.DecodeStream { + constructor(e, t) { + super(t); + this.str = e; + this.dict = e.dict; + const a = e.getByte(), + r = e.getByte(); + if (-1 === a || -1 === r) + throw new i.FormatError(`Invalid header in flate stream: ${a}, ${r}`); + if (8 != (15 & a)) + throw new i.FormatError(`Unknown compression method in flate stream: ${a}, ${r}`); + if (((a << 8) + r) % 31 != 0) + throw new i.FormatError(`Bad FCHECK in flate stream: ${a}, ${r}`); + if (32 & r) throw new i.FormatError(`FDICT bit set in flate stream: ${a}, ${r}`); + this.codeSize = 0; + this.codeBuf = 0; + } + getBits(e) { + const t = this.str; + let a, + r = this.codeSize, + n = this.codeBuf; + for (; r < e; ) { + if (-1 === (a = t.getByte())) + throw new i.FormatError('Bad encoding in flate stream'); + n |= a << r; + r += 8; + } + a = n & ((1 << e) - 1); + this.codeBuf = n >> e; + this.codeSize = r -= e; + return a; + } + getCode(e) { + const t = this.str, + a = e[0], + r = e[1]; + let n, + s = this.codeSize, + o = this.codeBuf; + for (; s < r && -1 !== (n = t.getByte()); ) { + o |= n << s; + s += 8; + } + const c = a[o & ((1 << r) - 1)], + l = c >> 16, + h = 65535 & c; + if (l < 1 || s < l) throw new i.FormatError('Bad encoding in flate stream'); + this.codeBuf = o >> l; + this.codeSize = s - l; + return h; + } + generateHuffmanTable(e) { + const t = e.length; + let a, + r = 0; + for (a = 0; a < t; ++a) e[a] > r && (r = e[a]); + const i = 1 << r, + n = new Int32Array(i); + for (let s = 1, o = 0, c = 2; s <= r; ++s, o <<= 1, c <<= 1) + for (let r = 0; r < t; ++r) + if (e[r] === s) { + let e = 0, + t = o; + for (a = 0; a < s; ++a) { + e = (e << 1) | (1 & t); + t >>= 1; + } + for (a = e; a < i; a += c) n[a] = (s << 16) | r; + ++o; + } + return [n, r]; + } + readBlock() { + let e, t; + const a = this.str; + let r, + h, + u = this.getBits(3); + 1 & u && (this.eof = !0); + u >>= 1; + if (0 === u) { + let t; + if (-1 === (t = a.getByte())) + throw new i.FormatError('Bad block header in flate stream'); + let r = t; + if (-1 === (t = a.getByte())) + throw new i.FormatError('Bad block header in flate stream'); + r |= t << 8; + if (-1 === (t = a.getByte())) + throw new i.FormatError('Bad block header in flate stream'); + let n = t; + if (-1 === (t = a.getByte())) + throw new i.FormatError('Bad block header in flate stream'); + n |= t << 8; + if (n !== (65535 & ~r) && (0 !== r || 0 !== n)) + throw new i.FormatError('Bad uncompressed block length in flate stream'); + this.codeBuf = 0; + this.codeSize = 0; + const s = this.bufferLength, + o = s + r; + e = this.ensureBuffer(o); + this.bufferLength = o; + if (0 === r) -1 === a.peekByte() && (this.eof = !0); + else { + const t = a.getBytes(r); + e.set(t, s); + t.length < r && (this.eof = !0); + } + return; + } + if (1 === u) { + r = c; + h = l; + } else { + if (2 !== u) throw new i.FormatError('Unknown block type in flate stream'); + { + const e = this.getBits(5) + 257, + a = this.getBits(5) + 1, + i = this.getBits(4) + 4, + s = new Uint8Array(n.length); + let o; + for (o = 0; o < i; ++o) s[n[o]] = this.getBits(3); + const c = this.generateHuffmanTable(s); + t = 0; + o = 0; + const l = e + a, + u = new Uint8Array(l); + let d, f, g; + for (; o < l; ) { + const e = this.getCode(c); + if (16 === e) { + d = 2; + f = 3; + g = t; + } else if (17 === e) { + d = 3; + f = 3; + g = t = 0; + } else { + if (18 !== e) { + u[o++] = t = e; + continue; + } + d = 7; + f = 11; + g = t = 0; + } + let a = this.getBits(d) + f; + for (; a-- > 0; ) u[o++] = g; + } + r = this.generateHuffmanTable(u.subarray(0, e)); + h = this.generateHuffmanTable(u.subarray(e, l)); + } + } + e = this.buffer; + let d = e ? e.length : 0, + f = this.bufferLength; + for (;;) { + let a = this.getCode(r); + if (a < 256) { + if (f + 1 >= d) { + e = this.ensureBuffer(f + 1); + d = e.length; + } + e[f++] = a; + continue; + } + if (256 === a) { + this.bufferLength = f; + return; + } + a -= 257; + a = s[a]; + let i = a >> 16; + i > 0 && (i = this.getBits(i)); + t = (65535 & a) + i; + a = this.getCode(h); + a = o[a]; + i = a >> 16; + i > 0 && (i = this.getBits(i)); + const n = (65535 & a) + i; + if (f + t >= d) { + e = this.ensureBuffer(f + t); + d = e.length; + } + for (let a = 0; a < t; ++a, ++f) e[f] = e[f - n]; + } + } + } + t.FlateStream = FlateStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Jbig2Stream = void 0; + var r = a(5), + i = a(18), + n = a(4), + s = a(24), + o = a(2); + class Jbig2Stream extends i.DecodeStream { + constructor(e, t, a) { + super(t); + this.stream = e; + this.dict = e.dict; + this.maybeLength = t; + this.params = a; + } + get bytes() { + return (0, o.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(e) {} + readBlock() { + if (this.eof) return; + const e = new s.Jbig2Image(), + t = []; + if (this.params instanceof n.Dict) { + const e = this.params.get('JBIG2Globals'); + if (e instanceof r.BaseStream) { + const a = e.getBytes(); + t.push({ data: a, start: 0, end: a.length }); + } + } + t.push({ data: this.bytes, start: 0, end: this.bytes.length }); + const a = e.parseChunks(t), + i = a.length; + for (let e = 0; e < i; e++) a[e] ^= 255; + this.buffer = a; + this.bufferLength = i; + this.eof = !0; + } + } + t.Jbig2Stream = Jbig2Stream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Jbig2Image = void 0; + var r = a(2), + i = a(3), + n = a(25), + s = a(21); + class Jbig2Error extends r.BaseException { + constructor(e) { + super(`JBIG2 error: ${e}`, 'Jbig2Error'); + } + } + class ContextCache { + getContexts(e) { + return e in this ? this[e] : (this[e] = new Int8Array(65536)); + } + } + class DecodingContext { + constructor(e, t, a) { + this.data = e; + this.start = t; + this.end = a; + } + get decoder() { + const e = new n.ArithmeticDecoder(this.data, this.start, this.end); + return (0, r.shadow)(this, 'decoder', e); + } + get contextCache() { + const e = new ContextCache(); + return (0, r.shadow)(this, 'contextCache', e); + } + } + const o = 2 ** 31 - 1, + c = -(2 ** 31); + function decodeInteger(e, t, a) { + const r = e.getContexts(t); + let i = 1; + function readBits(e) { + let t = 0; + for (let n = 0; n < e; n++) { + const e = a.readBit(r, i); + i = i < 256 ? (i << 1) | e : (511 & ((i << 1) | e)) | 256; + t = (t << 1) | e; + } + return t >>> 0; + } + const n = readBits(1), + s = readBits(1) + ? readBits(1) + ? readBits(1) + ? readBits(1) + ? readBits(1) + ? readBits(32) + 4436 + : readBits(12) + 340 + : readBits(8) + 84 + : readBits(6) + 20 + : readBits(4) + 4 + : readBits(2); + let l; + 0 === n ? (l = s) : s > 0 && (l = -s); + return l >= c && l <= o ? l : null; + } + function decodeIAID(e, t, a) { + const r = e.getContexts('IAID'); + let i = 1; + for (let e = 0; e < a; e++) { + i = (i << 1) | t.readBit(r, i); + } + return a < 31 ? i & ((1 << a) - 1) : 2147483647 & i; + } + const l = [ + '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', + ], + h = [ + [ + { 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 }, + ], + ], + u = [ + { + 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 }, + ], + }, + ], + d = [39717, 1941, 229, 405], + f = [32, 8]; + function decodeBitmap(e, t, a, r, i, n, s, o) { + if (e) { + return decodeMMRBitmap(new Reader(o.data, o.start, o.end), t, a, !1); + } + if ( + 0 === r && + !n && + !i && + 4 === s.length && + 3 === s[0].x && + -1 === s[0].y && + -3 === s[1].x && + -1 === s[1].y && + 2 === s[2].x && + -2 === s[2].y && + -2 === s[3].x && + -2 === s[3].y + ) + return (function decodeBitmapTemplate0(e, t, a) { + const r = a.decoder, + i = a.contextCache.getContexts('GB'), + n = []; + let s, o, c, l, h, u, d; + for (o = 0; o < t; o++) { + h = n[o] = new Uint8Array(e); + u = o < 1 ? h : n[o - 1]; + d = o < 2 ? h : n[o - 2]; + s = + (d[0] << 13) | + (d[1] << 12) | + (d[2] << 11) | + (u[0] << 7) | + (u[1] << 6) | + (u[2] << 5) | + (u[3] << 4); + for (c = 0; c < e; c++) { + h[c] = l = r.readBit(i, s); + s = + ((31735 & s) << 1) | + (c + 3 < e ? d[c + 3] << 11 : 0) | + (c + 4 < e ? u[c + 4] << 4 : 0) | + l; + } + } + return n; + })(t, a, o); + const c = !!n, + l = h[r].concat(s); + l.sort(function (e, t) { + return e.y - t.y || e.x - t.x; + }); + const u = l.length, + f = new Int8Array(u), + g = new Int8Array(u), + p = []; + let m, + b, + y = 0, + w = 0, + S = 0, + x = 0; + for (b = 0; b < u; b++) { + f[b] = l[b].x; + g[b] = l[b].y; + w = Math.min(w, l[b].x); + S = Math.max(S, l[b].x); + x = Math.min(x, l[b].y); + b < u - 1 && l[b].y === l[b + 1].y && l[b].x === l[b + 1].x - 1 + ? (y |= 1 << (u - 1 - b)) + : p.push(b); + } + const C = p.length, + k = new Int8Array(C), + v = new Int8Array(C), + F = new Uint16Array(C); + for (m = 0; m < C; m++) { + b = p[m]; + k[m] = l[b].x; + v[m] = l[b].y; + F[m] = 1 << (u - 1 - b); + } + const O = -w, + T = -x, + M = t - S, + E = d[r]; + let D = new Uint8Array(t); + const N = [], + R = o.decoder, + L = o.contextCache.getContexts('GB'); + let _, + $, + j, + U, + X, + H = 0, + q = 0; + for (let e = 0; e < a; e++) { + if (i) { + H ^= R.readBit(L, E); + if (H) { + N.push(D); + continue; + } + } + D = new Uint8Array(D); + N.push(D); + for (_ = 0; _ < t; _++) { + if (c && n[e][_]) { + D[_] = 0; + continue; + } + if (_ >= O && _ < M && e >= T) { + q = (q << 1) & y; + for (b = 0; b < C; b++) { + $ = e + v[b]; + j = _ + k[b]; + U = N[$][j]; + if (U) { + U = F[b]; + q |= U; + } + } + } else { + q = 0; + X = u - 1; + for (b = 0; b < u; b++, X--) { + j = _ + f[b]; + if (j >= 0 && j < t) { + $ = e + g[b]; + if ($ >= 0) { + U = N[$][j]; + U && (q |= U << X); + } + } + } + } + const a = R.readBit(L, q); + D[_] = a; + } + } + return N; + } + function decodeRefinement(e, t, a, r, i, n, s, o, c) { + let l = u[a].coding; + 0 === a && (l = l.concat([o[0]])); + const h = l.length, + d = new Int32Array(h), + g = new Int32Array(h); + let p; + for (p = 0; p < h; p++) { + d[p] = l[p].x; + g[p] = l[p].y; + } + let m = u[a].reference; + 0 === a && (m = m.concat([o[1]])); + const b = m.length, + y = new Int32Array(b), + w = new Int32Array(b); + for (p = 0; p < b; p++) { + y[p] = m[p].x; + w[p] = m[p].y; + } + const S = r[0].length, + x = r.length, + C = f[a], + k = [], + v = c.decoder, + F = c.contextCache.getContexts('GR'); + let O = 0; + for (let a = 0; a < t; a++) { + if (s) { + O ^= v.readBit(F, C); + if (O) throw new Jbig2Error('prediction is not supported'); + } + const t = new Uint8Array(e); + k.push(t); + for (let s = 0; s < e; s++) { + let o, + c, + l = 0; + for (p = 0; p < h; p++) { + o = a + g[p]; + c = s + d[p]; + o < 0 || c < 0 || c >= e ? (l <<= 1) : (l = (l << 1) | k[o][c]); + } + for (p = 0; p < b; p++) { + o = a + w[p] - n; + c = s + y[p] - i; + o < 0 || o >= x || c < 0 || c >= S ? (l <<= 1) : (l = (l << 1) | r[o][c]); + } + const u = v.readBit(F, l); + t[s] = u; + } + } + return k; + } + function decodeTextRegion(e, t, a, r, i, n, s, o, c, l, h, u, d, f, g, p, m, b, y) { + if (e && t) throw new Jbig2Error('refinement with Huffman is not supported'); + const w = []; + let S, x; + for (S = 0; S < r; S++) { + x = new Uint8Array(a); + if (i) for (let e = 0; e < a; e++) x[e] = i; + w.push(x); + } + const C = m.decoder, + k = m.contextCache; + let v = e ? -f.tableDeltaT.decode(y) : -decodeInteger(k, 'IADT', C), + F = 0; + S = 0; + for (; S < n; ) { + v += e ? f.tableDeltaT.decode(y) : decodeInteger(k, 'IADT', C); + F += e ? f.tableFirstS.decode(y) : decodeInteger(k, 'IAFS', C); + let r = F; + for (;;) { + let i = 0; + s > 1 && (i = e ? y.readBits(b) : decodeInteger(k, 'IAIT', C)); + const n = s * v + i, + F = e ? f.symbolIDTable.decode(y) : decodeIAID(k, C, c), + O = t && (e ? y.readBit() : decodeInteger(k, 'IARI', C)); + let T = o[F], + M = T[0].length, + E = T.length; + if (O) { + const e = decodeInteger(k, 'IARDW', C), + t = decodeInteger(k, 'IARDH', C); + M += e; + E += t; + T = decodeRefinement( + M, + E, + g, + T, + (e >> 1) + decodeInteger(k, 'IARDX', C), + (t >> 1) + decodeInteger(k, 'IARDY', C), + !1, + p, + m, + ); + } + const D = n - (1 & u ? 0 : E - 1), + N = r - (2 & u ? M - 1 : 0); + let R, L, _; + if (l) { + for (R = 0; R < E; R++) { + x = w[N + R]; + if (!x) continue; + _ = T[R]; + const e = Math.min(a - D, M); + switch (d) { + case 0: + for (L = 0; L < e; L++) x[D + L] |= _[L]; + break; + case 2: + for (L = 0; L < e; L++) x[D + L] ^= _[L]; + break; + default: + throw new Jbig2Error(`operator ${d} is not supported`); + } + } + r += E - 1; + } else { + for (L = 0; L < E; L++) { + x = w[D + L]; + if (x) { + _ = T[L]; + switch (d) { + case 0: + for (R = 0; R < M; R++) x[N + R] |= _[R]; + break; + case 2: + for (R = 0; R < M; R++) x[N + R] ^= _[R]; + break; + default: + throw new Jbig2Error(`operator ${d} is not supported`); + } + } + } + r += M - 1; + } + S++; + const $ = e ? f.tableDeltaS.decode(y) : decodeInteger(k, 'IADS', C); + if (null === $) break; + r += $ + h; + } + } + return w; + } + function readSegmentHeader(e, t) { + const a = {}; + a.number = (0, i.readUint32)(e, t); + const r = e[t + 4], + n = 63 & r; + if (!l[n]) throw new Jbig2Error('invalid segment type: ' + n); + a.type = n; + a.typeName = l[n]; + a.deferredNonRetain = !!(128 & r); + const s = !!(64 & r), + o = e[t + 5]; + let c = (o >> 5) & 7; + const h = [31 & o]; + let u = t + 6; + if (7 === o) { + c = 536870911 & (0, i.readUint32)(e, u - 1); + u += 3; + let t = (c + 7) >> 3; + h[0] = e[u++]; + for (; --t > 0; ) h.push(e[u++]); + } else if (5 === o || 6 === o) throw new Jbig2Error('invalid referred-to flags'); + a.retainBits = h; + let d = 4; + a.number <= 256 ? (d = 1) : a.number <= 65536 && (d = 2); + const f = []; + let p, m; + for (p = 0; p < c; p++) { + let t; + t = 1 === d ? e[u] : 2 === d ? (0, i.readUint16)(e, u) : (0, i.readUint32)(e, u); + f.push(t); + u += d; + } + a.referredTo = f; + if (s) { + a.pageAssociation = (0, i.readUint32)(e, u); + u += 4; + } else a.pageAssociation = e[u++]; + a.length = (0, i.readUint32)(e, u); + u += 4; + if (4294967295 === a.length) { + if (38 !== n) throw new Jbig2Error('invalid unknown segment length'); + { + const t = readRegionSegmentInformation(e, u), + r = !!(1 & e[u + g]), + i = 6, + n = new Uint8Array(i); + if (!r) { + n[0] = 255; + n[1] = 172; + } + n[2] = (t.height >>> 24) & 255; + n[3] = (t.height >> 16) & 255; + n[4] = (t.height >> 8) & 255; + n[5] = 255 & t.height; + for (p = u, m = e.length; p < m; p++) { + let t = 0; + for (; t < i && n[t] === e[p + t]; ) t++; + if (t === i) { + a.length = p + i; + break; + } + } + if (4294967295 === a.length) throw new Jbig2Error('segment end was not found'); + } + } + a.headerEnd = u; + return a; + } + function readSegments(e, t, a, r) { + const i = []; + let n = a; + for (; n < r; ) { + const a = readSegmentHeader(t, n); + n = a.headerEnd; + const r = { header: a, data: t }; + if (!e.randomAccess) { + r.start = n; + n += a.length; + r.end = n; + } + i.push(r); + if (51 === a.type) break; + } + if (e.randomAccess) + for (let e = 0, t = i.length; e < t; e++) { + i[e].start = n; + n += i[e].header.length; + i[e].end = n; + } + return i; + } + function readRegionSegmentInformation(e, t) { + return { + width: (0, i.readUint32)(e, t), + height: (0, i.readUint32)(e, t + 4), + x: (0, i.readUint32)(e, t + 8), + y: (0, i.readUint32)(e, t + 12), + combinationOperator: 7 & e[t + 16], + }; + } + const g = 17; + function processSegment(e, t) { + const a = e.header, + r = e.data, + n = e.end; + let s, + o, + c, + l, + h = e.start; + switch (a.type) { + case 0: + const e = {}, + t = (0, i.readUint16)(r, h); + e.huffman = !!(1 & t); + e.refinement = !!(2 & t); + e.huffmanDHSelector = (t >> 2) & 3; + e.huffmanDWSelector = (t >> 4) & 3; + e.bitmapSizeSelector = (t >> 6) & 1; + e.aggregationInstancesSelector = (t >> 7) & 1; + e.bitmapCodingContextUsed = !!(256 & t); + e.bitmapCodingContextRetained = !!(512 & t); + e.template = (t >> 10) & 3; + e.refinementTemplate = (t >> 12) & 1; + h += 2; + if (!e.huffman) { + l = 0 === e.template ? 4 : 1; + o = []; + for (c = 0; c < l; c++) { + o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) }); + h += 2; + } + e.at = o; + } + if (e.refinement && !e.refinementTemplate) { + o = []; + for (c = 0; c < 2; c++) { + o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) }); + h += 2; + } + e.refinementAt = o; + } + e.numberOfExportedSymbols = (0, i.readUint32)(r, h); + h += 4; + e.numberOfNewSymbols = (0, i.readUint32)(r, h); + h += 4; + s = [e, a.number, a.referredTo, r, h, n]; + break; + case 6: + case 7: + const u = {}; + u.info = readRegionSegmentInformation(r, h); + h += g; + const d = (0, i.readUint16)(r, h); + h += 2; + u.huffman = !!(1 & d); + u.refinement = !!(2 & d); + u.logStripSize = (d >> 2) & 3; + u.stripSize = 1 << u.logStripSize; + u.referenceCorner = (d >> 4) & 3; + u.transposed = !!(64 & d); + u.combinationOperator = (d >> 7) & 3; + u.defaultPixelValue = (d >> 9) & 1; + u.dsOffset = (d << 17) >> 27; + u.refinementTemplate = (d >> 15) & 1; + if (u.huffman) { + const e = (0, i.readUint16)(r, h); + h += 2; + u.huffmanFS = 3 & e; + u.huffmanDS = (e >> 2) & 3; + u.huffmanDT = (e >> 4) & 3; + u.huffmanRefinementDW = (e >> 6) & 3; + u.huffmanRefinementDH = (e >> 8) & 3; + u.huffmanRefinementDX = (e >> 10) & 3; + u.huffmanRefinementDY = (e >> 12) & 3; + u.huffmanRefinementSizeSelector = !!(16384 & e); + } + if (u.refinement && !u.refinementTemplate) { + o = []; + for (c = 0; c < 2; c++) { + o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) }); + h += 2; + } + u.refinementAt = o; + } + u.numberOfSymbolInstances = (0, i.readUint32)(r, h); + h += 4; + s = [u, a.referredTo, r, h, n]; + break; + case 16: + const f = {}, + p = r[h++]; + f.mmr = !!(1 & p); + f.template = (p >> 1) & 3; + f.patternWidth = r[h++]; + f.patternHeight = r[h++]; + f.maxPatternIndex = (0, i.readUint32)(r, h); + h += 4; + s = [f, a.number, r, h, n]; + break; + case 22: + case 23: + const m = {}; + m.info = readRegionSegmentInformation(r, h); + h += g; + const b = r[h++]; + m.mmr = !!(1 & b); + m.template = (b >> 1) & 3; + m.enableSkip = !!(8 & b); + m.combinationOperator = (b >> 4) & 7; + m.defaultPixelValue = (b >> 7) & 1; + m.gridWidth = (0, i.readUint32)(r, h); + h += 4; + m.gridHeight = (0, i.readUint32)(r, h); + h += 4; + m.gridOffsetX = 4294967295 & (0, i.readUint32)(r, h); + h += 4; + m.gridOffsetY = 4294967295 & (0, i.readUint32)(r, h); + h += 4; + m.gridVectorX = (0, i.readUint16)(r, h); + h += 2; + m.gridVectorY = (0, i.readUint16)(r, h); + h += 2; + s = [m, a.referredTo, r, h, n]; + break; + case 38: + case 39: + const y = {}; + y.info = readRegionSegmentInformation(r, h); + h += g; + const w = r[h++]; + y.mmr = !!(1 & w); + y.template = (w >> 1) & 3; + y.prediction = !!(8 & w); + if (!y.mmr) { + l = 0 === y.template ? 4 : 1; + o = []; + for (c = 0; c < l; c++) { + o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) }); + h += 2; + } + y.at = o; + } + s = [y, r, h, n]; + break; + case 48: + const S = { + width: (0, i.readUint32)(r, h), + height: (0, i.readUint32)(r, h + 4), + resolutionX: (0, i.readUint32)(r, h + 8), + resolutionY: (0, i.readUint32)(r, h + 12), + }; + 4294967295 === S.height && delete S.height; + const x = r[h + 16]; + (0, i.readUint16)(r, h + 17); + S.lossless = !!(1 & x); + S.refinement = !!(2 & x); + S.defaultPixelValue = (x >> 2) & 1; + S.combinationOperator = (x >> 3) & 3; + S.requiresBuffer = !!(32 & x); + S.combinationOperatorOverride = !!(64 & x); + s = [S]; + break; + case 49: + case 50: + case 51: + case 62: + break; + case 53: + s = [a.number, r, h, n]; + break; + default: + throw new Jbig2Error(`segment type ${a.typeName}(${a.type}) is not implemented`); + } + const u = 'on' + a.typeName; + u in t && t[u].apply(t, s); + } + function processSegments(e, t) { + for (let a = 0, r = e.length; a < r; a++) processSegment(e[a], t); + } + class SimpleSegmentVisitor { + onPageInformation(e) { + this.currentPageInfo = e; + const t = (e.width + 7) >> 3, + a = new Uint8ClampedArray(t * e.height); + e.defaultPixelValue && a.fill(255); + this.buffer = a; + } + drawBitmap(e, t) { + const a = this.currentPageInfo, + r = e.width, + i = e.height, + n = (a.width + 7) >> 3, + s = a.combinationOperatorOverride ? e.combinationOperator : a.combinationOperator, + o = this.buffer, + c = 128 >> (7 & e.x); + let l, + h, + u, + d, + f = e.y * n + (e.x >> 3); + switch (s) { + case 0: + for (l = 0; l < i; l++) { + u = c; + d = f; + for (h = 0; h < r; h++) { + t[l][h] && (o[d] |= u); + u >>= 1; + if (!u) { + u = 128; + d++; + } + } + f += n; + } + break; + case 2: + for (l = 0; l < i; l++) { + u = c; + d = f; + for (h = 0; h < r; h++) { + t[l][h] && (o[d] ^= u); + u >>= 1; + if (!u) { + u = 128; + d++; + } + } + f += n; + } + break; + default: + throw new Jbig2Error(`operator ${s} is not supported`); + } + } + onImmediateGenericRegion(e, t, a, r) { + const i = e.info, + n = new DecodingContext(t, a, r), + s = decodeBitmap(e.mmr, i.width, i.height, e.template, e.prediction, null, e.at, n); + this.drawBitmap(i, s); + } + onImmediateLosslessGenericRegion() { + this.onImmediateGenericRegion(...arguments); + } + onSymbolDictionary(e, t, a, r, n, s) { + let o, c; + if (e.huffman) { + o = (function getSymbolDictionaryHuffmanTables(e, t, a) { + let r, + i, + n, + s, + o = 0; + switch (e.huffmanDHSelector) { + case 0: + case 1: + r = getStandardTable(e.huffmanDHSelector + 4); + break; + case 3: + r = getCustomHuffmanTable(o, t, a); + o++; + break; + default: + throw new Jbig2Error('invalid Huffman DH selector'); + } + switch (e.huffmanDWSelector) { + case 0: + case 1: + i = getStandardTable(e.huffmanDWSelector + 2); + break; + case 3: + i = getCustomHuffmanTable(o, t, a); + o++; + break; + default: + throw new Jbig2Error('invalid Huffman DW selector'); + } + if (e.bitmapSizeSelector) { + n = getCustomHuffmanTable(o, t, a); + o++; + } else n = getStandardTable(1); + s = e.aggregationInstancesSelector + ? getCustomHuffmanTable(o, t, a) + : getStandardTable(1); + return { + tableDeltaHeight: r, + tableDeltaWidth: i, + tableBitmapSize: n, + tableAggregateInstances: s, + }; + })(e, a, this.customTables); + c = new Reader(r, n, s); + } + let l = this.symbols; + l || (this.symbols = l = {}); + const h = []; + for (const e of a) { + const t = l[e]; + t && h.push(...t); + } + const u = new DecodingContext(r, n, s); + l[t] = (function decodeSymbolDictionary(e, t, a, r, n, s, o, c, l, h, u, d) { + if (e && t) throw new Jbig2Error('symbol refinement with Huffman is not supported'); + const f = []; + let g = 0, + p = (0, i.log2)(a.length + r); + const m = u.decoder, + b = u.contextCache; + let y, w; + if (e) { + y = getStandardTable(1); + w = []; + p = Math.max(p, 1); + } + for (; f.length < r; ) { + g += e ? s.tableDeltaHeight.decode(d) : decodeInteger(b, 'IADH', m); + let r = 0, + i = 0; + const n = e ? w.length : 0; + for (;;) { + const n = e ? s.tableDeltaWidth.decode(d) : decodeInteger(b, 'IADW', m); + if (null === n) break; + r += n; + i += r; + let y; + if (t) { + const i = decodeInteger(b, 'IAAI', m); + if (i > 1) + y = decodeTextRegion( + e, + t, + r, + g, + 0, + i, + 1, + a.concat(f), + p, + 0, + 0, + 1, + 0, + s, + l, + h, + u, + 0, + d, + ); + else { + const e = decodeIAID(b, m, p), + t = decodeInteger(b, 'IARDX', m), + i = decodeInteger(b, 'IARDY', m); + y = decodeRefinement( + r, + g, + l, + e < a.length ? a[e] : f[e - a.length], + t, + i, + !1, + h, + u, + ); + } + f.push(y); + } else if (e) w.push(r); + else { + y = decodeBitmap(!1, r, g, o, !1, null, c, u); + f.push(y); + } + } + if (e && !t) { + const e = s.tableBitmapSize.decode(d); + d.byteAlign(); + let t; + if (0 === e) t = readUncompressedBitmap(d, i, g); + else { + const a = d.end, + r = d.position + e; + d.end = r; + t = decodeMMRBitmap(d, i, g, !1); + d.end = a; + d.position = r; + } + const a = w.length; + if (n === a - 1) f.push(t); + else { + let e, + r, + i, + s, + o, + c = 0; + for (e = n; e < a; e++) { + s = w[e]; + i = c + s; + o = []; + for (r = 0; r < g; r++) o.push(t[r].subarray(c, i)); + f.push(o); + c = i; + } + } + } + } + const S = [], + x = []; + let C, + k, + v = !1; + const F = a.length + r; + for (; x.length < F; ) { + let t = e ? y.decode(d) : decodeInteger(b, 'IAEX', m); + for (; t--; ) x.push(v); + v = !v; + } + for (C = 0, k = a.length; C < k; C++) x[C] && S.push(a[C]); + for (let e = 0; e < r; C++, e++) x[C] && S.push(f[e]); + return S; + })( + e.huffman, + e.refinement, + h, + e.numberOfNewSymbols, + e.numberOfExportedSymbols, + o, + e.template, + e.at, + e.refinementTemplate, + e.refinementAt, + u, + c, + ); + } + onImmediateTextRegion(e, t, a, r, n) { + const s = e.info; + let o, c; + const l = this.symbols, + h = []; + for (const e of t) { + const t = l[e]; + t && h.push(...t); + } + const u = (0, i.log2)(h.length); + if (e.huffman) { + c = new Reader(a, r, n); + o = (function getTextRegionHuffmanTables(e, t, a, r, i) { + const n = []; + for (let e = 0; e <= 34; e++) { + const t = i.readBits(4); + n.push(new HuffmanLine([e, t, 0, 0])); + } + const s = new HuffmanTable(n, !1); + n.length = 0; + for (let e = 0; e < r; ) { + const t = s.decode(i); + if (t >= 32) { + let a, r, s; + switch (t) { + case 32: + if (0 === e) throw new Jbig2Error('no previous value in symbol ID table'); + r = i.readBits(2) + 3; + a = n[e - 1].prefixLength; + break; + case 33: + r = i.readBits(3) + 3; + a = 0; + break; + case 34: + r = i.readBits(7) + 11; + a = 0; + break; + default: + throw new Jbig2Error('invalid code length in symbol ID table'); + } + for (s = 0; s < r; s++) { + n.push(new HuffmanLine([e, a, 0, 0])); + e++; + } + } else { + n.push(new HuffmanLine([e, t, 0, 0])); + e++; + } + } + i.byteAlign(); + const o = new HuffmanTable(n, !1); + let c, + l, + h, + u = 0; + switch (e.huffmanFS) { + case 0: + case 1: + c = getStandardTable(e.huffmanFS + 6); + break; + case 3: + c = getCustomHuffmanTable(u, t, a); + u++; + break; + default: + throw new Jbig2Error('invalid Huffman FS selector'); + } + switch (e.huffmanDS) { + case 0: + case 1: + case 2: + l = getStandardTable(e.huffmanDS + 8); + break; + case 3: + l = getCustomHuffmanTable(u, t, a); + u++; + break; + default: + throw new Jbig2Error('invalid Huffman DS selector'); + } + switch (e.huffmanDT) { + case 0: + case 1: + case 2: + h = getStandardTable(e.huffmanDT + 11); + break; + case 3: + h = getCustomHuffmanTable(u, t, a); + u++; + break; + default: + throw new Jbig2Error('invalid Huffman DT selector'); + } + if (e.refinement) + throw new Jbig2Error('refinement with Huffman is not supported'); + return { symbolIDTable: o, tableFirstS: c, tableDeltaS: l, tableDeltaT: h }; + })(e, t, this.customTables, h.length, c); + } + const d = new DecodingContext(a, r, n), + f = decodeTextRegion( + e.huffman, + e.refinement, + s.width, + s.height, + e.defaultPixelValue, + e.numberOfSymbolInstances, + e.stripSize, + h, + u, + e.transposed, + e.dsOffset, + e.referenceCorner, + e.combinationOperator, + o, + e.refinementTemplate, + e.refinementAt, + d, + e.logStripSize, + c, + ); + this.drawBitmap(s, f); + } + onImmediateLosslessTextRegion() { + this.onImmediateTextRegion(...arguments); + } + onPatternDictionary(e, t, a, r, i) { + let n = this.patterns; + n || (this.patterns = n = {}); + const s = new DecodingContext(a, r, i); + n[t] = (function decodePatternDictionary(e, t, a, r, i, n) { + const s = []; + if (!e) { + s.push({ x: -t, y: 0 }); + 0 === i && s.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 }); + } + const o = decodeBitmap(e, (r + 1) * t, a, i, !1, null, s, n), + c = []; + for (let e = 0; e <= r; e++) { + const r = [], + i = t * e, + n = i + t; + for (let e = 0; e < a; e++) r.push(o[e].subarray(i, n)); + c.push(r); + } + return c; + })(e.mmr, e.patternWidth, e.patternHeight, e.maxPatternIndex, e.template, s); + } + onImmediateHalftoneRegion(e, t, a, r, n) { + const s = this.patterns[t[0]], + o = e.info, + c = new DecodingContext(a, r, n), + l = (function decodeHalftoneRegion(e, t, a, r, n, s, o, c, l, h, u, d, f, g, p) { + if (o) throw new Jbig2Error('skip is not supported'); + if (0 !== c) + throw new Jbig2Error(`operator "${c}" is not supported in halftone region`); + const m = []; + let b, y, w; + for (b = 0; b < n; b++) { + w = new Uint8Array(r); + if (s) for (y = 0; y < r; y++) w[y] = s; + m.push(w); + } + const S = t.length, + x = t[0], + C = x[0].length, + k = x.length, + v = (0, i.log2)(S), + F = []; + if (!e) { + F.push({ x: a <= 1 ? 3 : 2, y: -1 }); + 0 === a && F.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 }); + } + const O = []; + let T, M, E, D, N, R, L, _, $, j, U; + e && (T = new Reader(p.data, p.start, p.end)); + for (b = v - 1; b >= 0; b--) { + M = e + ? decodeMMRBitmap(T, l, h, !0) + : decodeBitmap(!1, l, h, a, !1, null, F, p); + O[b] = M; + } + for (E = 0; E < h; E++) + for (D = 0; D < l; D++) { + N = 0; + R = 0; + for (y = v - 1; y >= 0; y--) { + N ^= O[y][E][D]; + R |= N << y; + } + L = t[R]; + _ = (u + E * g + D * f) >> 8; + $ = (d + E * f - D * g) >> 8; + if (_ >= 0 && _ + C <= r && $ >= 0 && $ + k <= n) + for (b = 0; b < k; b++) { + U = m[$ + b]; + j = L[b]; + for (y = 0; y < C; y++) U[_ + y] |= j[y]; + } + else { + let e, t; + for (b = 0; b < k; b++) { + t = $ + b; + if (!(t < 0 || t >= n)) { + U = m[t]; + j = L[b]; + for (y = 0; y < C; y++) { + e = _ + y; + e >= 0 && e < r && (U[e] |= j[y]); + } + } + } + } + } + return m; + })( + e.mmr, + s, + e.template, + o.width, + o.height, + e.defaultPixelValue, + e.enableSkip, + e.combinationOperator, + e.gridWidth, + e.gridHeight, + e.gridOffsetX, + e.gridOffsetY, + e.gridVectorX, + e.gridVectorY, + c, + ); + this.drawBitmap(o, l); + } + onImmediateLosslessHalftoneRegion() { + this.onImmediateHalftoneRegion(...arguments); + } + onTables(e, t, a, r) { + let n = this.customTables; + n || (this.customTables = n = {}); + n[e] = (function decodeTablesSegment(e, t, a) { + const r = e[t], + n = 4294967295 & (0, i.readUint32)(e, t + 1), + s = 4294967295 & (0, i.readUint32)(e, t + 5), + o = new Reader(e, t + 9, a), + c = 1 + ((r >> 1) & 7), + l = 1 + ((r >> 4) & 7), + h = []; + let u, + d, + f = n; + do { + u = o.readBits(c); + d = o.readBits(l); + h.push(new HuffmanLine([f, u, d, 0])); + f += 1 << d; + } while (f < s); + u = o.readBits(c); + h.push(new HuffmanLine([n - 1, u, 32, 0, 'lower'])); + u = o.readBits(c); + h.push(new HuffmanLine([s, u, 32, 0])); + if (1 & r) { + u = o.readBits(c); + h.push(new HuffmanLine([u, 0])); + } + return new HuffmanTable(h, !1); + })(t, a, r); + } + } + class HuffmanLine { + constructor(e) { + if (2 === e.length) { + this.isOOB = !0; + this.rangeLow = 0; + this.prefixLength = e[0]; + this.rangeLength = 0; + this.prefixCode = e[1]; + this.isLowerRange = !1; + } else { + this.isOOB = !1; + this.rangeLow = e[0]; + this.prefixLength = e[1]; + this.rangeLength = e[2]; + this.prefixCode = e[3]; + this.isLowerRange = 'lower' === e[4]; + } + } + } + class HuffmanTreeNode { + constructor(e) { + this.children = []; + if (e) { + this.isLeaf = !0; + this.rangeLength = e.rangeLength; + this.rangeLow = e.rangeLow; + this.isLowerRange = e.isLowerRange; + this.isOOB = e.isOOB; + } else this.isLeaf = !1; + } + buildTree(e, t) { + const a = (e.prefixCode >> t) & 1; + if (t <= 0) this.children[a] = new HuffmanTreeNode(e); + else { + let r = this.children[a]; + r || (this.children[a] = r = new HuffmanTreeNode(null)); + r.buildTree(e, t - 1); + } + } + decodeNode(e) { + if (this.isLeaf) { + if (this.isOOB) return null; + const t = e.readBits(this.rangeLength); + return this.rangeLow + (this.isLowerRange ? -t : t); + } + const t = this.children[e.readBit()]; + if (!t) throw new Jbig2Error('invalid Huffman data'); + return t.decodeNode(e); + } + } + class HuffmanTable { + constructor(e, t) { + t || this.assignPrefixCodes(e); + this.rootNode = new HuffmanTreeNode(null); + for (let t = 0, a = e.length; t < a; t++) { + const a = e[t]; + a.prefixLength > 0 && this.rootNode.buildTree(a, a.prefixLength - 1); + } + } + decode(e) { + return this.rootNode.decodeNode(e); + } + assignPrefixCodes(e) { + const t = e.length; + let a = 0; + for (let r = 0; r < t; r++) a = Math.max(a, e[r].prefixLength); + const r = new Uint32Array(a + 1); + for (let a = 0; a < t; a++) r[e[a].prefixLength]++; + let i, + n, + s, + o = 1, + c = 0; + r[0] = 0; + for (; o <= a; ) { + c = (c + r[o - 1]) << 1; + i = c; + n = 0; + for (; n < t; ) { + s = e[n]; + if (s.prefixLength === o) { + s.prefixCode = i; + i++; + } + n++; + } + o++; + } + } + } + const p = {}; + function getStandardTable(e) { + let t, + a = p[e]; + if (a) return a; + switch (e) { + case 1: + t = [ + [0, 1, 4, 0], + [16, 2, 8, 2], + [272, 3, 16, 6], + [65808, 3, 32, 7], + ]; + break; + case 2: + t = [ + [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: + t = [ + [-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: + t = [ + [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: + t = [ + [-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: + t = [ + [-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: + t = [ + [-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: + t = [ + [-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: + t = [ + [-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: + t = [ + [-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: + t = [ + [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: + t = [ + [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: + t = [ + [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: + t = [ + [-2, 3, 0, 4], + [-1, 3, 0, 5], + [0, 1, 0, 0], + [1, 3, 0, 6], + [2, 3, 0, 7], + ]; + break; + case 15: + t = [ + [-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 Jbig2Error(`standard table B.${e} does not exist`); + } + for (let e = 0, a = t.length; e < a; e++) t[e] = new HuffmanLine(t[e]); + a = new HuffmanTable(t, !0); + p[e] = a; + return a; + } + class Reader { + constructor(e, t, a) { + this.data = e; + this.start = t; + this.end = a; + this.position = t; + this.shift = -1; + this.currentByte = 0; + } + readBit() { + if (this.shift < 0) { + if (this.position >= this.end) + throw new Jbig2Error('end of data while reading bit'); + this.currentByte = this.data[this.position++]; + this.shift = 7; + } + const e = (this.currentByte >> this.shift) & 1; + this.shift--; + return e; + } + readBits(e) { + let t, + a = 0; + for (t = e - 1; t >= 0; t--) a |= this.readBit() << t; + return a; + } + byteAlign() { + this.shift = -1; + } + next() { + return this.position >= this.end ? -1 : this.data[this.position++]; + } + } + function getCustomHuffmanTable(e, t, a) { + let r = 0; + for (let i = 0, n = t.length; i < n; i++) { + const n = a[t[i]]; + if (n) { + if (e === r) return n; + r++; + } + } + throw new Jbig2Error("can't find custom Huffman table"); + } + function readUncompressedBitmap(e, t, a) { + const r = []; + for (let i = 0; i < a; i++) { + const a = new Uint8Array(t); + r.push(a); + for (let r = 0; r < t; r++) a[r] = e.readBit(); + e.byteAlign(); + } + return r; + } + function decodeMMRBitmap(e, t, a, r) { + const i = { K: -1, Columns: t, Rows: a, BlackIs1: !0, EndOfBlock: r }, + n = new s.CCITTFaxDecoder(e, i), + o = []; + let c, + l = !1; + for (let e = 0; e < a; e++) { + const e = new Uint8Array(t); + o.push(e); + let a = -1; + for (let r = 0; r < t; r++) { + if (a < 0) { + c = n.readNextChar(); + if (-1 === c) { + c = 0; + l = !0; + } + a = 7; + } + e[r] = (c >> a) & 1; + a--; + } + } + if (r && !l) { + const e = 5; + for (let t = 0; t < e && -1 !== n.readNextChar(); t++); + } + return o; + } + t.Jbig2Image = class Jbig2Image { + parseChunks(e) { + return (function parseJbig2Chunks(e) { + const t = new SimpleSegmentVisitor(); + for (let a = 0, r = e.length; a < r; a++) { + const r = e[a]; + processSegments(readSegments({}, r.data, r.start, r.end), t); + } + return t.buffer; + })(e); + } + parse(e) { + throw new Error('Not implemented: Jbig2Image.parse'); + } + }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ArithmeticDecoder = void 0; + const a = [ + { 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 }, + ]; + t.ArithmeticDecoder = class ArithmeticDecoder { + constructor(e, t, a) { + this.data = e; + this.bp = t; + this.dataEnd = a; + this.chigh = e[t]; + 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 t = this.bp; + if (255 === e[t]) + if (e[t + 1] > 143) { + this.clow += 65280; + this.ct = 8; + } else { + t++; + this.clow += e[t] << 9; + this.ct = 7; + this.bp = t; + } + else { + t++; + this.clow += t < this.dataEnd ? e[t] << 8 : 65280; + this.ct = 8; + this.bp = t; + } + if (this.clow > 65535) { + this.chigh += this.clow >> 16; + this.clow &= 65535; + } + } + readBit(e, t) { + let r = e[t] >> 1, + i = 1 & e[t]; + const n = a[r], + s = n.qe; + let o, + c = this.a - s; + if (this.chigh < s) + if (c < s) { + c = s; + o = i; + r = n.nmps; + } else { + c = s; + o = 1 ^ i; + 1 === n.switchFlag && (i = o); + r = n.nlps; + } + else { + this.chigh -= s; + if (0 != (32768 & c)) { + this.a = c; + return i; + } + if (c < s) { + o = 1 ^ i; + 1 === n.switchFlag && (i = o); + r = n.nlps; + } else { + o = i; + r = n.nmps; + } + } + do { + 0 === this.ct && this.byteIn(); + c <<= 1; + this.chigh = ((this.chigh << 1) & 65535) | ((this.clow >> 15) & 1); + this.clow = (this.clow << 1) & 65535; + this.ct--; + } while (0 == (32768 & c)); + this.a = c; + e[t] = (r << 1) | i; + return o; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.JpegStream = void 0; + var r = a(18), + i = a(4), + n = a(27), + s = a(2); + class JpegStream extends r.DecodeStream { + constructor(e, t, a) { + let r; + for (; -1 !== (r = e.getByte()); ) + if (255 === r) { + e.skip(-1); + break; + } + super(t); + this.stream = e; + this.dict = e.dict; + this.maybeLength = t; + this.params = a; + } + get bytes() { + return (0, s.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(e) {} + readBlock() { + if (this.eof) return; + const e = { decodeTransform: void 0, colorTransform: void 0 }, + t = this.dict.getArray('D', 'Decode'); + if ((this.forceRGBA || this.forceRGB) && Array.isArray(t)) { + const a = this.dict.get('BPC', 'BitsPerComponent') || 8, + r = t.length, + i = new Int32Array(r); + let n = !1; + const s = (1 << a) - 1; + for (let e = 0; e < r; e += 2) { + i[e] = (256 * (t[e + 1] - t[e])) | 0; + i[e + 1] = (t[e] * s) | 0; + (256 === i[e] && 0 === i[e + 1]) || (n = !0); + } + n && (e.decodeTransform = i); + } + if (this.params instanceof i.Dict) { + const t = this.params.get('ColorTransform'); + Number.isInteger(t) && (e.colorTransform = t); + } + const a = new n.JpegImage(e); + a.parse(this.bytes); + const r = a.getData({ + width: this.drawWidth, + height: this.drawHeight, + forceRGBA: this.forceRGBA, + forceRGB: this.forceRGB, + isSourcePDF: !0, + }); + this.buffer = r; + this.bufferLength = r.length; + this.eof = !0; + } + } + t.JpegStream = JpegStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.JpegImage = void 0; + var r = a(2), + i = a(28), + n = a(3); + class JpegError extends r.BaseException { + constructor(e) { + super(`JPEG error: ${e}`, 'JpegError'); + } + } + class DNLMarkerError extends r.BaseException { + constructor(e, t) { + super(e, 'DNLMarkerError'); + this.scanLines = t; + } + } + class EOIMarkerError extends r.BaseException { + constructor(e) { + super(e, 'EOIMarkerError'); + } + } + const s = 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, + ]), + o = 4017, + c = 799, + l = 3406, + h = 2276, + u = 1567, + d = 3784, + f = 5793, + g = 2896; + function buildHuffmanTable(e, t) { + let a, + r, + i = 0, + n = 16; + for (; n > 0 && !e[n - 1]; ) n--; + const s = [{ children: [], index: 0 }]; + let o, + c = s[0]; + for (a = 0; a < n; a++) { + for (r = 0; r < e[a]; r++) { + c = s.pop(); + c.children[c.index] = t[i]; + for (; c.index > 0; ) c = s.pop(); + c.index++; + s.push(c); + for (; s.length <= a; ) { + s.push((o = { children: [], index: 0 })); + c.children[c.index] = o.children; + c = o; + } + i++; + } + if (a + 1 < n) { + s.push((o = { children: [], index: 0 })); + c.children[c.index] = o.children; + c = o; + } + } + return s[0].children; + } + function getBlockBufferOffset(e, t, a) { + return 64 * ((e.blocksPerLine + 1) * t + a); + } + function decodeScan(e, t, a, i, o, c, l, h, u, d = !1) { + const f = a.mcusPerLine, + g = a.progressive, + p = t; + let m = 0, + b = 0; + function readBit() { + if (b > 0) { + b--; + return (m >> b) & 1; + } + m = e[t++]; + if (255 === m) { + const r = e[t++]; + if (r) { + if (220 === r && d) { + t += 2; + const r = (0, n.readUint16)(e, t); + t += 2; + if (r > 0 && r !== a.scanLines) + throw new DNLMarkerError( + 'Found DNL marker (0xFFDC) while parsing scan data', + r, + ); + } else if (217 === r) { + if (d) { + const e = x * (8 === a.precision ? 8 : 0); + if (e > 0 && Math.round(a.scanLines / e) >= 5) + throw new DNLMarkerError( + 'Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter', + e, + ); + } + throw new EOIMarkerError('Found EOI marker (0xFFD9) while parsing scan data'); + } + throw new JpegError(`unexpected marker ${((m << 8) | r).toString(16)}`); + } + } + b = 7; + return m >>> 7; + } + function decodeHuffman(e) { + let t = e; + for (;;) { + t = t[readBit()]; + switch (typeof t) { + case 'number': + return t; + case 'object': + continue; + } + throw new JpegError('invalid huffman sequence'); + } + } + function receive(e) { + let t = 0; + for (; e > 0; ) { + t = (t << 1) | readBit(); + e--; + } + return t; + } + function receiveAndExtend(e) { + if (1 === e) return 1 === readBit() ? 1 : -1; + const t = receive(e); + return t >= 1 << (e - 1) ? t : t + (-1 << e) + 1; + } + let y = 0; + let w, + S = 0; + let x = 0; + function decodeMcu(e, t, a, r, i) { + const n = a % f; + x = ((a / f) | 0) * e.v + r; + const s = n * e.h + i; + t(e, getBlockBufferOffset(e, x, s)); + } + function decodeBlock(e, t, a) { + x = (a / e.blocksPerLine) | 0; + const r = a % e.blocksPerLine; + t(e, getBlockBufferOffset(e, x, r)); + } + const C = i.length; + let k, v, F, O, T, M; + M = g + ? 0 === c + ? 0 === h + ? function decodeDCFirst(e, t) { + const a = decodeHuffman(e.huffmanTableDC), + r = 0 === a ? 0 : receiveAndExtend(a) << u; + e.blockData[t] = e.pred += r; + } + : function decodeDCSuccessive(e, t) { + e.blockData[t] |= readBit() << u; + } + : 0 === h + ? function decodeACFirst(e, t) { + if (y > 0) { + y--; + return; + } + let a = c; + const r = l; + for (; a <= r; ) { + const r = decodeHuffman(e.huffmanTableAC), + i = 15 & r, + n = r >> 4; + if (0 === i) { + if (n < 15) { + y = receive(n) + (1 << n) - 1; + break; + } + a += 16; + continue; + } + a += n; + const o = s[a]; + e.blockData[t + o] = receiveAndExtend(i) * (1 << u); + a++; + } + } + : function decodeACSuccessive(e, t) { + let a = c; + const r = l; + let i, + n, + o = 0; + for (; a <= r; ) { + const r = t + s[a], + c = e.blockData[r] < 0 ? -1 : 1; + switch (S) { + case 0: + n = decodeHuffman(e.huffmanTableAC); + i = 15 & n; + o = n >> 4; + if (0 === i) + if (o < 15) { + y = receive(o) + (1 << o); + S = 4; + } else { + o = 16; + S = 1; + } + else { + if (1 !== i) throw new JpegError('invalid ACn encoding'); + w = receiveAndExtend(i); + S = o ? 2 : 3; + } + continue; + case 1: + case 2: + if (e.blockData[r]) e.blockData[r] += c * (readBit() << u); + else { + o--; + 0 === o && (S = 2 === S ? 3 : 0); + } + break; + case 3: + if (e.blockData[r]) e.blockData[r] += c * (readBit() << u); + else { + e.blockData[r] = w << u; + S = 0; + } + break; + case 4: + e.blockData[r] && (e.blockData[r] += c * (readBit() << u)); + } + a++; + } + if (4 === S) { + y--; + 0 === y && (S = 0); + } + } + : function decodeBaseline(e, t) { + const a = decodeHuffman(e.huffmanTableDC), + r = 0 === a ? 0 : receiveAndExtend(a); + e.blockData[t] = e.pred += r; + let i = 1; + for (; i < 64; ) { + const a = decodeHuffman(e.huffmanTableAC), + r = 15 & a, + n = a >> 4; + if (0 === r) { + if (n < 15) break; + i += 16; + continue; + } + i += n; + const o = s[i]; + e.blockData[t + o] = receiveAndExtend(r); + i++; + } + }; + let E, + D, + N, + R, + L = 0; + D = 1 === C ? i[0].blocksPerLine * i[0].blocksPerColumn : f * a.mcusPerColumn; + for (; L <= D; ) { + const a = o ? Math.min(D - L, o) : D; + if (a > 0) { + for (v = 0; v < C; v++) i[v].pred = 0; + y = 0; + if (1 === C) { + k = i[0]; + for (T = 0; T < a; T++) { + decodeBlock(k, M, L); + L++; + } + } else + for (T = 0; T < a; T++) { + for (v = 0; v < C; v++) { + k = i[v]; + N = k.h; + R = k.v; + for (F = 0; F < R; F++) for (O = 0; O < N; O++) decodeMcu(k, M, L, F, O); + } + L++; + } + } + b = 0; + E = findNextFileMarker(e, t); + if (!E) break; + if (E.invalid) { + const e = a > 0 ? 'unexpected' : 'excessive'; + (0, r.warn)(`decodeScan - ${e} MCU data, current marker is: ${E.invalid}`); + t = E.offset; + } + if (!(E.marker >= 65488 && E.marker <= 65495)) break; + t += 2; + } + return t - p; + } + function quantizeAndInverse(e, t, a) { + const r = e.quantizationTable, + i = e.blockData; + let n, s, p, m, b, y, w, S, x, C, k, v, F, O, T, M, E; + if (!r) throw new JpegError('missing required Quantization Table.'); + for (let e = 0; e < 64; e += 8) { + x = i[t + e]; + C = i[t + e + 1]; + k = i[t + e + 2]; + v = i[t + e + 3]; + F = i[t + e + 4]; + O = i[t + e + 5]; + T = i[t + e + 6]; + M = i[t + e + 7]; + x *= r[e]; + if (0 != (C | k | v | F | O | T | M)) { + C *= r[e + 1]; + k *= r[e + 2]; + v *= r[e + 3]; + F *= r[e + 4]; + O *= r[e + 5]; + T *= r[e + 6]; + M *= r[e + 7]; + n = (f * x + 128) >> 8; + s = (f * F + 128) >> 8; + p = k; + m = T; + b = (g * (C - M) + 128) >> 8; + S = (g * (C + M) + 128) >> 8; + y = v << 4; + w = O << 4; + n = (n + s + 1) >> 1; + s = n - s; + E = (p * d + m * u + 128) >> 8; + p = (p * u - m * d + 128) >> 8; + m = E; + b = (b + w + 1) >> 1; + w = b - w; + S = (S + y + 1) >> 1; + y = S - y; + n = (n + m + 1) >> 1; + m = n - m; + s = (s + p + 1) >> 1; + p = s - p; + E = (b * h + S * l + 2048) >> 12; + b = (b * l - S * h + 2048) >> 12; + S = E; + E = (y * c + w * o + 2048) >> 12; + y = (y * o - w * c + 2048) >> 12; + w = E; + a[e] = n + S; + a[e + 7] = n - S; + a[e + 1] = s + w; + a[e + 6] = s - w; + a[e + 2] = p + y; + a[e + 5] = p - y; + a[e + 3] = m + b; + a[e + 4] = m - b; + } else { + E = (f * x + 512) >> 10; + a[e] = E; + a[e + 1] = E; + a[e + 2] = E; + a[e + 3] = E; + a[e + 4] = E; + a[e + 5] = E; + a[e + 6] = E; + a[e + 7] = E; + } + } + for (let e = 0; e < 8; ++e) { + x = a[e]; + C = a[e + 8]; + k = a[e + 16]; + v = a[e + 24]; + F = a[e + 32]; + O = a[e + 40]; + T = a[e + 48]; + M = a[e + 56]; + if (0 != (C | k | v | F | O | T | M)) { + n = (f * x + 2048) >> 12; + s = (f * F + 2048) >> 12; + p = k; + m = T; + b = (g * (C - M) + 2048) >> 12; + S = (g * (C + M) + 2048) >> 12; + y = v; + w = O; + n = 4112 + ((n + s + 1) >> 1); + s = n - s; + E = (p * d + m * u + 2048) >> 12; + p = (p * u - m * d + 2048) >> 12; + m = E; + b = (b + w + 1) >> 1; + w = b - w; + S = (S + y + 1) >> 1; + y = S - y; + n = (n + m + 1) >> 1; + m = n - m; + s = (s + p + 1) >> 1; + p = s - p; + E = (b * h + S * l + 2048) >> 12; + b = (b * l - S * h + 2048) >> 12; + S = E; + E = (y * c + w * o + 2048) >> 12; + y = (y * o - w * c + 2048) >> 12; + w = E; + x = n + S; + M = n - S; + C = s + w; + T = s - w; + k = p + y; + O = p - y; + v = m + b; + F = m - b; + x < 16 ? (x = 0) : x >= 4080 ? (x = 255) : (x >>= 4); + C < 16 ? (C = 0) : C >= 4080 ? (C = 255) : (C >>= 4); + k < 16 ? (k = 0) : k >= 4080 ? (k = 255) : (k >>= 4); + v < 16 ? (v = 0) : v >= 4080 ? (v = 255) : (v >>= 4); + F < 16 ? (F = 0) : F >= 4080 ? (F = 255) : (F >>= 4); + O < 16 ? (O = 0) : O >= 4080 ? (O = 255) : (O >>= 4); + T < 16 ? (T = 0) : T >= 4080 ? (T = 255) : (T >>= 4); + M < 16 ? (M = 0) : M >= 4080 ? (M = 255) : (M >>= 4); + i[t + e] = x; + i[t + e + 8] = C; + i[t + e + 16] = k; + i[t + e + 24] = v; + i[t + e + 32] = F; + i[t + e + 40] = O; + i[t + e + 48] = T; + i[t + e + 56] = M; + } else { + E = (f * x + 8192) >> 14; + E = E < -2040 ? 0 : E >= 2024 ? 255 : (E + 2056) >> 4; + i[t + e] = E; + i[t + e + 8] = E; + i[t + e + 16] = E; + i[t + e + 24] = E; + i[t + e + 32] = E; + i[t + e + 40] = E; + i[t + e + 48] = E; + i[t + e + 56] = E; + } + } + } + function buildComponentData(e, t) { + const a = t.blocksPerLine, + r = t.blocksPerColumn, + i = new Int16Array(64); + for (let e = 0; e < r; e++) + for (let r = 0; r < a; r++) { + quantizeAndInverse(t, getBlockBufferOffset(t, e, r), i); + } + return t.blockData; + } + function findNextFileMarker(e, t, a = t) { + const r = e.length - 1; + let i = a < t ? a : t; + if (t >= r) return null; + const s = (0, n.readUint16)(e, t); + if (s >= 65472 && s <= 65534) return { invalid: null, marker: s, offset: t }; + let o = (0, n.readUint16)(e, i); + for (; !(o >= 65472 && o <= 65534); ) { + if (++i >= r) return null; + o = (0, n.readUint16)(e, i); + } + return { invalid: s.toString(16), marker: o, offset: i }; + } + t.JpegImage = class JpegImage { + constructor({ decodeTransform: e = null, colorTransform: t = -1 } = {}) { + this._decodeTransform = e; + this._colorTransform = t; + } + parse(e, { dnlScanLines: t = null } = {}) { + function readDataBlock() { + const t = (0, n.readUint16)(e, o); + o += 2; + let a = o + t - 2; + const i = findNextFileMarker(e, a, o); + if (i && i.invalid) { + (0, r.warn)('readDataBlock - incorrect length, current marker is: ' + i.invalid); + a = i.offset; + } + const s = e.subarray(o, a); + o += s.length; + return s; + } + function prepareComponents(e) { + const t = Math.ceil(e.samplesPerLine / 8 / e.maxH), + a = Math.ceil(e.scanLines / 8 / e.maxV); + for (const r of e.components) { + const i = Math.ceil((Math.ceil(e.samplesPerLine / 8) * r.h) / e.maxH), + n = Math.ceil((Math.ceil(e.scanLines / 8) * r.v) / e.maxV), + s = t * r.h, + o = 64 * (a * r.v) * (s + 1); + r.blockData = new Int16Array(o); + r.blocksPerLine = i; + r.blocksPerColumn = n; + } + e.mcusPerLine = t; + e.mcusPerColumn = a; + } + let a, + i, + o = 0, + c = null, + l = null, + h = 0; + const u = [], + d = [], + f = []; + let g = (0, n.readUint16)(e, o); + o += 2; + if (65496 !== g) throw new JpegError('SOI not found'); + g = (0, n.readUint16)(e, o); + o += 2; + e: for (; 65497 !== g; ) { + let p, m, b; + switch (g) { + 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 y = readDataBlock(); + 65504 === g && + 74 === y[0] && + 70 === y[1] && + 73 === y[2] && + 70 === y[3] && + 0 === y[4] && + (c = { + version: { major: y[5], minor: y[6] }, + densityUnits: y[7], + xDensity: (y[8] << 8) | y[9], + yDensity: (y[10] << 8) | y[11], + thumbWidth: y[12], + thumbHeight: y[13], + thumbData: y.subarray(14, 14 + 3 * y[12] * y[13]), + }); + 65518 === g && + 65 === y[0] && + 100 === y[1] && + 111 === y[2] && + 98 === y[3] && + 101 === y[4] && + (l = { + version: (y[5] << 8) | y[6], + flags0: (y[7] << 8) | y[8], + flags1: (y[9] << 8) | y[10], + transformCode: y[11], + }); + break; + case 65499: + const w = (0, n.readUint16)(e, o); + o += 2; + const S = w + o - 2; + let x; + for (; o < S; ) { + const t = e[o++], + a = new Uint16Array(64); + if (t >> 4 == 0) + for (m = 0; m < 64; m++) { + x = s[m]; + a[x] = e[o++]; + } + else { + if (t >> 4 != 1) throw new JpegError('DQT - invalid table spec'); + for (m = 0; m < 64; m++) { + x = s[m]; + a[x] = (0, n.readUint16)(e, o); + o += 2; + } + } + u[15 & t] = a; + } + break; + case 65472: + case 65473: + case 65474: + if (a) throw new JpegError('Only single frame JPEGs supported'); + o += 2; + a = {}; + a.extended = 65473 === g; + a.progressive = 65474 === g; + a.precision = e[o++]; + const C = (0, n.readUint16)(e, o); + o += 2; + a.scanLines = t || C; + a.samplesPerLine = (0, n.readUint16)(e, o); + o += 2; + a.components = []; + a.componentIds = {}; + const k = e[o++]; + let v = 0, + F = 0; + for (p = 0; p < k; p++) { + const t = e[o], + r = e[o + 1] >> 4, + i = 15 & e[o + 1]; + v < r && (v = r); + F < i && (F = i); + const n = e[o + 2]; + b = a.components.push({ + h: r, + v: i, + quantizationId: n, + quantizationTable: null, + }); + a.componentIds[t] = b - 1; + o += 3; + } + a.maxH = v; + a.maxV = F; + prepareComponents(a); + break; + case 65476: + const O = (0, n.readUint16)(e, o); + o += 2; + for (p = 2; p < O; ) { + const t = e[o++], + a = new Uint8Array(16); + let r = 0; + for (m = 0; m < 16; m++, o++) r += a[m] = e[o]; + const i = new Uint8Array(r); + for (m = 0; m < r; m++, o++) i[m] = e[o]; + p += 17 + r; + (t >> 4 == 0 ? f : d)[15 & t] = buildHuffmanTable(a, i); + } + break; + case 65501: + o += 2; + i = (0, n.readUint16)(e, o); + o += 2; + break; + case 65498: + const T = 1 == ++h && !t; + o += 2; + const M = e[o++], + E = []; + for (p = 0; p < M; p++) { + const t = e[o++], + r = a.componentIds[t], + i = a.components[r]; + i.index = t; + const n = e[o++]; + i.huffmanTableDC = f[n >> 4]; + i.huffmanTableAC = d[15 & n]; + E.push(i); + } + const D = e[o++], + N = e[o++], + R = e[o++]; + try { + const t = decodeScan(e, o, a, E, i, D, N, R >> 4, 15 & R, T); + o += t; + } catch (t) { + if (t instanceof DNLMarkerError) { + (0, r.warn)(`${t.message} -- attempting to re-parse the JPEG image.`); + return this.parse(e, { dnlScanLines: t.scanLines }); + } + if (t instanceof EOIMarkerError) { + (0, r.warn)(`${t.message} -- ignoring the rest of the image data.`); + break e; + } + throw t; + } + break; + case 65500: + o += 4; + break; + case 65535: + 255 !== e[o] && o--; + break; + default: + const L = findNextFileMarker(e, o - 2, o - 3); + if (L && L.invalid) { + (0, r.warn)( + 'JpegImage.parse - unexpected data, current marker is: ' + L.invalid, + ); + o = L.offset; + break; + } + if (!L || o >= e.length - 1) { + (0, r.warn)( + 'JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).', + ); + break e; + } + throw new JpegError('JpegImage.parse - unknown marker: ' + g.toString(16)); + } + g = (0, n.readUint16)(e, o); + o += 2; + } + this.width = a.samplesPerLine; + this.height = a.scanLines; + this.jfif = c; + this.adobe = l; + this.components = []; + for (const e of a.components) { + const t = u[e.quantizationId]; + t && (e.quantizationTable = t); + this.components.push({ + index: e.index, + output: buildComponentData(0, e), + scaleX: e.h / a.maxH, + scaleY: e.v / a.maxV, + blocksPerLine: e.blocksPerLine, + blocksPerColumn: e.blocksPerColumn, + }); + } + this.numComponents = this.components.length; + } + _getLinearizedBlockData(e, t, a = !1) { + const r = this.width / e, + i = this.height / t; + let n, + s, + o, + c, + l, + h, + u, + d, + f, + g, + p, + m = 0; + const b = this.components.length, + y = e * t * b, + w = new Uint8ClampedArray(y), + S = new Uint32Array(e), + x = 4294967288; + let C; + for (u = 0; u < b; u++) { + n = this.components[u]; + s = n.scaleX * r; + o = n.scaleY * i; + m = u; + p = n.output; + c = (n.blocksPerLine + 1) << 3; + if (s !== C) { + for (l = 0; l < e; l++) { + d = 0 | (l * s); + S[l] = ((d & x) << 3) | (7 & d); + } + C = s; + } + for (h = 0; h < t; h++) { + d = 0 | (h * o); + g = (c * (d & x)) | ((7 & d) << 3); + for (l = 0; l < e; l++) { + w[m] = p[g + S[l]]; + m += b; + } + } + } + let k = this._decodeTransform; + a || + 4 !== b || + k || + (k = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255])); + if (k) + for (u = 0; u < y; ) + for (d = 0, f = 0; d < b; d++, u++, f += 2) + w[u] = ((w[u] * k[f]) >> 8) + k[f + 1]; + return w; + } + get _isColorConversionNeeded() { + return this.adobe + ? !!this.adobe.transformCode + : 3 === this.numComponents + ? 0 !== this._colorTransform && + (82 !== this.components[0].index || + 71 !== this.components[1].index || + 66 !== this.components[2].index) + : 1 === this._colorTransform; + } + _convertYccToRgb(e) { + let t, a, r; + for (let i = 0, n = e.length; i < n; i += 3) { + t = e[i]; + a = e[i + 1]; + r = e[i + 2]; + e[i] = t - 179.456 + 1.402 * r; + e[i + 1] = t + 135.459 - 0.344 * a - 0.714 * r; + e[i + 2] = t - 226.816 + 1.772 * a; + } + return e; + } + _convertYccToRgba(e, t) { + for (let a = 0, r = 0, i = e.length; a < i; a += 3, r += 4) { + const i = e[a], + n = e[a + 1], + s = e[a + 2]; + t[r] = i - 179.456 + 1.402 * s; + t[r + 1] = i + 135.459 - 0.344 * n - 0.714 * s; + t[r + 2] = i - 226.816 + 1.772 * n; + t[r + 3] = 255; + } + return t; + } + _convertYcckToRgb(e) { + let t, + a, + r, + i, + n = 0; + for (let s = 0, o = e.length; s < o; s += 4) { + t = e[s]; + a = e[s + 1]; + r = e[s + 2]; + i = e[s + 3]; + e[n++] = + a * + (-660635669420364e-19 * a + + 0.000437130475926232 * r - + 54080610064599e-18 * t + + 0.00048449797120281 * i - + 0.154362151871126) - + 122.67195406894 + + r * + (-0.000957964378445773 * r + + 0.000817076911346625 * t - + 0.00477271405408747 * i + + 1.53380253221734) + + t * (0.000961250184130688 * t - 0.00266257332283933 * i + 0.48357088451265) + + i * (-0.000336197177618394 * i + 0.484791561490776); + e[n++] = + 107.268039397724 + + a * + (219927104525741e-19 * a - + 0.000640992018297945 * r + + 0.000659397001245577 * t + + 0.000426105652938837 * i - + 0.176491792462875) + + r * + (-0.000778269941513683 * r + + 0.00130872261408275 * t + + 0.000770482631801132 * i - + 0.151051492775562) + + t * (0.00126935368114843 * t - 0.00265090189010898 * i + 0.25802910206845) + + i * (-0.000318913117588328 * i - 0.213742400323665); + e[n++] = + a * + (-0.000570115196973677 * a - + 263409051004589e-19 * r + + 0.0020741088115012 * t - + 0.00288260236853442 * i + + 0.814272968359295) - + 20.810012546947 + + r * + (-153496057440975e-19 * r - + 0.000132689043961446 * t + + 0.000560833691242812 * i - + 0.195152027534049) + + t * (0.00174418132927582 * t - 0.00255243321439347 * i + 0.116935020465145) + + i * (-0.000343531996510555 * i + 0.24165260232407); + } + return e.subarray(0, n); + } + _convertYcckToRgba(e) { + for (let t = 0, a = e.length; t < a; t += 4) { + const a = e[t], + r = e[t + 1], + i = e[t + 2], + n = e[t + 3]; + e[t] = + r * + (-660635669420364e-19 * r + + 0.000437130475926232 * i - + 54080610064599e-18 * a + + 0.00048449797120281 * n - + 0.154362151871126) - + 122.67195406894 + + i * + (-0.000957964378445773 * i + + 0.000817076911346625 * a - + 0.00477271405408747 * n + + 1.53380253221734) + + a * (0.000961250184130688 * a - 0.00266257332283933 * n + 0.48357088451265) + + n * (-0.000336197177618394 * n + 0.484791561490776); + e[t + 1] = + 107.268039397724 + + r * + (219927104525741e-19 * r - + 0.000640992018297945 * i + + 0.000659397001245577 * a + + 0.000426105652938837 * n - + 0.176491792462875) + + i * + (-0.000778269941513683 * i + + 0.00130872261408275 * a + + 0.000770482631801132 * n - + 0.151051492775562) + + a * (0.00126935368114843 * a - 0.00265090189010898 * n + 0.25802910206845) + + n * (-0.000318913117588328 * n - 0.213742400323665); + e[t + 2] = + r * + (-0.000570115196973677 * r - + 263409051004589e-19 * i + + 0.0020741088115012 * a - + 0.00288260236853442 * n + + 0.814272968359295) - + 20.810012546947 + + i * + (-153496057440975e-19 * i - + 0.000132689043961446 * a + + 0.000560833691242812 * n - + 0.195152027534049) + + a * (0.00174418132927582 * a - 0.00255243321439347 * n + 0.116935020465145) + + n * (-0.000343531996510555 * n + 0.24165260232407); + e[t + 3] = 255; + } + return e; + } + _convertYcckToCmyk(e) { + let t, a, r; + for (let i = 0, n = e.length; i < n; i += 4) { + t = e[i]; + a = e[i + 1]; + r = e[i + 2]; + e[i] = 434.456 - t - 1.402 * r; + e[i + 1] = 119.541 - t + 0.344 * a + 0.714 * r; + e[i + 2] = 481.816 - t - 1.772 * a; + } + return e; + } + _convertCmykToRgb(e) { + let t, + a, + r, + i, + n = 0; + for (let s = 0, o = e.length; s < o; s += 4) { + t = e[s]; + a = e[s + 1]; + r = e[s + 2]; + i = e[s + 3]; + e[n++] = + 255 + + t * + (-6747147073602441e-20 * t + + 0.0008379262121013727 * a + + 0.0002894718188643294 * r + + 0.003264231057537806 * i - + 1.1185611867203937) + + a * + (26374107616089405e-21 * a - + 8626949158638572e-20 * r - + 0.0002748769067499491 * i - + 0.02155688794978967) + + r * (-3878099212869363e-20 * r - 0.0003267808279485286 * i + 0.0686742238595345) - + i * (0.0003361971776183937 * i + 0.7430659151342254); + e[n++] = + 255 + + t * + (0.00013596372813588848 * t + + 0.000924537132573585 * a + + 0.00010567359618683593 * r + + 0.0004791864687436512 * i - + 0.3109689587515875) + + a * + (-0.00023545346108370344 * a + + 0.0002702845253534714 * r + + 0.0020200308977307156 * i - + 0.7488052167015494) + + r * + (6834815998235662e-20 * r + 0.00015168452363460973 * i - 0.09751927774728933) - + i * (0.0003189131175883281 * i + 0.7364883807733168); + e[n++] = + 255 + + t * + (13598650411385307e-21 * t + + 0.00012423956175490851 * a + + 0.0004751985097583589 * r - + 36729317476630422e-22 * i - + 0.05562186980264034) + + a * + (0.00016141380598724676 * a + + 0.0009692239130725186 * r + + 0.0007782692450036253 * i - + 0.44015232367526463) + + r * (5.068882914068769e-7 * r + 0.0017778369011375071 * i - 0.7591454649749609) - + i * (0.0003435319965105553 * i + 0.7063770186160144); + } + return e.subarray(0, n); + } + _convertCmykToRgba(e) { + for (let t = 0, a = e.length; t < a; t += 4) { + const a = e[t], + r = e[t + 1], + i = e[t + 2], + n = e[t + 3]; + e[t] = + 255 + + a * + (-6747147073602441e-20 * a + + 0.0008379262121013727 * r + + 0.0002894718188643294 * i + + 0.003264231057537806 * n - + 1.1185611867203937) + + r * + (26374107616089405e-21 * r - + 8626949158638572e-20 * i - + 0.0002748769067499491 * n - + 0.02155688794978967) + + i * (-3878099212869363e-20 * i - 0.0003267808279485286 * n + 0.0686742238595345) - + n * (0.0003361971776183937 * n + 0.7430659151342254); + e[t + 1] = + 255 + + a * + (0.00013596372813588848 * a + + 0.000924537132573585 * r + + 0.00010567359618683593 * i + + 0.0004791864687436512 * n - + 0.3109689587515875) + + r * + (-0.00023545346108370344 * r + + 0.0002702845253534714 * i + + 0.0020200308977307156 * n - + 0.7488052167015494) + + i * + (6834815998235662e-20 * i + 0.00015168452363460973 * n - 0.09751927774728933) - + n * (0.0003189131175883281 * n + 0.7364883807733168); + e[t + 2] = + 255 + + a * + (13598650411385307e-21 * a + + 0.00012423956175490851 * r + + 0.0004751985097583589 * i - + 36729317476630422e-22 * n - + 0.05562186980264034) + + r * + (0.00016141380598724676 * r + + 0.0009692239130725186 * i + + 0.0007782692450036253 * n - + 0.44015232367526463) + + i * (5.068882914068769e-7 * i + 0.0017778369011375071 * n - 0.7591454649749609) - + n * (0.0003435319965105553 * n + 0.7063770186160144); + e[t + 3] = 255; + } + return e; + } + getData({ + width: e, + height: t, + forceRGBA: a = !1, + forceRGB: r = !1, + isSourcePDF: n = !1, + }) { + if (this.numComponents > 4) throw new JpegError('Unsupported color mode'); + const s = this._getLinearizedBlockData(e, t, n); + if (1 === this.numComponents && (a || r)) { + const e = s.length * (a ? 4 : 3), + t = new Uint8ClampedArray(e); + let r = 0; + if (a) (0, i.grayToRGBA)(s, new Uint32Array(t.buffer)); + else + for (const e of s) { + t[r++] = e; + t[r++] = e; + t[r++] = e; + } + return t; + } + if (3 === this.numComponents && this._isColorConversionNeeded) { + if (a) { + const e = new Uint8ClampedArray((s.length / 3) * 4); + return this._convertYccToRgba(s, e); + } + return this._convertYccToRgb(s); + } + if (4 === this.numComponents) { + if (this._isColorConversionNeeded) + return a + ? this._convertYcckToRgba(s) + : r + ? this._convertYcckToRgb(s) + : this._convertYcckToCmyk(s); + if (a) return this._convertCmykToRgba(s); + if (r) return this._convertCmykToRgb(s); + } + return s; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.convertBlackAndWhiteToRGBA = convertBlackAndWhiteToRGBA; + t.convertToRGBA = function convertToRGBA(e) { + switch (e.kind) { + case r.ImageKind.GRAYSCALE_1BPP: + return convertBlackAndWhiteToRGBA(e); + case r.ImageKind.RGB_24BPP: + return (function convertRGBToRGBA({ + src: e, + srcPos: t = 0, + dest: a, + destPos: i = 0, + width: n, + height: s, + }) { + let o = 0; + const c = e.length >> 2, + l = new Uint32Array(e.buffer, t, c); + if (r.FeatureTest.isLittleEndian) { + for (; o < c - 2; o += 3, i += 4) { + const e = l[o], + t = l[o + 1], + r = l[o + 2]; + a[i] = 4278190080 | e; + a[i + 1] = (e >>> 24) | (t << 8) | 4278190080; + a[i + 2] = (t >>> 16) | (r << 16) | 4278190080; + a[i + 3] = (r >>> 8) | 4278190080; + } + for (let t = 4 * o, r = e.length; t < r; t += 3) + a[i++] = e[t] | (e[t + 1] << 8) | (e[t + 2] << 16) | 4278190080; + } else { + for (; o < c - 2; o += 3, i += 4) { + const e = l[o], + t = l[o + 1], + r = l[o + 2]; + a[i] = 255 | e; + a[i + 1] = (e << 24) | (t >>> 8) | 255; + a[i + 2] = (t << 16) | (r >>> 16) | 255; + a[i + 3] = (r << 8) | 255; + } + for (let t = 4 * o, r = e.length; t < r; t += 3) + a[i++] = (e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | 255; + } + return { srcPos: t, destPos: i }; + })(e); + } + return null; + }; + t.grayToRGBA = function grayToRGBA(e, t) { + if (r.FeatureTest.isLittleEndian) + for (let a = 0, r = e.length; a < r; a++) t[a] = (65793 * e[a]) | 4278190080; + else for (let a = 0, r = e.length; a < r; a++) t[a] = (16843008 * e[a]) | 255; + }; + var r = a(2); + function convertBlackAndWhiteToRGBA({ + src: e, + srcPos: t = 0, + dest: a, + width: i, + height: n, + nonBlackColor: s = 4294967295, + inverseDecode: o = !1, + }) { + const c = r.FeatureTest.isLittleEndian ? 4278190080 : 255, + [l, h] = o ? [s, c] : [c, s], + u = i >> 3, + d = 7 & i, + f = e.length; + a = new Uint32Array(a.buffer); + let g = 0; + for (let r = 0; r < n; r++) { + for (const r = t + u; t < r; t++) { + const r = t < f ? e[t] : 255; + a[g++] = 128 & r ? h : l; + a[g++] = 64 & r ? h : l; + a[g++] = 32 & r ? h : l; + a[g++] = 16 & r ? h : l; + a[g++] = 8 & r ? h : l; + a[g++] = 4 & r ? h : l; + a[g++] = 2 & r ? h : l; + a[g++] = 1 & r ? h : l; + } + if (0 === d) continue; + const r = t < f ? e[t++] : 255; + for (let e = 0; e < d; e++) a[g++] = r & (1 << (7 - e)) ? h : l; + } + return { srcPos: t, destPos: g }; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.JpxStream = void 0; + var r = a(18), + i = a(30), + n = a(2); + class JpxStream extends r.DecodeStream { + constructor(e, t, a) { + super(t); + this.stream = e; + this.dict = e.dict; + this.maybeLength = t; + this.params = a; + } + get bytes() { + return (0, n.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(e) {} + readBlock() { + if (this.eof) return; + const e = new i.JpxImage(); + e.parse(this.bytes); + const t = e.width, + a = e.height, + r = e.componentsCount, + n = e.tiles.length; + if (1 === n) this.buffer = e.tiles[0].items; + else { + const i = new Uint8ClampedArray(t * a * r); + for (let a = 0; a < n; a++) { + const n = e.tiles[a], + s = n.width, + o = n.height, + c = n.left, + l = n.top, + h = n.items; + let u = 0, + d = (t * l + c) * r; + const f = t * r, + g = s * r; + for (let e = 0; e < o; e++) { + const e = h.subarray(u, u + g); + i.set(e, d); + u += g; + d += f; + } + } + this.buffer = i; + } + this.bufferLength = this.buffer.length; + this.eof = !0; + } + } + t.JpxStream = JpxStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.JpxImage = void 0; + var r = a(2), + i = a(3), + n = a(25); + class JpxError extends r.BaseException { + constructor(e) { + super(`JPX error: ${e}`, 'JpxError'); + } + } + const s = { LL: 0, LH: 1, HL: 1, HH: 2 }; + t.JpxImage = class JpxImage { + constructor() { + this.failOnCorruptedImage = !1; + } + parse(e) { + if (65359 === (0, i.readUint16)(e, 0)) { + this.parseCodestream(e, 0, e.length); + return; + } + const t = e.length; + let a = 0; + for (; a < t; ) { + let n = 8, + s = (0, i.readUint32)(e, a); + const o = (0, i.readUint32)(e, a + 4); + a += n; + if (1 === s) { + s = 4294967296 * (0, i.readUint32)(e, a) + (0, i.readUint32)(e, a + 4); + a += 8; + n += 8; + } + 0 === s && (s = t - a + n); + if (s < n) throw new JpxError('Invalid box field size'); + const c = s - n; + let l = !0; + switch (o) { + case 1785737832: + l = !1; + break; + case 1668246642: + const t = e[a]; + if (1 === t) { + const t = (0, i.readUint32)(e, a + 3); + switch (t) { + case 16: + case 17: + case 18: + break; + default: + (0, r.warn)('Unknown colorspace ' + t); + } + } else 2 === t && (0, r.info)('ICC profile not supported'); + break; + case 1785737827: + this.parseCodestream(e, a, a + c); + break; + case 1783636e3: + 218793738 !== (0, i.readUint32)(e, a) && (0, r.warn)('Invalid JP2 signature'); + break; + case 1783634458: + case 1718909296: + case 1920099697: + case 1919251232: + case 1768449138: + break; + default: + const n = String.fromCharCode( + (o >> 24) & 255, + (o >> 16) & 255, + (o >> 8) & 255, + 255 & o, + ); + (0, r.warn)(`Unsupported header type ${o} (${n}).`); + } + l && (a += c); + } + } + parseImageProperties(e) { + let t = e.getByte(); + for (; t >= 0; ) { + const a = t; + t = e.getByte(); + if (65361 === ((a << 8) | t)) { + e.skip(4); + const t = e.getInt32() >>> 0, + a = e.getInt32() >>> 0, + r = e.getInt32() >>> 0, + i = e.getInt32() >>> 0; + e.skip(16); + const n = e.getUint16(); + this.width = t - r; + this.height = a - i; + this.componentsCount = n; + this.bitsPerComponent = 8; + return; + } + } + throw new JpxError('No size marker found in JPX stream'); + } + parseCodestream(e, t, a) { + const n = {}; + let s = !1; + try { + let o = t; + for (; o + 1 < a; ) { + const t = (0, i.readUint16)(e, o); + o += 2; + let a, + c, + l, + h, + u, + d, + f = 0; + switch (t) { + case 65359: + n.mainHeader = !0; + break; + case 65497: + break; + case 65361: + f = (0, i.readUint16)(e, o); + const g = {}; + g.Xsiz = (0, i.readUint32)(e, o + 4); + g.Ysiz = (0, i.readUint32)(e, o + 8); + g.XOsiz = (0, i.readUint32)(e, o + 12); + g.YOsiz = (0, i.readUint32)(e, o + 16); + g.XTsiz = (0, i.readUint32)(e, o + 20); + g.YTsiz = (0, i.readUint32)(e, o + 24); + g.XTOsiz = (0, i.readUint32)(e, o + 28); + g.YTOsiz = (0, i.readUint32)(e, o + 32); + const p = (0, i.readUint16)(e, o + 36); + g.Csiz = p; + const m = []; + a = o + 38; + for (let t = 0; t < p; t++) { + const t = { + precision: 1 + (127 & e[a]), + isSigned: !!(128 & e[a]), + XRsiz: e[a + 1], + YRsiz: e[a + 2], + }; + a += 3; + calculateComponentDimensions(t, g); + m.push(t); + } + n.SIZ = g; + n.components = m; + calculateTileGrids(n, m); + n.QCC = []; + n.COC = []; + break; + case 65372: + f = (0, i.readUint16)(e, o); + const b = {}; + a = o + 2; + c = e[a++]; + switch (31 & c) { + case 0: + h = 8; + u = !0; + break; + case 1: + h = 16; + u = !1; + break; + case 2: + h = 16; + u = !0; + break; + default: + throw new Error('Invalid SQcd value ' + c); + } + b.noQuantization = 8 === h; + b.scalarExpounded = u; + b.guardBits = c >> 5; + l = []; + for (; a < f + o; ) { + const t = {}; + if (8 === h) { + t.epsilon = e[a++] >> 3; + t.mu = 0; + } else { + t.epsilon = e[a] >> 3; + t.mu = ((7 & e[a]) << 8) | e[a + 1]; + a += 2; + } + l.push(t); + } + b.SPqcds = l; + if (n.mainHeader) n.QCD = b; + else { + n.currentTile.QCD = b; + n.currentTile.QCC = []; + } + break; + case 65373: + f = (0, i.readUint16)(e, o); + const y = {}; + a = o + 2; + let w; + if (n.SIZ.Csiz < 257) w = e[a++]; + else { + w = (0, i.readUint16)(e, a); + a += 2; + } + c = e[a++]; + switch (31 & c) { + case 0: + h = 8; + u = !0; + break; + case 1: + h = 16; + u = !1; + break; + case 2: + h = 16; + u = !0; + break; + default: + throw new Error('Invalid SQcd value ' + c); + } + y.noQuantization = 8 === h; + y.scalarExpounded = u; + y.guardBits = c >> 5; + l = []; + for (; a < f + o; ) { + const t = {}; + if (8 === h) { + t.epsilon = e[a++] >> 3; + t.mu = 0; + } else { + t.epsilon = e[a] >> 3; + t.mu = ((7 & e[a]) << 8) | e[a + 1]; + a += 2; + } + l.push(t); + } + y.SPqcds = l; + n.mainHeader ? (n.QCC[w] = y) : (n.currentTile.QCC[w] = y); + break; + case 65362: + f = (0, i.readUint16)(e, o); + const S = {}; + a = o + 2; + const x = e[a++]; + S.entropyCoderWithCustomPrecincts = !!(1 & x); + S.sopMarkerUsed = !!(2 & x); + S.ephMarkerUsed = !!(4 & x); + S.progressionOrder = e[a++]; + S.layersCount = (0, i.readUint16)(e, a); + a += 2; + S.multipleComponentTransform = e[a++]; + S.decompositionLevelsCount = e[a++]; + S.xcb = 2 + (15 & e[a++]); + S.ycb = 2 + (15 & e[a++]); + const C = e[a++]; + S.selectiveArithmeticCodingBypass = !!(1 & C); + S.resetContextProbabilities = !!(2 & C); + S.terminationOnEachCodingPass = !!(4 & C); + S.verticallyStripe = !!(8 & C); + S.predictableTermination = !!(16 & C); + S.segmentationSymbolUsed = !!(32 & C); + S.reversibleTransformation = e[a++]; + if (S.entropyCoderWithCustomPrecincts) { + const t = []; + for (; a < f + o; ) { + const r = e[a++]; + t.push({ PPx: 15 & r, PPy: r >> 4 }); + } + S.precinctsSizes = t; + } + const k = []; + S.selectiveArithmeticCodingBypass && + k.push('selectiveArithmeticCodingBypass'); + S.terminationOnEachCodingPass && k.push('terminationOnEachCodingPass'); + S.verticallyStripe && k.push('verticallyStripe'); + S.predictableTermination && k.push('predictableTermination'); + if (k.length > 0) { + s = !0; + (0, r.warn)(`JPX: Unsupported COD options (${k.join(', ')}).`); + } + if (n.mainHeader) n.COD = S; + else { + n.currentTile.COD = S; + n.currentTile.COC = []; + } + break; + case 65424: + f = (0, i.readUint16)(e, o); + d = {}; + d.index = (0, i.readUint16)(e, o + 2); + d.length = (0, i.readUint32)(e, o + 4); + d.dataEnd = d.length + o - 2; + d.partIndex = e[o + 8]; + d.partsCount = e[o + 9]; + n.mainHeader = !1; + if (0 === d.partIndex) { + d.COD = n.COD; + d.COC = n.COC.slice(0); + d.QCD = n.QCD; + d.QCC = n.QCC.slice(0); + } + n.currentTile = d; + break; + case 65427: + d = n.currentTile; + if (0 === d.partIndex) { + initializeTile(n, d.index); + buildPackets(n); + } + f = d.dataEnd - o; + parseTilePackets(n, e, o, f); + break; + case 65363: + (0, r.warn)('JPX: Codestream code 0xFF53 (COC) is not implemented.'); + case 65365: + case 65367: + case 65368: + case 65380: + f = (0, i.readUint16)(e, o); + break; + default: + throw new Error('Unknown codestream code: ' + t.toString(16)); + } + o += f; + } + } catch (e) { + if (s || this.failOnCorruptedImage) throw new JpxError(e.message); + (0, r.warn)(`JPX: Trying to recover from: "${e.message}".`); + } + this.tiles = (function transformComponents(e) { + const t = e.SIZ, + a = e.components, + r = t.Csiz, + i = []; + for (let t = 0, n = e.tiles.length; t < n; t++) { + const n = e.tiles[t], + s = []; + for (let t = 0; t < r; t++) s[t] = transformTile(e, n, t); + const o = s[0], + c = new Uint8ClampedArray(o.items.length * r), + l = { left: o.left, top: o.top, width: o.width, height: o.height, items: c }; + let h, + u, + d, + f, + g, + p, + m, + b = 0; + if (n.codingStyleDefaultParameters.multipleComponentTransform) { + const e = 4 === r, + t = s[0].items, + i = s[1].items, + o = s[2].items, + l = e ? s[3].items : null; + h = a[0].precision - 8; + u = 0.5 + (128 << h); + const y = n.components[0], + w = r - 3; + f = t.length; + if (y.codingStyleParameters.reversibleTransformation) + for (d = 0; d < f; d++, b += w) { + g = t[d] + u; + p = i[d]; + m = o[d]; + const e = g - ((m + p) >> 2); + c[b++] = (e + m) >> h; + c[b++] = e >> h; + c[b++] = (e + p) >> h; + } + else + for (d = 0; d < f; d++, b += w) { + g = t[d] + u; + p = i[d]; + m = o[d]; + c[b++] = (g + 1.402 * m) >> h; + c[b++] = (g - 0.34413 * p - 0.71414 * m) >> h; + c[b++] = (g + 1.772 * p) >> h; + } + if (e) for (d = 0, b = 3; d < f; d++, b += 4) c[b] = (l[d] + u) >> h; + } else + for (let e = 0; e < r; e++) { + const t = s[e].items; + h = a[e].precision - 8; + u = 0.5 + (128 << h); + for (b = e, d = 0, f = t.length; d < f; d++) { + c[b] = (t[d] + u) >> h; + b += r; + } + } + i.push(l); + } + return i; + })(n); + this.width = n.SIZ.Xsiz - n.SIZ.XOsiz; + this.height = n.SIZ.Ysiz - n.SIZ.YOsiz; + this.componentsCount = n.SIZ.Csiz; + } + }; + function calculateComponentDimensions(e, t) { + e.x0 = Math.ceil(t.XOsiz / e.XRsiz); + e.x1 = Math.ceil(t.Xsiz / e.XRsiz); + e.y0 = Math.ceil(t.YOsiz / e.YRsiz); + e.y1 = Math.ceil(t.Ysiz / e.YRsiz); + e.width = e.x1 - e.x0; + e.height = e.y1 - e.y0; + } + function calculateTileGrids(e, t) { + const a = e.SIZ, + r = []; + let i; + const n = Math.ceil((a.Xsiz - a.XTOsiz) / a.XTsiz), + s = Math.ceil((a.Ysiz - a.YTOsiz) / a.YTsiz); + for (let e = 0; e < s; e++) + for (let t = 0; t < n; t++) { + i = {}; + i.tx0 = Math.max(a.XTOsiz + t * a.XTsiz, a.XOsiz); + i.ty0 = Math.max(a.YTOsiz + e * a.YTsiz, a.YOsiz); + i.tx1 = Math.min(a.XTOsiz + (t + 1) * a.XTsiz, a.Xsiz); + i.ty1 = Math.min(a.YTOsiz + (e + 1) * a.YTsiz, a.Ysiz); + i.width = i.tx1 - i.tx0; + i.height = i.ty1 - i.ty0; + i.components = []; + r.push(i); + } + e.tiles = r; + for (let e = 0, n = a.Csiz; e < n; e++) { + const a = t[e]; + for (let t = 0, n = r.length; t < n; t++) { + const n = {}; + i = r[t]; + n.tcx0 = Math.ceil(i.tx0 / a.XRsiz); + n.tcy0 = Math.ceil(i.ty0 / a.YRsiz); + n.tcx1 = Math.ceil(i.tx1 / a.XRsiz); + n.tcy1 = Math.ceil(i.ty1 / a.YRsiz); + n.width = n.tcx1 - n.tcx0; + n.height = n.tcy1 - n.tcy0; + i.components[e] = n; + } + } + } + function getBlocksDimensions(e, t, a) { + const r = t.codingStyleParameters, + i = {}; + if (r.entropyCoderWithCustomPrecincts) { + i.PPx = r.precinctsSizes[a].PPx; + i.PPy = r.precinctsSizes[a].PPy; + } else { + i.PPx = 15; + i.PPy = 15; + } + i.xcb_ = a > 0 ? Math.min(r.xcb, i.PPx - 1) : Math.min(r.xcb, i.PPx); + i.ycb_ = a > 0 ? Math.min(r.ycb, i.PPy - 1) : Math.min(r.ycb, i.PPy); + return i; + } + function buildPrecincts(e, t, a) { + const r = 1 << a.PPx, + i = 1 << a.PPy, + n = 0 === t.resLevel, + s = 1 << (a.PPx + (n ? 0 : -1)), + o = 1 << (a.PPy + (n ? 0 : -1)), + c = t.trx1 > t.trx0 ? Math.ceil(t.trx1 / r) - Math.floor(t.trx0 / r) : 0, + l = t.try1 > t.try0 ? Math.ceil(t.try1 / i) - Math.floor(t.try0 / i) : 0, + h = c * l; + t.precinctParameters = { + precinctWidth: r, + precinctHeight: i, + numprecinctswide: c, + numprecinctshigh: l, + numprecincts: h, + precinctWidthInSubband: s, + precinctHeightInSubband: o, + }; + } + function buildCodeblocks(e, t, a) { + const r = a.xcb_, + i = a.ycb_, + n = 1 << r, + s = 1 << i, + o = t.tbx0 >> r, + c = t.tby0 >> i, + l = (t.tbx1 + n - 1) >> r, + h = (t.tby1 + s - 1) >> i, + u = t.resolution.precinctParameters, + d = [], + f = []; + let g, p, m, b; + for (p = c; p < h; p++) + for (g = o; g < l; g++) { + m = { + cbx: g, + cby: p, + tbx0: n * g, + tby0: s * p, + tbx1: n * (g + 1), + tby1: s * (p + 1), + }; + m.tbx0_ = Math.max(t.tbx0, m.tbx0); + m.tby0_ = Math.max(t.tby0, m.tby0); + m.tbx1_ = Math.min(t.tbx1, m.tbx1); + m.tby1_ = Math.min(t.tby1, m.tby1); + b = + Math.floor((m.tbx0_ - t.tbx0) / u.precinctWidthInSubband) + + Math.floor((m.tby0_ - t.tby0) / u.precinctHeightInSubband) * u.numprecinctswide; + m.precinctNumber = b; + m.subbandType = t.type; + m.Lblock = 3; + if (m.tbx1_ <= m.tbx0_ || m.tby1_ <= m.tby0_) continue; + d.push(m); + let e = f[b]; + if (void 0 !== e) { + g < e.cbxMin ? (e.cbxMin = g) : g > e.cbxMax && (e.cbxMax = g); + p < e.cbyMin ? (e.cbxMin = p) : p > e.cbyMax && (e.cbyMax = p); + } else f[b] = e = { cbxMin: g, cbyMin: p, cbxMax: g, cbyMax: p }; + m.precinct = e; + } + t.codeblockParameters = { + codeblockWidth: r, + codeblockHeight: i, + numcodeblockwide: l - o + 1, + numcodeblockhigh: h - c + 1, + }; + t.codeblocks = d; + t.precincts = f; + } + function createPacket(e, t, a) { + const r = [], + i = e.subbands; + for (let e = 0, a = i.length; e < a; e++) { + const a = i[e].codeblocks; + for (let e = 0, i = a.length; e < i; e++) { + const i = a[e]; + i.precinctNumber === t && r.push(i); + } + } + return { layerNumber: a, codeblocks: r }; + } + function LayerResolutionComponentPositionIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz; + let s = 0; + for (let e = 0; e < n; e++) + s = Math.max(s, r.components[e].codingStyleParameters.decompositionLevelsCount); + let o = 0, + c = 0, + l = 0, + h = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; o < i; o++) { + for (; c <= s; c++) { + for (; l < n; l++) { + const e = r.components[l]; + if (c > e.codingStyleParameters.decompositionLevelsCount) continue; + const t = e.resolutions[c], + a = t.precinctParameters.numprecincts; + for (; h < a; ) { + const e = createPacket(t, h, o); + h++; + return e; + } + h = 0; + } + l = 0; + } + c = 0; + } + throw new JpxError('Out of packets'); + }; + } + function ResolutionLayerComponentPositionIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz; + let s = 0; + for (let e = 0; e < n; e++) + s = Math.max(s, r.components[e].codingStyleParameters.decompositionLevelsCount); + let o = 0, + c = 0, + l = 0, + h = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; o <= s; o++) { + for (; c < i; c++) { + for (; l < n; l++) { + const e = r.components[l]; + if (o > e.codingStyleParameters.decompositionLevelsCount) continue; + const t = e.resolutions[o], + a = t.precinctParameters.numprecincts; + for (; h < a; ) { + const e = createPacket(t, h, c); + h++; + return e; + } + h = 0; + } + l = 0; + } + c = 0; + } + throw new JpxError('Out of packets'); + }; + } + function ResolutionPositionComponentLayerIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz; + let s, + o, + c, + l, + h = 0; + for (c = 0; c < n; c++) { + const e = r.components[c]; + h = Math.max(h, e.codingStyleParameters.decompositionLevelsCount); + } + const u = new Int32Array(h + 1); + for (o = 0; o <= h; ++o) { + let e = 0; + for (c = 0; c < n; ++c) { + const t = r.components[c].resolutions; + o < t.length && (e = Math.max(e, t[o].precinctParameters.numprecincts)); + } + u[o] = e; + } + s = 0; + o = 0; + c = 0; + l = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; o <= h; o++) { + for (; l < u[o]; l++) { + for (; c < n; c++) { + const e = r.components[c]; + if (o > e.codingStyleParameters.decompositionLevelsCount) continue; + const t = e.resolutions[o], + a = t.precinctParameters.numprecincts; + if (!(l >= a)) { + for (; s < i; ) { + const e = createPacket(t, l, s); + s++; + return e; + } + s = 0; + } + } + c = 0; + } + l = 0; + } + throw new JpxError('Out of packets'); + }; + } + function PositionComponentResolutionLayerIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz, + s = getPrecinctSizesInImageScale(r), + o = s; + let c = 0, + l = 0, + h = 0, + u = 0, + d = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; d < o.maxNumHigh; d++) { + for (; u < o.maxNumWide; u++) { + for (; h < n; h++) { + const e = r.components[h], + t = e.codingStyleParameters.decompositionLevelsCount; + for (; l <= t; l++) { + const t = e.resolutions[l], + a = s.components[h].resolutions[l], + r = getPrecinctIndexIfExist(u, d, a, o, t); + if (null !== r) { + for (; c < i; ) { + const e = createPacket(t, r, c); + c++; + return e; + } + c = 0; + } + } + l = 0; + } + h = 0; + } + u = 0; + } + throw new JpxError('Out of packets'); + }; + } + function ComponentPositionResolutionLayerIterator(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = r.codingStyleDefaultParameters.layersCount, + n = t.Csiz, + s = getPrecinctSizesInImageScale(r); + let o = 0, + c = 0, + l = 0, + h = 0, + u = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; l < n; ++l) { + const e = r.components[l], + t = s.components[l], + a = e.codingStyleParameters.decompositionLevelsCount; + for (; u < t.maxNumHigh; u++) { + for (; h < t.maxNumWide; h++) { + for (; c <= a; c++) { + const a = e.resolutions[c], + r = t.resolutions[c], + n = getPrecinctIndexIfExist(h, u, r, t, a); + if (null !== n) { + for (; o < i; ) { + const e = createPacket(a, n, o); + o++; + return e; + } + o = 0; + } + } + c = 0; + } + h = 0; + } + u = 0; + } + throw new JpxError('Out of packets'); + }; + } + function getPrecinctIndexIfExist(e, t, a, r, i) { + const n = e * r.minWidth, + s = t * r.minHeight; + if (n % a.width != 0 || s % a.height != 0) return null; + const o = (s / a.width) * i.precinctParameters.numprecinctswide; + return n / a.height + o; + } + function getPrecinctSizesInImageScale(e) { + const t = e.components.length; + let a = Number.MAX_VALUE, + r = Number.MAX_VALUE, + i = 0, + n = 0; + const s = new Array(t); + for (let o = 0; o < t; o++) { + const t = e.components[o], + c = t.codingStyleParameters.decompositionLevelsCount, + l = new Array(c + 1); + let h = Number.MAX_VALUE, + u = Number.MAX_VALUE, + d = 0, + f = 0, + g = 1; + for (let e = c; e >= 0; --e) { + const a = t.resolutions[e], + r = g * a.precinctParameters.precinctWidth, + i = g * a.precinctParameters.precinctHeight; + h = Math.min(h, r); + u = Math.min(u, i); + d = Math.max(d, a.precinctParameters.numprecinctswide); + f = Math.max(f, a.precinctParameters.numprecinctshigh); + l[e] = { width: r, height: i }; + g <<= 1; + } + a = Math.min(a, h); + r = Math.min(r, u); + i = Math.max(i, d); + n = Math.max(n, f); + s[o] = { resolutions: l, minWidth: h, minHeight: u, maxNumWide: d, maxNumHigh: f }; + } + return { components: s, minWidth: a, minHeight: r, maxNumWide: i, maxNumHigh: n }; + } + function buildPackets(e) { + const t = e.SIZ, + a = e.currentTile.index, + r = e.tiles[a], + i = t.Csiz; + for (let e = 0; e < i; e++) { + const t = r.components[e], + a = t.codingStyleParameters.decompositionLevelsCount, + i = [], + n = []; + for (let e = 0; e <= a; e++) { + const r = getBlocksDimensions(0, t, e), + s = {}, + o = 1 << (a - e); + s.trx0 = Math.ceil(t.tcx0 / o); + s.try0 = Math.ceil(t.tcy0 / o); + s.trx1 = Math.ceil(t.tcx1 / o); + s.try1 = Math.ceil(t.tcy1 / o); + s.resLevel = e; + buildPrecincts(0, s, r); + i.push(s); + let c; + if (0 === e) { + c = {}; + c.type = 'LL'; + c.tbx0 = Math.ceil(t.tcx0 / o); + c.tby0 = Math.ceil(t.tcy0 / o); + c.tbx1 = Math.ceil(t.tcx1 / o); + c.tby1 = Math.ceil(t.tcy1 / o); + c.resolution = s; + buildCodeblocks(0, c, r); + n.push(c); + s.subbands = [c]; + } else { + const i = 1 << (a - e + 1), + o = []; + c = {}; + c.type = 'HL'; + c.tbx0 = Math.ceil(t.tcx0 / i - 0.5); + c.tby0 = Math.ceil(t.tcy0 / i); + c.tbx1 = Math.ceil(t.tcx1 / i - 0.5); + c.tby1 = Math.ceil(t.tcy1 / i); + c.resolution = s; + buildCodeblocks(0, c, r); + n.push(c); + o.push(c); + c = {}; + c.type = 'LH'; + c.tbx0 = Math.ceil(t.tcx0 / i); + c.tby0 = Math.ceil(t.tcy0 / i - 0.5); + c.tbx1 = Math.ceil(t.tcx1 / i); + c.tby1 = Math.ceil(t.tcy1 / i - 0.5); + c.resolution = s; + buildCodeblocks(0, c, r); + n.push(c); + o.push(c); + c = {}; + c.type = 'HH'; + c.tbx0 = Math.ceil(t.tcx0 / i - 0.5); + c.tby0 = Math.ceil(t.tcy0 / i - 0.5); + c.tbx1 = Math.ceil(t.tcx1 / i - 0.5); + c.tby1 = Math.ceil(t.tcy1 / i - 0.5); + c.resolution = s; + buildCodeblocks(0, c, r); + n.push(c); + o.push(c); + s.subbands = o; + } + } + t.resolutions = i; + t.subbands = n; + } + const n = r.codingStyleDefaultParameters.progressionOrder; + switch (n) { + case 0: + r.packetsIterator = new LayerResolutionComponentPositionIterator(e); + break; + case 1: + r.packetsIterator = new ResolutionLayerComponentPositionIterator(e); + break; + case 2: + r.packetsIterator = new ResolutionPositionComponentLayerIterator(e); + break; + case 3: + r.packetsIterator = new PositionComponentResolutionLayerIterator(e); + break; + case 4: + r.packetsIterator = new ComponentPositionResolutionLayerIterator(e); + break; + default: + throw new JpxError(`Unsupported progression order ${n}`); + } + } + function parseTilePackets(e, t, a, r) { + let n, + s = 0, + o = 0, + c = !1; + function readBits(e) { + for (; o < e; ) { + const e = t[a + s]; + s++; + if (c) { + n = (n << 7) | e; + o += 7; + c = !1; + } else { + n = (n << 8) | e; + o += 8; + } + 255 === e && (c = !0); + } + o -= e; + return (n >>> o) & ((1 << e) - 1); + } + function skipMarkerIfEqual(e) { + if (255 === t[a + s - 1] && t[a + s] === e) { + skipBytes(1); + return !0; + } + if (255 === t[a + s] && t[a + s + 1] === e) { + skipBytes(2); + return !0; + } + return !1; + } + function skipBytes(e) { + s += e; + } + function alignToByte() { + o = 0; + if (c) { + s++; + c = !1; + } + } + function readCodingpasses() { + if (0 === readBits(1)) return 1; + if (0 === readBits(1)) return 2; + let e = readBits(2); + if (e < 3) return e + 3; + e = readBits(5); + if (e < 31) return e + 6; + e = readBits(7); + return e + 37; + } + const l = e.currentTile.index, + h = e.tiles[l], + u = e.COD.sopMarkerUsed, + d = e.COD.ephMarkerUsed, + f = h.packetsIterator; + for (; s < r; ) { + alignToByte(); + u && skipMarkerIfEqual(145) && skipBytes(4); + const e = f.nextPacket(); + if (!readBits(1)) continue; + const r = e.layerNumber, + n = []; + let o; + for (let t = 0, a = e.codeblocks.length; t < a; t++) { + o = e.codeblocks[t]; + let a = o.precinct; + const s = o.cbx - a.cbxMin, + c = o.cby - a.cbyMin; + let l, + h, + u = !1, + d = !1; + if (void 0 !== o.included) u = !!readBits(1); + else { + a = o.precinct; + let e; + if (void 0 !== a.inclusionTree) e = a.inclusionTree; + else { + const t = a.cbxMax - a.cbxMin + 1, + i = a.cbyMax - a.cbyMin + 1; + e = new InclusionTree(t, i, r); + h = new TagTree(t, i); + a.inclusionTree = e; + a.zeroBitPlanesTree = h; + for (let e = 0; e < r; e++) + if (0 !== readBits(1)) throw new JpxError('Invalid tag tree'); + } + if (e.reset(s, c, r)) + for (;;) { + if (!readBits(1)) { + e.incrementValue(r); + break; + } + l = !e.nextLevel(); + if (l) { + o.included = !0; + u = d = !0; + break; + } + } + } + if (!u) continue; + if (d) { + h = a.zeroBitPlanesTree; + h.reset(s, c); + for (;;) + if (readBits(1)) { + l = !h.nextLevel(); + if (l) break; + } else h.incrementValue(); + o.zeroBitPlanes = h.value; + } + const f = readCodingpasses(); + for (; readBits(1); ) o.Lblock++; + const g = (0, i.log2)(f), + p = readBits((f < 1 << g ? g - 1 : g) + o.Lblock); + n.push({ codeblock: o, codingpasses: f, dataLength: p }); + } + alignToByte(); + d && skipMarkerIfEqual(146); + for (; n.length > 0; ) { + const e = n.shift(); + o = e.codeblock; + void 0 === o.data && (o.data = []); + o.data.push({ + data: t, + start: a + s, + end: a + s + e.dataLength, + codingpasses: e.codingpasses, + }); + s += e.dataLength; + } + } + return s; + } + function copyCoefficients(e, t, a, r, i, s, o, c, l) { + const h = r.tbx0, + u = r.tby0, + d = r.tbx1 - r.tbx0, + f = r.codeblocks, + g = 'H' === r.type.charAt(0) ? 1 : 0, + p = 'H' === r.type.charAt(1) ? t : 0; + for (let a = 0, m = f.length; a < m; ++a) { + const m = f[a], + b = m.tbx1_ - m.tbx0_, + y = m.tby1_ - m.tby0_; + if (0 === b || 0 === y) continue; + if (void 0 === m.data) continue; + const w = new BitModel(b, y, m.subbandType, m.zeroBitPlanes, s); + let S = 2; + const x = m.data; + let C, + k, + v, + F = 0, + O = 0; + for (C = 0, k = x.length; C < k; C++) { + v = x[C]; + F += v.end - v.start; + O += v.codingpasses; + } + const T = new Uint8Array(F); + let M = 0; + for (C = 0, k = x.length; C < k; C++) { + v = x[C]; + const e = v.data.subarray(v.start, v.end); + T.set(e, M); + M += e.length; + } + const E = new n.ArithmeticDecoder(T, 0, F); + w.setDecoder(E); + for (C = 0; C < O; C++) { + switch (S) { + case 0: + w.runSignificancePropagationPass(); + break; + case 1: + w.runMagnitudeRefinementPass(); + break; + case 2: + w.runCleanupPass(); + c && w.checkSegmentationSymbol(); + } + l && w.reset(); + S = (S + 1) % 3; + } + let D = m.tbx0_ - h + (m.tby0_ - u) * d; + const N = w.coefficentsSign, + R = w.coefficentsMagnitude, + L = w.bitsDecoded, + _ = o ? 0 : 0.5; + let $, j, U; + M = 0; + const X = 'LL' !== r.type; + for (C = 0; C < y; C++) { + const a = 2 * ((D / d) | 0) * (t - d) + g + p; + for ($ = 0; $ < b; $++) { + j = R[M]; + if (0 !== j) { + j = (j + _) * i; + 0 !== N[M] && (j = -j); + U = L[M]; + const t = X ? a + (D << 1) : D; + e[t] = o && U >= s ? j : j * (1 << (s - U)); + } + D++; + M++; + } + D += d - b; + } + } + } + function transformTile(e, t, a) { + const r = t.components[a], + i = r.codingStyleParameters, + n = r.quantizationParameters, + o = i.decompositionLevelsCount, + c = n.SPqcds, + l = n.scalarExpounded, + h = n.guardBits, + u = i.segmentationSymbolUsed, + d = i.resetContextProbabilities, + f = e.components[a].precision, + g = i.reversibleTransformation, + p = g ? new ReversibleTransform() : new IrreversibleTransform(), + m = []; + let b = 0; + for (let e = 0; e <= o; e++) { + const t = r.resolutions[e], + a = t.trx1 - t.trx0, + i = t.try1 - t.try0, + n = new Float32Array(a * i); + for (let r = 0, i = t.subbands.length; r < i; r++) { + let i, o; + if (l) { + i = c[b].mu; + o = c[b].epsilon; + b++; + } else { + i = c[0].mu; + o = c[0].epsilon + (e > 0 ? 1 - e : 0); + } + const p = t.subbands[r], + m = s[p.type]; + copyCoefficients( + n, + a, + 0, + p, + g ? 1 : 2 ** (f + m - o) * (1 + i / 2048), + h + o - 1, + g, + u, + d, + ); + } + m.push({ width: a, height: i, items: n }); + } + const y = p.calculate(m, r.tcx0, r.tcy0); + return { left: r.tcx0, top: r.tcy0, width: y.width, height: y.height, items: y.items }; + } + function initializeTile(e, t) { + const a = e.SIZ.Csiz, + r = e.tiles[t]; + for (let t = 0; t < a; t++) { + const a = r.components[t], + i = void 0 !== e.currentTile.QCC[t] ? e.currentTile.QCC[t] : e.currentTile.QCD; + a.quantizationParameters = i; + const n = void 0 !== e.currentTile.COC[t] ? e.currentTile.COC[t] : e.currentTile.COD; + a.codingStyleParameters = n; + } + r.codingStyleDefaultParameters = e.currentTile.COD; + } + class TagTree { + constructor(e, t) { + const a = (0, i.log2)(Math.max(e, t)) + 1; + this.levels = []; + for (let r = 0; r < a; r++) { + const a = { width: e, height: t, items: [] }; + this.levels.push(a); + e = Math.ceil(e / 2); + t = Math.ceil(t / 2); + } + } + reset(e, t) { + let a, + r = 0, + i = 0; + for (; r < this.levels.length; ) { + a = this.levels[r]; + const n = e + t * a.width; + if (void 0 !== a.items[n]) { + i = a.items[n]; + break; + } + a.index = n; + e >>= 1; + t >>= 1; + r++; + } + r--; + a = this.levels[r]; + a.items[a.index] = i; + this.currentLevel = r; + delete this.value; + } + incrementValue() { + const e = this.levels[this.currentLevel]; + e.items[e.index]++; + } + nextLevel() { + let e = this.currentLevel, + t = this.levels[e]; + const a = t.items[t.index]; + e--; + if (e < 0) { + this.value = a; + return !1; + } + this.currentLevel = e; + t = this.levels[e]; + t.items[t.index] = a; + return !0; + } + } + class InclusionTree { + constructor(e, t, a) { + const r = (0, i.log2)(Math.max(e, t)) + 1; + this.levels = []; + for (let i = 0; i < r; i++) { + const r = new Uint8Array(e * t); + for (let e = 0, t = r.length; e < t; e++) r[e] = a; + const i = { width: e, height: t, items: r }; + this.levels.push(i); + e = Math.ceil(e / 2); + t = Math.ceil(t / 2); + } + } + reset(e, t, a) { + let r = 0; + for (; r < this.levels.length; ) { + const i = this.levels[r], + n = e + t * i.width; + i.index = n; + const s = i.items[n]; + if (255 === s) break; + if (s > a) { + this.currentLevel = r; + this.propagateValues(); + return !1; + } + e >>= 1; + t >>= 1; + r++; + } + this.currentLevel = r - 1; + return !0; + } + incrementValue(e) { + const t = this.levels[this.currentLevel]; + t.items[t.index] = e + 1; + this.propagateValues(); + } + propagateValues() { + let e = this.currentLevel, + t = this.levels[e]; + const a = t.items[t.index]; + for (; --e >= 0; ) { + t = this.levels[e]; + t.items[t.index] = a; + } + } + nextLevel() { + let e = this.currentLevel, + t = this.levels[e]; + const a = t.items[t.index]; + t.items[t.index] = 255; + e--; + if (e < 0) return !1; + this.currentLevel = e; + t = this.levels[e]; + t.items[t.index] = a; + return !0; + } + } + class BitModel { + static UNIFORM_CONTEXT = 17; + static RUNLENGTH_CONTEXT = 18; + static LLAndLHContextsLabel = new Uint8Array([ + 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, + 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, + 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, + ]); + static HLContextLabel = new Uint8Array([ + 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, + 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, + 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, + ]); + static HHContextLabel = new Uint8Array([ + 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, + 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, + 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, + ]); + constructor(e, t, a, r, i) { + this.width = e; + this.height = t; + let n; + n = + 'HH' === a + ? BitModel.HHContextLabel + : 'HL' === a + ? BitModel.HLContextLabel + : BitModel.LLAndLHContextsLabel; + this.contextLabelTable = n; + const s = e * t; + this.neighborsSignificance = new Uint8Array(s); + this.coefficentsSign = new Uint8Array(s); + let o; + o = i > 14 ? new Uint32Array(s) : i > 6 ? new Uint16Array(s) : new Uint8Array(s); + this.coefficentsMagnitude = o; + this.processingFlags = new Uint8Array(s); + const c = new Uint8Array(s); + if (0 !== r) for (let e = 0; e < s; e++) c[e] = r; + this.bitsDecoded = c; + this.reset(); + } + setDecoder(e) { + this.decoder = e; + } + reset() { + this.contexts = new Int8Array(19); + this.contexts[0] = 8; + this.contexts[BitModel.UNIFORM_CONTEXT] = 92; + this.contexts[BitModel.RUNLENGTH_CONTEXT] = 6; + } + setNeighborsSignificance(e, t, a) { + const r = this.neighborsSignificance, + i = this.width, + n = this.height, + s = t > 0, + o = t + 1 < i; + let c; + if (e > 0) { + c = a - i; + s && (r[c - 1] += 16); + o && (r[c + 1] += 16); + r[c] += 4; + } + if (e + 1 < n) { + c = a + i; + s && (r[c - 1] += 16); + o && (r[c + 1] += 16); + r[c] += 4; + } + s && (r[a - 1] += 1); + o && (r[a + 1] += 1); + r[a] |= 128; + } + runSignificancePropagationPass() { + const e = this.decoder, + t = this.width, + a = this.height, + r = this.coefficentsMagnitude, + i = this.coefficentsSign, + n = this.neighborsSignificance, + s = this.processingFlags, + o = this.contexts, + c = this.contextLabelTable, + l = this.bitsDecoded; + for (let h = 0; h < a; h += 4) + for (let u = 0; u < t; u++) { + let d = h * t + u; + for (let f = 0; f < 4; f++, d += t) { + const t = h + f; + if (t >= a) break; + s[d] &= -2; + if (r[d] || !n[d]) continue; + const g = c[n[d]]; + if (e.readBit(o, g)) { + const e = this.decodeSignBit(t, u, d); + i[d] = e; + r[d] = 1; + this.setNeighborsSignificance(t, u, d); + s[d] |= 2; + } + l[d]++; + s[d] |= 1; + } + } + } + decodeSignBit(e, t, a) { + const r = this.width, + i = this.height, + n = this.coefficentsMagnitude, + s = this.coefficentsSign; + let o, c, l, h, u, d; + h = t > 0 && 0 !== n[a - 1]; + if (t + 1 < r && 0 !== n[a + 1]) { + l = s[a + 1]; + if (h) { + c = s[a - 1]; + o = 1 - l - c; + } else o = 1 - l - l; + } else if (h) { + c = s[a - 1]; + o = 1 - c - c; + } else o = 0; + const f = 3 * o; + h = e > 0 && 0 !== n[a - r]; + if (e + 1 < i && 0 !== n[a + r]) { + l = s[a + r]; + if (h) { + c = s[a - r]; + o = 1 - l - c + f; + } else o = 1 - l - l + f; + } else if (h) { + c = s[a - r]; + o = 1 - c - c + f; + } else o = f; + if (o >= 0) { + u = 9 + o; + d = this.decoder.readBit(this.contexts, u); + } else { + u = 9 - o; + d = 1 ^ this.decoder.readBit(this.contexts, u); + } + return d; + } + runMagnitudeRefinementPass() { + const e = this.decoder, + t = this.width, + a = this.height, + r = this.coefficentsMagnitude, + i = this.neighborsSignificance, + n = this.contexts, + s = this.bitsDecoded, + o = this.processingFlags, + c = t * a, + l = 4 * t; + for (let a, h = 0; h < c; h = a) { + a = Math.min(c, h + l); + for (let c = 0; c < t; c++) + for (let l = h + c; l < a; l += t) { + if (!r[l] || 0 != (1 & o[l])) continue; + let t = 16; + if (0 != (2 & o[l])) { + o[l] ^= 2; + t = 0 === (127 & i[l]) ? 15 : 14; + } + const a = e.readBit(n, t); + r[l] = (r[l] << 1) | a; + s[l]++; + o[l] |= 1; + } + } + } + runCleanupPass() { + const e = this.decoder, + t = this.width, + a = this.height, + r = this.neighborsSignificance, + i = this.coefficentsMagnitude, + n = this.coefficentsSign, + s = this.contexts, + o = this.contextLabelTable, + c = this.bitsDecoded, + l = this.processingFlags, + h = t, + u = 2 * t, + d = 3 * t; + let f; + for (let g = 0; g < a; g = f) { + f = Math.min(g + 4, a); + const p = g * t, + m = g + 3 < a; + for (let a = 0; a < t; a++) { + const b = p + a; + let y, + w = 0, + S = b, + x = g; + if ( + m && + 0 === l[b] && + 0 === l[b + h] && + 0 === l[b + u] && + 0 === l[b + d] && + 0 === r[b] && + 0 === r[b + h] && + 0 === r[b + u] && + 0 === r[b + d] + ) { + if (!e.readBit(s, BitModel.RUNLENGTH_CONTEXT)) { + c[b]++; + c[b + h]++; + c[b + u]++; + c[b + d]++; + continue; + } + w = + (e.readBit(s, BitModel.UNIFORM_CONTEXT) << 1) | + e.readBit(s, BitModel.UNIFORM_CONTEXT); + if (0 !== w) { + x = g + w; + S += w * t; + } + y = this.decodeSignBit(x, a, S); + n[S] = y; + i[S] = 1; + this.setNeighborsSignificance(x, a, S); + l[S] |= 2; + S = b; + for (let e = g; e <= x; e++, S += t) c[S]++; + w++; + } + for (x = g + w; x < f; x++, S += t) { + if (i[S] || 0 != (1 & l[S])) continue; + const t = o[r[S]]; + if (1 === e.readBit(s, t)) { + y = this.decodeSignBit(x, a, S); + n[S] = y; + i[S] = 1; + this.setNeighborsSignificance(x, a, S); + l[S] |= 2; + } + c[S]++; + } + } + } + } + checkSegmentationSymbol() { + const e = this.decoder, + t = this.contexts; + if ( + 10 !== + ((e.readBit(t, BitModel.UNIFORM_CONTEXT) << 3) | + (e.readBit(t, BitModel.UNIFORM_CONTEXT) << 2) | + (e.readBit(t, BitModel.UNIFORM_CONTEXT) << 1) | + e.readBit(t, BitModel.UNIFORM_CONTEXT)) + ) + throw new JpxError('Invalid segmentation symbol'); + } + } + class Transform { + constructor() { + this.constructor === Transform && (0, r.unreachable)('Cannot initialize Transform.'); + } + calculate(e, t, a) { + let r = e[0]; + for (let i = 1, n = e.length; i < n; i++) r = this.iterate(r, e[i], t, a); + return r; + } + extend(e, t, a) { + let r = t - 1, + i = t + 1, + n = t + a - 2, + s = t + a; + e[r--] = e[i++]; + e[s++] = e[n--]; + e[r--] = e[i++]; + e[s++] = e[n--]; + e[r--] = e[i++]; + e[s++] = e[n--]; + e[r] = e[i]; + e[s] = e[n]; + } + filter(e, t, a) { + (0, r.unreachable)('Abstract method `filter` called'); + } + iterate(e, t, a, r) { + const i = e.width, + n = e.height; + let s = e.items; + const o = t.width, + c = t.height, + l = t.items; + let h, u, d, f, g, p; + for (d = 0, h = 0; h < n; h++) { + f = 2 * h * o; + for (u = 0; u < i; u++, d++, f += 2) l[f] = s[d]; + } + s = e.items = null; + const m = new Float32Array(o + 8); + if (1 === o) { + if (0 != (1 & a)) for (p = 0, d = 0; p < c; p++, d += o) l[d] *= 0.5; + } else + for (p = 0, d = 0; p < c; p++, d += o) { + m.set(l.subarray(d, d + o), 4); + this.extend(m, 4, o); + this.filter(m, 4, o); + l.set(m.subarray(4, 4 + o), d); + } + let b = 16; + const y = []; + for (h = 0; h < b; h++) y.push(new Float32Array(c + 8)); + let w, + S = 0; + e = 4 + c; + if (1 === c) { + if (0 != (1 & r)) for (g = 0; g < o; g++) l[g] *= 0.5; + } else + for (g = 0; g < o; g++) { + if (0 === S) { + b = Math.min(o - g, b); + for (d = g, f = 4; f < e; d += o, f++) + for (w = 0; w < b; w++) y[w][f] = l[d + w]; + S = b; + } + S--; + const t = y[S]; + this.extend(t, 4, c); + this.filter(t, 4, c); + if (0 === S) { + d = g - b + 1; + for (f = 4; f < e; d += o, f++) for (w = 0; w < b; w++) l[d + w] = y[w][f]; + } + } + return { width: o, height: c, items: l }; + } + } + class IrreversibleTransform extends Transform { + filter(e, t, a) { + const r = a >> 1; + let i, n, s, o; + const c = -1.586134342059924, + l = -0.052980118572961, + h = 0.882911075530934, + u = 0.443506852043971, + d = 1.230174104914001; + i = (t |= 0) - 3; + for (n = r + 4; n--; i += 2) e[i] *= 0.8128930661159609; + i = t - 2; + s = u * e[i - 1]; + for (n = r + 3; n--; i += 2) { + o = u * e[i + 1]; + e[i] = d * e[i] - s - o; + if (!n--) break; + i += 2; + s = u * e[i + 1]; + e[i] = d * e[i] - s - o; + } + i = t - 1; + s = h * e[i - 1]; + for (n = r + 2; n--; i += 2) { + o = h * e[i + 1]; + e[i] -= s + o; + if (!n--) break; + i += 2; + s = h * e[i + 1]; + e[i] -= s + o; + } + i = t; + s = l * e[i - 1]; + for (n = r + 1; n--; i += 2) { + o = l * e[i + 1]; + e[i] -= s + o; + if (!n--) break; + i += 2; + s = l * e[i + 1]; + e[i] -= s + o; + } + if (0 !== r) { + i = t + 1; + s = c * e[i - 1]; + for (n = r; n--; i += 2) { + o = c * e[i + 1]; + e[i] -= s + o; + if (!n--) break; + i += 2; + s = c * e[i + 1]; + e[i] -= s + o; + } + } + } + } + class ReversibleTransform extends Transform { + filter(e, t, a) { + const r = a >> 1; + let i, n; + for (i = t |= 0, n = r + 1; n--; i += 2) e[i] -= (e[i - 1] + e[i + 1] + 2) >> 2; + for (i = t + 1, n = r; n--; i += 2) e[i] += (e[i - 1] + e[i + 1]) >> 1; + } + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.LZWStream = void 0; + var r = a(18); + class LZWStream extends r.DecodeStream { + constructor(e, t, a) { + super(t); + this.str = e; + this.dict = e.dict; + this.cachedData = 0; + this.bitsCached = 0; + const r = 4096, + i = { + earlyChange: a, + codeLength: 9, + nextCode: 258, + dictionaryValues: new Uint8Array(r), + dictionaryLengths: new Uint16Array(r), + dictionaryPrevCodes: new Uint16Array(r), + currentSequence: new Uint8Array(r), + currentSequenceLength: 0, + }; + for (let e = 0; e < 256; ++e) { + i.dictionaryValues[e] = e; + i.dictionaryLengths[e] = 1; + } + this.lzwState = i; + } + readBits(e) { + let t = this.bitsCached, + a = this.cachedData; + for (; t < e; ) { + const e = this.str.getByte(); + if (-1 === e) { + this.eof = !0; + return null; + } + a = (a << 8) | e; + t += 8; + } + this.bitsCached = t -= e; + this.cachedData = a; + this.lastCode = null; + return (a >>> t) & ((1 << e) - 1); + } + readBlock() { + let e, + t, + a, + r = 1024; + const i = this.lzwState; + if (!i) return; + const n = i.earlyChange; + let s = i.nextCode; + const o = i.dictionaryValues, + c = i.dictionaryLengths, + l = i.dictionaryPrevCodes; + let h = i.codeLength, + u = i.prevCode; + const d = i.currentSequence; + let f = i.currentSequenceLength, + g = 0, + p = this.bufferLength, + m = this.ensureBuffer(this.bufferLength + r); + for (e = 0; e < 512; e++) { + const e = this.readBits(h), + i = f > 0; + if (e < 256) { + d[0] = e; + f = 1; + } else { + if (!(e >= 258)) { + if (256 === e) { + h = 9; + s = 258; + f = 0; + continue; + } + this.eof = !0; + delete this.lzwState; + break; + } + if (e < s) { + f = c[e]; + for (t = f - 1, a = e; t >= 0; t--) { + d[t] = o[a]; + a = l[a]; + } + } else d[f++] = d[0]; + } + if (i) { + l[s] = u; + c[s] = c[u] + 1; + o[s] = d[0]; + s++; + h = + (s + n) & (s + n - 1) + ? h + : 0 | Math.min(Math.log(s + n) / 0.6931471805599453 + 1, 12); + } + u = e; + g += f; + if (r < g) { + do { + r += 512; + } while (r < g); + m = this.ensureBuffer(this.bufferLength + r); + } + for (t = 0; t < f; t++) m[p++] = d[t]; + } + i.nextCode = s; + i.codeLength = h; + i.prevCode = u; + i.currentSequenceLength = f; + this.bufferLength = p; + } + } + t.LZWStream = LZWStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PredictorStream = void 0; + var r = a(18), + i = a(4), + n = a(2); + class PredictorStream extends r.DecodeStream { + constructor(e, t, a) { + super(t); + if (!(a instanceof i.Dict)) return e; + const r = (this.predictor = a.get('Predictor') || 1); + if (r <= 1) return e; + if (2 !== r && (r < 10 || r > 15)) + throw new n.FormatError(`Unsupported predictor: ${r}`); + this.readBlock = 2 === r ? this.readBlockTiff : this.readBlockPng; + this.str = e; + this.dict = e.dict; + const s = (this.colors = a.get('Colors') || 1), + o = (this.bits = a.get('BPC', 'BitsPerComponent') || 8), + c = (this.columns = a.get('Columns') || 1); + this.pixBytes = (s * o + 7) >> 3; + this.rowBytes = (c * s * o + 7) >> 3; + return this; + } + readBlockTiff() { + const e = this.rowBytes, + t = this.bufferLength, + a = this.ensureBuffer(t + e), + r = this.bits, + i = this.colors, + n = this.str.getBytes(e); + this.eof = !n.length; + if (this.eof) return; + let s, + o = 0, + c = 0, + l = 0, + h = 0, + u = t; + if (1 === r && 1 === i) + for (s = 0; s < e; ++s) { + let e = n[s] ^ o; + e ^= e >> 1; + e ^= e >> 2; + e ^= e >> 4; + o = (1 & e) << 7; + a[u++] = e; + } + else if (8 === r) { + for (s = 0; s < i; ++s) a[u++] = n[s]; + for (; s < e; ++s) { + a[u] = a[u - i] + n[s]; + u++; + } + } else if (16 === r) { + const t = 2 * i; + for (s = 0; s < t; ++s) a[u++] = n[s]; + for (; s < e; s += 2) { + const e = + ((255 & n[s]) << 8) + + (255 & n[s + 1]) + + ((255 & a[u - t]) << 8) + + (255 & a[u - t + 1]); + a[u++] = (e >> 8) & 255; + a[u++] = 255 & e; + } + } else { + const e = new Uint8Array(i + 1), + u = (1 << r) - 1; + let d = 0, + f = t; + const g = this.columns; + for (s = 0; s < g; ++s) + for (let t = 0; t < i; ++t) { + if (l < r) { + o = (o << 8) | (255 & n[d++]); + l += 8; + } + e[t] = (e[t] + (o >> (l - r))) & u; + l -= r; + c = (c << r) | e[t]; + h += r; + if (h >= 8) { + a[f++] = (c >> (h - 8)) & 255; + h -= 8; + } + } + h > 0 && (a[f++] = (c << (8 - h)) + (o & ((1 << (8 - h)) - 1))); + } + this.bufferLength += e; + } + readBlockPng() { + const e = this.rowBytes, + t = this.pixBytes, + a = this.str.getByte(), + r = this.str.getBytes(e); + this.eof = !r.length; + if (this.eof) return; + const i = this.bufferLength, + s = this.ensureBuffer(i + e); + let o = s.subarray(i - e, i); + 0 === o.length && (o = new Uint8Array(e)); + let c, + l, + h, + u = i; + switch (a) { + case 0: + for (c = 0; c < e; ++c) s[u++] = r[c]; + break; + case 1: + for (c = 0; c < t; ++c) s[u++] = r[c]; + for (; c < e; ++c) { + s[u] = (s[u - t] + r[c]) & 255; + u++; + } + break; + case 2: + for (c = 0; c < e; ++c) s[u++] = (o[c] + r[c]) & 255; + break; + case 3: + for (c = 0; c < t; ++c) s[u++] = (o[c] >> 1) + r[c]; + for (; c < e; ++c) { + s[u] = (((o[c] + s[u - t]) >> 1) + r[c]) & 255; + u++; + } + break; + case 4: + for (c = 0; c < t; ++c) { + l = o[c]; + h = r[c]; + s[u++] = l + h; + } + for (; c < e; ++c) { + l = o[c]; + const e = o[c - t], + a = s[u - t], + i = a + l - e; + let n = i - a; + n < 0 && (n = -n); + let d = i - l; + d < 0 && (d = -d); + let f = i - e; + f < 0 && (f = -f); + h = r[c]; + s[u++] = n <= d && n <= f ? a + h : d <= f ? l + h : e + h; + } + break; + default: + throw new n.FormatError(`Unsupported predictor: ${a}`); + } + this.bufferLength += e; + } + } + t.PredictorStream = PredictorStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.RunLengthStream = void 0; + var r = a(18); + class RunLengthStream extends r.DecodeStream { + constructor(e, t) { + super(t); + this.str = e; + this.dict = e.dict; + } + readBlock() { + const e = this.str.getBytes(2); + if (!e || e.length < 2 || 128 === e[0]) { + this.eof = !0; + return; + } + let t, + a = this.bufferLength, + r = e[0]; + if (r < 128) { + t = this.ensureBuffer(a + r + 1); + t[a++] = e[1]; + if (r > 0) { + const e = this.str.getBytes(r); + t.set(e, a); + a += r; + } + } else { + r = 257 - r; + const i = e[1]; + t = this.ensureBuffer(a + r + 1); + for (let e = 0; e < r; e++) t[a++] = i; + } + this.bufferLength = a; + } + } + t.RunLengthStream = RunLengthStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Font = t.ErrorFont = void 0; + var r = a(2), + i = a(35), + n = a(38), + s = a(40), + o = a(39), + c = a(37), + l = a(41), + h = a(42), + u = a(43), + d = a(44), + f = a(45), + g = a(46), + p = a(14), + m = a(47), + b = a(3), + y = a(8), + w = a(48); + const S = [ + [57344, 63743], + [1048576, 1114109], + ], + x = 1e3, + C = [ + 'ascent', + 'bbox', + 'black', + 'bold', + 'charProcOperatorList', + 'composite', + 'cssFontInfo', + 'data', + 'defaultVMetrics', + 'defaultWidth', + 'descent', + 'fallbackName', + 'fontMatrix', + 'isInvalidPDFjsFont', + 'isType3Font', + 'italic', + 'loadedName', + 'mimetype', + 'missingFile', + 'name', + 'remeasure', + 'subtype', + 'type', + 'vertical', + ], + k = [ + 'cMap', + 'defaultEncoding', + 'differences', + 'isMonospace', + 'isSerifFont', + 'isSymbolicFont', + 'seacMap', + 'toFontChar', + 'toUnicode', + 'vmetrics', + 'widths', + ]; + function adjustWidths(e) { + if (!e.fontMatrix) return; + if (e.fontMatrix[0] === r.FONT_IDENTITY_MATRIX[0]) return; + const t = 0.001 / e.fontMatrix[0], + a = e.widths; + for (const e in a) a[e] *= t; + e.defaultWidth *= t; + } + function amendFallbackToUnicode(e) { + if (!e.fallbackToUnicode) return; + if (e.toUnicode instanceof h.IdentityToUnicodeMap) return; + const t = []; + for (const a in e.fallbackToUnicode) + e.toUnicode.has(a) || (t[a] = e.fallbackToUnicode[a]); + t.length > 0 && e.toUnicode.amend(t); + } + class Glyph { + constructor(e, t, a, r, i, n, s, o, c) { + this.originalCharCode = e; + this.fontChar = t; + this.unicode = a; + this.accent = r; + this.width = i; + this.vmetric = n; + this.operatorListId = s; + this.isSpace = o; + this.isInFont = c; + } + get category() { + return (0, r.shadow)( + this, + 'category', + (0, s.getCharUnicodeCategory)(this.unicode), + !0, + ); + } + } + function int16(e, t) { + return (e << 8) + t; + } + function writeSignedInt16(e, t, a) { + e[t + 1] = a; + e[t] = a >>> 8; + } + function signedInt16(e, t) { + const a = (e << 8) + t; + return 32768 & a ? a - 65536 : a; + } + function string16(e) { + return String.fromCharCode((e >> 8) & 255, 255 & e); + } + function safeString16(e) { + e > 32767 ? (e = 32767) : e < -32768 && (e = -32768); + return String.fromCharCode((e >> 8) & 255, 255 & e); + } + function isTrueTypeCollectionFile(e) { + const t = e.peekBytes(4); + return 'ttcf' === (0, r.bytesToString)(t); + } + function getFontFileType(e, { type: t, subtype: a, composite: i }) { + let n, s; + if ( + (function isTrueTypeFile(e) { + const t = e.peekBytes(4); + return 65536 === (0, b.readUint32)(t, 0) || 'true' === (0, r.bytesToString)(t); + })(e) || + isTrueTypeCollectionFile(e) + ) + n = i ? 'CIDFontType2' : 'TrueType'; + else if ( + (function isOpenTypeFile(e) { + const t = e.peekBytes(4); + return 'OTTO' === (0, r.bytesToString)(t); + })(e) + ) + n = i ? 'CIDFontType2' : 'OpenType'; + else if ( + (function isType1File(e) { + const t = e.peekBytes(2); + return (37 === t[0] && 33 === t[1]) || (128 === t[0] && 1 === t[1]); + })(e) + ) + n = i ? 'CIDFontType0' : 'MMType1' === t ? 'MMType1' : 'Type1'; + else if ( + (function isCFFFile(e) { + const t = e.peekBytes(4); + return t[0] >= 1 && t[3] >= 1 && t[3] <= 4; + })(e) + ) + if (i) { + n = 'CIDFontType0'; + s = 'CIDFontType0C'; + } else { + n = 'MMType1' === t ? 'MMType1' : 'Type1'; + s = 'Type1C'; + } + else { + (0, r.warn)('getFontFileType: Unable to detect correct font file Type/Subtype.'); + n = t; + s = a; + } + return [n, s]; + } + function applyStandardFontGlyphMap(e, t) { + for (const a in t) e[+a] = t[a]; + } + function buildToFontChar(e, t, a) { + const r = []; + let i; + for (let a = 0, n = e.length; a < n; a++) { + i = (0, s.getUnicodeForGlyph)(e[a], t); + -1 !== i && (r[a] = i); + } + for (const e in a) { + i = (0, s.getUnicodeForGlyph)(a[e], t); + -1 !== i && (r[+e] = i); + } + return r; + } + function isMacNameRecord(e) { + return 1 === e.platform && 0 === e.encoding && 0 === e.language; + } + function isWinNameRecord(e) { + return 3 === e.platform && 1 === e.encoding && 1033 === e.language; + } + function convertCidString(e, t, a = !1) { + switch (t.length) { + case 1: + return t.charCodeAt(0); + case 2: + return (t.charCodeAt(0) << 8) | t.charCodeAt(1); + } + const i = `Unsupported CID string (charCode ${e}): "${t}".`; + if (a) throw new r.FormatError(i); + (0, r.warn)(i); + return t; + } + function adjustMapping(e, t, a, i) { + const n = Object.create(null), + s = new Map(), + o = [], + c = new Set(); + let l = 0; + let h = S[l][0], + u = S[l][1]; + for (let f in e) { + f |= 0; + let g = e[f]; + if (!t(g)) continue; + if (h > u) { + l++; + if (l >= S.length) { + (0, r.warn)('Ran out of space in font private use area.'); + break; + } + h = S[l][0]; + u = S[l][1]; + } + const p = h++; + 0 === g && (g = a); + let m = i.get(f); + 'string' == typeof m && (m = m.codePointAt(0)); + if ( + m && + !((d = m), (S[0][0] <= d && d <= S[0][1]) || (S[1][0] <= d && d <= S[1][1])) && + !c.has(g) + ) { + s.set(m, g); + c.add(g); + } + n[p] = g; + o[f] = p; + } + var d; + return { + toFontChar: o, + charCodeToGlyphId: n, + toUnicodeExtraMap: s, + nextAvailableFontCharCode: h, + }; + } + function createCmapTable(e, t, a) { + const i = (function getRanges(e, t, a) { + const r = []; + for (const t in e) e[t] >= a || r.push({ fontCharCode: 0 | t, glyphId: e[t] }); + if (t) for (const [e, i] of t) i >= a || r.push({ fontCharCode: e, glyphId: i }); + 0 === r.length && r.push({ fontCharCode: 0, glyphId: 0 }); + r.sort(function fontGetRangesSort(e, t) { + return e.fontCharCode - t.fontCharCode; + }); + const i = [], + n = r.length; + for (let e = 0; e < n; ) { + const t = r[e].fontCharCode, + a = [r[e].glyphId]; + ++e; + let s = t; + for (; e < n && s + 1 === r[e].fontCharCode; ) { + a.push(r[e].glyphId); + ++s; + ++e; + if (65535 === s) break; + } + i.push([t, s, a]); + } + return i; + })(e, t, a), + n = i.at(-1)[1] > 65535 ? 2 : 1; + let s, + o, + c, + l, + h = '\0\0' + string16(n) + '\0\0' + (0, r.string32)(4 + 8 * n); + for (s = i.length - 1; s >= 0 && !(i[s][0] <= 65535); --s); + const u = s + 1; + i[s][0] < 65535 && 65535 === i[s][1] && (i[s][1] = 65534); + const d = i[s][1] < 65535 ? 1 : 0, + f = u + d, + g = m.OpenTypeFileBuilder.getSearchParams(f, 2); + let p, + b, + y, + w, + S = '', + x = '', + C = '', + k = '', + v = '', + F = 0; + for (s = 0, o = u; s < o; s++) { + p = i[s]; + b = p[0]; + y = p[1]; + S += string16(b); + x += string16(y); + w = p[2]; + let e = !0; + for (c = 1, l = w.length; c < l; ++c) + if (w[c] !== w[c - 1] + 1) { + e = !1; + break; + } + if (e) { + C += string16((w[0] - b) & 65535); + k += string16(0); + } else { + const e = 2 * (f - s) + 2 * F; + F += y - b + 1; + C += string16(0); + k += string16(e); + for (c = 0, l = w.length; c < l; ++c) v += string16(w[c]); + } + } + if (d > 0) { + x += 'ÿÿ'; + S += 'ÿÿ'; + C += '\0'; + k += '\0\0'; + } + const O = + '\0\0' + + string16(2 * f) + + string16(g.range) + + string16(g.entry) + + string16(g.rangeShift) + + x + + '\0\0' + + S + + C + + k + + v; + let T = '', + M = ''; + if (n > 1) { + h += '\0\0\n' + (0, r.string32)(4 + 8 * n + 4 + O.length); + T = ''; + for (s = 0, o = i.length; s < o; s++) { + p = i[s]; + b = p[0]; + w = p[2]; + let e = w[0]; + for (c = 1, l = w.length; c < l; ++c) + if (w[c] !== w[c - 1] + 1) { + y = p[0] + c - 1; + T += (0, r.string32)(b) + (0, r.string32)(y) + (0, r.string32)(e); + b = y + 1; + e = w[c]; + } + T += (0, r.string32)(b) + (0, r.string32)(p[1]) + (0, r.string32)(e); + } + M = + '\0\f\0\0' + + (0, r.string32)(T.length + 16) + + '\0\0\0\0' + + (0, r.string32)(T.length / 12); + } + return h + '\0' + string16(O.length + 4) + O + M + T; + } + function createOS2Table(e, t, a) { + a ||= { unitsPerEm: 0, yMax: 0, yMin: 0, ascent: 0, descent: 0 }; + let i = 0, + n = 0, + o = 0, + c = 0, + l = null, + h = 0, + u = -1; + if (t) { + for (let e in t) { + e |= 0; + (l > e || !l) && (l = e); + h < e && (h = e); + u = (0, s.getUnicodeRangeFor)(e, u); + if (u < 32) i |= 1 << u; + else if (u < 64) n |= 1 << (u - 32); + else if (u < 96) o |= 1 << (u - 64); + else { + if (!(u < 123)) + throw new r.FormatError( + 'Unicode ranges Bits > 123 are reserved for internal usage', + ); + c |= 1 << (u - 96); + } + } + h > 65535 && (h = 65535); + } else { + l = 0; + h = 255; + } + const d = e.bbox || [0, 0, 0, 0], + f = a.unitsPerEm || 1 / (e.fontMatrix || r.FONT_IDENTITY_MATRIX)[0], + g = e.ascentScaled ? 1 : f / x, + p = a.ascent || Math.round(g * (e.ascent || d[3])); + let m = a.descent || Math.round(g * (e.descent || d[1])); + m > 0 && e.descent > 0 && d[1] < 0 && (m = -m); + const b = a.yMax || p, + y = -a.yMin || -m; + return ( + '\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0' + + String.fromCharCode(e.fixedPitch ? 9 : 0) + + '\0\0\0\0\0\0' + + (0, r.string32)(i) + + (0, r.string32)(n) + + (0, r.string32)(o) + + (0, r.string32)(c) + + '*21*' + + string16(e.italicAngle ? 1 : 0) + + string16(l || e.firstChar) + + string16(h || e.lastChar) + + string16(p) + + string16(m) + + '\0d' + + string16(b) + + string16(y) + + '\0\0\0\0\0\0\0\0' + + string16(e.xHeight) + + string16(e.capHeight) + + string16(0) + + string16(l || e.firstChar) + + '\0' + ); + } + function createPostTable(e) { + const t = Math.floor(65536 * e.italicAngle); + return ( + '\0\0\0' + + (0, r.string32)(t) + + '\0\0\0\0' + + (0, r.string32)(e.fixedPitch ? 1 : 0) + + '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' + ); + } + function createPostscriptName(e) { + return e.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g, '').slice(0, 63); + } + function createNameTable(e, t) { + t || (t = [[], []]); + const a = [ + t[0][0] || 'Original licence', + t[0][1] || e, + t[0][2] || 'Unknown', + t[0][3] || 'uniqueID', + t[0][4] || e, + t[0][5] || 'Version 0.11', + t[0][6] || createPostscriptName(e), + t[0][7] || 'Unknown', + t[0][8] || 'Unknown', + t[0][9] || 'Unknown', + ], + r = []; + let i, n, s, o, c; + for (i = 0, n = a.length; i < n; i++) { + c = t[1][i] || a[i]; + const e = []; + for (s = 0, o = c.length; s < o; s++) e.push(string16(c.charCodeAt(s))); + r.push(e.join('')); + } + const l = [a, r], + h = ['\0', '\0'], + u = ['\0\0', '\0'], + d = ['\0\0', '\t'], + f = a.length * h.length; + let g = '\0\0' + string16(f) + string16(12 * f + 6), + p = 0; + for (i = 0, n = h.length; i < n; i++) { + const e = l[i]; + for (s = 0, o = e.length; s < o; s++) { + c = e[s]; + g += h[i] + u[i] + d[i] + string16(s) + string16(c.length) + string16(p); + p += c.length; + } + } + g += a.join('') + r.join(''); + return g; + } + t.Font = class Font { + constructor(e, t, a) { + this.name = e; + this.psName = null; + this.mimetype = null; + this.disableFontFace = !1; + this.loadedName = a.loadedName; + this.isType3Font = a.isType3Font; + this.missingFile = !1; + this.cssFontInfo = a.cssFontInfo; + this._charsCache = Object.create(null); + this._glyphCache = Object.create(null); + let i = !!(a.flags & n.FontFlags.Serif); + if (!i && !a.isSimulatedFlags) { + const t = e.replaceAll(/[,_]/g, '-').split('-')[0], + a = (0, l.getSerifFonts)(); + for (const e of t.split('+')) + if (a[e]) { + i = !0; + break; + } + } + this.isSerifFont = i; + this.isSymbolicFont = !!(a.flags & n.FontFlags.Symbolic); + this.isMonospace = !!(a.flags & n.FontFlags.FixedPitch); + let { type: s, subtype: o } = a; + this.type = s; + this.subtype = o; + const c = e.match(/^InvalidPDFjsFont_(.*)_\d+$/); + this.isInvalidPDFjsFont = !!c; + this.isInvalidPDFjsFont + ? (this.fallbackName = c[1]) + : this.isMonospace + ? (this.fallbackName = 'monospace') + : this.isSerifFont + ? (this.fallbackName = 'serif') + : (this.fallbackName = 'sans-serif'); + this.differences = a.differences; + this.widths = a.widths; + this.defaultWidth = a.defaultWidth; + this.composite = a.composite; + this.cMap = a.cMap; + this.capHeight = a.capHeight / x; + this.ascent = a.ascent / x; + this.descent = a.descent / x; + this.lineHeight = this.ascent - this.descent; + this.fontMatrix = a.fontMatrix; + this.bbox = a.bbox; + this.defaultEncoding = a.defaultEncoding; + this.toUnicode = a.toUnicode; + this.toFontChar = []; + if ('Type3' === a.type) { + for (let e = 0; e < 256; e++) + this.toFontChar[e] = this.differences[e] || a.defaultEncoding[e]; + return; + } + this.cidEncoding = a.cidEncoding || ''; + this.vertical = !!a.vertical; + if (this.vertical) { + this.vmetrics = a.vmetrics; + this.defaultVMetrics = a.defaultVMetrics; + } + if (!t || t.isEmpty) { + t && (0, r.warn)('Font file is empty in "' + e + '" (' + this.loadedName + ')'); + this.fallbackToSystemFont(a); + return; + } + [s, o] = getFontFileType(t, a); + (s === this.type && o === this.subtype) || + (0, r.info)( + `Inconsistent font file Type/SubType, expected: ${this.type}/${this.subtype} but found: ${s}/${o}.`, + ); + let h; + try { + switch (s) { + case 'MMType1': + (0, r.info)('MMType1 font (' + e + '), falling back to Type1.'); + case 'Type1': + case 'CIDFontType0': + this.mimetype = 'font/opentype'; + const i = + 'Type1C' === o || 'CIDFontType0C' === o + ? new u.CFFFont(t, a) + : new w.Type1Font(e, t, a); + adjustWidths(a); + h = this.convert(e, i, a); + break; + case 'OpenType': + case 'TrueType': + case 'CIDFontType2': + this.mimetype = 'font/opentype'; + h = this.checkAndRepair(e, t, a); + if (this.isOpenType) { + adjustWidths(a); + s = 'OpenType'; + } + break; + default: + throw new r.FormatError(`Font ${s} is not supported`); + } + } catch (e) { + (0, r.warn)(e); + this.fallbackToSystemFont(a); + return; + } + amendFallbackToUnicode(a); + this.data = h; + this.type = s; + this.subtype = o; + this.fontMatrix = a.fontMatrix; + this.widths = a.widths; + this.defaultWidth = a.defaultWidth; + this.toUnicode = a.toUnicode; + this.seacMap = a.seacMap; + } + get renderer() { + const e = d.FontRendererFactory.create(this, n.SEAC_ANALYSIS_ENABLED); + return (0, r.shadow)(this, 'renderer', e); + } + exportData(e = !1) { + const t = e ? [...C, ...k] : C, + a = Object.create(null); + let r, i; + for (r of t) { + i = this[r]; + void 0 !== i && (a[r] = i); + } + return a; + } + fallbackToSystemFont(e) { + this.missingFile = !0; + const { name: t, type: a } = this; + let i = (0, n.normalizeFontName)(t); + const u = (0, l.getStdFontMap)(), + d = (0, l.getNonStdFontMap)(), + g = !!u[i], + p = !(!d[i] || !u[d[i]]); + i = u[i] || d[i] || i; + const m = (0, f.getFontBasicMetrics)()[i]; + if (m) { + isNaN(this.ascent) && (this.ascent = m.ascent / x); + isNaN(this.descent) && (this.descent = m.descent / x); + isNaN(this.capHeight) && (this.capHeight = m.capHeight / x); + } + this.bold = /bold/gi.test(i); + this.italic = /oblique|italic/gi.test(i); + this.black = /Black/g.test(t); + const b = /Narrow/g.test(t); + this.remeasure = (!g || b) && Object.keys(this.widths).length > 0; + if ((g || p) && 'CIDFontType2' === a && this.cidEncoding.startsWith('Identity-')) { + const a = e.cidToGidMap, + r = []; + applyStandardFontGlyphMap(r, (0, l.getGlyphMapForStandardFonts)()); + /Arial-?Black/i.test(t) + ? applyStandardFontGlyphMap(r, (0, l.getSupplementalGlyphMapForArialBlack)()) + : /Calibri/i.test(t) && + applyStandardFontGlyphMap(r, (0, l.getSupplementalGlyphMapForCalibri)()); + if (a) { + for (const e in r) { + const t = r[e]; + void 0 !== a[t] && (r[+e] = a[t]); + } + a.length !== this.toUnicode.length && + e.hasIncludedToUnicodeMap && + this.toUnicode instanceof h.IdentityToUnicodeMap && + this.toUnicode.forEach(function (e, t) { + const i = r[e]; + void 0 === a[i] && (r[+e] = t); + }); + } + this.toUnicode instanceof h.IdentityToUnicodeMap || + this.toUnicode.forEach(function (e, t) { + r[+e] = t; + }); + this.toFontChar = r; + this.toUnicode = new h.ToUnicodeMap(r); + } else if (/Symbol/i.test(i)) + this.toFontChar = buildToFontChar( + c.SymbolSetEncoding, + (0, o.getGlyphsUnicode)(), + this.differences, + ); + else if (/Dingbats/i.test(i)) { + /Wingdings/i.test(t) && + (0, r.warn)('Non-embedded Wingdings font, falling back to ZapfDingbats.'); + this.toFontChar = buildToFontChar( + c.ZapfDingbatsEncoding, + (0, o.getDingbatsGlyphsUnicode)(), + this.differences, + ); + } else if (g) { + const e = buildToFontChar( + this.defaultEncoding, + (0, o.getGlyphsUnicode)(), + this.differences, + ); + 'CIDFontType2' !== a || + this.cidEncoding.startsWith('Identity-') || + this.toUnicode instanceof h.IdentityToUnicodeMap || + this.toUnicode.forEach(function (t, a) { + e[+t] = a; + }); + this.toFontChar = e; + } else { + const e = (0, o.getGlyphsUnicode)(), + a = []; + this.toUnicode.forEach((t, r) => { + if (!this.composite) { + const a = this.differences[t] || this.defaultEncoding[t], + i = (0, s.getUnicodeForGlyph)(a, e); + -1 !== i && (r = i); + } + a[+t] = r; + }); + this.composite && + this.toUnicode instanceof h.IdentityToUnicodeMap && + /Tahoma|Verdana/i.test(t) && + applyStandardFontGlyphMap(a, (0, l.getGlyphMapForStandardFonts)()); + this.toFontChar = a; + } + amendFallbackToUnicode(e); + this.loadedName = i.split('-')[0]; + } + checkAndRepair(e, t, a) { + const s = [ + 'OS/2', + 'cmap', + 'head', + 'hhea', + 'hmtx', + 'maxp', + 'name', + 'post', + 'loca', + 'glyf', + 'fpgm', + 'prep', + 'cvt ', + 'CFF ', + ]; + function readTables(e, t) { + const a = Object.create(null); + a['OS/2'] = null; + a.cmap = null; + a.head = null; + a.hhea = null; + a.hmtx = null; + a.maxp = null; + a.name = null; + a.post = null; + for (let r = 0; r < t; r++) { + const t = readTableEntry(e); + s.includes(t.tag) && 0 !== t.length && (a[t.tag] = t); + } + return a; + } + function readTableEntry(e) { + const t = e.getString(4), + a = e.getInt32() >>> 0, + r = e.getInt32() >>> 0, + i = e.getInt32() >>> 0, + n = e.pos; + e.pos = e.start || 0; + e.skip(r); + const s = e.getBytes(i); + e.pos = n; + if ('head' === t) { + s[8] = s[9] = s[10] = s[11] = 0; + s[17] |= 32; + } + return { tag: t, checksum: a, length: i, offset: r, data: s }; + } + function readOpenTypeHeader(e) { + return { + version: e.getString(4), + numTables: e.getUint16(), + searchRange: e.getUint16(), + entrySelector: e.getUint16(), + rangeShift: e.getUint16(), + }; + } + function sanitizeGlyph(e, t, a, r, i, n) { + const s = { length: 0, sizeOfInstructions: 0 }; + if (a - t <= 12) return s; + const o = e.subarray(t, a); + let c = signedInt16(o[0], o[1]); + if (c < 0) { + c = -1; + writeSignedInt16(o, 0, c); + r.set(o, i); + s.length = o.length; + return s; + } + let l, + h = 10, + u = 0; + for (l = 0; l < c; l++) { + u = ((o[h] << 8) | o[h + 1]) + 1; + h += 2; + } + const d = h, + f = (o[h] << 8) | o[h + 1]; + s.sizeOfInstructions = f; + h += 2 + f; + const g = h; + let p = 0; + for (l = 0; l < u; l++) { + const e = o[h++]; + 192 & e && (o[h - 1] = 63 & e); + let t = 2; + 2 & e ? (t = 1) : 16 & e && (t = 0); + let a = 2; + 4 & e ? (a = 1) : 32 & e && (a = 0); + const r = t + a; + p += r; + if (8 & e) { + const e = o[h++]; + l += e; + p += e * r; + } + } + if (0 === p) return s; + let m = h + p; + if (m > o.length) return s; + if (!n && f > 0) { + r.set(o.subarray(0, d), i); + r.set([0, 0], i + d); + r.set(o.subarray(g, m), i + d + 2); + m -= f; + o.length - m > 3 && (m = (m + 3) & -4); + s.length = m; + return s; + } + if (o.length - m > 3) { + m = (m + 3) & -4; + r.set(o.subarray(0, m), i); + s.length = m; + return s; + } + r.set(o, i); + s.length = o.length; + return s; + } + function readNameTable(e) { + const a = (t.start || 0) + e.offset; + t.pos = a; + const r = [[], []], + i = [], + n = e.length, + s = a + n; + if (0 !== t.getUint16() || n < 6) return [r, i]; + const o = t.getUint16(), + c = t.getUint16(); + let l, h; + for (l = 0; l < o && t.pos + 12 <= s; l++) { + const e = { + platform: t.getUint16(), + encoding: t.getUint16(), + language: t.getUint16(), + name: t.getUint16(), + length: t.getUint16(), + offset: t.getUint16(), + }; + (isMacNameRecord(e) || isWinNameRecord(e)) && i.push(e); + } + for (l = 0, h = i.length; l < h; l++) { + const e = i[l]; + if (e.length <= 0) continue; + const n = a + c + e.offset; + if (n + e.length > s) continue; + t.pos = n; + const o = e.name; + if (e.encoding) { + let a = ''; + for (let r = 0, i = e.length; r < i; r += 2) + a += String.fromCharCode(t.getUint16()); + r[1][o] = a; + } else r[0][o] = t.getString(e.length); + } + return [r, i]; + } + const l = [ + 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 sanitizeTTProgram(e, t) { + let a, + i, + n, + s, + o, + c = e.data, + h = 0, + u = 0, + d = 0; + const f = [], + g = [], + p = []; + let m = t.tooComplexToFollowFunctions, + b = !1, + y = 0, + w = 0; + for (let e = c.length; h < e; ) { + const e = c[h++]; + if (64 === e) { + i = c[h++]; + if (b || w) h += i; + else for (a = 0; a < i; a++) f.push(c[h++]); + } else if (65 === e) { + i = c[h++]; + if (b || w) h += 2 * i; + else + for (a = 0; a < i; a++) { + n = c[h++]; + f.push((n << 8) | c[h++]); + } + } else if (176 == (248 & e)) { + i = e - 176 + 1; + if (b || w) h += i; + else for (a = 0; a < i; a++) f.push(c[h++]); + } else if (184 == (248 & e)) { + i = e - 184 + 1; + if (b || w) h += 2 * i; + else + for (a = 0; a < i; a++) { + n = c[h++]; + f.push((n << 8) | c[h++]); + } + } else if (43 !== e || m) + if (44 !== e || m) { + if (45 === e) + if (b) { + b = !1; + u = h; + } else { + o = g.pop(); + if (!o) { + (0, r.warn)('TT: ENDF bad stack'); + t.hintsValid = !1; + return; + } + s = p.pop(); + c = o.data; + h = o.i; + t.functionsStackDeltas[s] = f.length - o.stackTop; + } + else if (137 === e) { + if (b || w) { + (0, r.warn)('TT: nested IDEFs not allowed'); + m = !0; + } + b = !0; + d = h; + } else if (88 === e) ++y; + else if (27 === e) w = y; + else if (89 === e) { + w === y && (w = 0); + --y; + } else if (28 === e && !b && !w) { + const e = f.at(-1); + e > 0 && (h += e - 1); + } + } else { + if (b || w) { + (0, r.warn)('TT: nested FDEFs not allowed'); + m = !0; + } + b = !0; + d = h; + s = f.pop(); + t.functionsDefined[s] = { data: c, i: h }; + } + else if (!b && !w) { + s = f.at(-1); + if (isNaN(s)) (0, r.info)('TT: CALL empty stack (or invalid entry).'); + else { + t.functionsUsed[s] = !0; + if (s in t.functionsStackDeltas) { + const e = f.length + t.functionsStackDeltas[s]; + if (e < 0) { + (0, r.warn)('TT: CALL invalid functions stack delta.'); + t.hintsValid = !1; + return; + } + f.length = e; + } else if (s in t.functionsDefined && !p.includes(s)) { + g.push({ data: c, i: h, stackTop: f.length - 1 }); + p.push(s); + o = t.functionsDefined[s]; + if (!o) { + (0, r.warn)('TT: CALL non-existent function'); + t.hintsValid = !1; + return; + } + c = o.data; + h = o.i; + } + } + } + if (!b && !w) { + let t = 0; + e <= 142 ? (t = l[e]) : e >= 192 && e <= 223 ? (t = -1) : e >= 224 && (t = -2); + if (e >= 113 && e <= 117) { + i = f.pop(); + isNaN(i) || (t = 2 * -i); + } + for (; t < 0 && f.length > 0; ) { + f.pop(); + t++; + } + for (; t > 0; ) { + f.push(NaN); + t--; + } + } + } + t.tooComplexToFollowFunctions = m; + const S = [c]; + h > c.length && S.push(new Uint8Array(h - c.length)); + if (d > u) { + (0, r.warn)('TT: complementing a missing function tail'); + S.push(new Uint8Array([34, 45])); + } + !(function foldTTTable(e, t) { + if (t.length > 1) { + let a, + r, + i = 0; + for (a = 0, r = t.length; a < r; a++) i += t[a].length; + i = (i + 3) & -4; + const n = new Uint8Array(i); + let s = 0; + for (a = 0, r = t.length; a < r; a++) { + n.set(t[a], s); + s += t[a].length; + } + e.data = n; + e.length = i; + } + })(e, S); + } + let d, f, b, w; + if (isTrueTypeCollectionFile((t = new y.Stream(new Uint8Array(t.getBytes()))))) { + const e = (function readTrueTypeCollectionData(e, t) { + const { numFonts: a, offsetTable: i } = (function readTrueTypeCollectionHeader( + e, + ) { + const t = e.getString(4); + (0, r.assert)('ttcf' === t, 'Must be a TrueType Collection font.'); + const a = e.getUint16(), + i = e.getUint16(), + n = e.getInt32() >>> 0, + s = []; + for (let t = 0; t < n; t++) s.push(e.getInt32() >>> 0); + const o = { + ttcTag: t, + majorVersion: a, + minorVersion: i, + numFonts: n, + offsetTable: s, + }; + switch (a) { + case 1: + return o; + case 2: + o.dsigTag = e.getInt32() >>> 0; + o.dsigLength = e.getInt32() >>> 0; + o.dsigOffset = e.getInt32() >>> 0; + return o; + } + throw new r.FormatError(`Invalid TrueType Collection majorVersion: ${a}.`); + })(e), + n = t.split('+'); + let s; + for (let o = 0; o < a; o++) { + e.pos = (e.start || 0) + i[o]; + const a = readOpenTypeHeader(e), + c = readTables(e, a.numTables); + if (!c.name) + throw new r.FormatError( + 'TrueType Collection font must contain a "name" table.', + ); + const [l] = readNameTable(c.name); + for (let e = 0, r = l.length; e < r; e++) + for (let r = 0, i = l[e].length; r < i; r++) { + const i = l[e][r] && l[e][r].replaceAll(/\s/g, ''); + if (i) { + if (i === t) return { header: a, tables: c }; + if (!(n.length < 2)) + for (const e of n) i === e && (s = { name: e, header: a, tables: c }); + } + } + } + if (s) { + (0, r.warn)( + `TrueType Collection does not contain "${t}" font, falling back to "${s.name}" font instead.`, + ); + return { header: s.header, tables: s.tables }; + } + throw new r.FormatError(`TrueType Collection does not contain "${t}" font.`); + })(t, this.name); + d = e.header; + f = e.tables; + } else { + d = readOpenTypeHeader(t); + f = readTables(t, d.numTables); + } + const S = !f['CFF ']; + if (S) { + if (!f.loca) throw new r.FormatError('Required "loca" table is not found'); + if (!f.glyf) { + (0, r.warn)('Required "glyf" table is not found -- trying to recover.'); + f.glyf = { tag: 'glyf', data: new Uint8Array(0) }; + } + this.isOpenType = !1; + } else { + const t = + a.composite && + ((a.cidToGidMap || []).length > 0 || !(a.cMap instanceof p.IdentityCMap)); + if (('OTTO' === d.version && !t) || !f.head || !f.hhea || !f.maxp || !f.post) { + w = new y.Stream(f['CFF '].data); + b = new u.CFFFont(w, a); + adjustWidths(a); + return this.convert(e, b, a); + } + delete f.glyf; + delete f.loca; + delete f.fpgm; + delete f.prep; + delete f['cvt ']; + this.isOpenType = !0; + } + if (!f.maxp) throw new r.FormatError('Required "maxp" table is not found'); + t.pos = (t.start || 0) + f.maxp.offset; + const x = t.getInt32(), + C = t.getUint16(); + if (a.scaleFactors && a.scaleFactors.length === C && S) { + const { scaleFactors: e } = a, + t = int16(f.head.data[50], f.head.data[51]), + r = new g.GlyfTable({ + glyfTable: f.glyf.data, + isGlyphLocationsLong: t, + locaTable: f.loca.data, + numGlyphs: C, + }); + r.scale(e); + const { glyf: i, loca: n, isLocationLong: s } = r.write(); + f.glyf.data = i; + f.loca.data = n; + if (s !== !!t) { + f.head.data[50] = 0; + f.head.data[51] = s ? 1 : 0; + } + const o = f.hmtx.data; + for (let t = 0; t < C; t++) { + const a = 4 * t, + r = Math.round(e[t] * int16(o[a], o[a + 1])); + o[a] = (r >> 8) & 255; + o[a + 1] = 255 & r; + writeSignedInt16(o, a + 2, Math.round(e[t] * signedInt16(o[a + 2], o[a + 3]))); + } + } + let k = C + 1, + v = !0; + if (k > 65535) { + v = !1; + k = C; + (0, r.warn)('Not enough space in glyfs to duplicate first glyph.'); + } + let F = 0, + O = 0; + if (x >= 65536 && f.maxp.length >= 22) { + t.pos += 8; + if (t.getUint16() > 2) { + f.maxp.data[14] = 0; + f.maxp.data[15] = 2; + } + t.pos += 4; + F = t.getUint16(); + t.pos += 4; + O = t.getUint16(); + } + f.maxp.data[4] = k >> 8; + f.maxp.data[5] = 255 & k; + const T = (function sanitizeTTPrograms(e, t, a, i) { + const n = { + functionsDefined: [], + functionsUsed: [], + functionsStackDeltas: [], + tooComplexToFollowFunctions: !1, + hintsValid: !0, + }; + e && sanitizeTTProgram(e, n); + t && sanitizeTTProgram(t, n); + e && + (function checkInvalidFunctions(e, t) { + if (!e.tooComplexToFollowFunctions) + if (e.functionsDefined.length > t) { + (0, r.warn)('TT: more functions defined than expected'); + e.hintsValid = !1; + } else + for (let a = 0, i = e.functionsUsed.length; a < i; a++) { + if (a > t) { + (0, r.warn)('TT: invalid function id: ' + a); + e.hintsValid = !1; + return; + } + if (e.functionsUsed[a] && !e.functionsDefined[a]) { + (0, r.warn)('TT: undefined function: ' + a); + e.hintsValid = !1; + return; + } + } + })(n, i); + if (a && 1 & a.length) { + const e = new Uint8Array(a.length + 1); + e.set(a.data); + a.data = e; + } + return n.hintsValid; + })(f.fpgm, f.prep, f['cvt '], F); + if (!T) { + delete f.fpgm; + delete f.prep; + delete f['cvt ']; + } + !(function sanitizeMetrics(e, t, a, i, n, s) { + if (!t) { + a && (a.data = null); + return; + } + e.pos = (e.start || 0) + t.offset; + e.pos += 4; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + e.pos += 2; + const o = e.getUint16(); + e.pos += 8; + e.pos += 2; + let c = e.getUint16(); + if (0 !== o) { + if (!(2 & int16(i.data[44], i.data[45]))) { + t.data[22] = 0; + t.data[23] = 0; + } + } + if (c > n) { + (0, r.info)( + `The numOfMetrics (${c}) should not be greater than the numGlyphs (${n}).`, + ); + c = n; + t.data[34] = (65280 & c) >> 8; + t.data[35] = 255 & c; + } + const l = n - c - ((a.length - 4 * c) >> 1); + if (l > 0) { + const e = new Uint8Array(a.length + 2 * l); + e.set(a.data); + if (s) { + e[a.length] = a.data[2]; + e[a.length + 1] = a.data[3]; + } + a.data = e; + } + })(t, f.hhea, f.hmtx, f.head, k, v); + if (!f.head) throw new r.FormatError('Required "head" table is not found'); + !(function sanitizeHead(e, t, a) { + const i = e.data, + n = (function int32(e, t, a, r) { + return (e << 24) + (t << 16) + (a << 8) + r; + })(i[0], i[1], i[2], i[3]); + if (n >> 16 != 1) { + (0, r.info)('Attempting to fix invalid version in head table: ' + n); + i[0] = 0; + i[1] = 1; + i[2] = 0; + i[3] = 0; + } + const s = int16(i[50], i[51]); + if (s < 0 || s > 1) { + (0, r.info)('Attempting to fix invalid indexToLocFormat in head table: ' + s); + const e = t + 1; + if (a === e << 1) { + i[50] = 0; + i[51] = 0; + } else { + if (a !== e << 2) + throw new r.FormatError('Could not fix indexToLocFormat: ' + s); + i[50] = 0; + i[51] = 1; + } + } + })(f.head, C, S ? f.loca.length : 0); + let M = Object.create(null); + if (S) { + const e = int16(f.head.data[50], f.head.data[51]), + t = (function sanitizeGlyphLocations(e, t, a, r, i, n, s) { + let o, c, l; + if (r) { + o = 4; + c = function fontItemDecodeLong(e, t) { + return (e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]; + }; + l = function fontItemEncodeLong(e, t, a) { + e[t] = (a >>> 24) & 255; + e[t + 1] = (a >> 16) & 255; + e[t + 2] = (a >> 8) & 255; + e[t + 3] = 255 & a; + }; + } else { + o = 2; + c = function fontItemDecode(e, t) { + return (e[t] << 9) | (e[t + 1] << 1); + }; + l = function fontItemEncode(e, t, a) { + e[t] = (a >> 9) & 255; + e[t + 1] = (a >> 1) & 255; + }; + } + const h = n ? a + 1 : a, + u = o * (1 + h), + d = new Uint8Array(u); + d.set(e.data.subarray(0, u)); + e.data = d; + const f = t.data, + g = f.length, + p = new Uint8Array(g); + let m, b; + const y = []; + for (m = 0, b = 0; m < a + 1; m++, b += o) { + let e = c(d, b); + e > g && (e = g); + y.push({ index: m, offset: e, endOffset: 0 }); + } + y.sort((e, t) => e.offset - t.offset); + for (m = 0; m < a; m++) y[m].endOffset = y[m + 1].offset; + y.sort((e, t) => e.index - t.index); + for (m = 0; m < a; m++) { + const { offset: e, endOffset: t } = y[m]; + if (0 !== e || 0 !== t) break; + const a = y[m + 1].offset; + if (0 !== a) { + y[m].endOffset = a; + break; + } + } + const w = Object.create(null); + let S = 0; + l(d, 0, S); + for (m = 0, b = o; m < a; m++, b += o) { + const e = sanitizeGlyph(f, y[m].offset, y[m].endOffset, p, S, i), + t = e.length; + 0 === t && (w[m] = !0); + e.sizeOfInstructions > s && (s = e.sizeOfInstructions); + S += t; + l(d, b, S); + } + if (0 === S) { + const e = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]); + for (m = 0, b = o; m < h; m++, b += o) l(d, b, e.length); + t.data = e; + } else if (n) { + const a = c(d, o); + if (p.length > a + S) t.data = p.subarray(0, a + S); + else { + t.data = new Uint8Array(a + S); + t.data.set(p.subarray(0, S)); + } + t.data.set(p.subarray(0, a), S); + l(e.data, d.length - o, S + a); + } else t.data = p.subarray(0, S); + return { missingGlyphs: w, maxSizeOfInstructions: s }; + })(f.loca, f.glyf, C, e, T, v, O); + M = t.missingGlyphs; + if (x >= 65536 && f.maxp.length >= 22) { + f.maxp.data[26] = t.maxSizeOfInstructions >> 8; + f.maxp.data[27] = 255 & t.maxSizeOfInstructions; + } + } + if (!f.hhea) throw new r.FormatError('Required "hhea" table is not found'); + if (0 === f.hhea.data[10] && 0 === f.hhea.data[11]) { + f.hhea.data[10] = 255; + f.hhea.data[11] = 255; + } + const E = { + unitsPerEm: int16(f.head.data[18], f.head.data[19]), + yMax: int16(f.head.data[42], f.head.data[43]), + yMin: signedInt16(f.head.data[38], f.head.data[39]), + ascent: signedInt16(f.hhea.data[4], f.hhea.data[5]), + descent: signedInt16(f.hhea.data[6], f.hhea.data[7]), + lineGap: signedInt16(f.hhea.data[8], f.hhea.data[9]), + }; + this.ascent = E.ascent / E.unitsPerEm; + this.descent = E.descent / E.unitsPerEm; + this.lineGap = E.lineGap / E.unitsPerEm; + if (this.cssFontInfo && this.cssFontInfo.lineHeight) { + this.lineHeight = this.cssFontInfo.metrics.lineHeight; + this.lineGap = this.cssFontInfo.metrics.lineGap; + } else this.lineHeight = this.ascent - this.descent + this.lineGap; + f.post && + (function readPostScriptTable(e, a, i) { + const s = (t.start || 0) + e.offset; + t.pos = s; + const o = s + e.length, + c = t.getInt32(); + t.skip(28); + let l, + h, + u = !0; + switch (c) { + case 65536: + l = n.MacStandardGlyphOrdering; + break; + case 131072: + const e = t.getUint16(); + if (e !== i) { + u = !1; + break; + } + const s = []; + for (h = 0; h < e; ++h) { + const e = t.getUint16(); + if (e >= 32768) { + u = !1; + break; + } + s.push(e); + } + if (!u) break; + const d = [], + f = []; + for (; t.pos < o; ) { + const e = t.getByte(); + f.length = e; + for (h = 0; h < e; ++h) f[h] = String.fromCharCode(t.getByte()); + d.push(f.join('')); + } + l = []; + for (h = 0; h < e; ++h) { + const e = s[h]; + e < 258 ? l.push(n.MacStandardGlyphOrdering[e]) : l.push(d[e - 258]); + } + break; + case 196608: + break; + default: + (0, r.warn)('Unknown/unsupported post table version ' + c); + u = !1; + a.defaultEncoding && (l = a.defaultEncoding); + } + a.glyphNames = l; + return u; + })(f.post, a, C); + f.post = { tag: 'post', data: createPostTable(a) }; + const D = []; + function hasGlyph(e) { + return !M[e]; + } + if (a.composite) { + const e = a.cidToGidMap || [], + t = 0 === e.length; + a.cMap.forEach(function (a, i) { + 'string' == typeof i && (i = convertCidString(a, i, !0)); + if (i > 65535) throw new r.FormatError('Max size of CID is 65,535'); + let n = -1; + t ? (n = i) : void 0 !== e[i] && (n = e[i]); + n >= 0 && n < C && hasGlyph(n) && (D[a] = n); + }); + } else { + const e = (function readCmapTable(e, t, a, i) { + if (!e) { + (0, r.warn)('No cmap table available.'); + return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; + } + let n, + s = (t.start || 0) + e.offset; + t.pos = s; + t.skip(2); + const o = t.getUint16(); + let c, + l = !1; + for (let e = 0; e < o; e++) { + const r = t.getUint16(), + n = t.getUint16(), + s = t.getInt32() >>> 0; + let h = !1; + if (!c || c.platformId !== r || c.encodingId !== n) { + if (0 !== r || (0 !== n && 1 !== n && 3 !== n)) + if (1 === r && 0 === n) h = !0; + else if (3 !== r || 1 !== n || (!i && c)) { + if (a && 3 === r && 0 === n) { + h = !0; + let a = !0; + if (e < o - 1) { + const e = t.peekBytes(2); + int16(e[0], e[1]) < r && (a = !1); + } + a && (l = !0); + } + } else { + h = !0; + a || (l = !0); + } + else h = !0; + h && (c = { platformId: r, encodingId: n, offset: s }); + if (l) break; + } + } + c && (t.pos = s + c.offset); + if (!c || -1 === t.peekByte()) { + (0, r.warn)('Could not find a preferred cmap table.'); + return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; + } + const h = t.getUint16(); + let u = !1; + const d = []; + let f, g; + if (0 === h) { + t.skip(4); + for (f = 0; f < 256; f++) { + const e = t.getByte(); + e && d.push({ charCode: f, glyphId: e }); + } + u = !0; + } else if (2 === h) { + t.skip(4); + const e = []; + let a = 0; + for (let r = 0; r < 256; r++) { + const r = t.getUint16() >> 3; + e.push(r); + a = Math.max(r, a); + } + const r = []; + for (let e = 0; e <= a; e++) + r.push({ + firstCode: t.getUint16(), + entryCount: t.getUint16(), + idDelta: signedInt16(t.getByte(), t.getByte()), + idRangePos: t.pos + t.getUint16(), + }); + for (let a = 0; a < 256; a++) + if (0 === e[a]) { + t.pos = r[0].idRangePos + 2 * a; + g = t.getUint16(); + d.push({ charCode: a, glyphId: g }); + } else { + const i = r[e[a]]; + for (f = 0; f < i.entryCount; f++) { + const e = (a << 8) + f + i.firstCode; + t.pos = i.idRangePos + 2 * f; + g = t.getUint16(); + 0 !== g && (g = (g + i.idDelta) % 65536); + d.push({ charCode: e, glyphId: g }); + } + } + } else if (4 === h) { + t.skip(4); + const e = t.getUint16() >> 1; + t.skip(6); + const a = []; + let r; + for (r = 0; r < e; r++) a.push({ end: t.getUint16() }); + t.skip(2); + for (r = 0; r < e; r++) a[r].start = t.getUint16(); + for (r = 0; r < e; r++) a[r].delta = t.getUint16(); + let i, + o = 0; + for (r = 0; r < e; r++) { + n = a[r]; + const s = t.getUint16(); + if (s) { + i = (s >> 1) - (e - r); + n.offsetIndex = i; + o = Math.max(o, i + n.end - n.start + 1); + } else n.offsetIndex = -1; + } + const c = []; + for (f = 0; f < o; f++) c.push(t.getUint16()); + for (r = 0; r < e; r++) { + n = a[r]; + s = n.start; + const e = n.end, + t = n.delta; + i = n.offsetIndex; + for (f = s; f <= e; f++) + if (65535 !== f) { + g = i < 0 ? f : c[i + f - s]; + g = (g + t) & 65535; + d.push({ charCode: f, glyphId: g }); + } + } + } else if (6 === h) { + t.skip(4); + const e = t.getUint16(), + a = t.getUint16(); + for (f = 0; f < a; f++) { + g = t.getUint16(); + const a = e + f; + d.push({ charCode: a, glyphId: g }); + } + } else { + if (12 !== h) { + (0, r.warn)('cmap table has unsupported format: ' + h); + return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; + } + { + t.skip(10); + const e = t.getInt32() >>> 0; + for (f = 0; f < e; f++) { + const e = t.getInt32() >>> 0, + a = t.getInt32() >>> 0; + let r = t.getInt32() >>> 0; + for (let t = e; t <= a; t++) d.push({ charCode: t, glyphId: r++ }); + } + } + } + d.sort(function (e, t) { + return e.charCode - t.charCode; + }); + for (let e = 1; e < d.length; e++) + if (d[e - 1].charCode === d[e].charCode) { + d.splice(e, 1); + e--; + } + return { + platformId: c.platformId, + encodingId: c.encodingId, + mappings: d, + hasShortCmap: u, + }; + })(f.cmap, t, this.isSymbolicFont, a.hasEncoding), + i = e.platformId, + s = e.encodingId, + l = e.mappings; + let u = [], + d = !1; + !a.hasEncoding || + ('MacRomanEncoding' !== a.baseEncodingName && + 'WinAnsiEncoding' !== a.baseEncodingName) || + (u = (0, c.getEncoding)(a.baseEncodingName)); + if ( + a.hasEncoding && + !this.isSymbolicFont && + ((3 === i && 1 === s) || (1 === i && 0 === s)) + ) { + const e = (0, o.getGlyphsUnicode)(); + for (let t = 0; t < 256; t++) { + let r; + r = + void 0 !== this.differences[t] + ? this.differences[t] + : u.length && '' !== u[t] + ? u[t] + : c.StandardEncoding[t]; + if (!r) continue; + const o = (0, n.recoverGlyphName)(r, e); + let d; + 3 === i && 1 === s + ? (d = e[o]) + : 1 === i && 0 === s && (d = c.MacRomanEncoding.indexOf(o)); + if (void 0 === d) { + if ( + !a.glyphNames && + a.hasIncludedToUnicodeMap && + !(this.toUnicode instanceof h.IdentityToUnicodeMap) + ) { + const e = this.toUnicode.get(t); + e && (d = e.codePointAt(0)); + } + if (void 0 === d) continue; + } + for (const e of l) + if (e.charCode === d) { + D[t] = e.glyphId; + break; + } + } + } else if (0 === i) { + for (const e of l) D[e.charCode] = e.glyphId; + d = !0; + } else + for (const e of l) { + let t = e.charCode; + 3 === i && t >= 61440 && t <= 61695 && (t &= 255); + D[t] = e.glyphId; + } + if (a.glyphNames && (u.length || this.differences.length)) + for (let e = 0; e < 256; ++e) { + if (!d && void 0 !== D[e]) continue; + const t = this.differences[e] || u[e]; + if (!t) continue; + const r = a.glyphNames.indexOf(t); + r > 0 && hasGlyph(r) && (D[e] = r); + } + } + 0 === D.length && (D[0] = 0); + let N = k - 1; + v || (N = 0); + if (!a.cssFontInfo) { + const e = adjustMapping(D, hasGlyph, N, this.toUnicode); + this.toFontChar = e.toFontChar; + f.cmap = { + tag: 'cmap', + data: createCmapTable(e.charCodeToGlyphId, e.toUnicodeExtraMap, k), + }; + (f['OS/2'] && + (function validateOS2Table(e, t) { + t.pos = (t.start || 0) + e.offset; + const a = t.getUint16(); + t.skip(60); + const r = t.getUint16(); + if (a < 4 && 768 & r) return !1; + if (t.getUint16() > t.getUint16()) return !1; + t.skip(6); + if (0 === t.getUint16()) return !1; + e.data[8] = e.data[9] = 0; + return !0; + })(f['OS/2'], t)) || + (f['OS/2'] = { tag: 'OS/2', data: createOS2Table(a, e.charCodeToGlyphId, E) }); + } + if (!S) + try { + w = new y.Stream(f['CFF '].data); + b = new i.CFFParser(w, a, n.SEAC_ANALYSIS_ENABLED).parse(); + b.duplicateFirstGlyph(); + const e = new i.CFFCompiler(b); + f['CFF '].data = e.compile(); + } catch (e) { + (0, r.warn)('Failed to compile font ' + a.loadedName); + } + if (f.name) { + const [t, r] = readNameTable(f.name); + f.name.data = createNameTable(e, t); + this.psName = t[0][6] || null; + a.composite || + (function adjustTrueTypeToUnicode(e, t, a) { + if (e.isInternalFont) return; + if (e.hasIncludedToUnicodeMap) return; + if (e.hasEncoding) return; + if (e.toUnicode instanceof h.IdentityToUnicodeMap) return; + if (!t) return; + if (0 === a.length) return; + if (e.defaultEncoding === c.WinAnsiEncoding) return; + for (const e of a) if (!isWinNameRecord(e)) return; + const r = c.WinAnsiEncoding, + i = [], + n = (0, o.getGlyphsUnicode)(); + for (const e in r) { + const t = r[e]; + if ('' === t) continue; + const a = n[t]; + void 0 !== a && (i[e] = String.fromCharCode(a)); + } + i.length > 0 && e.toUnicode.amend(i); + })(a, this.isSymbolicFont, r); + } else f.name = { tag: 'name', data: createNameTable(this.name) }; + const R = new m.OpenTypeFileBuilder(d.version); + for (const e in f) R.addTable(e, f[e].data); + return R.toArray(); + } + convert(e, t, a) { + a.fixedPitch = !1; + a.builtInEncoding && + (function adjustType1ToUnicode(e, t) { + if (e.isInternalFont) return; + if (e.hasIncludedToUnicodeMap) return; + if (t === e.defaultEncoding) return; + if (e.toUnicode instanceof h.IdentityToUnicodeMap) return; + const a = [], + r = (0, o.getGlyphsUnicode)(); + for (const i in t) { + if (e.hasEncoding && (e.baseEncodingName || void 0 !== e.differences[i])) + continue; + const n = t[i], + o = (0, s.getUnicodeForGlyph)(n, r); + -1 !== o && (a[i] = String.fromCharCode(o)); + } + a.length > 0 && e.toUnicode.amend(a); + })(a, a.builtInEncoding); + let i = 1; + t instanceof u.CFFFont && (i = t.numGlyphs - 1); + const l = t.getGlyphMapping(a); + let d = null, + f = l, + g = null; + if (!a.cssFontInfo) { + d = adjustMapping(l, t.hasGlyphId.bind(t), i, this.toUnicode); + this.toFontChar = d.toFontChar; + f = d.charCodeToGlyphId; + g = d.toUnicodeExtraMap; + } + const p = t.numGlyphs; + function getCharCodes(e, t) { + let a = null; + for (const r in e) t === e[r] && (a ||= []).push(0 | r); + return a; + } + function createCharCode(e, t) { + for (const a in e) if (t === e[a]) return 0 | a; + d.charCodeToGlyphId[d.nextAvailableFontCharCode] = t; + return d.nextAvailableFontCharCode++; + } + const b = t.seacs; + if (d && n.SEAC_ANALYSIS_ENABLED && b && b.length) { + const e = a.fontMatrix || r.FONT_IDENTITY_MATRIX, + i = t.getCharset(), + n = Object.create(null); + for (let t in b) { + t |= 0; + const a = b[t], + r = c.StandardEncoding[a[2]], + s = c.StandardEncoding[a[3]], + o = i.indexOf(r), + h = i.indexOf(s); + if (o < 0 || h < 0) continue; + const u = { + x: a[0] * e[0] + a[1] * e[2] + e[4], + y: a[0] * e[1] + a[1] * e[3] + e[5], + }, + f = getCharCodes(l, t); + if (f) + for (const e of f) { + const t = d.charCodeToGlyphId, + a = createCharCode(t, o), + r = createCharCode(t, h); + n[e] = { baseFontCharCode: a, accentFontCharCode: r, accentOffset: u }; + } + } + a.seacMap = n; + } + const y = 1 / (a.fontMatrix || r.FONT_IDENTITY_MATRIX)[0], + w = new m.OpenTypeFileBuilder('OTTO'); + w.addTable('CFF ', t.data); + w.addTable('OS/2', createOS2Table(a, f)); + w.addTable('cmap', createCmapTable(f, g, p)); + w.addTable( + 'head', + '\0\0\0\0\0\0\0\0\0\0_<õ\0\0' + + safeString16(y) + + "\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0" + + safeString16(a.descent) + + 'ÿ' + + safeString16(a.ascent) + + string16(a.italicAngle ? 2 : 0) + + '\0\0\0\0\0\0\0', + ); + w.addTable( + 'hhea', + '\0\0\0' + + safeString16(a.ascent) + + safeString16(a.descent) + + '\0\0ÿÿ\0\0\0\0\0\0' + + safeString16(a.capHeight) + + safeString16(Math.tan(a.italicAngle) * a.xHeight) + + '\0\0\0\0\0\0\0\0\0\0\0\0' + + string16(p), + ); + w.addTable( + 'hmtx', + (function fontFieldsHmtx() { + const e = t.charstrings, + a = t.cff ? t.cff.widths : null; + let r = '\0\0\0\0'; + for (let t = 1, i = p; t < i; t++) { + let i = 0; + if (e) { + const a = e[t - 1]; + i = 'width' in a ? a.width : 0; + } else a && (i = Math.ceil(a[t] || 0)); + r += string16(i) + string16(0); + } + return r; + })(), + ); + w.addTable('maxp', '\0\0P\0' + string16(p)); + w.addTable('name', createNameTable(e)); + w.addTable('post', createPostTable(a)); + return w.toArray(); + } + get spaceWidth() { + const e = ['space', 'minus', 'one', 'i', 'I']; + let t; + for (const a of e) { + if (a in this.widths) { + t = this.widths[a]; + break; + } + const e = (0, o.getGlyphsUnicode)()[a]; + let r = 0; + if (this.composite && this.cMap.contains(e)) { + r = this.cMap.lookup(e); + 'string' == typeof r && (r = convertCidString(e, r)); + } + !r && this.toUnicode && (r = this.toUnicode.charCodeOf(e)); + r <= 0 && (r = e); + t = this.widths[r]; + if (t) break; + } + return (0, r.shadow)(this, 'spaceWidth', t || this.defaultWidth); + } + _charToGlyph(e, t = !1) { + let a, + i, + n, + o = this._glyphCache[e]; + if (o && o.isSpace === t) return o; + let c = e; + if (this.cMap && this.cMap.contains(e)) { + c = this.cMap.lookup(e); + 'string' == typeof c && (c = convertCidString(e, c)); + } + i = this.widths[c]; + 'number' != typeof i && (i = this.defaultWidth); + const l = this.vmetrics && this.vmetrics[c]; + let h = this.toUnicode.get(e) || e; + 'number' == typeof h && (h = String.fromCharCode(h)); + let u = void 0 !== this.toFontChar[e]; + a = this.toFontChar[e] || e; + if (this.missingFile) { + const t = this.differences[e] || this.defaultEncoding[e]; + ('.notdef' !== t && '' !== t) || 'Type1' !== this.type || (a = 32); + a = (0, s.mapSpecialUnicodeValues)(a); + } + this.isType3Font && (n = a); + let d = null; + if (this.seacMap && this.seacMap[e]) { + u = !0; + const t = this.seacMap[e]; + a = t.baseFontCharCode; + d = { + fontChar: String.fromCodePoint(t.accentFontCharCode), + offset: t.accentOffset, + }; + } + let f = ''; + 'number' == typeof a && + (a <= 1114111 + ? (f = String.fromCodePoint(a)) + : (0, r.warn)(`charToGlyph - invalid fontCharCode: ${a}`)); + o = new Glyph(e, f, h, d, i, l, n, t, u); + return (this._glyphCache[e] = o); + } + charsToGlyphs(e) { + let t = this._charsCache[e]; + if (t) return t; + t = []; + if (this.cMap) { + const a = Object.create(null), + r = e.length; + let i = 0; + for (; i < r; ) { + this.cMap.readCharCode(e, i, a); + const { charcode: r, length: n } = a; + i += n; + const s = this._charToGlyph(r, 1 === n && 32 === e.charCodeAt(i - 1)); + t.push(s); + } + } else + for (let a = 0, r = e.length; a < r; ++a) { + const r = e.charCodeAt(a), + i = this._charToGlyph(r, 32 === r); + t.push(i); + } + return (this._charsCache[e] = t); + } + getCharPositions(e) { + const t = []; + if (this.cMap) { + const a = Object.create(null); + let r = 0; + for (; r < e.length; ) { + this.cMap.readCharCode(e, r, a); + const i = a.length; + t.push([r, r + i]); + r += i; + } + } else for (let a = 0, r = e.length; a < r; ++a) t.push([a, a + 1]); + return t; + } + get glyphCacheValues() { + return Object.values(this._glyphCache); + } + encodeString(e) { + const t = [], + a = [], + hasCurrentBufErrors = () => t.length % 2 == 1, + r = + this.toUnicode instanceof h.IdentityToUnicodeMap + ? (e) => this.toUnicode.charCodeOf(e) + : (e) => this.toUnicode.charCodeOf(String.fromCodePoint(e)); + for (let i = 0, n = e.length; i < n; i++) { + const n = e.codePointAt(i); + n > 55295 && (n < 57344 || n > 65533) && i++; + if (this.toUnicode) { + const e = r(n); + if (-1 !== e) { + if (hasCurrentBufErrors()) { + t.push(a.join('')); + a.length = 0; + } + for (let t = (this.cMap ? this.cMap.getCharCodeLength(e) : 1) - 1; t >= 0; t--) + a.push(String.fromCharCode((e >> (8 * t)) & 255)); + continue; + } + } + if (!hasCurrentBufErrors()) { + t.push(a.join('')); + a.length = 0; + } + a.push(String.fromCodePoint(n)); + } + t.push(a.join('')); + return t; + } + }; + t.ErrorFont = class ErrorFont { + constructor(e) { + this.error = e; + this.loadedName = 'g_font_error'; + this.missingFile = !0; + } + charsToGlyphs() { + return []; + } + encodeString(e) { + return [e]; + } + exportData(e = !1) { + return { error: this.error }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CFFTopDict = + t.CFFStrings = + t.CFFStandardStrings = + t.CFFPrivateDict = + t.CFFParser = + t.CFFIndex = + t.CFFHeader = + t.CFFFDSelect = + t.CFFCompiler = + t.CFFCharset = + t.CFF = + void 0; + var r = a(2), + i = a(36), + n = a(37); + const s = [ + '.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', + ]; + t.CFFStandardStrings = s; + const o = 391, + c = [ + null, + { id: 'hstem', min: 2, stackClearing: !0, stem: !0 }, + null, + { id: 'vstem', min: 2, stackClearing: !0, stem: !0 }, + { id: 'vmoveto', min: 1, stackClearing: !0 }, + { id: 'rlineto', min: 2, resetStack: !0 }, + { id: 'hlineto', min: 1, resetStack: !0 }, + { id: 'vlineto', min: 1, resetStack: !0 }, + { id: 'rrcurveto', min: 6, resetStack: !0 }, + null, + { id: 'callsubr', min: 1, undefStack: !0 }, + { id: 'return', min: 0, undefStack: !0 }, + null, + null, + { id: 'endchar', min: 0, stackClearing: !0 }, + null, + null, + null, + { id: 'hstemhm', min: 2, stackClearing: !0, stem: !0 }, + { id: 'hintmask', min: 0, stackClearing: !0 }, + { id: 'cntrmask', min: 0, stackClearing: !0 }, + { id: 'rmoveto', min: 2, stackClearing: !0 }, + { id: 'hmoveto', min: 1, stackClearing: !0 }, + { id: 'vstemhm', min: 2, stackClearing: !0, stem: !0 }, + { id: 'rcurveline', min: 8, resetStack: !0 }, + { id: 'rlinecurve', min: 8, resetStack: !0 }, + { id: 'vvcurveto', min: 4, resetStack: !0 }, + { id: 'hhcurveto', min: 4, resetStack: !0 }, + null, + { id: 'callgsubr', min: 1, undefStack: !0 }, + { id: 'vhcurveto', min: 4, resetStack: !0 }, + { id: 'hvcurveto', min: 4, resetStack: !0 }, + ], + l = [ + 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(e, t) { + e[t - 2] = e[t - 2] + e[t - 1]; + }, + }, + { + id: 'sub', + min: 2, + stackDelta: -1, + stackFn(e, t) { + e[t - 2] = e[t - 2] - e[t - 1]; + }, + }, + { + id: 'div', + min: 2, + stackDelta: -1, + stackFn(e, t) { + e[t - 2] = e[t - 2] / e[t - 1]; + }, + }, + null, + { + id: 'neg', + min: 1, + stackDelta: 0, + stackFn(e, t) { + e[t - 1] = -e[t - 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(e, t) { + e[t - 2] = e[t - 2] * e[t - 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: !0 }, + { id: 'flex', min: 13, resetStack: !0 }, + { id: 'hflex1', min: 9, resetStack: !0 }, + { id: 'flex1', min: 11, resetStack: !0 }, + ]; + t.CFFParser = class CFFParser { + constructor(e, t, a) { + this.bytes = e.getBytes(); + this.properties = t; + this.seacAnalysisEnabled = !!a; + } + parse() { + const e = this.properties, + t = new CFF(); + this.cff = t; + const a = this.parseHeader(), + r = this.parseIndex(a.endPos), + i = this.parseIndex(r.endPos), + n = this.parseIndex(i.endPos), + s = this.parseIndex(n.endPos), + o = this.parseDict(i.obj.get(0)), + c = this.createDict(CFFTopDict, o, t.strings); + t.header = a.obj; + t.names = this.parseNameIndex(r.obj); + t.strings = this.parseStringIndex(n.obj); + t.topDict = c; + t.globalSubrIndex = s.obj; + this.parsePrivateDict(t.topDict); + t.isCIDFont = c.hasName('ROS'); + const l = c.getByName('CharStrings'), + h = this.parseIndex(l).obj, + u = c.getByName('FontMatrix'); + u && (e.fontMatrix = u); + const d = c.getByName('FontBBox'); + if (d) { + e.ascent = Math.max(d[3], d[1]); + e.descent = Math.min(d[1], d[3]); + e.ascentScaled = !0; + } + let f, g; + if (t.isCIDFont) { + const e = this.parseIndex(c.getByName('FDArray')).obj; + for (let a = 0, r = e.count; a < r; ++a) { + const r = e.get(a), + i = this.createDict(CFFTopDict, this.parseDict(r), t.strings); + this.parsePrivateDict(i); + t.fdArray.push(i); + } + g = null; + f = this.parseCharsets(c.getByName('charset'), h.count, t.strings, !0); + t.fdSelect = this.parseFDSelect(c.getByName('FDSelect'), h.count); + } else { + f = this.parseCharsets(c.getByName('charset'), h.count, t.strings, !1); + g = this.parseEncoding(c.getByName('Encoding'), e, t.strings, f.charset); + } + t.charset = f; + t.encoding = g; + const p = this.parseCharStrings({ + charStrings: h, + localSubrIndex: c.privateDict.subrsIndex, + globalSubrIndex: s.obj, + fdSelect: t.fdSelect, + fdArray: t.fdArray, + privateDict: c.privateDict, + }); + t.charStrings = p.charStrings; + t.seacs = p.seacs; + t.widths = p.widths; + return t; + } + parseHeader() { + let e = this.bytes; + const t = e.length; + let a = 0; + for (; a < t && 1 !== e[a]; ) ++a; + if (a >= t) throw new r.FormatError('Invalid CFF header'); + if (0 !== a) { + (0, r.info)('cff data is shifted'); + e = e.subarray(a); + this.bytes = e; + } + const i = e[0], + n = e[1], + s = e[2], + o = e[3]; + return { obj: new CFFHeader(i, n, s, o), endPos: s }; + } + parseDict(e) { + let t = 0; + function parseOperand() { + let a = e[t++]; + if (30 === a) + return (function parseFloatOperand() { + let a = ''; + const r = 15, + i = [ + '0', + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '.', + 'E', + 'E-', + null, + '-', + ], + n = e.length; + for (; t < n; ) { + const n = e[t++], + s = n >> 4, + o = 15 & n; + if (s === r) break; + a += i[s]; + if (o === r) break; + a += i[o]; + } + return parseFloat(a); + })(); + if (28 === a) { + a = e[t++]; + a = ((a << 24) | (e[t++] << 16)) >> 16; + return a; + } + if (29 === a) { + a = e[t++]; + a = (a << 8) | e[t++]; + a = (a << 8) | e[t++]; + a = (a << 8) | e[t++]; + return a; + } + if (a >= 32 && a <= 246) return a - 139; + if (a >= 247 && a <= 250) return 256 * (a - 247) + e[t++] + 108; + if (a >= 251 && a <= 254) return -256 * (a - 251) - e[t++] - 108; + (0, r.warn)('CFFParser_parseDict: "' + a + '" is a reserved command.'); + return NaN; + } + let a = []; + const i = []; + t = 0; + const n = e.length; + for (; t < n; ) { + let r = e[t]; + if (r <= 21) { + 12 === r && (r = (r << 8) | e[++t]); + i.push([r, a]); + a = []; + ++t; + } else a.push(parseOperand()); + } + return i; + } + parseIndex(e) { + const t = new CFFIndex(), + a = this.bytes, + r = (a[e++] << 8) | a[e++], + i = []; + let n, + s, + o = e; + if (0 !== r) { + const t = a[e++], + c = e + (r + 1) * t - 1; + for (n = 0, s = r + 1; n < s; ++n) { + let r = 0; + for (let i = 0; i < t; ++i) { + r <<= 8; + r += a[e++]; + } + i.push(c + r); + } + o = i[r]; + } + for (n = 0, s = i.length - 1; n < s; ++n) { + const e = i[n], + r = i[n + 1]; + t.add(a.subarray(e, r)); + } + return { obj: t, endPos: o }; + } + parseNameIndex(e) { + const t = []; + for (let a = 0, i = e.count; a < i; ++a) { + const i = e.get(a); + t.push((0, r.bytesToString)(i)); + } + return t; + } + parseStringIndex(e) { + const t = new CFFStrings(); + for (let a = 0, i = e.count; a < i; ++a) { + const i = e.get(a); + t.add((0, r.bytesToString)(i)); + } + return t; + } + createDict(e, t, a) { + const r = new e(a); + for (const [e, a] of t) r.setByKey(e, a); + return r; + } + parseCharString(e, t, a, i) { + if (!t || e.callDepth > 10) return !1; + let n = e.stackSize; + const s = e.stack; + let o = t.length; + for (let h = 0; h < o; ) { + const u = t[h++]; + let d = null; + if (12 === u) { + const e = t[h++]; + if (0 === e) { + t[h - 2] = 139; + t[h - 1] = 22; + n = 0; + } else d = l[e]; + } else if (28 === u) { + s[n] = ((t[h] << 24) | (t[h + 1] << 16)) >> 16; + h += 2; + n++; + } else if (14 === u) { + if (n >= 4) { + n -= 4; + if (this.seacAnalysisEnabled) { + e.seac = s.slice(n, n + 4); + return !1; + } + } + d = c[u]; + } else if (u >= 32 && u <= 246) { + s[n] = u - 139; + n++; + } else if (u >= 247 && u <= 254) { + s[n] = u < 251 ? ((u - 247) << 8) + t[h] + 108 : -((u - 251) << 8) - t[h] - 108; + h++; + n++; + } else if (255 === u) { + s[n] = ((t[h] << 24) | (t[h + 1] << 16) | (t[h + 2] << 8) | t[h + 3]) / 65536; + h += 4; + n++; + } else if (19 === u || 20 === u) { + e.hints += n >> 1; + h += (e.hints + 7) >> 3; + n %= 2; + d = c[u]; + } else { + if (10 === u || 29 === u) { + let t; + t = 10 === u ? a : i; + if (!t) { + d = c[u]; + (0, r.warn)('Missing subrsIndex for ' + d.id); + return !1; + } + let o = 32768; + t.count < 1240 ? (o = 107) : t.count < 33900 && (o = 1131); + const l = s[--n] + o; + if (l < 0 || l >= t.count || isNaN(l)) { + d = c[u]; + (0, r.warn)('Out of bounds subrIndex for ' + d.id); + return !1; + } + e.stackSize = n; + e.callDepth++; + if (!this.parseCharString(e, t.get(l), a, i)) return !1; + e.callDepth--; + n = e.stackSize; + continue; + } + if (11 === u) { + e.stackSize = n; + return !0; + } + if (0 === u && h === t.length) { + t[h - 1] = 14; + d = c[14]; + } else { + if (9 === u) { + t.copyWithin(h - 1, h, -1); + h -= 1; + o -= 1; + continue; + } + d = c[u]; + } + } + if (d) { + if (d.stem) { + e.hints += n >> 1; + if (3 === u || 23 === u) e.hasVStems = !0; + else if (e.hasVStems && (1 === u || 18 === u)) { + (0, r.warn)('CFF stem hints are in wrong order'); + t[h - 1] = 1 === u ? 3 : 23; + } + } + if ('min' in d && !e.undefStack && n < d.min) { + (0, r.warn)( + 'Not enough parameters for ' + + d.id + + '; actual: ' + + n + + ', expected: ' + + d.min, + ); + if (0 === n) { + t[h - 1] = 14; + return !0; + } + return !1; + } + if (e.firstStackClearing && d.stackClearing) { + e.firstStackClearing = !1; + n -= d.min; + n >= 2 && d.stem + ? (n %= 2) + : n > 1 && + (0, r.warn)('Found too many parameters for stack-clearing command'); + n > 0 && (e.width = s[n - 1]); + } + if ('stackDelta' in d) { + 'stackFn' in d && d.stackFn(s, n); + n += d.stackDelta; + } else if (d.stackClearing) n = 0; + else if (d.resetStack) { + n = 0; + e.undefStack = !1; + } else if (d.undefStack) { + n = 0; + e.undefStack = !0; + e.firstStackClearing = !1; + } + } + } + o < t.length && t.fill(14, o); + e.stackSize = n; + return !0; + } + parseCharStrings({ + charStrings: e, + localSubrIndex: t, + globalSubrIndex: a, + fdSelect: i, + fdArray: n, + privateDict: s, + }) { + const o = [], + c = [], + l = e.count; + for (let h = 0; h < l; h++) { + const l = e.get(h), + u = { + callDepth: 0, + stackSize: 0, + stack: [], + undefStack: !0, + hints: 0, + firstStackClearing: !0, + seac: null, + width: null, + hasVStems: !1, + }; + let d = !0, + f = null, + g = s; + if (i && n.length) { + const e = i.getFDIndex(h); + if (-1 === e) { + (0, r.warn)('Glyph index is not in fd select.'); + d = !1; + } + if (e >= n.length) { + (0, r.warn)('Invalid fd index for glyph index.'); + d = !1; + } + if (d) { + g = n[e].privateDict; + f = g.subrsIndex; + } + } else t && (f = t); + d && (d = this.parseCharString(u, l, f, a)); + if (null !== u.width) { + const e = g.getByName('nominalWidthX'); + c[h] = e + u.width; + } else { + const e = g.getByName('defaultWidthX'); + c[h] = e; + } + null !== u.seac && (o[h] = u.seac); + d || e.set(h, new Uint8Array([14])); + } + return { charStrings: e, seacs: o, widths: c }; + } + emptyPrivateDictionary(e) { + const t = this.createDict(CFFPrivateDict, [], e.strings); + e.setByKey(18, [0, 0]); + e.privateDict = t; + } + parsePrivateDict(e) { + if (!e.hasName('Private')) { + this.emptyPrivateDictionary(e); + return; + } + const t = e.getByName('Private'); + if (!Array.isArray(t) || 2 !== t.length) { + e.removeByName('Private'); + return; + } + const a = t[0], + r = t[1]; + if (0 === a || r >= this.bytes.length) { + this.emptyPrivateDictionary(e); + return; + } + const i = r + a, + n = this.bytes.subarray(r, i), + s = this.parseDict(n), + o = this.createDict(CFFPrivateDict, s, e.strings); + e.privateDict = o; + 0 === o.getByName('ExpansionFactor') && o.setByName('ExpansionFactor', 0.06); + if (!o.getByName('Subrs')) return; + const c = o.getByName('Subrs'), + l = r + c; + if (0 === c || l >= this.bytes.length) { + this.emptyPrivateDictionary(e); + return; + } + const h = this.parseIndex(l); + o.subrsIndex = h.obj; + } + parseCharsets(e, t, a, n) { + if (0 === e) return new CFFCharset(!0, d.ISO_ADOBE, i.ISOAdobeCharset); + if (1 === e) return new CFFCharset(!0, d.EXPERT, i.ExpertCharset); + if (2 === e) return new CFFCharset(!0, d.EXPERT_SUBSET, i.ExpertSubsetCharset); + const s = this.bytes, + o = e, + c = s[e++], + l = [n ? 0 : '.notdef']; + let h, u, f; + t -= 1; + switch (c) { + case 0: + for (f = 0; f < t; f++) { + h = (s[e++] << 8) | s[e++]; + l.push(n ? h : a.get(h)); + } + break; + case 1: + for (; l.length <= t; ) { + h = (s[e++] << 8) | s[e++]; + u = s[e++]; + for (f = 0; f <= u; f++) l.push(n ? h++ : a.get(h++)); + } + break; + case 2: + for (; l.length <= t; ) { + h = (s[e++] << 8) | s[e++]; + u = (s[e++] << 8) | s[e++]; + for (f = 0; f <= u; f++) l.push(n ? h++ : a.get(h++)); + } + break; + default: + throw new r.FormatError('Unknown charset format'); + } + const g = e, + p = s.subarray(o, g); + return new CFFCharset(!1, c, l, p); + } + parseEncoding(e, t, a, i) { + const s = Object.create(null), + o = this.bytes; + let c, + l, + h, + u = !1, + d = null; + if (0 === e || 1 === e) { + u = !0; + c = e; + const t = e ? n.ExpertEncoding : n.StandardEncoding; + for (l = 0, h = i.length; l < h; l++) { + const e = t.indexOf(i[l]); + -1 !== e && (s[e] = l); + } + } else { + const t = e; + c = o[e++]; + switch (127 & c) { + case 0: + const t = o[e++]; + for (l = 1; l <= t; l++) s[o[e++]] = l; + break; + case 1: + const a = o[e++]; + let i = 1; + for (l = 0; l < a; l++) { + const t = o[e++], + a = o[e++]; + for (let e = t; e <= t + a; e++) s[e] = i++; + } + break; + default: + throw new r.FormatError(`Unknown encoding format: ${c} in CFF`); + } + const n = e; + if (128 & c) { + o[t] &= 127; + !(function readSupplement() { + const t = o[e++]; + for (l = 0; l < t; l++) { + const t = o[e++], + r = (o[e++] << 8) + (255 & o[e++]); + s[t] = i.indexOf(a.get(r)); + } + })(); + } + d = o.subarray(t, n); + } + c &= 127; + return new CFFEncoding(u, c, s, d); + } + parseFDSelect(e, t) { + const a = this.bytes, + i = a[e++], + n = []; + let s; + switch (i) { + case 0: + for (s = 0; s < t; ++s) { + const t = a[e++]; + n.push(t); + } + break; + case 3: + const o = (a[e++] << 8) | a[e++]; + for (s = 0; s < o; ++s) { + let t = (a[e++] << 8) | a[e++]; + if (0 === s && 0 !== t) { + (0, r.warn)( + 'parseFDSelect: The first range must have a first GID of 0 -- trying to recover.', + ); + t = 0; + } + const i = a[e++], + o = (a[e] << 8) | a[e + 1]; + for (let e = t; e < o; ++e) n.push(i); + } + e += 2; + break; + default: + throw new r.FormatError(`parseFDSelect: Unknown format "${i}".`); + } + if (n.length !== t) throw new r.FormatError('parseFDSelect: Invalid font data.'); + return new CFFFDSelect(i, n); + } + }; + class CFF { + constructor() { + this.header = null; + this.names = []; + this.topDict = null; + this.strings = new CFFStrings(); + this.globalSubrIndex = null; + this.encoding = null; + this.charset = null; + this.charStrings = null; + this.fdArray = []; + this.fdSelect = null; + this.isCIDFont = !1; + } + duplicateFirstGlyph() { + if (this.charStrings.count >= 65535) { + (0, r.warn)('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) { + if (e < 0 || e >= this.charStrings.count) return !1; + return this.charStrings.get(e).length > 0; + } + } + t.CFF = CFF; + class CFFHeader { + constructor(e, t, a, r) { + this.major = e; + this.minor = t; + this.hdrSize = a; + this.offSize = r; + } + } + t.CFFHeader = CFFHeader; + class CFFStrings { + constructor() { + this.strings = []; + } + get(e) { + return e >= 0 && e <= 390 + ? s[e] + : e - o <= this.strings.length + ? this.strings[e - o] + : s[0]; + } + getSID(e) { + let t = s.indexOf(e); + if (-1 !== t) return t; + t = this.strings.indexOf(e); + return -1 !== t ? t + o : -1; + } + add(e) { + this.strings.push(e); + } + get count() { + return this.strings.length; + } + } + t.CFFStrings = CFFStrings; + class CFFIndex { + constructor() { + this.objects = []; + this.length = 0; + } + add(e) { + this.length += e.length; + this.objects.push(e); + } + set(e, t) { + this.length += t.length - this.objects[e].length; + this.objects[e] = t; + } + get(e) { + return this.objects[e]; + } + get count() { + return this.objects.length; + } + } + t.CFFIndex = CFFIndex; + class CFFDict { + constructor(e, t) { + 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 = t; + this.values = Object.create(null); + } + setByKey(e, t) { + if (!(e in this.keyToNameMap)) return !1; + if (0 === t.length) return !0; + for (const a of t) + if (isNaN(a)) { + (0, r.warn)(`Invalid CFFDict value: "${t}" for key "${e}".`); + return !0; + } + const a = this.types[e]; + ('num' !== a && 'sid' !== a && 'offset' !== a) || (t = t[0]); + this.values[e] = t; + return !0; + } + setByName(e, t) { + if (!(e in this.nameToKeyMap)) + throw new r.FormatError(`Invalid dictionary name "${e}"`); + this.values[this.nameToKeyMap[e]] = t; + } + hasName(e) { + return this.nameToKeyMap[e] in this.values; + } + getByName(e) { + if (!(e in this.nameToKeyMap)) + throw new r.FormatError(`Invalid dictionary name ${e}"`); + const t = this.nameToKeyMap[e]; + return t in this.values ? this.values[t] : this.defaults[t]; + } + removeByName(e) { + delete this.values[this.nameToKeyMap[e]]; + } + static createTables(e) { + const t = { + keyToNameMap: {}, + nameToKeyMap: {}, + defaults: {}, + types: {}, + opcodes: {}, + order: [], + }; + for (const a of e) { + const e = Array.isArray(a[0]) ? (a[0][0] << 8) + a[0][1] : a[0]; + t.keyToNameMap[e] = a[1]; + t.nameToKeyMap[a[1]] = e; + t.types[e] = a[2]; + t.defaults[e] = a[3]; + t.opcodes[e] = Array.isArray(a[0]) ? a[0] : [a[0]]; + t.order.push(e); + } + return t; + } + } + const h = [ + [[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'], + [0.001, 0, 0, 0.001, 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], + ]; + class CFFTopDict extends CFFDict { + static get tables() { + return (0, r.shadow)(this, 'tables', this.createTables(h)); + } + constructor(e) { + super(CFFTopDict.tables, e); + this.privateDict = null; + } + } + t.CFFTopDict = CFFTopDict; + const u = [ + [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], + ]; + class CFFPrivateDict extends CFFDict { + static get tables() { + return (0, r.shadow)(this, 'tables', this.createTables(u)); + } + constructor(e) { + super(CFFPrivateDict.tables, e); + this.subrsIndex = null; + } + } + t.CFFPrivateDict = CFFPrivateDict; + const d = { ISO_ADOBE: 0, EXPERT: 1, EXPERT_SUBSET: 2 }; + class CFFCharset { + constructor(e, t, a, r) { + this.predefined = e; + this.format = t; + this.charset = a; + this.raw = r; + } + } + t.CFFCharset = CFFCharset; + class CFFEncoding { + constructor(e, t, a, r) { + this.predefined = e; + this.format = t; + this.encoding = a; + this.raw = r; + } + } + class CFFFDSelect { + constructor(e, t) { + this.format = e; + this.fdSelect = t; + } + getFDIndex(e) { + return e < 0 || e >= this.fdSelect.length ? -1 : this.fdSelect[e]; + } + } + t.CFFFDSelect = CFFFDSelect; + class CFFOffsetTracker { + constructor() { + this.offsets = Object.create(null); + } + isTracking(e) { + return e in this.offsets; + } + track(e, t) { + if (e in this.offsets) throw new r.FormatError(`Already tracking location of ${e}`); + this.offsets[e] = t; + } + offset(e) { + for (const t in this.offsets) this.offsets[t] += e; + } + setEntryLocation(e, t, a) { + if (!(e in this.offsets)) throw new r.FormatError(`Not tracking location of ${e}`); + const i = a.data, + n = this.offsets[e]; + for (let e = 0, a = t.length; e < a; ++e) { + const a = 5 * e + n, + s = a + 1, + o = a + 2, + c = a + 3, + l = a + 4; + if (29 !== i[a] || 0 !== i[s] || 0 !== i[o] || 0 !== i[c] || 0 !== i[l]) + throw new r.FormatError('writing to an offset that is not empty'); + const h = t[e]; + i[a] = 29; + i[s] = (h >> 24) & 255; + i[o] = (h >> 16) & 255; + i[c] = (h >> 8) & 255; + i[l] = 255 & h; + } + } + } + class CFFCompiler { + constructor(e) { + this.cff = e; + } + compile() { + const e = this.cff, + t = { + data: [], + length: 0, + add(e) { + e.length <= 65536 ? this.data.push(...e) : (this.data = this.data.concat(e)); + this.length = this.data.length; + }, + }, + a = this.compileHeader(e.header); + t.add(a); + const i = this.compileNameIndex(e.names); + t.add(i); + if (e.isCIDFont && e.topDict.hasName('FontMatrix')) { + const t = e.topDict.getByName('FontMatrix'); + e.topDict.removeByName('FontMatrix'); + for (const a of e.fdArray) { + let e = t.slice(0); + a.hasName('FontMatrix') && (e = r.Util.transform(e, a.getByName('FontMatrix'))); + a.setByName('FontMatrix', e); + } + } + const n = e.topDict.getByName('XUID'); + n && n.length > 16 && e.topDict.removeByName('XUID'); + e.topDict.setByName('charset', 0); + let s = this.compileTopDicts([e.topDict], t.length, e.isCIDFont); + t.add(s.output); + const o = s.trackers[0], + c = this.compileStringIndex(e.strings.strings); + t.add(c); + const l = this.compileIndex(e.globalSubrIndex); + t.add(l); + if (e.encoding && e.topDict.hasName('Encoding')) + if (e.encoding.predefined) o.setEntryLocation('Encoding', [e.encoding.format], t); + else { + const a = this.compileEncoding(e.encoding); + o.setEntryLocation('Encoding', [t.length], t); + t.add(a); + } + const h = this.compileCharset(e.charset, e.charStrings.count, e.strings, e.isCIDFont); + o.setEntryLocation('charset', [t.length], t); + t.add(h); + const u = this.compileCharStrings(e.charStrings); + o.setEntryLocation('CharStrings', [t.length], t); + t.add(u); + if (e.isCIDFont) { + o.setEntryLocation('FDSelect', [t.length], t); + const a = this.compileFDSelect(e.fdSelect); + t.add(a); + s = this.compileTopDicts(e.fdArray, t.length, !0); + o.setEntryLocation('FDArray', [t.length], t); + t.add(s.output); + const r = s.trackers; + this.compilePrivateDicts(e.fdArray, r, t); + } + this.compilePrivateDicts([e.topDict], [o], t); + t.add([0]); + return t.data; + } + encodeNumber(e) { + return Number.isInteger(e) ? this.encodeInteger(e) : this.encodeFloat(e); + } + static get EncodeFloatRegExp() { + return (0, r.shadow)( + this, + 'EncodeFloatRegExp', + /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/, + ); + } + encodeFloat(e) { + let t = e.toString(); + const a = CFFCompiler.EncodeFloatRegExp.exec(t); + if (a) { + const r = parseFloat('1e' + ((a[2] ? +a[2] : 0) + a[1].length)); + t = (Math.round(e * r) / r).toString(); + } + let r, + i, + n = ''; + for (r = 0, i = t.length; r < i; ++r) { + const e = t[r]; + n += + 'e' === e ? ('-' === t[++r] ? 'c' : 'b') : '.' === e ? 'a' : '-' === e ? 'e' : e; + } + n += 1 & n.length ? 'f' : 'ff'; + const s = [30]; + for (r = 0, i = n.length; r < i; r += 2) s.push(parseInt(n.substring(r, r + 2), 16)); + return s; + } + encodeInteger(e) { + let t; + t = + e >= -107 && e <= 107 + ? [e + 139] + : e >= 108 && e <= 1131 + ? [247 + ((e -= 108) >> 8), 255 & e] + : e >= -1131 && e <= -108 + ? [251 + ((e = -e - 108) >> 8), 255 & e] + : e >= -32768 && e <= 32767 + ? [28, (e >> 8) & 255, 255 & e] + : [29, (e >> 24) & 255, (e >> 16) & 255, (e >> 8) & 255, 255 & e]; + return t; + } + compileHeader(e) { + return [e.major, e.minor, 4, e.offSize]; + } + compileNameIndex(e) { + const t = new CFFIndex(); + for (const a of e) { + const e = Math.min(a.length, 127); + let i = new Array(e); + for (let t = 0; t < e; t++) { + let e = a[t]; + (e < '!' || + e > '~' || + '[' === e || + ']' === e || + '(' === e || + ')' === e || + '{' === e || + '}' === e || + '<' === e || + '>' === e || + '/' === e || + '%' === e) && + (e = '_'); + i[t] = e; + } + i = i.join(''); + '' === i && (i = 'Bad_Font_Name'); + t.add((0, r.stringToBytes)(i)); + } + return this.compileIndex(t); + } + compileTopDicts(e, t, a) { + const r = []; + let i = new CFFIndex(); + for (const n of e) { + if (a) { + n.removeByName('CIDFontVersion'); + n.removeByName('CIDFontRevision'); + n.removeByName('CIDFontType'); + n.removeByName('CIDCount'); + n.removeByName('UIDBase'); + } + const e = new CFFOffsetTracker(), + s = this.compileDict(n, e); + r.push(e); + i.add(s); + e.offset(t); + } + i = this.compileIndex(i, r); + return { trackers: r, output: i }; + } + compilePrivateDicts(e, t, a) { + for (let i = 0, n = e.length; i < n; ++i) { + const n = e[i], + s = n.privateDict; + if (!s || !n.hasName('Private')) + throw new r.FormatError('There must be a private dictionary.'); + const o = new CFFOffsetTracker(), + c = this.compileDict(s, o); + let l = a.length; + o.offset(l); + c.length || (l = 0); + t[i].setEntryLocation('Private', [c.length, l], a); + a.add(c); + if (s.subrsIndex && s.hasName('Subrs')) { + const e = this.compileIndex(s.subrsIndex); + o.setEntryLocation('Subrs', [c.length], a); + a.add(e); + } + } + } + compileDict(e, t) { + const a = []; + for (const i of e.order) { + if (!(i in e.values)) continue; + let n = e.values[i], + s = e.types[i]; + Array.isArray(s) || (s = [s]); + Array.isArray(n) || (n = [n]); + if (0 !== n.length) { + for (let o = 0, c = s.length; o < c; ++o) { + const c = s[o], + l = n[o]; + switch (c) { + case 'num': + case 'sid': + a.push(...this.encodeNumber(l)); + break; + case 'offset': + const s = e.keyToNameMap[i]; + t.isTracking(s) || t.track(s, a.length); + a.push(29, 0, 0, 0, 0); + break; + case 'array': + case 'delta': + a.push(...this.encodeNumber(l)); + for (let e = 1, t = n.length; e < t; ++e) + a.push(...this.encodeNumber(n[e])); + break; + default: + throw new r.FormatError(`Unknown data type of ${c}`); + } + } + a.push(...e.opcodes[i]); + } + } + return a; + } + compileStringIndex(e) { + const t = new CFFIndex(); + for (const a of e) t.add((0, r.stringToBytes)(a)); + return this.compileIndex(t); + } + compileCharStrings(e) { + const t = new CFFIndex(); + for (let a = 0; a < e.count; a++) { + const r = e.get(a); + 0 !== r.length ? t.add(r) : t.add(new Uint8Array([139, 14])); + } + return this.compileIndex(t); + } + compileCharset(e, t, a, i) { + let n; + const s = t - 1; + if (i) n = new Uint8Array([2, 0, 0, (s >> 8) & 255, 255 & s]); + else { + n = new Uint8Array(1 + 2 * s); + n[0] = 0; + let t = 0; + const i = e.charset.length; + let o = !1; + for (let s = 1; s < n.length; s += 2) { + let c = 0; + if (t < i) { + const i = e.charset[t++]; + c = a.getSID(i); + if (-1 === c) { + c = 0; + if (!o) { + o = !0; + (0, r.warn)(`Couldn't find ${i} in CFF strings`); + } + } + } + n[s] = (c >> 8) & 255; + n[s + 1] = 255 & c; + } + } + return this.compileTypedArray(n); + } + compileEncoding(e) { + return this.compileTypedArray(e.raw); + } + compileFDSelect(e) { + const t = e.format; + let a, r; + switch (t) { + case 0: + a = new Uint8Array(1 + e.fdSelect.length); + a[0] = t; + for (r = 0; r < e.fdSelect.length; r++) a[r + 1] = e.fdSelect[r]; + break; + case 3: + const i = 0; + let n = e.fdSelect[0]; + const s = [t, 0, 0, (i >> 8) & 255, 255 & i, n]; + for (r = 1; r < e.fdSelect.length; r++) { + const t = e.fdSelect[r]; + if (t !== n) { + s.push((r >> 8) & 255, 255 & r, t); + n = t; + } + } + const o = (s.length - 3) / 3; + s[1] = (o >> 8) & 255; + s[2] = 255 & o; + s.push((r >> 8) & 255, 255 & r); + a = new Uint8Array(s); + } + return this.compileTypedArray(a); + } + compileTypedArray(e) { + return Array.from(e); + } + compileIndex(e, t = []) { + const a = e.objects, + r = a.length; + if (0 === r) return [0, 0]; + const i = [(r >> 8) & 255, 255 & r]; + let n, + s, + o = 1; + for (n = 0; n < r; ++n) o += a[n].length; + s = o < 256 ? 1 : o < 65536 ? 2 : o < 16777216 ? 3 : 4; + i.push(s); + let c = 1; + for (n = 0; n < r + 1; n++) { + 1 === s + ? i.push(255 & c) + : 2 === s + ? i.push((c >> 8) & 255, 255 & c) + : 3 === s + ? i.push((c >> 16) & 255, (c >> 8) & 255, 255 & c) + : i.push((c >>> 24) & 255, (c >> 16) & 255, (c >> 8) & 255, 255 & c); + a[n] && (c += a[n].length); + } + for (n = 0; n < r; n++) { + t[n] && t[n].offset(i.length); + i.push(...a[n]); + } + return i; + } + } + t.CFFCompiler = CFFCompiler; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ISOAdobeCharset = t.ExpertSubsetCharset = t.ExpertCharset = void 0; + t.ISOAdobeCharset = [ + '.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', + ]; + t.ExpertCharset = [ + '.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', + ]; + t.ExpertSubsetCharset = [ + '.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', + ]; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ZapfDingbatsEncoding = + t.WinAnsiEncoding = + t.SymbolSetEncoding = + t.StandardEncoding = + t.MacRomanEncoding = + t.ExpertEncoding = + void 0; + t.getEncoding = function getEncoding(e) { + switch (e) { + case 'WinAnsiEncoding': + return s; + case 'StandardEncoding': + return n; + case 'MacRomanEncoding': + return i; + case 'SymbolSetEncoding': + return o; + case 'ZapfDingbatsEncoding': + return c; + case 'ExpertEncoding': + return a; + case 'MacExpertEncoding': + return r; + default: + return null; + } + }; + const a = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + ]; + t.ExpertEncoding = a; + const r = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + '', + '', + '', + '', + ], + i = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + ]; + t.MacRomanEncoding = i; + const n = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + '', + '', + '', + '', + ]; + t.StandardEncoding = n; + const s = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + ]; + t.WinAnsiEncoding = s; + const o = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + '', + ]; + t.SymbolSetEncoding = o; + const c = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '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', + '', + ]; + t.ZapfDingbatsEncoding = c; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.SEAC_ANALYSIS_ENABLED = t.MacStandardGlyphOrdering = t.FontFlags = void 0; + t.normalizeFontName = function normalizeFontName(e) { + return e.replaceAll(/[,_]/g, '-').replaceAll(/\s/g, ''); + }; + t.recoverGlyphName = recoverGlyphName; + t.type1FontGlyphMapping = function type1FontGlyphMapping(e, t, a) { + const n = Object.create(null); + let s, c, l; + const h = !!(e.flags & o.Symbolic); + if (e.isInternalFont) { + l = t; + for (c = 0; c < l.length; c++) { + s = a.indexOf(l[c]); + n[c] = s >= 0 ? s : 0; + } + } else if (e.baseEncodingName) { + l = (0, r.getEncoding)(e.baseEncodingName); + for (c = 0; c < l.length; c++) { + s = a.indexOf(l[c]); + n[c] = s >= 0 ? s : 0; + } + } else if (h) for (c in t) n[c] = t[c]; + else { + l = r.StandardEncoding; + for (c = 0; c < l.length; c++) { + s = a.indexOf(l[c]); + n[c] = s >= 0 ? s : 0; + } + } + const u = e.differences; + let d; + if (u) + for (c in u) { + const e = u[c]; + s = a.indexOf(e); + if (-1 === s) { + d || (d = (0, i.getGlyphsUnicode)()); + const t = recoverGlyphName(e, d); + t !== e && (s = a.indexOf(t)); + } + n[c] = s >= 0 ? s : 0; + } + return n; + }; + var r = a(37), + i = a(39), + n = a(40), + s = a(2); + t.SEAC_ANALYSIS_ENABLED = !0; + const o = { + FixedPitch: 1, + Serif: 2, + Symbolic: 4, + Script: 8, + Nonsymbolic: 32, + Italic: 64, + AllCap: 65536, + SmallCap: 131072, + ForceBold: 262144, + }; + t.FontFlags = o; + t.MacStandardGlyphOrdering = [ + '.notdef', + '.null', + 'nonmarkingreturn', + 'space', + 'exclam', + 'quotedbl', + 'numbersign', + 'dollar', + 'percent', + 'ampersand', + 'quotesingle', + 'parenleft', + 'parenright', + 'asterisk', + 'plus', + 'comma', + 'hyphen', + 'period', + 'slash', + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'colon', + 'semicolon', + 'less', + 'equal', + 'greater', + 'question', + 'at', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + 'bracketleft', + 'backslash', + 'bracketright', + 'asciicircum', + 'underscore', + 'grave', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'braceleft', + 'bar', + 'braceright', + 'asciitilde', + 'Adieresis', + 'Aring', + 'Ccedilla', + 'Eacute', + 'Ntilde', + 'Odieresis', + 'Udieresis', + 'aacute', + 'agrave', + 'acircumflex', + 'adieresis', + 'atilde', + 'aring', + 'ccedilla', + 'eacute', + 'egrave', + 'ecircumflex', + 'edieresis', + 'iacute', + 'igrave', + 'icircumflex', + 'idieresis', + 'ntilde', + 'oacute', + 'ograve', + 'ocircumflex', + 'odieresis', + 'otilde', + 'uacute', + 'ugrave', + 'ucircumflex', + 'udieresis', + 'dagger', + 'degree', + 'cent', + 'sterling', + 'section', + 'bullet', + 'paragraph', + 'germandbls', + 'registered', + 'copyright', + 'trademark', + 'acute', + 'dieresis', + 'notequal', + 'AE', + 'Oslash', + 'infinity', + 'plusminus', + 'lessequal', + 'greaterequal', + 'yen', + 'mu', + 'partialdiff', + 'summation', + 'product', + 'pi', + 'integral', + 'ordfeminine', + 'ordmasculine', + 'Omega', + 'ae', + 'oslash', + 'questiondown', + 'exclamdown', + 'logicalnot', + 'radical', + 'florin', + 'approxequal', + 'Delta', + 'guillemotleft', + 'guillemotright', + 'ellipsis', + 'nonbreakingspace', + 'Agrave', + 'Atilde', + 'Otilde', + 'OE', + 'oe', + 'endash', + 'emdash', + 'quotedblleft', + 'quotedblright', + 'quoteleft', + 'quoteright', + 'divide', + 'lozenge', + 'ydieresis', + 'Ydieresis', + 'fraction', + 'currency', + 'guilsinglleft', + 'guilsinglright', + 'fi', + 'fl', + 'daggerdbl', + 'periodcentered', + 'quotesinglbase', + 'quotedblbase', + 'perthousand', + 'Acircumflex', + 'Ecircumflex', + 'Aacute', + 'Edieresis', + 'Egrave', + 'Iacute', + 'Icircumflex', + 'Idieresis', + 'Igrave', + 'Oacute', + 'Ocircumflex', + 'apple', + 'Ograve', + 'Uacute', + 'Ucircumflex', + 'Ugrave', + 'dotlessi', + 'circumflex', + 'tilde', + 'macron', + 'breve', + 'dotaccent', + 'ring', + 'cedilla', + 'hungarumlaut', + 'ogonek', + 'caron', + 'Lslash', + 'lslash', + 'Scaron', + 'scaron', + 'Zcaron', + 'zcaron', + 'brokenbar', + 'Eth', + 'eth', + 'Yacute', + 'yacute', + 'Thorn', + 'thorn', + 'minus', + 'multiply', + 'onesuperior', + 'twosuperior', + 'threesuperior', + 'onehalf', + 'onequarter', + 'threequarters', + 'franc', + 'Gbreve', + 'gbreve', + 'Idotaccent', + 'Scedilla', + 'scedilla', + 'Cacute', + 'cacute', + 'Ccaron', + 'ccaron', + 'dcroat', + ]; + function recoverGlyphName(e, t) { + if (void 0 !== t[e]) return e; + const a = (0, n.getUnicodeForGlyph)(e, t); + if (-1 !== a) for (const e in t) if (t[e] === a) return e; + (0, s.info)('Unable to recover a standard glyph name for: ' + e); + return e; + } + }, + (e, t, a) => { + a.r(t); + a.d(t, { getDingbatsGlyphsUnicode: () => n, getGlyphsUnicode: () => i }); + var r = a(3); + const i = (0, r.getLookupTableFactory)(function (e) { + e.A = 65; + e.AE = 198; + e.AEacute = 508; + e.AEmacron = 482; + e.AEsmall = 63462; + e.Aacute = 193; + e.Aacutesmall = 63457; + e.Abreve = 258; + e.Abreveacute = 7854; + e.Abrevecyrillic = 1232; + e.Abrevedotbelow = 7862; + e.Abrevegrave = 7856; + e.Abrevehookabove = 7858; + e.Abrevetilde = 7860; + e.Acaron = 461; + e.Acircle = 9398; + e.Acircumflex = 194; + e.Acircumflexacute = 7844; + e.Acircumflexdotbelow = 7852; + e.Acircumflexgrave = 7846; + e.Acircumflexhookabove = 7848; + e.Acircumflexsmall = 63458; + e.Acircumflextilde = 7850; + e.Acute = 63177; + e.Acutesmall = 63412; + e.Acyrillic = 1040; + e.Adblgrave = 512; + e.Adieresis = 196; + e.Adieresiscyrillic = 1234; + e.Adieresismacron = 478; + e.Adieresissmall = 63460; + e.Adotbelow = 7840; + e.Adotmacron = 480; + e.Agrave = 192; + e.Agravesmall = 63456; + e.Ahookabove = 7842; + e.Aiecyrillic = 1236; + e.Ainvertedbreve = 514; + e.Alpha = 913; + e.Alphatonos = 902; + e.Amacron = 256; + e.Amonospace = 65313; + e.Aogonek = 260; + e.Aring = 197; + e.Aringacute = 506; + e.Aringbelow = 7680; + e.Aringsmall = 63461; + e.Asmall = 63329; + e.Atilde = 195; + e.Atildesmall = 63459; + e.Aybarmenian = 1329; + e.B = 66; + e.Bcircle = 9399; + e.Bdotaccent = 7682; + e.Bdotbelow = 7684; + e.Becyrillic = 1041; + e.Benarmenian = 1330; + e.Beta = 914; + e.Bhook = 385; + e.Blinebelow = 7686; + e.Bmonospace = 65314; + e.Brevesmall = 63220; + e.Bsmall = 63330; + e.Btopbar = 386; + e.C = 67; + e.Caarmenian = 1342; + e.Cacute = 262; + e.Caron = 63178; + e.Caronsmall = 63221; + e.Ccaron = 268; + e.Ccedilla = 199; + e.Ccedillaacute = 7688; + e.Ccedillasmall = 63463; + e.Ccircle = 9400; + e.Ccircumflex = 264; + e.Cdot = 266; + e.Cdotaccent = 266; + e.Cedillasmall = 63416; + e.Chaarmenian = 1353; + e.Cheabkhasiancyrillic = 1212; + e.Checyrillic = 1063; + e.Chedescenderabkhasiancyrillic = 1214; + e.Chedescendercyrillic = 1206; + e.Chedieresiscyrillic = 1268; + e.Cheharmenian = 1347; + e.Chekhakassiancyrillic = 1227; + e.Cheverticalstrokecyrillic = 1208; + e.Chi = 935; + e.Chook = 391; + e.Circumflexsmall = 63222; + e.Cmonospace = 65315; + e.Coarmenian = 1361; + e.Csmall = 63331; + e.D = 68; + e.DZ = 497; + e.DZcaron = 452; + e.Daarmenian = 1332; + e.Dafrican = 393; + e.Dcaron = 270; + e.Dcedilla = 7696; + e.Dcircle = 9401; + e.Dcircumflexbelow = 7698; + e.Dcroat = 272; + e.Ddotaccent = 7690; + e.Ddotbelow = 7692; + e.Decyrillic = 1044; + e.Deicoptic = 1006; + e.Delta = 8710; + e.Deltagreek = 916; + e.Dhook = 394; + e.Dieresis = 63179; + e.DieresisAcute = 63180; + e.DieresisGrave = 63181; + e.Dieresissmall = 63400; + e.Digammagreek = 988; + e.Djecyrillic = 1026; + e.Dlinebelow = 7694; + e.Dmonospace = 65316; + e.Dotaccentsmall = 63223; + e.Dslash = 272; + e.Dsmall = 63332; + e.Dtopbar = 395; + e.Dz = 498; + e.Dzcaron = 453; + e.Dzeabkhasiancyrillic = 1248; + e.Dzecyrillic = 1029; + e.Dzhecyrillic = 1039; + e.E = 69; + e.Eacute = 201; + e.Eacutesmall = 63465; + e.Ebreve = 276; + e.Ecaron = 282; + e.Ecedillabreve = 7708; + e.Echarmenian = 1333; + e.Ecircle = 9402; + e.Ecircumflex = 202; + e.Ecircumflexacute = 7870; + e.Ecircumflexbelow = 7704; + e.Ecircumflexdotbelow = 7878; + e.Ecircumflexgrave = 7872; + e.Ecircumflexhookabove = 7874; + e.Ecircumflexsmall = 63466; + e.Ecircumflextilde = 7876; + e.Ecyrillic = 1028; + e.Edblgrave = 516; + e.Edieresis = 203; + e.Edieresissmall = 63467; + e.Edot = 278; + e.Edotaccent = 278; + e.Edotbelow = 7864; + e.Efcyrillic = 1060; + e.Egrave = 200; + e.Egravesmall = 63464; + e.Eharmenian = 1335; + e.Ehookabove = 7866; + e.Eightroman = 8551; + e.Einvertedbreve = 518; + e.Eiotifiedcyrillic = 1124; + e.Elcyrillic = 1051; + e.Elevenroman = 8554; + e.Emacron = 274; + e.Emacronacute = 7702; + e.Emacrongrave = 7700; + e.Emcyrillic = 1052; + e.Emonospace = 65317; + e.Encyrillic = 1053; + e.Endescendercyrillic = 1186; + e.Eng = 330; + e.Enghecyrillic = 1188; + e.Enhookcyrillic = 1223; + e.Eogonek = 280; + e.Eopen = 400; + e.Epsilon = 917; + e.Epsilontonos = 904; + e.Ercyrillic = 1056; + e.Ereversed = 398; + e.Ereversedcyrillic = 1069; + e.Escyrillic = 1057; + e.Esdescendercyrillic = 1194; + e.Esh = 425; + e.Esmall = 63333; + e.Eta = 919; + e.Etarmenian = 1336; + e.Etatonos = 905; + e.Eth = 208; + e.Ethsmall = 63472; + e.Etilde = 7868; + e.Etildebelow = 7706; + e.Euro = 8364; + e.Ezh = 439; + e.Ezhcaron = 494; + e.Ezhreversed = 440; + e.F = 70; + e.Fcircle = 9403; + e.Fdotaccent = 7710; + e.Feharmenian = 1366; + e.Feicoptic = 996; + e.Fhook = 401; + e.Fitacyrillic = 1138; + e.Fiveroman = 8548; + e.Fmonospace = 65318; + e.Fourroman = 8547; + e.Fsmall = 63334; + e.G = 71; + e.GBsquare = 13191; + e.Gacute = 500; + e.Gamma = 915; + e.Gammaafrican = 404; + e.Gangiacoptic = 1002; + e.Gbreve = 286; + e.Gcaron = 486; + e.Gcedilla = 290; + e.Gcircle = 9404; + e.Gcircumflex = 284; + e.Gcommaaccent = 290; + e.Gdot = 288; + e.Gdotaccent = 288; + e.Gecyrillic = 1043; + e.Ghadarmenian = 1346; + e.Ghemiddlehookcyrillic = 1172; + e.Ghestrokecyrillic = 1170; + e.Gheupturncyrillic = 1168; + e.Ghook = 403; + e.Gimarmenian = 1331; + e.Gjecyrillic = 1027; + e.Gmacron = 7712; + e.Gmonospace = 65319; + e.Grave = 63182; + e.Gravesmall = 63328; + e.Gsmall = 63335; + e.Gsmallhook = 667; + e.Gstroke = 484; + e.H = 72; + e.H18533 = 9679; + e.H18543 = 9642; + e.H18551 = 9643; + e.H22073 = 9633; + e.HPsquare = 13259; + e.Haabkhasiancyrillic = 1192; + e.Hadescendercyrillic = 1202; + e.Hardsigncyrillic = 1066; + e.Hbar = 294; + e.Hbrevebelow = 7722; + e.Hcedilla = 7720; + e.Hcircle = 9405; + e.Hcircumflex = 292; + e.Hdieresis = 7718; + e.Hdotaccent = 7714; + e.Hdotbelow = 7716; + e.Hmonospace = 65320; + e.Hoarmenian = 1344; + e.Horicoptic = 1e3; + e.Hsmall = 63336; + e.Hungarumlaut = 63183; + e.Hungarumlautsmall = 63224; + e.Hzsquare = 13200; + e.I = 73; + e.IAcyrillic = 1071; + e.IJ = 306; + e.IUcyrillic = 1070; + e.Iacute = 205; + e.Iacutesmall = 63469; + e.Ibreve = 300; + e.Icaron = 463; + e.Icircle = 9406; + e.Icircumflex = 206; + e.Icircumflexsmall = 63470; + e.Icyrillic = 1030; + e.Idblgrave = 520; + e.Idieresis = 207; + e.Idieresisacute = 7726; + e.Idieresiscyrillic = 1252; + e.Idieresissmall = 63471; + e.Idot = 304; + e.Idotaccent = 304; + e.Idotbelow = 7882; + e.Iebrevecyrillic = 1238; + e.Iecyrillic = 1045; + e.Ifraktur = 8465; + e.Igrave = 204; + e.Igravesmall = 63468; + e.Ihookabove = 7880; + e.Iicyrillic = 1048; + e.Iinvertedbreve = 522; + e.Iishortcyrillic = 1049; + e.Imacron = 298; + e.Imacroncyrillic = 1250; + e.Imonospace = 65321; + e.Iniarmenian = 1339; + e.Iocyrillic = 1025; + e.Iogonek = 302; + e.Iota = 921; + e.Iotaafrican = 406; + e.Iotadieresis = 938; + e.Iotatonos = 906; + e.Ismall = 63337; + e.Istroke = 407; + e.Itilde = 296; + e.Itildebelow = 7724; + e.Izhitsacyrillic = 1140; + e.Izhitsadblgravecyrillic = 1142; + e.J = 74; + e.Jaarmenian = 1345; + e.Jcircle = 9407; + e.Jcircumflex = 308; + e.Jecyrillic = 1032; + e.Jheharmenian = 1355; + e.Jmonospace = 65322; + e.Jsmall = 63338; + e.K = 75; + e.KBsquare = 13189; + e.KKsquare = 13261; + e.Kabashkircyrillic = 1184; + e.Kacute = 7728; + e.Kacyrillic = 1050; + e.Kadescendercyrillic = 1178; + e.Kahookcyrillic = 1219; + e.Kappa = 922; + e.Kastrokecyrillic = 1182; + e.Kaverticalstrokecyrillic = 1180; + e.Kcaron = 488; + e.Kcedilla = 310; + e.Kcircle = 9408; + e.Kcommaaccent = 310; + e.Kdotbelow = 7730; + e.Keharmenian = 1364; + e.Kenarmenian = 1343; + e.Khacyrillic = 1061; + e.Kheicoptic = 998; + e.Khook = 408; + e.Kjecyrillic = 1036; + e.Klinebelow = 7732; + e.Kmonospace = 65323; + e.Koppacyrillic = 1152; + e.Koppagreek = 990; + e.Ksicyrillic = 1134; + e.Ksmall = 63339; + e.L = 76; + e.LJ = 455; + e.LL = 63167; + e.Lacute = 313; + e.Lambda = 923; + e.Lcaron = 317; + e.Lcedilla = 315; + e.Lcircle = 9409; + e.Lcircumflexbelow = 7740; + e.Lcommaaccent = 315; + e.Ldot = 319; + e.Ldotaccent = 319; + e.Ldotbelow = 7734; + e.Ldotbelowmacron = 7736; + e.Liwnarmenian = 1340; + e.Lj = 456; + e.Ljecyrillic = 1033; + e.Llinebelow = 7738; + e.Lmonospace = 65324; + e.Lslash = 321; + e.Lslashsmall = 63225; + e.Lsmall = 63340; + e.M = 77; + e.MBsquare = 13190; + e.Macron = 63184; + e.Macronsmall = 63407; + e.Macute = 7742; + e.Mcircle = 9410; + e.Mdotaccent = 7744; + e.Mdotbelow = 7746; + e.Menarmenian = 1348; + e.Mmonospace = 65325; + e.Msmall = 63341; + e.Mturned = 412; + e.Mu = 924; + e.N = 78; + e.NJ = 458; + e.Nacute = 323; + e.Ncaron = 327; + e.Ncedilla = 325; + e.Ncircle = 9411; + e.Ncircumflexbelow = 7754; + e.Ncommaaccent = 325; + e.Ndotaccent = 7748; + e.Ndotbelow = 7750; + e.Nhookleft = 413; + e.Nineroman = 8552; + e.Nj = 459; + e.Njecyrillic = 1034; + e.Nlinebelow = 7752; + e.Nmonospace = 65326; + e.Nowarmenian = 1350; + e.Nsmall = 63342; + e.Ntilde = 209; + e.Ntildesmall = 63473; + e.Nu = 925; + e.O = 79; + e.OE = 338; + e.OEsmall = 63226; + e.Oacute = 211; + e.Oacutesmall = 63475; + e.Obarredcyrillic = 1256; + e.Obarreddieresiscyrillic = 1258; + e.Obreve = 334; + e.Ocaron = 465; + e.Ocenteredtilde = 415; + e.Ocircle = 9412; + e.Ocircumflex = 212; + e.Ocircumflexacute = 7888; + e.Ocircumflexdotbelow = 7896; + e.Ocircumflexgrave = 7890; + e.Ocircumflexhookabove = 7892; + e.Ocircumflexsmall = 63476; + e.Ocircumflextilde = 7894; + e.Ocyrillic = 1054; + e.Odblacute = 336; + e.Odblgrave = 524; + e.Odieresis = 214; + e.Odieresiscyrillic = 1254; + e.Odieresissmall = 63478; + e.Odotbelow = 7884; + e.Ogoneksmall = 63227; + e.Ograve = 210; + e.Ogravesmall = 63474; + e.Oharmenian = 1365; + e.Ohm = 8486; + e.Ohookabove = 7886; + e.Ohorn = 416; + e.Ohornacute = 7898; + e.Ohorndotbelow = 7906; + e.Ohorngrave = 7900; + e.Ohornhookabove = 7902; + e.Ohorntilde = 7904; + e.Ohungarumlaut = 336; + e.Oi = 418; + e.Oinvertedbreve = 526; + e.Omacron = 332; + e.Omacronacute = 7762; + e.Omacrongrave = 7760; + e.Omega = 8486; + e.Omegacyrillic = 1120; + e.Omegagreek = 937; + e.Omegaroundcyrillic = 1146; + e.Omegatitlocyrillic = 1148; + e.Omegatonos = 911; + e.Omicron = 927; + e.Omicrontonos = 908; + e.Omonospace = 65327; + e.Oneroman = 8544; + e.Oogonek = 490; + e.Oogonekmacron = 492; + e.Oopen = 390; + e.Oslash = 216; + e.Oslashacute = 510; + e.Oslashsmall = 63480; + e.Osmall = 63343; + e.Ostrokeacute = 510; + e.Otcyrillic = 1150; + e.Otilde = 213; + e.Otildeacute = 7756; + e.Otildedieresis = 7758; + e.Otildesmall = 63477; + e.P = 80; + e.Pacute = 7764; + e.Pcircle = 9413; + e.Pdotaccent = 7766; + e.Pecyrillic = 1055; + e.Peharmenian = 1354; + e.Pemiddlehookcyrillic = 1190; + e.Phi = 934; + e.Phook = 420; + e.Pi = 928; + e.Piwrarmenian = 1363; + e.Pmonospace = 65328; + e.Psi = 936; + e.Psicyrillic = 1136; + e.Psmall = 63344; + e.Q = 81; + e.Qcircle = 9414; + e.Qmonospace = 65329; + e.Qsmall = 63345; + e.R = 82; + e.Raarmenian = 1356; + e.Racute = 340; + e.Rcaron = 344; + e.Rcedilla = 342; + e.Rcircle = 9415; + e.Rcommaaccent = 342; + e.Rdblgrave = 528; + e.Rdotaccent = 7768; + e.Rdotbelow = 7770; + e.Rdotbelowmacron = 7772; + e.Reharmenian = 1360; + e.Rfraktur = 8476; + e.Rho = 929; + e.Ringsmall = 63228; + e.Rinvertedbreve = 530; + e.Rlinebelow = 7774; + e.Rmonospace = 65330; + e.Rsmall = 63346; + e.Rsmallinverted = 641; + e.Rsmallinvertedsuperior = 694; + e.S = 83; + e.SF010000 = 9484; + e.SF020000 = 9492; + e.SF030000 = 9488; + e.SF040000 = 9496; + e.SF050000 = 9532; + e.SF060000 = 9516; + e.SF070000 = 9524; + e.SF080000 = 9500; + e.SF090000 = 9508; + e.SF100000 = 9472; + e.SF110000 = 9474; + e.SF190000 = 9569; + e.SF200000 = 9570; + e.SF210000 = 9558; + e.SF220000 = 9557; + e.SF230000 = 9571; + e.SF240000 = 9553; + e.SF250000 = 9559; + e.SF260000 = 9565; + e.SF270000 = 9564; + e.SF280000 = 9563; + e.SF360000 = 9566; + e.SF370000 = 9567; + e.SF380000 = 9562; + e.SF390000 = 9556; + e.SF400000 = 9577; + e.SF410000 = 9574; + e.SF420000 = 9568; + e.SF430000 = 9552; + e.SF440000 = 9580; + e.SF450000 = 9575; + e.SF460000 = 9576; + e.SF470000 = 9572; + e.SF480000 = 9573; + e.SF490000 = 9561; + e.SF500000 = 9560; + e.SF510000 = 9554; + e.SF520000 = 9555; + e.SF530000 = 9579; + e.SF540000 = 9578; + e.Sacute = 346; + e.Sacutedotaccent = 7780; + e.Sampigreek = 992; + e.Scaron = 352; + e.Scarondotaccent = 7782; + e.Scaronsmall = 63229; + e.Scedilla = 350; + e.Schwa = 399; + e.Schwacyrillic = 1240; + e.Schwadieresiscyrillic = 1242; + e.Scircle = 9416; + e.Scircumflex = 348; + e.Scommaaccent = 536; + e.Sdotaccent = 7776; + e.Sdotbelow = 7778; + e.Sdotbelowdotaccent = 7784; + e.Seharmenian = 1357; + e.Sevenroman = 8550; + e.Shaarmenian = 1351; + e.Shacyrillic = 1064; + e.Shchacyrillic = 1065; + e.Sheicoptic = 994; + e.Shhacyrillic = 1210; + e.Shimacoptic = 1004; + e.Sigma = 931; + e.Sixroman = 8549; + e.Smonospace = 65331; + e.Softsigncyrillic = 1068; + e.Ssmall = 63347; + e.Stigmagreek = 986; + e.T = 84; + e.Tau = 932; + e.Tbar = 358; + e.Tcaron = 356; + e.Tcedilla = 354; + e.Tcircle = 9417; + e.Tcircumflexbelow = 7792; + e.Tcommaaccent = 354; + e.Tdotaccent = 7786; + e.Tdotbelow = 7788; + e.Tecyrillic = 1058; + e.Tedescendercyrillic = 1196; + e.Tenroman = 8553; + e.Tetsecyrillic = 1204; + e.Theta = 920; + e.Thook = 428; + e.Thorn = 222; + e.Thornsmall = 63486; + e.Threeroman = 8546; + e.Tildesmall = 63230; + e.Tiwnarmenian = 1359; + e.Tlinebelow = 7790; + e.Tmonospace = 65332; + e.Toarmenian = 1337; + e.Tonefive = 444; + e.Tonesix = 388; + e.Tonetwo = 423; + e.Tretroflexhook = 430; + e.Tsecyrillic = 1062; + e.Tshecyrillic = 1035; + e.Tsmall = 63348; + e.Twelveroman = 8555; + e.Tworoman = 8545; + e.U = 85; + e.Uacute = 218; + e.Uacutesmall = 63482; + e.Ubreve = 364; + e.Ucaron = 467; + e.Ucircle = 9418; + e.Ucircumflex = 219; + e.Ucircumflexbelow = 7798; + e.Ucircumflexsmall = 63483; + e.Ucyrillic = 1059; + e.Udblacute = 368; + e.Udblgrave = 532; + e.Udieresis = 220; + e.Udieresisacute = 471; + e.Udieresisbelow = 7794; + e.Udieresiscaron = 473; + e.Udieresiscyrillic = 1264; + e.Udieresisgrave = 475; + e.Udieresismacron = 469; + e.Udieresissmall = 63484; + e.Udotbelow = 7908; + e.Ugrave = 217; + e.Ugravesmall = 63481; + e.Uhookabove = 7910; + e.Uhorn = 431; + e.Uhornacute = 7912; + e.Uhorndotbelow = 7920; + e.Uhorngrave = 7914; + e.Uhornhookabove = 7916; + e.Uhorntilde = 7918; + e.Uhungarumlaut = 368; + e.Uhungarumlautcyrillic = 1266; + e.Uinvertedbreve = 534; + e.Ukcyrillic = 1144; + e.Umacron = 362; + e.Umacroncyrillic = 1262; + e.Umacrondieresis = 7802; + e.Umonospace = 65333; + e.Uogonek = 370; + e.Upsilon = 933; + e.Upsilon1 = 978; + e.Upsilonacutehooksymbolgreek = 979; + e.Upsilonafrican = 433; + e.Upsilondieresis = 939; + e.Upsilondieresishooksymbolgreek = 980; + e.Upsilonhooksymbol = 978; + e.Upsilontonos = 910; + e.Uring = 366; + e.Ushortcyrillic = 1038; + e.Usmall = 63349; + e.Ustraightcyrillic = 1198; + e.Ustraightstrokecyrillic = 1200; + e.Utilde = 360; + e.Utildeacute = 7800; + e.Utildebelow = 7796; + e.V = 86; + e.Vcircle = 9419; + e.Vdotbelow = 7806; + e.Vecyrillic = 1042; + e.Vewarmenian = 1358; + e.Vhook = 434; + e.Vmonospace = 65334; + e.Voarmenian = 1352; + e.Vsmall = 63350; + e.Vtilde = 7804; + e.W = 87; + e.Wacute = 7810; + e.Wcircle = 9420; + e.Wcircumflex = 372; + e.Wdieresis = 7812; + e.Wdotaccent = 7814; + e.Wdotbelow = 7816; + e.Wgrave = 7808; + e.Wmonospace = 65335; + e.Wsmall = 63351; + e.X = 88; + e.Xcircle = 9421; + e.Xdieresis = 7820; + e.Xdotaccent = 7818; + e.Xeharmenian = 1341; + e.Xi = 926; + e.Xmonospace = 65336; + e.Xsmall = 63352; + e.Y = 89; + e.Yacute = 221; + e.Yacutesmall = 63485; + e.Yatcyrillic = 1122; + e.Ycircle = 9422; + e.Ycircumflex = 374; + e.Ydieresis = 376; + e.Ydieresissmall = 63487; + e.Ydotaccent = 7822; + e.Ydotbelow = 7924; + e.Yericyrillic = 1067; + e.Yerudieresiscyrillic = 1272; + e.Ygrave = 7922; + e.Yhook = 435; + e.Yhookabove = 7926; + e.Yiarmenian = 1349; + e.Yicyrillic = 1031; + e.Yiwnarmenian = 1362; + e.Ymonospace = 65337; + e.Ysmall = 63353; + e.Ytilde = 7928; + e.Yusbigcyrillic = 1130; + e.Yusbigiotifiedcyrillic = 1132; + e.Yuslittlecyrillic = 1126; + e.Yuslittleiotifiedcyrillic = 1128; + e.Z = 90; + e.Zaarmenian = 1334; + e.Zacute = 377; + e.Zcaron = 381; + e.Zcaronsmall = 63231; + e.Zcircle = 9423; + e.Zcircumflex = 7824; + e.Zdot = 379; + e.Zdotaccent = 379; + e.Zdotbelow = 7826; + e.Zecyrillic = 1047; + e.Zedescendercyrillic = 1176; + e.Zedieresiscyrillic = 1246; + e.Zeta = 918; + e.Zhearmenian = 1338; + e.Zhebrevecyrillic = 1217; + e.Zhecyrillic = 1046; + e.Zhedescendercyrillic = 1174; + e.Zhedieresiscyrillic = 1244; + e.Zlinebelow = 7828; + e.Zmonospace = 65338; + e.Zsmall = 63354; + e.Zstroke = 437; + e.a = 97; + e.aabengali = 2438; + e.aacute = 225; + e.aadeva = 2310; + e.aagujarati = 2694; + e.aagurmukhi = 2566; + e.aamatragurmukhi = 2622; + e.aarusquare = 13059; + e.aavowelsignbengali = 2494; + e.aavowelsigndeva = 2366; + e.aavowelsigngujarati = 2750; + e.abbreviationmarkarmenian = 1375; + e.abbreviationsigndeva = 2416; + e.abengali = 2437; + e.abopomofo = 12570; + e.abreve = 259; + e.abreveacute = 7855; + e.abrevecyrillic = 1233; + e.abrevedotbelow = 7863; + e.abrevegrave = 7857; + e.abrevehookabove = 7859; + e.abrevetilde = 7861; + e.acaron = 462; + e.acircle = 9424; + e.acircumflex = 226; + e.acircumflexacute = 7845; + e.acircumflexdotbelow = 7853; + e.acircumflexgrave = 7847; + e.acircumflexhookabove = 7849; + e.acircumflextilde = 7851; + e.acute = 180; + e.acutebelowcmb = 791; + e.acutecmb = 769; + e.acutecomb = 769; + e.acutedeva = 2388; + e.acutelowmod = 719; + e.acutetonecmb = 833; + e.acyrillic = 1072; + e.adblgrave = 513; + e.addakgurmukhi = 2673; + e.adeva = 2309; + e.adieresis = 228; + e.adieresiscyrillic = 1235; + e.adieresismacron = 479; + e.adotbelow = 7841; + e.adotmacron = 481; + e.ae = 230; + e.aeacute = 509; + e.aekorean = 12624; + e.aemacron = 483; + e.afii00208 = 8213; + e.afii08941 = 8356; + e.afii10017 = 1040; + e.afii10018 = 1041; + e.afii10019 = 1042; + e.afii10020 = 1043; + e.afii10021 = 1044; + e.afii10022 = 1045; + e.afii10023 = 1025; + e.afii10024 = 1046; + e.afii10025 = 1047; + e.afii10026 = 1048; + e.afii10027 = 1049; + e.afii10028 = 1050; + e.afii10029 = 1051; + e.afii10030 = 1052; + e.afii10031 = 1053; + e.afii10032 = 1054; + e.afii10033 = 1055; + e.afii10034 = 1056; + e.afii10035 = 1057; + e.afii10036 = 1058; + e.afii10037 = 1059; + e.afii10038 = 1060; + e.afii10039 = 1061; + e.afii10040 = 1062; + e.afii10041 = 1063; + e.afii10042 = 1064; + e.afii10043 = 1065; + e.afii10044 = 1066; + e.afii10045 = 1067; + e.afii10046 = 1068; + e.afii10047 = 1069; + e.afii10048 = 1070; + e.afii10049 = 1071; + e.afii10050 = 1168; + e.afii10051 = 1026; + e.afii10052 = 1027; + e.afii10053 = 1028; + e.afii10054 = 1029; + e.afii10055 = 1030; + e.afii10056 = 1031; + e.afii10057 = 1032; + e.afii10058 = 1033; + e.afii10059 = 1034; + e.afii10060 = 1035; + e.afii10061 = 1036; + e.afii10062 = 1038; + e.afii10063 = 63172; + e.afii10064 = 63173; + e.afii10065 = 1072; + e.afii10066 = 1073; + e.afii10067 = 1074; + e.afii10068 = 1075; + e.afii10069 = 1076; + e.afii10070 = 1077; + e.afii10071 = 1105; + e.afii10072 = 1078; + e.afii10073 = 1079; + e.afii10074 = 1080; + e.afii10075 = 1081; + e.afii10076 = 1082; + e.afii10077 = 1083; + e.afii10078 = 1084; + e.afii10079 = 1085; + e.afii10080 = 1086; + e.afii10081 = 1087; + e.afii10082 = 1088; + e.afii10083 = 1089; + e.afii10084 = 1090; + e.afii10085 = 1091; + e.afii10086 = 1092; + e.afii10087 = 1093; + e.afii10088 = 1094; + e.afii10089 = 1095; + e.afii10090 = 1096; + e.afii10091 = 1097; + e.afii10092 = 1098; + e.afii10093 = 1099; + e.afii10094 = 1100; + e.afii10095 = 1101; + e.afii10096 = 1102; + e.afii10097 = 1103; + e.afii10098 = 1169; + e.afii10099 = 1106; + e.afii10100 = 1107; + e.afii10101 = 1108; + e.afii10102 = 1109; + e.afii10103 = 1110; + e.afii10104 = 1111; + e.afii10105 = 1112; + e.afii10106 = 1113; + e.afii10107 = 1114; + e.afii10108 = 1115; + e.afii10109 = 1116; + e.afii10110 = 1118; + e.afii10145 = 1039; + e.afii10146 = 1122; + e.afii10147 = 1138; + e.afii10148 = 1140; + e.afii10192 = 63174; + e.afii10193 = 1119; + e.afii10194 = 1123; + e.afii10195 = 1139; + e.afii10196 = 1141; + e.afii10831 = 63175; + e.afii10832 = 63176; + e.afii10846 = 1241; + e.afii299 = 8206; + e.afii300 = 8207; + e.afii301 = 8205; + e.afii57381 = 1642; + e.afii57388 = 1548; + e.afii57392 = 1632; + e.afii57393 = 1633; + e.afii57394 = 1634; + e.afii57395 = 1635; + e.afii57396 = 1636; + e.afii57397 = 1637; + e.afii57398 = 1638; + e.afii57399 = 1639; + e.afii57400 = 1640; + e.afii57401 = 1641; + e.afii57403 = 1563; + e.afii57407 = 1567; + e.afii57409 = 1569; + e.afii57410 = 1570; + e.afii57411 = 1571; + e.afii57412 = 1572; + e.afii57413 = 1573; + e.afii57414 = 1574; + e.afii57415 = 1575; + e.afii57416 = 1576; + e.afii57417 = 1577; + e.afii57418 = 1578; + e.afii57419 = 1579; + e.afii57420 = 1580; + e.afii57421 = 1581; + e.afii57422 = 1582; + e.afii57423 = 1583; + e.afii57424 = 1584; + e.afii57425 = 1585; + e.afii57426 = 1586; + e.afii57427 = 1587; + e.afii57428 = 1588; + e.afii57429 = 1589; + e.afii57430 = 1590; + e.afii57431 = 1591; + e.afii57432 = 1592; + e.afii57433 = 1593; + e.afii57434 = 1594; + e.afii57440 = 1600; + e.afii57441 = 1601; + e.afii57442 = 1602; + e.afii57443 = 1603; + e.afii57444 = 1604; + e.afii57445 = 1605; + e.afii57446 = 1606; + e.afii57448 = 1608; + e.afii57449 = 1609; + e.afii57450 = 1610; + e.afii57451 = 1611; + e.afii57452 = 1612; + e.afii57453 = 1613; + e.afii57454 = 1614; + e.afii57455 = 1615; + e.afii57456 = 1616; + e.afii57457 = 1617; + e.afii57458 = 1618; + e.afii57470 = 1607; + e.afii57505 = 1700; + e.afii57506 = 1662; + e.afii57507 = 1670; + e.afii57508 = 1688; + e.afii57509 = 1711; + e.afii57511 = 1657; + e.afii57512 = 1672; + e.afii57513 = 1681; + e.afii57514 = 1722; + e.afii57519 = 1746; + e.afii57534 = 1749; + e.afii57636 = 8362; + e.afii57645 = 1470; + e.afii57658 = 1475; + e.afii57664 = 1488; + e.afii57665 = 1489; + e.afii57666 = 1490; + e.afii57667 = 1491; + e.afii57668 = 1492; + e.afii57669 = 1493; + e.afii57670 = 1494; + e.afii57671 = 1495; + e.afii57672 = 1496; + e.afii57673 = 1497; + e.afii57674 = 1498; + e.afii57675 = 1499; + e.afii57676 = 1500; + e.afii57677 = 1501; + e.afii57678 = 1502; + e.afii57679 = 1503; + e.afii57680 = 1504; + e.afii57681 = 1505; + e.afii57682 = 1506; + e.afii57683 = 1507; + e.afii57684 = 1508; + e.afii57685 = 1509; + e.afii57686 = 1510; + e.afii57687 = 1511; + e.afii57688 = 1512; + e.afii57689 = 1513; + e.afii57690 = 1514; + e.afii57694 = 64298; + e.afii57695 = 64299; + e.afii57700 = 64331; + e.afii57705 = 64287; + e.afii57716 = 1520; + e.afii57717 = 1521; + e.afii57718 = 1522; + e.afii57723 = 64309; + e.afii57793 = 1460; + e.afii57794 = 1461; + e.afii57795 = 1462; + e.afii57796 = 1467; + e.afii57797 = 1464; + e.afii57798 = 1463; + e.afii57799 = 1456; + e.afii57800 = 1458; + e.afii57801 = 1457; + e.afii57802 = 1459; + e.afii57803 = 1474; + e.afii57804 = 1473; + e.afii57806 = 1465; + e.afii57807 = 1468; + e.afii57839 = 1469; + e.afii57841 = 1471; + e.afii57842 = 1472; + e.afii57929 = 700; + e.afii61248 = 8453; + e.afii61289 = 8467; + e.afii61352 = 8470; + e.afii61573 = 8236; + e.afii61574 = 8237; + e.afii61575 = 8238; + e.afii61664 = 8204; + e.afii63167 = 1645; + e.afii64937 = 701; + e.agrave = 224; + e.agujarati = 2693; + e.agurmukhi = 2565; + e.ahiragana = 12354; + e.ahookabove = 7843; + e.aibengali = 2448; + e.aibopomofo = 12574; + e.aideva = 2320; + e.aiecyrillic = 1237; + e.aigujarati = 2704; + e.aigurmukhi = 2576; + e.aimatragurmukhi = 2632; + e.ainarabic = 1593; + e.ainfinalarabic = 65226; + e.aininitialarabic = 65227; + e.ainmedialarabic = 65228; + e.ainvertedbreve = 515; + e.aivowelsignbengali = 2504; + e.aivowelsigndeva = 2376; + e.aivowelsigngujarati = 2760; + e.akatakana = 12450; + e.akatakanahalfwidth = 65393; + e.akorean = 12623; + e.alef = 1488; + e.alefarabic = 1575; + e.alefdageshhebrew = 64304; + e.aleffinalarabic = 65166; + e.alefhamzaabovearabic = 1571; + e.alefhamzaabovefinalarabic = 65156; + e.alefhamzabelowarabic = 1573; + e.alefhamzabelowfinalarabic = 65160; + e.alefhebrew = 1488; + e.aleflamedhebrew = 64335; + e.alefmaddaabovearabic = 1570; + e.alefmaddaabovefinalarabic = 65154; + e.alefmaksuraarabic = 1609; + e.alefmaksurafinalarabic = 65264; + e.alefmaksurainitialarabic = 65267; + e.alefmaksuramedialarabic = 65268; + e.alefpatahhebrew = 64302; + e.alefqamatshebrew = 64303; + e.aleph = 8501; + e.allequal = 8780; + e.alpha = 945; + e.alphatonos = 940; + e.amacron = 257; + e.amonospace = 65345; + e.ampersand = 38; + e.ampersandmonospace = 65286; + e.ampersandsmall = 63270; + e.amsquare = 13250; + e.anbopomofo = 12578; + e.angbopomofo = 12580; + e.angbracketleft = 12296; + e.angbracketright = 12297; + e.angkhankhuthai = 3674; + e.angle = 8736; + e.anglebracketleft = 12296; + e.anglebracketleftvertical = 65087; + e.anglebracketright = 12297; + e.anglebracketrightvertical = 65088; + e.angleleft = 9001; + e.angleright = 9002; + e.angstrom = 8491; + e.anoteleia = 903; + e.anudattadeva = 2386; + e.anusvarabengali = 2434; + e.anusvaradeva = 2306; + e.anusvaragujarati = 2690; + e.aogonek = 261; + e.apaatosquare = 13056; + e.aparen = 9372; + e.apostrophearmenian = 1370; + e.apostrophemod = 700; + e.apple = 63743; + e.approaches = 8784; + e.approxequal = 8776; + e.approxequalorimage = 8786; + e.approximatelyequal = 8773; + e.araeaekorean = 12686; + e.araeakorean = 12685; + e.arc = 8978; + e.arighthalfring = 7834; + e.aring = 229; + e.aringacute = 507; + e.aringbelow = 7681; + e.arrowboth = 8596; + e.arrowdashdown = 8675; + e.arrowdashleft = 8672; + e.arrowdashright = 8674; + e.arrowdashup = 8673; + e.arrowdblboth = 8660; + e.arrowdbldown = 8659; + e.arrowdblleft = 8656; + e.arrowdblright = 8658; + e.arrowdblup = 8657; + e.arrowdown = 8595; + e.arrowdownleft = 8601; + e.arrowdownright = 8600; + e.arrowdownwhite = 8681; + e.arrowheaddownmod = 709; + e.arrowheadleftmod = 706; + e.arrowheadrightmod = 707; + e.arrowheadupmod = 708; + e.arrowhorizex = 63719; + e.arrowleft = 8592; + e.arrowleftdbl = 8656; + e.arrowleftdblstroke = 8653; + e.arrowleftoverright = 8646; + e.arrowleftwhite = 8678; + e.arrowright = 8594; + e.arrowrightdblstroke = 8655; + e.arrowrightheavy = 10142; + e.arrowrightoverleft = 8644; + e.arrowrightwhite = 8680; + e.arrowtableft = 8676; + e.arrowtabright = 8677; + e.arrowup = 8593; + e.arrowupdn = 8597; + e.arrowupdnbse = 8616; + e.arrowupdownbase = 8616; + e.arrowupleft = 8598; + e.arrowupleftofdown = 8645; + e.arrowupright = 8599; + e.arrowupwhite = 8679; + e.arrowvertex = 63718; + e.asciicircum = 94; + e.asciicircummonospace = 65342; + e.asciitilde = 126; + e.asciitildemonospace = 65374; + e.ascript = 593; + e.ascriptturned = 594; + e.asmallhiragana = 12353; + e.asmallkatakana = 12449; + e.asmallkatakanahalfwidth = 65383; + e.asterisk = 42; + e.asteriskaltonearabic = 1645; + e.asteriskarabic = 1645; + e.asteriskmath = 8727; + e.asteriskmonospace = 65290; + e.asterisksmall = 65121; + e.asterism = 8258; + e.asuperior = 63209; + e.asymptoticallyequal = 8771; + e.at = 64; + e.atilde = 227; + e.atmonospace = 65312; + e.atsmall = 65131; + e.aturned = 592; + e.aubengali = 2452; + e.aubopomofo = 12576; + e.audeva = 2324; + e.augujarati = 2708; + e.augurmukhi = 2580; + e.aulengthmarkbengali = 2519; + e.aumatragurmukhi = 2636; + e.auvowelsignbengali = 2508; + e.auvowelsigndeva = 2380; + e.auvowelsigngujarati = 2764; + e.avagrahadeva = 2365; + e.aybarmenian = 1377; + e.ayin = 1506; + e.ayinaltonehebrew = 64288; + e.ayinhebrew = 1506; + e.b = 98; + e.babengali = 2476; + e.backslash = 92; + e.backslashmonospace = 65340; + e.badeva = 2348; + e.bagujarati = 2732; + e.bagurmukhi = 2604; + e.bahiragana = 12400; + e.bahtthai = 3647; + e.bakatakana = 12496; + e.bar = 124; + e.barmonospace = 65372; + e.bbopomofo = 12549; + e.bcircle = 9425; + e.bdotaccent = 7683; + e.bdotbelow = 7685; + e.beamedsixteenthnotes = 9836; + e.because = 8757; + e.becyrillic = 1073; + e.beharabic = 1576; + e.behfinalarabic = 65168; + e.behinitialarabic = 65169; + e.behiragana = 12409; + e.behmedialarabic = 65170; + e.behmeeminitialarabic = 64671; + e.behmeemisolatedarabic = 64520; + e.behnoonfinalarabic = 64621; + e.bekatakana = 12505; + e.benarmenian = 1378; + e.bet = 1489; + e.beta = 946; + e.betasymbolgreek = 976; + e.betdagesh = 64305; + e.betdageshhebrew = 64305; + e.bethebrew = 1489; + e.betrafehebrew = 64332; + e.bhabengali = 2477; + e.bhadeva = 2349; + e.bhagujarati = 2733; + e.bhagurmukhi = 2605; + e.bhook = 595; + e.bihiragana = 12403; + e.bikatakana = 12499; + e.bilabialclick = 664; + e.bindigurmukhi = 2562; + e.birusquare = 13105; + e.blackcircle = 9679; + e.blackdiamond = 9670; + e.blackdownpointingtriangle = 9660; + e.blackleftpointingpointer = 9668; + e.blackleftpointingtriangle = 9664; + e.blacklenticularbracketleft = 12304; + e.blacklenticularbracketleftvertical = 65083; + e.blacklenticularbracketright = 12305; + e.blacklenticularbracketrightvertical = 65084; + e.blacklowerlefttriangle = 9699; + e.blacklowerrighttriangle = 9698; + e.blackrectangle = 9644; + e.blackrightpointingpointer = 9658; + e.blackrightpointingtriangle = 9654; + e.blacksmallsquare = 9642; + e.blacksmilingface = 9787; + e.blacksquare = 9632; + e.blackstar = 9733; + e.blackupperlefttriangle = 9700; + e.blackupperrighttriangle = 9701; + e.blackuppointingsmalltriangle = 9652; + e.blackuppointingtriangle = 9650; + e.blank = 9251; + e.blinebelow = 7687; + e.block = 9608; + e.bmonospace = 65346; + e.bobaimaithai = 3610; + e.bohiragana = 12412; + e.bokatakana = 12508; + e.bparen = 9373; + e.bqsquare = 13251; + e.braceex = 63732; + e.braceleft = 123; + e.braceleftbt = 63731; + e.braceleftmid = 63730; + e.braceleftmonospace = 65371; + e.braceleftsmall = 65115; + e.bracelefttp = 63729; + e.braceleftvertical = 65079; + e.braceright = 125; + e.bracerightbt = 63742; + e.bracerightmid = 63741; + e.bracerightmonospace = 65373; + e.bracerightsmall = 65116; + e.bracerighttp = 63740; + e.bracerightvertical = 65080; + e.bracketleft = 91; + e.bracketleftbt = 63728; + e.bracketleftex = 63727; + e.bracketleftmonospace = 65339; + e.bracketlefttp = 63726; + e.bracketright = 93; + e.bracketrightbt = 63739; + e.bracketrightex = 63738; + e.bracketrightmonospace = 65341; + e.bracketrighttp = 63737; + e.breve = 728; + e.brevebelowcmb = 814; + e.brevecmb = 774; + e.breveinvertedbelowcmb = 815; + e.breveinvertedcmb = 785; + e.breveinverteddoublecmb = 865; + e.bridgebelowcmb = 810; + e.bridgeinvertedbelowcmb = 826; + e.brokenbar = 166; + e.bstroke = 384; + e.bsuperior = 63210; + e.btopbar = 387; + e.buhiragana = 12406; + e.bukatakana = 12502; + e.bullet = 8226; + e.bulletinverse = 9688; + e.bulletoperator = 8729; + e.bullseye = 9678; + e.c = 99; + e.caarmenian = 1390; + e.cabengali = 2458; + e.cacute = 263; + e.cadeva = 2330; + e.cagujarati = 2714; + e.cagurmukhi = 2586; + e.calsquare = 13192; + e.candrabindubengali = 2433; + e.candrabinducmb = 784; + e.candrabindudeva = 2305; + e.candrabindugujarati = 2689; + e.capslock = 8682; + e.careof = 8453; + e.caron = 711; + e.caronbelowcmb = 812; + e.caroncmb = 780; + e.carriagereturn = 8629; + e.cbopomofo = 12568; + e.ccaron = 269; + e.ccedilla = 231; + e.ccedillaacute = 7689; + e.ccircle = 9426; + e.ccircumflex = 265; + e.ccurl = 597; + e.cdot = 267; + e.cdotaccent = 267; + e.cdsquare = 13253; + e.cedilla = 184; + e.cedillacmb = 807; + e.cent = 162; + e.centigrade = 8451; + e.centinferior = 63199; + e.centmonospace = 65504; + e.centoldstyle = 63394; + e.centsuperior = 63200; + e.chaarmenian = 1401; + e.chabengali = 2459; + e.chadeva = 2331; + e.chagujarati = 2715; + e.chagurmukhi = 2587; + e.chbopomofo = 12564; + e.cheabkhasiancyrillic = 1213; + e.checkmark = 10003; + e.checyrillic = 1095; + e.chedescenderabkhasiancyrillic = 1215; + e.chedescendercyrillic = 1207; + e.chedieresiscyrillic = 1269; + e.cheharmenian = 1395; + e.chekhakassiancyrillic = 1228; + e.cheverticalstrokecyrillic = 1209; + e.chi = 967; + e.chieuchacirclekorean = 12919; + e.chieuchaparenkorean = 12823; + e.chieuchcirclekorean = 12905; + e.chieuchkorean = 12618; + e.chieuchparenkorean = 12809; + e.chochangthai = 3594; + e.chochanthai = 3592; + e.chochingthai = 3593; + e.chochoethai = 3596; + e.chook = 392; + e.cieucacirclekorean = 12918; + e.cieucaparenkorean = 12822; + e.cieuccirclekorean = 12904; + e.cieuckorean = 12616; + e.cieucparenkorean = 12808; + e.cieucuparenkorean = 12828; + e.circle = 9675; + e.circlecopyrt = 169; + e.circlemultiply = 8855; + e.circleot = 8857; + e.circleplus = 8853; + e.circlepostalmark = 12342; + e.circlewithlefthalfblack = 9680; + e.circlewithrighthalfblack = 9681; + e.circumflex = 710; + e.circumflexbelowcmb = 813; + e.circumflexcmb = 770; + e.clear = 8999; + e.clickalveolar = 450; + e.clickdental = 448; + e.clicklateral = 449; + e.clickretroflex = 451; + e.club = 9827; + e.clubsuitblack = 9827; + e.clubsuitwhite = 9831; + e.cmcubedsquare = 13220; + e.cmonospace = 65347; + e.cmsquaredsquare = 13216; + e.coarmenian = 1409; + e.colon = 58; + e.colonmonetary = 8353; + e.colonmonospace = 65306; + e.colonsign = 8353; + e.colonsmall = 65109; + e.colontriangularhalfmod = 721; + e.colontriangularmod = 720; + e.comma = 44; + e.commaabovecmb = 787; + e.commaaboverightcmb = 789; + e.commaaccent = 63171; + e.commaarabic = 1548; + e.commaarmenian = 1373; + e.commainferior = 63201; + e.commamonospace = 65292; + e.commareversedabovecmb = 788; + e.commareversedmod = 701; + e.commasmall = 65104; + e.commasuperior = 63202; + e.commaturnedabovecmb = 786; + e.commaturnedmod = 699; + e.compass = 9788; + e.congruent = 8773; + e.contourintegral = 8750; + e.control = 8963; + e.controlACK = 6; + e.controlBEL = 7; + e.controlBS = 8; + e.controlCAN = 24; + e.controlCR = 13; + e.controlDC1 = 17; + e.controlDC2 = 18; + e.controlDC3 = 19; + e.controlDC4 = 20; + e.controlDEL = 127; + e.controlDLE = 16; + e.controlEM = 25; + e.controlENQ = 5; + e.controlEOT = 4; + e.controlESC = 27; + e.controlETB = 23; + e.controlETX = 3; + e.controlFF = 12; + e.controlFS = 28; + e.controlGS = 29; + e.controlHT = 9; + e.controlLF = 10; + e.controlNAK = 21; + e.controlNULL = 0; + e.controlRS = 30; + e.controlSI = 15; + e.controlSO = 14; + e.controlSOT = 2; + e.controlSTX = 1; + e.controlSUB = 26; + e.controlSYN = 22; + e.controlUS = 31; + e.controlVT = 11; + e.copyright = 169; + e.copyrightsans = 63721; + e.copyrightserif = 63193; + e.cornerbracketleft = 12300; + e.cornerbracketlefthalfwidth = 65378; + e.cornerbracketleftvertical = 65089; + e.cornerbracketright = 12301; + e.cornerbracketrighthalfwidth = 65379; + e.cornerbracketrightvertical = 65090; + e.corporationsquare = 13183; + e.cosquare = 13255; + e.coverkgsquare = 13254; + e.cparen = 9374; + e.cruzeiro = 8354; + e.cstretched = 663; + e.curlyand = 8911; + e.curlyor = 8910; + e.currency = 164; + e.cyrBreve = 63185; + e.cyrFlex = 63186; + e.cyrbreve = 63188; + e.cyrflex = 63189; + e.d = 100; + e.daarmenian = 1380; + e.dabengali = 2470; + e.dadarabic = 1590; + e.dadeva = 2342; + e.dadfinalarabic = 65214; + e.dadinitialarabic = 65215; + e.dadmedialarabic = 65216; + e.dagesh = 1468; + e.dageshhebrew = 1468; + e.dagger = 8224; + e.daggerdbl = 8225; + e.dagujarati = 2726; + e.dagurmukhi = 2598; + e.dahiragana = 12384; + e.dakatakana = 12480; + e.dalarabic = 1583; + e.dalet = 1491; + e.daletdagesh = 64307; + e.daletdageshhebrew = 64307; + e.dalethebrew = 1491; + e.dalfinalarabic = 65194; + e.dammaarabic = 1615; + e.dammalowarabic = 1615; + e.dammatanaltonearabic = 1612; + e.dammatanarabic = 1612; + e.danda = 2404; + e.dargahebrew = 1447; + e.dargalefthebrew = 1447; + e.dasiapneumatacyrilliccmb = 1157; + e.dblGrave = 63187; + e.dblanglebracketleft = 12298; + e.dblanglebracketleftvertical = 65085; + e.dblanglebracketright = 12299; + e.dblanglebracketrightvertical = 65086; + e.dblarchinvertedbelowcmb = 811; + e.dblarrowleft = 8660; + e.dblarrowright = 8658; + e.dbldanda = 2405; + e.dblgrave = 63190; + e.dblgravecmb = 783; + e.dblintegral = 8748; + e.dbllowline = 8215; + e.dbllowlinecmb = 819; + e.dbloverlinecmb = 831; + e.dblprimemod = 698; + e.dblverticalbar = 8214; + e.dblverticallineabovecmb = 782; + e.dbopomofo = 12553; + e.dbsquare = 13256; + e.dcaron = 271; + e.dcedilla = 7697; + e.dcircle = 9427; + e.dcircumflexbelow = 7699; + e.dcroat = 273; + e.ddabengali = 2465; + e.ddadeva = 2337; + e.ddagujarati = 2721; + e.ddagurmukhi = 2593; + e.ddalarabic = 1672; + e.ddalfinalarabic = 64393; + e.dddhadeva = 2396; + e.ddhabengali = 2466; + e.ddhadeva = 2338; + e.ddhagujarati = 2722; + e.ddhagurmukhi = 2594; + e.ddotaccent = 7691; + e.ddotbelow = 7693; + e.decimalseparatorarabic = 1643; + e.decimalseparatorpersian = 1643; + e.decyrillic = 1076; + e.degree = 176; + e.dehihebrew = 1453; + e.dehiragana = 12391; + e.deicoptic = 1007; + e.dekatakana = 12487; + e.deleteleft = 9003; + e.deleteright = 8998; + e.delta = 948; + e.deltaturned = 397; + e.denominatorminusonenumeratorbengali = 2552; + e.dezh = 676; + e.dhabengali = 2471; + e.dhadeva = 2343; + e.dhagujarati = 2727; + e.dhagurmukhi = 2599; + e.dhook = 599; + e.dialytikatonos = 901; + e.dialytikatonoscmb = 836; + e.diamond = 9830; + e.diamondsuitwhite = 9826; + e.dieresis = 168; + e.dieresisacute = 63191; + e.dieresisbelowcmb = 804; + e.dieresiscmb = 776; + e.dieresisgrave = 63192; + e.dieresistonos = 901; + e.dihiragana = 12386; + e.dikatakana = 12482; + e.dittomark = 12291; + e.divide = 247; + e.divides = 8739; + e.divisionslash = 8725; + e.djecyrillic = 1106; + e.dkshade = 9619; + e.dlinebelow = 7695; + e.dlsquare = 13207; + e.dmacron = 273; + e.dmonospace = 65348; + e.dnblock = 9604; + e.dochadathai = 3598; + e.dodekthai = 3604; + e.dohiragana = 12393; + e.dokatakana = 12489; + e.dollar = 36; + e.dollarinferior = 63203; + e.dollarmonospace = 65284; + e.dollaroldstyle = 63268; + e.dollarsmall = 65129; + e.dollarsuperior = 63204; + e.dong = 8363; + e.dorusquare = 13094; + e.dotaccent = 729; + e.dotaccentcmb = 775; + e.dotbelowcmb = 803; + e.dotbelowcomb = 803; + e.dotkatakana = 12539; + e.dotlessi = 305; + e.dotlessj = 63166; + e.dotlessjstrokehook = 644; + e.dotmath = 8901; + e.dottedcircle = 9676; + e.doubleyodpatah = 64287; + e.doubleyodpatahhebrew = 64287; + e.downtackbelowcmb = 798; + e.downtackmod = 725; + e.dparen = 9375; + e.dsuperior = 63211; + e.dtail = 598; + e.dtopbar = 396; + e.duhiragana = 12389; + e.dukatakana = 12485; + e.dz = 499; + e.dzaltone = 675; + e.dzcaron = 454; + e.dzcurl = 677; + e.dzeabkhasiancyrillic = 1249; + e.dzecyrillic = 1109; + e.dzhecyrillic = 1119; + e.e = 101; + e.eacute = 233; + e.earth = 9793; + e.ebengali = 2447; + e.ebopomofo = 12572; + e.ebreve = 277; + e.ecandradeva = 2317; + e.ecandragujarati = 2701; + e.ecandravowelsigndeva = 2373; + e.ecandravowelsigngujarati = 2757; + e.ecaron = 283; + e.ecedillabreve = 7709; + e.echarmenian = 1381; + e.echyiwnarmenian = 1415; + e.ecircle = 9428; + e.ecircumflex = 234; + e.ecircumflexacute = 7871; + e.ecircumflexbelow = 7705; + e.ecircumflexdotbelow = 7879; + e.ecircumflexgrave = 7873; + e.ecircumflexhookabove = 7875; + e.ecircumflextilde = 7877; + e.ecyrillic = 1108; + e.edblgrave = 517; + e.edeva = 2319; + e.edieresis = 235; + e.edot = 279; + e.edotaccent = 279; + e.edotbelow = 7865; + e.eegurmukhi = 2575; + e.eematragurmukhi = 2631; + e.efcyrillic = 1092; + e.egrave = 232; + e.egujarati = 2703; + e.eharmenian = 1383; + e.ehbopomofo = 12573; + e.ehiragana = 12360; + e.ehookabove = 7867; + e.eibopomofo = 12575; + e.eight = 56; + e.eightarabic = 1640; + e.eightbengali = 2542; + e.eightcircle = 9319; + e.eightcircleinversesansserif = 10129; + e.eightdeva = 2414; + e.eighteencircle = 9329; + e.eighteenparen = 9349; + e.eighteenperiod = 9369; + e.eightgujarati = 2798; + e.eightgurmukhi = 2670; + e.eighthackarabic = 1640; + e.eighthangzhou = 12328; + e.eighthnotebeamed = 9835; + e.eightideographicparen = 12839; + e.eightinferior = 8328; + e.eightmonospace = 65304; + e.eightoldstyle = 63288; + e.eightparen = 9339; + e.eightperiod = 9359; + e.eightpersian = 1784; + e.eightroman = 8567; + e.eightsuperior = 8312; + e.eightthai = 3672; + e.einvertedbreve = 519; + e.eiotifiedcyrillic = 1125; + e.ekatakana = 12456; + e.ekatakanahalfwidth = 65396; + e.ekonkargurmukhi = 2676; + e.ekorean = 12628; + e.elcyrillic = 1083; + e.element = 8712; + e.elevencircle = 9322; + e.elevenparen = 9342; + e.elevenperiod = 9362; + e.elevenroman = 8570; + e.ellipsis = 8230; + e.ellipsisvertical = 8942; + e.emacron = 275; + e.emacronacute = 7703; + e.emacrongrave = 7701; + e.emcyrillic = 1084; + e.emdash = 8212; + e.emdashvertical = 65073; + e.emonospace = 65349; + e.emphasismarkarmenian = 1371; + e.emptyset = 8709; + e.enbopomofo = 12579; + e.encyrillic = 1085; + e.endash = 8211; + e.endashvertical = 65074; + e.endescendercyrillic = 1187; + e.eng = 331; + e.engbopomofo = 12581; + e.enghecyrillic = 1189; + e.enhookcyrillic = 1224; + e.enspace = 8194; + e.eogonek = 281; + e.eokorean = 12627; + e.eopen = 603; + e.eopenclosed = 666; + e.eopenreversed = 604; + e.eopenreversedclosed = 606; + e.eopenreversedhook = 605; + e.eparen = 9376; + e.epsilon = 949; + e.epsilontonos = 941; + e.equal = 61; + e.equalmonospace = 65309; + e.equalsmall = 65126; + e.equalsuperior = 8316; + e.equivalence = 8801; + e.erbopomofo = 12582; + e.ercyrillic = 1088; + e.ereversed = 600; + e.ereversedcyrillic = 1101; + e.escyrillic = 1089; + e.esdescendercyrillic = 1195; + e.esh = 643; + e.eshcurl = 646; + e.eshortdeva = 2318; + e.eshortvowelsigndeva = 2374; + e.eshreversedloop = 426; + e.eshsquatreversed = 645; + e.esmallhiragana = 12359; + e.esmallkatakana = 12455; + e.esmallkatakanahalfwidth = 65386; + e.estimated = 8494; + e.esuperior = 63212; + e.eta = 951; + e.etarmenian = 1384; + e.etatonos = 942; + e.eth = 240; + e.etilde = 7869; + e.etildebelow = 7707; + e.etnahtafoukhhebrew = 1425; + e.etnahtafoukhlefthebrew = 1425; + e.etnahtahebrew = 1425; + e.etnahtalefthebrew = 1425; + e.eturned = 477; + e.eukorean = 12641; + e.euro = 8364; + e.evowelsignbengali = 2503; + e.evowelsigndeva = 2375; + e.evowelsigngujarati = 2759; + e.exclam = 33; + e.exclamarmenian = 1372; + e.exclamdbl = 8252; + e.exclamdown = 161; + e.exclamdownsmall = 63393; + e.exclammonospace = 65281; + e.exclamsmall = 63265; + e.existential = 8707; + e.ezh = 658; + e.ezhcaron = 495; + e.ezhcurl = 659; + e.ezhreversed = 441; + e.ezhtail = 442; + e.f = 102; + e.fadeva = 2398; + e.fagurmukhi = 2654; + e.fahrenheit = 8457; + e.fathaarabic = 1614; + e.fathalowarabic = 1614; + e.fathatanarabic = 1611; + e.fbopomofo = 12552; + e.fcircle = 9429; + e.fdotaccent = 7711; + e.feharabic = 1601; + e.feharmenian = 1414; + e.fehfinalarabic = 65234; + e.fehinitialarabic = 65235; + e.fehmedialarabic = 65236; + e.feicoptic = 997; + e.female = 9792; + e.ff = 64256; + e.f_f = 64256; + e.ffi = 64259; + e.f_f_i = 64259; + e.ffl = 64260; + e.f_f_l = 64260; + e.fi = 64257; + e.f_i = 64257; + e.fifteencircle = 9326; + e.fifteenparen = 9346; + e.fifteenperiod = 9366; + e.figuredash = 8210; + e.filledbox = 9632; + e.filledrect = 9644; + e.finalkaf = 1498; + e.finalkafdagesh = 64314; + e.finalkafdageshhebrew = 64314; + e.finalkafhebrew = 1498; + e.finalmem = 1501; + e.finalmemhebrew = 1501; + e.finalnun = 1503; + e.finalnunhebrew = 1503; + e.finalpe = 1507; + e.finalpehebrew = 1507; + e.finaltsadi = 1509; + e.finaltsadihebrew = 1509; + e.firsttonechinese = 713; + e.fisheye = 9673; + e.fitacyrillic = 1139; + e.five = 53; + e.fivearabic = 1637; + e.fivebengali = 2539; + e.fivecircle = 9316; + e.fivecircleinversesansserif = 10126; + e.fivedeva = 2411; + e.fiveeighths = 8541; + e.fivegujarati = 2795; + e.fivegurmukhi = 2667; + e.fivehackarabic = 1637; + e.fivehangzhou = 12325; + e.fiveideographicparen = 12836; + e.fiveinferior = 8325; + e.fivemonospace = 65301; + e.fiveoldstyle = 63285; + e.fiveparen = 9336; + e.fiveperiod = 9356; + e.fivepersian = 1781; + e.fiveroman = 8564; + e.fivesuperior = 8309; + e.fivethai = 3669; + e.fl = 64258; + e.f_l = 64258; + e.florin = 402; + e.fmonospace = 65350; + e.fmsquare = 13209; + e.fofanthai = 3615; + e.fofathai = 3613; + e.fongmanthai = 3663; + e.forall = 8704; + e.four = 52; + e.fourarabic = 1636; + e.fourbengali = 2538; + e.fourcircle = 9315; + e.fourcircleinversesansserif = 10125; + e.fourdeva = 2410; + e.fourgujarati = 2794; + e.fourgurmukhi = 2666; + e.fourhackarabic = 1636; + e.fourhangzhou = 12324; + e.fourideographicparen = 12835; + e.fourinferior = 8324; + e.fourmonospace = 65300; + e.fournumeratorbengali = 2551; + e.fouroldstyle = 63284; + e.fourparen = 9335; + e.fourperiod = 9355; + e.fourpersian = 1780; + e.fourroman = 8563; + e.foursuperior = 8308; + e.fourteencircle = 9325; + e.fourteenparen = 9345; + e.fourteenperiod = 9365; + e.fourthai = 3668; + e.fourthtonechinese = 715; + e.fparen = 9377; + e.fraction = 8260; + e.franc = 8355; + e.g = 103; + e.gabengali = 2455; + e.gacute = 501; + e.gadeva = 2327; + e.gafarabic = 1711; + e.gaffinalarabic = 64403; + e.gafinitialarabic = 64404; + e.gafmedialarabic = 64405; + e.gagujarati = 2711; + e.gagurmukhi = 2583; + e.gahiragana = 12364; + e.gakatakana = 12460; + e.gamma = 947; + e.gammalatinsmall = 611; + e.gammasuperior = 736; + e.gangiacoptic = 1003; + e.gbopomofo = 12557; + e.gbreve = 287; + e.gcaron = 487; + e.gcedilla = 291; + e.gcircle = 9430; + e.gcircumflex = 285; + e.gcommaaccent = 291; + e.gdot = 289; + e.gdotaccent = 289; + e.gecyrillic = 1075; + e.gehiragana = 12370; + e.gekatakana = 12466; + e.geometricallyequal = 8785; + e.gereshaccenthebrew = 1436; + e.gereshhebrew = 1523; + e.gereshmuqdamhebrew = 1437; + e.germandbls = 223; + e.gershayimaccenthebrew = 1438; + e.gershayimhebrew = 1524; + e.getamark = 12307; + e.ghabengali = 2456; + e.ghadarmenian = 1394; + e.ghadeva = 2328; + e.ghagujarati = 2712; + e.ghagurmukhi = 2584; + e.ghainarabic = 1594; + e.ghainfinalarabic = 65230; + e.ghaininitialarabic = 65231; + e.ghainmedialarabic = 65232; + e.ghemiddlehookcyrillic = 1173; + e.ghestrokecyrillic = 1171; + e.gheupturncyrillic = 1169; + e.ghhadeva = 2394; + e.ghhagurmukhi = 2650; + e.ghook = 608; + e.ghzsquare = 13203; + e.gihiragana = 12366; + e.gikatakana = 12462; + e.gimarmenian = 1379; + e.gimel = 1490; + e.gimeldagesh = 64306; + e.gimeldageshhebrew = 64306; + e.gimelhebrew = 1490; + e.gjecyrillic = 1107; + e.glottalinvertedstroke = 446; + e.glottalstop = 660; + e.glottalstopinverted = 662; + e.glottalstopmod = 704; + e.glottalstopreversed = 661; + e.glottalstopreversedmod = 705; + e.glottalstopreversedsuperior = 740; + e.glottalstopstroke = 673; + e.glottalstopstrokereversed = 674; + e.gmacron = 7713; + e.gmonospace = 65351; + e.gohiragana = 12372; + e.gokatakana = 12468; + e.gparen = 9378; + e.gpasquare = 13228; + e.gradient = 8711; + e.grave = 96; + e.gravebelowcmb = 790; + e.gravecmb = 768; + e.gravecomb = 768; + e.gravedeva = 2387; + e.gravelowmod = 718; + e.gravemonospace = 65344; + e.gravetonecmb = 832; + e.greater = 62; + e.greaterequal = 8805; + e.greaterequalorless = 8923; + e.greatermonospace = 65310; + e.greaterorequivalent = 8819; + e.greaterorless = 8823; + e.greateroverequal = 8807; + e.greatersmall = 65125; + e.gscript = 609; + e.gstroke = 485; + e.guhiragana = 12368; + e.guillemotleft = 171; + e.guillemotright = 187; + e.guilsinglleft = 8249; + e.guilsinglright = 8250; + e.gukatakana = 12464; + e.guramusquare = 13080; + e.gysquare = 13257; + e.h = 104; + e.haabkhasiancyrillic = 1193; + e.haaltonearabic = 1729; + e.habengali = 2489; + e.hadescendercyrillic = 1203; + e.hadeva = 2361; + e.hagujarati = 2745; + e.hagurmukhi = 2617; + e.haharabic = 1581; + e.hahfinalarabic = 65186; + e.hahinitialarabic = 65187; + e.hahiragana = 12399; + e.hahmedialarabic = 65188; + e.haitusquare = 13098; + e.hakatakana = 12495; + e.hakatakanahalfwidth = 65418; + e.halantgurmukhi = 2637; + e.hamzaarabic = 1569; + e.hamzalowarabic = 1569; + e.hangulfiller = 12644; + e.hardsigncyrillic = 1098; + e.harpoonleftbarbup = 8636; + e.harpoonrightbarbup = 8640; + e.hasquare = 13258; + e.hatafpatah = 1458; + e.hatafpatah16 = 1458; + e.hatafpatah23 = 1458; + e.hatafpatah2f = 1458; + e.hatafpatahhebrew = 1458; + e.hatafpatahnarrowhebrew = 1458; + e.hatafpatahquarterhebrew = 1458; + e.hatafpatahwidehebrew = 1458; + e.hatafqamats = 1459; + e.hatafqamats1b = 1459; + e.hatafqamats28 = 1459; + e.hatafqamats34 = 1459; + e.hatafqamatshebrew = 1459; + e.hatafqamatsnarrowhebrew = 1459; + e.hatafqamatsquarterhebrew = 1459; + e.hatafqamatswidehebrew = 1459; + e.hatafsegol = 1457; + e.hatafsegol17 = 1457; + e.hatafsegol24 = 1457; + e.hatafsegol30 = 1457; + e.hatafsegolhebrew = 1457; + e.hatafsegolnarrowhebrew = 1457; + e.hatafsegolquarterhebrew = 1457; + e.hatafsegolwidehebrew = 1457; + e.hbar = 295; + e.hbopomofo = 12559; + e.hbrevebelow = 7723; + e.hcedilla = 7721; + e.hcircle = 9431; + e.hcircumflex = 293; + e.hdieresis = 7719; + e.hdotaccent = 7715; + e.hdotbelow = 7717; + e.he = 1492; + e.heart = 9829; + e.heartsuitblack = 9829; + e.heartsuitwhite = 9825; + e.hedagesh = 64308; + e.hedageshhebrew = 64308; + e.hehaltonearabic = 1729; + e.heharabic = 1607; + e.hehebrew = 1492; + e.hehfinalaltonearabic = 64423; + e.hehfinalalttwoarabic = 65258; + e.hehfinalarabic = 65258; + e.hehhamzaabovefinalarabic = 64421; + e.hehhamzaaboveisolatedarabic = 64420; + e.hehinitialaltonearabic = 64424; + e.hehinitialarabic = 65259; + e.hehiragana = 12408; + e.hehmedialaltonearabic = 64425; + e.hehmedialarabic = 65260; + e.heiseierasquare = 13179; + e.hekatakana = 12504; + e.hekatakanahalfwidth = 65421; + e.hekutaarusquare = 13110; + e.henghook = 615; + e.herutusquare = 13113; + e.het = 1495; + e.hethebrew = 1495; + e.hhook = 614; + e.hhooksuperior = 689; + e.hieuhacirclekorean = 12923; + e.hieuhaparenkorean = 12827; + e.hieuhcirclekorean = 12909; + e.hieuhkorean = 12622; + e.hieuhparenkorean = 12813; + e.hihiragana = 12402; + e.hikatakana = 12498; + e.hikatakanahalfwidth = 65419; + e.hiriq = 1460; + e.hiriq14 = 1460; + e.hiriq21 = 1460; + e.hiriq2d = 1460; + e.hiriqhebrew = 1460; + e.hiriqnarrowhebrew = 1460; + e.hiriqquarterhebrew = 1460; + e.hiriqwidehebrew = 1460; + e.hlinebelow = 7830; + e.hmonospace = 65352; + e.hoarmenian = 1392; + e.hohipthai = 3627; + e.hohiragana = 12411; + e.hokatakana = 12507; + e.hokatakanahalfwidth = 65422; + e.holam = 1465; + e.holam19 = 1465; + e.holam26 = 1465; + e.holam32 = 1465; + e.holamhebrew = 1465; + e.holamnarrowhebrew = 1465; + e.holamquarterhebrew = 1465; + e.holamwidehebrew = 1465; + e.honokhukthai = 3630; + e.hookabovecomb = 777; + e.hookcmb = 777; + e.hookpalatalizedbelowcmb = 801; + e.hookretroflexbelowcmb = 802; + e.hoonsquare = 13122; + e.horicoptic = 1001; + e.horizontalbar = 8213; + e.horncmb = 795; + e.hotsprings = 9832; + e.house = 8962; + e.hparen = 9379; + e.hsuperior = 688; + e.hturned = 613; + e.huhiragana = 12405; + e.huiitosquare = 13107; + e.hukatakana = 12501; + e.hukatakanahalfwidth = 65420; + e.hungarumlaut = 733; + e.hungarumlautcmb = 779; + e.hv = 405; + e.hyphen = 45; + e.hypheninferior = 63205; + e.hyphenmonospace = 65293; + e.hyphensmall = 65123; + e.hyphensuperior = 63206; + e.hyphentwo = 8208; + e.i = 105; + e.iacute = 237; + e.iacyrillic = 1103; + e.ibengali = 2439; + e.ibopomofo = 12583; + e.ibreve = 301; + e.icaron = 464; + e.icircle = 9432; + e.icircumflex = 238; + e.icyrillic = 1110; + e.idblgrave = 521; + e.ideographearthcircle = 12943; + e.ideographfirecircle = 12939; + e.ideographicallianceparen = 12863; + e.ideographiccallparen = 12858; + e.ideographiccentrecircle = 12965; + e.ideographicclose = 12294; + e.ideographiccomma = 12289; + e.ideographiccommaleft = 65380; + e.ideographiccongratulationparen = 12855; + e.ideographiccorrectcircle = 12963; + e.ideographicearthparen = 12847; + e.ideographicenterpriseparen = 12861; + e.ideographicexcellentcircle = 12957; + e.ideographicfestivalparen = 12864; + e.ideographicfinancialcircle = 12950; + e.ideographicfinancialparen = 12854; + e.ideographicfireparen = 12843; + e.ideographichaveparen = 12850; + e.ideographichighcircle = 12964; + e.ideographiciterationmark = 12293; + e.ideographiclaborcircle = 12952; + e.ideographiclaborparen = 12856; + e.ideographicleftcircle = 12967; + e.ideographiclowcircle = 12966; + e.ideographicmedicinecircle = 12969; + e.ideographicmetalparen = 12846; + e.ideographicmoonparen = 12842; + e.ideographicnameparen = 12852; + e.ideographicperiod = 12290; + e.ideographicprintcircle = 12958; + e.ideographicreachparen = 12867; + e.ideographicrepresentparen = 12857; + e.ideographicresourceparen = 12862; + e.ideographicrightcircle = 12968; + e.ideographicsecretcircle = 12953; + e.ideographicselfparen = 12866; + e.ideographicsocietyparen = 12851; + e.ideographicspace = 12288; + e.ideographicspecialparen = 12853; + e.ideographicstockparen = 12849; + e.ideographicstudyparen = 12859; + e.ideographicsunparen = 12848; + e.ideographicsuperviseparen = 12860; + e.ideographicwaterparen = 12844; + e.ideographicwoodparen = 12845; + e.ideographiczero = 12295; + e.ideographmetalcircle = 12942; + e.ideographmooncircle = 12938; + e.ideographnamecircle = 12948; + e.ideographsuncircle = 12944; + e.ideographwatercircle = 12940; + e.ideographwoodcircle = 12941; + e.ideva = 2311; + e.idieresis = 239; + e.idieresisacute = 7727; + e.idieresiscyrillic = 1253; + e.idotbelow = 7883; + e.iebrevecyrillic = 1239; + e.iecyrillic = 1077; + e.ieungacirclekorean = 12917; + e.ieungaparenkorean = 12821; + e.ieungcirclekorean = 12903; + e.ieungkorean = 12615; + e.ieungparenkorean = 12807; + e.igrave = 236; + e.igujarati = 2695; + e.igurmukhi = 2567; + e.ihiragana = 12356; + e.ihookabove = 7881; + e.iibengali = 2440; + e.iicyrillic = 1080; + e.iideva = 2312; + e.iigujarati = 2696; + e.iigurmukhi = 2568; + e.iimatragurmukhi = 2624; + e.iinvertedbreve = 523; + e.iishortcyrillic = 1081; + e.iivowelsignbengali = 2496; + e.iivowelsigndeva = 2368; + e.iivowelsigngujarati = 2752; + e.ij = 307; + e.ikatakana = 12452; + e.ikatakanahalfwidth = 65394; + e.ikorean = 12643; + e.ilde = 732; + e.iluyhebrew = 1452; + e.imacron = 299; + e.imacroncyrillic = 1251; + e.imageorapproximatelyequal = 8787; + e.imatragurmukhi = 2623; + e.imonospace = 65353; + e.increment = 8710; + e.infinity = 8734; + e.iniarmenian = 1387; + e.integral = 8747; + e.integralbottom = 8993; + e.integralbt = 8993; + e.integralex = 63733; + e.integraltop = 8992; + e.integraltp = 8992; + e.intersection = 8745; + e.intisquare = 13061; + e.invbullet = 9688; + e.invcircle = 9689; + e.invsmileface = 9787; + e.iocyrillic = 1105; + e.iogonek = 303; + e.iota = 953; + e.iotadieresis = 970; + e.iotadieresistonos = 912; + e.iotalatin = 617; + e.iotatonos = 943; + e.iparen = 9380; + e.irigurmukhi = 2674; + e.ismallhiragana = 12355; + e.ismallkatakana = 12451; + e.ismallkatakanahalfwidth = 65384; + e.issharbengali = 2554; + e.istroke = 616; + e.isuperior = 63213; + e.iterationhiragana = 12445; + e.iterationkatakana = 12541; + e.itilde = 297; + e.itildebelow = 7725; + e.iubopomofo = 12585; + e.iucyrillic = 1102; + e.ivowelsignbengali = 2495; + e.ivowelsigndeva = 2367; + e.ivowelsigngujarati = 2751; + e.izhitsacyrillic = 1141; + e.izhitsadblgravecyrillic = 1143; + e.j = 106; + e.jaarmenian = 1393; + e.jabengali = 2460; + e.jadeva = 2332; + e.jagujarati = 2716; + e.jagurmukhi = 2588; + e.jbopomofo = 12560; + e.jcaron = 496; + e.jcircle = 9433; + e.jcircumflex = 309; + e.jcrossedtail = 669; + e.jdotlessstroke = 607; + e.jecyrillic = 1112; + e.jeemarabic = 1580; + e.jeemfinalarabic = 65182; + e.jeeminitialarabic = 65183; + e.jeemmedialarabic = 65184; + e.jeharabic = 1688; + e.jehfinalarabic = 64395; + e.jhabengali = 2461; + e.jhadeva = 2333; + e.jhagujarati = 2717; + e.jhagurmukhi = 2589; + e.jheharmenian = 1403; + e.jis = 12292; + e.jmonospace = 65354; + e.jparen = 9381; + e.jsuperior = 690; + e.k = 107; + e.kabashkircyrillic = 1185; + e.kabengali = 2453; + e.kacute = 7729; + e.kacyrillic = 1082; + e.kadescendercyrillic = 1179; + e.kadeva = 2325; + e.kaf = 1499; + e.kafarabic = 1603; + e.kafdagesh = 64315; + e.kafdageshhebrew = 64315; + e.kaffinalarabic = 65242; + e.kafhebrew = 1499; + e.kafinitialarabic = 65243; + e.kafmedialarabic = 65244; + e.kafrafehebrew = 64333; + e.kagujarati = 2709; + e.kagurmukhi = 2581; + e.kahiragana = 12363; + e.kahookcyrillic = 1220; + e.kakatakana = 12459; + e.kakatakanahalfwidth = 65398; + e.kappa = 954; + e.kappasymbolgreek = 1008; + e.kapyeounmieumkorean = 12657; + e.kapyeounphieuphkorean = 12676; + e.kapyeounpieupkorean = 12664; + e.kapyeounssangpieupkorean = 12665; + e.karoriisquare = 13069; + e.kashidaautoarabic = 1600; + e.kashidaautonosidebearingarabic = 1600; + e.kasmallkatakana = 12533; + e.kasquare = 13188; + e.kasraarabic = 1616; + e.kasratanarabic = 1613; + e.kastrokecyrillic = 1183; + e.katahiraprolongmarkhalfwidth = 65392; + e.kaverticalstrokecyrillic = 1181; + e.kbopomofo = 12558; + e.kcalsquare = 13193; + e.kcaron = 489; + e.kcedilla = 311; + e.kcircle = 9434; + e.kcommaaccent = 311; + e.kdotbelow = 7731; + e.keharmenian = 1412; + e.kehiragana = 12369; + e.kekatakana = 12465; + e.kekatakanahalfwidth = 65401; + e.kenarmenian = 1391; + e.kesmallkatakana = 12534; + e.kgreenlandic = 312; + e.khabengali = 2454; + e.khacyrillic = 1093; + e.khadeva = 2326; + e.khagujarati = 2710; + e.khagurmukhi = 2582; + e.khaharabic = 1582; + e.khahfinalarabic = 65190; + e.khahinitialarabic = 65191; + e.khahmedialarabic = 65192; + e.kheicoptic = 999; + e.khhadeva = 2393; + e.khhagurmukhi = 2649; + e.khieukhacirclekorean = 12920; + e.khieukhaparenkorean = 12824; + e.khieukhcirclekorean = 12906; + e.khieukhkorean = 12619; + e.khieukhparenkorean = 12810; + e.khokhaithai = 3586; + e.khokhonthai = 3589; + e.khokhuatthai = 3587; + e.khokhwaithai = 3588; + e.khomutthai = 3675; + e.khook = 409; + e.khorakhangthai = 3590; + e.khzsquare = 13201; + e.kihiragana = 12365; + e.kikatakana = 12461; + e.kikatakanahalfwidth = 65399; + e.kiroguramusquare = 13077; + e.kiromeetorusquare = 13078; + e.kirosquare = 13076; + e.kiyeokacirclekorean = 12910; + e.kiyeokaparenkorean = 12814; + e.kiyeokcirclekorean = 12896; + e.kiyeokkorean = 12593; + e.kiyeokparenkorean = 12800; + e.kiyeoksioskorean = 12595; + e.kjecyrillic = 1116; + e.klinebelow = 7733; + e.klsquare = 13208; + e.kmcubedsquare = 13222; + e.kmonospace = 65355; + e.kmsquaredsquare = 13218; + e.kohiragana = 12371; + e.kohmsquare = 13248; + e.kokaithai = 3585; + e.kokatakana = 12467; + e.kokatakanahalfwidth = 65402; + e.kooposquare = 13086; + e.koppacyrillic = 1153; + e.koreanstandardsymbol = 12927; + e.koroniscmb = 835; + e.kparen = 9382; + e.kpasquare = 13226; + e.ksicyrillic = 1135; + e.ktsquare = 13263; + e.kturned = 670; + e.kuhiragana = 12367; + e.kukatakana = 12463; + e.kukatakanahalfwidth = 65400; + e.kvsquare = 13240; + e.kwsquare = 13246; + e.l = 108; + e.labengali = 2482; + e.lacute = 314; + e.ladeva = 2354; + e.lagujarati = 2738; + e.lagurmukhi = 2610; + e.lakkhangyaothai = 3653; + e.lamaleffinalarabic = 65276; + e.lamalefhamzaabovefinalarabic = 65272; + e.lamalefhamzaaboveisolatedarabic = 65271; + e.lamalefhamzabelowfinalarabic = 65274; + e.lamalefhamzabelowisolatedarabic = 65273; + e.lamalefisolatedarabic = 65275; + e.lamalefmaddaabovefinalarabic = 65270; + e.lamalefmaddaaboveisolatedarabic = 65269; + e.lamarabic = 1604; + e.lambda = 955; + e.lambdastroke = 411; + e.lamed = 1500; + e.lameddagesh = 64316; + e.lameddageshhebrew = 64316; + e.lamedhebrew = 1500; + e.lamfinalarabic = 65246; + e.lamhahinitialarabic = 64714; + e.laminitialarabic = 65247; + e.lamjeeminitialarabic = 64713; + e.lamkhahinitialarabic = 64715; + e.lamlamhehisolatedarabic = 65010; + e.lammedialarabic = 65248; + e.lammeemhahinitialarabic = 64904; + e.lammeeminitialarabic = 64716; + e.largecircle = 9711; + e.lbar = 410; + e.lbelt = 620; + e.lbopomofo = 12556; + e.lcaron = 318; + e.lcedilla = 316; + e.lcircle = 9435; + e.lcircumflexbelow = 7741; + e.lcommaaccent = 316; + e.ldot = 320; + e.ldotaccent = 320; + e.ldotbelow = 7735; + e.ldotbelowmacron = 7737; + e.leftangleabovecmb = 794; + e.lefttackbelowcmb = 792; + e.less = 60; + e.lessequal = 8804; + e.lessequalorgreater = 8922; + e.lessmonospace = 65308; + e.lessorequivalent = 8818; + e.lessorgreater = 8822; + e.lessoverequal = 8806; + e.lesssmall = 65124; + e.lezh = 622; + e.lfblock = 9612; + e.lhookretroflex = 621; + e.lira = 8356; + e.liwnarmenian = 1388; + e.lj = 457; + e.ljecyrillic = 1113; + e.ll = 63168; + e.lladeva = 2355; + e.llagujarati = 2739; + e.llinebelow = 7739; + e.llladeva = 2356; + e.llvocalicbengali = 2529; + e.llvocalicdeva = 2401; + e.llvocalicvowelsignbengali = 2531; + e.llvocalicvowelsigndeva = 2403; + e.lmiddletilde = 619; + e.lmonospace = 65356; + e.lmsquare = 13264; + e.lochulathai = 3628; + e.logicaland = 8743; + e.logicalnot = 172; + e.logicalnotreversed = 8976; + e.logicalor = 8744; + e.lolingthai = 3621; + e.longs = 383; + e.lowlinecenterline = 65102; + e.lowlinecmb = 818; + e.lowlinedashed = 65101; + e.lozenge = 9674; + e.lparen = 9383; + e.lslash = 322; + e.lsquare = 8467; + e.lsuperior = 63214; + e.ltshade = 9617; + e.luthai = 3622; + e.lvocalicbengali = 2444; + e.lvocalicdeva = 2316; + e.lvocalicvowelsignbengali = 2530; + e.lvocalicvowelsigndeva = 2402; + e.lxsquare = 13267; + e.m = 109; + e.mabengali = 2478; + e.macron = 175; + e.macronbelowcmb = 817; + e.macroncmb = 772; + e.macronlowmod = 717; + e.macronmonospace = 65507; + e.macute = 7743; + e.madeva = 2350; + e.magujarati = 2734; + e.magurmukhi = 2606; + e.mahapakhhebrew = 1444; + e.mahapakhlefthebrew = 1444; + e.mahiragana = 12414; + e.maichattawalowleftthai = 63637; + e.maichattawalowrightthai = 63636; + e.maichattawathai = 3659; + e.maichattawaupperleftthai = 63635; + e.maieklowleftthai = 63628; + e.maieklowrightthai = 63627; + e.maiekthai = 3656; + e.maiekupperleftthai = 63626; + e.maihanakatleftthai = 63620; + e.maihanakatthai = 3633; + e.maitaikhuleftthai = 63625; + e.maitaikhuthai = 3655; + e.maitholowleftthai = 63631; + e.maitholowrightthai = 63630; + e.maithothai = 3657; + e.maithoupperleftthai = 63629; + e.maitrilowleftthai = 63634; + e.maitrilowrightthai = 63633; + e.maitrithai = 3658; + e.maitriupperleftthai = 63632; + e.maiyamokthai = 3654; + e.makatakana = 12510; + e.makatakanahalfwidth = 65423; + e.male = 9794; + e.mansyonsquare = 13127; + e.maqafhebrew = 1470; + e.mars = 9794; + e.masoracirclehebrew = 1455; + e.masquare = 13187; + e.mbopomofo = 12551; + e.mbsquare = 13268; + e.mcircle = 9436; + e.mcubedsquare = 13221; + e.mdotaccent = 7745; + e.mdotbelow = 7747; + e.meemarabic = 1605; + e.meemfinalarabic = 65250; + e.meeminitialarabic = 65251; + e.meemmedialarabic = 65252; + e.meemmeeminitialarabic = 64721; + e.meemmeemisolatedarabic = 64584; + e.meetorusquare = 13133; + e.mehiragana = 12417; + e.meizierasquare = 13182; + e.mekatakana = 12513; + e.mekatakanahalfwidth = 65426; + e.mem = 1502; + e.memdagesh = 64318; + e.memdageshhebrew = 64318; + e.memhebrew = 1502; + e.menarmenian = 1396; + e.merkhahebrew = 1445; + e.merkhakefulahebrew = 1446; + e.merkhakefulalefthebrew = 1446; + e.merkhalefthebrew = 1445; + e.mhook = 625; + e.mhzsquare = 13202; + e.middledotkatakanahalfwidth = 65381; + e.middot = 183; + e.mieumacirclekorean = 12914; + e.mieumaparenkorean = 12818; + e.mieumcirclekorean = 12900; + e.mieumkorean = 12609; + e.mieumpansioskorean = 12656; + e.mieumparenkorean = 12804; + e.mieumpieupkorean = 12654; + e.mieumsioskorean = 12655; + e.mihiragana = 12415; + e.mikatakana = 12511; + e.mikatakanahalfwidth = 65424; + e.minus = 8722; + e.minusbelowcmb = 800; + e.minuscircle = 8854; + e.minusmod = 727; + e.minusplus = 8723; + e.minute = 8242; + e.miribaarusquare = 13130; + e.mirisquare = 13129; + e.mlonglegturned = 624; + e.mlsquare = 13206; + e.mmcubedsquare = 13219; + e.mmonospace = 65357; + e.mmsquaredsquare = 13215; + e.mohiragana = 12418; + e.mohmsquare = 13249; + e.mokatakana = 12514; + e.mokatakanahalfwidth = 65427; + e.molsquare = 13270; + e.momathai = 3617; + e.moverssquare = 13223; + e.moverssquaredsquare = 13224; + e.mparen = 9384; + e.mpasquare = 13227; + e.mssquare = 13235; + e.msuperior = 63215; + e.mturned = 623; + e.mu = 181; + e.mu1 = 181; + e.muasquare = 13186; + e.muchgreater = 8811; + e.muchless = 8810; + e.mufsquare = 13196; + e.mugreek = 956; + e.mugsquare = 13197; + e.muhiragana = 12416; + e.mukatakana = 12512; + e.mukatakanahalfwidth = 65425; + e.mulsquare = 13205; + e.multiply = 215; + e.mumsquare = 13211; + e.munahhebrew = 1443; + e.munahlefthebrew = 1443; + e.musicalnote = 9834; + e.musicalnotedbl = 9835; + e.musicflatsign = 9837; + e.musicsharpsign = 9839; + e.mussquare = 13234; + e.muvsquare = 13238; + e.muwsquare = 13244; + e.mvmegasquare = 13241; + e.mvsquare = 13239; + e.mwmegasquare = 13247; + e.mwsquare = 13245; + e.n = 110; + e.nabengali = 2472; + e.nabla = 8711; + e.nacute = 324; + e.nadeva = 2344; + e.nagujarati = 2728; + e.nagurmukhi = 2600; + e.nahiragana = 12394; + e.nakatakana = 12490; + e.nakatakanahalfwidth = 65413; + e.napostrophe = 329; + e.nasquare = 13185; + e.nbopomofo = 12555; + e.nbspace = 160; + e.ncaron = 328; + e.ncedilla = 326; + e.ncircle = 9437; + e.ncircumflexbelow = 7755; + e.ncommaaccent = 326; + e.ndotaccent = 7749; + e.ndotbelow = 7751; + e.nehiragana = 12397; + e.nekatakana = 12493; + e.nekatakanahalfwidth = 65416; + e.newsheqelsign = 8362; + e.nfsquare = 13195; + e.ngabengali = 2457; + e.ngadeva = 2329; + e.ngagujarati = 2713; + e.ngagurmukhi = 2585; + e.ngonguthai = 3591; + e.nhiragana = 12435; + e.nhookleft = 626; + e.nhookretroflex = 627; + e.nieunacirclekorean = 12911; + e.nieunaparenkorean = 12815; + e.nieuncieuckorean = 12597; + e.nieuncirclekorean = 12897; + e.nieunhieuhkorean = 12598; + e.nieunkorean = 12596; + e.nieunpansioskorean = 12648; + e.nieunparenkorean = 12801; + e.nieunsioskorean = 12647; + e.nieuntikeutkorean = 12646; + e.nihiragana = 12395; + e.nikatakana = 12491; + e.nikatakanahalfwidth = 65414; + e.nikhahitleftthai = 63641; + e.nikhahitthai = 3661; + e.nine = 57; + e.ninearabic = 1641; + e.ninebengali = 2543; + e.ninecircle = 9320; + e.ninecircleinversesansserif = 10130; + e.ninedeva = 2415; + e.ninegujarati = 2799; + e.ninegurmukhi = 2671; + e.ninehackarabic = 1641; + e.ninehangzhou = 12329; + e.nineideographicparen = 12840; + e.nineinferior = 8329; + e.ninemonospace = 65305; + e.nineoldstyle = 63289; + e.nineparen = 9340; + e.nineperiod = 9360; + e.ninepersian = 1785; + e.nineroman = 8568; + e.ninesuperior = 8313; + e.nineteencircle = 9330; + e.nineteenparen = 9350; + e.nineteenperiod = 9370; + e.ninethai = 3673; + e.nj = 460; + e.njecyrillic = 1114; + e.nkatakana = 12531; + e.nkatakanahalfwidth = 65437; + e.nlegrightlong = 414; + e.nlinebelow = 7753; + e.nmonospace = 65358; + e.nmsquare = 13210; + e.nnabengali = 2467; + e.nnadeva = 2339; + e.nnagujarati = 2723; + e.nnagurmukhi = 2595; + e.nnnadeva = 2345; + e.nohiragana = 12398; + e.nokatakana = 12494; + e.nokatakanahalfwidth = 65417; + e.nonbreakingspace = 160; + e.nonenthai = 3603; + e.nonuthai = 3609; + e.noonarabic = 1606; + e.noonfinalarabic = 65254; + e.noonghunnaarabic = 1722; + e.noonghunnafinalarabic = 64415; + e.nooninitialarabic = 65255; + e.noonjeeminitialarabic = 64722; + e.noonjeemisolatedarabic = 64587; + e.noonmedialarabic = 65256; + e.noonmeeminitialarabic = 64725; + e.noonmeemisolatedarabic = 64590; + e.noonnoonfinalarabic = 64653; + e.notcontains = 8716; + e.notelement = 8713; + e.notelementof = 8713; + e.notequal = 8800; + e.notgreater = 8815; + e.notgreaternorequal = 8817; + e.notgreaternorless = 8825; + e.notidentical = 8802; + e.notless = 8814; + e.notlessnorequal = 8816; + e.notparallel = 8742; + e.notprecedes = 8832; + e.notsubset = 8836; + e.notsucceeds = 8833; + e.notsuperset = 8837; + e.nowarmenian = 1398; + e.nparen = 9385; + e.nssquare = 13233; + e.nsuperior = 8319; + e.ntilde = 241; + e.nu = 957; + e.nuhiragana = 12396; + e.nukatakana = 12492; + e.nukatakanahalfwidth = 65415; + e.nuktabengali = 2492; + e.nuktadeva = 2364; + e.nuktagujarati = 2748; + e.nuktagurmukhi = 2620; + e.numbersign = 35; + e.numbersignmonospace = 65283; + e.numbersignsmall = 65119; + e.numeralsigngreek = 884; + e.numeralsignlowergreek = 885; + e.numero = 8470; + e.nun = 1504; + e.nundagesh = 64320; + e.nundageshhebrew = 64320; + e.nunhebrew = 1504; + e.nvsquare = 13237; + e.nwsquare = 13243; + e.nyabengali = 2462; + e.nyadeva = 2334; + e.nyagujarati = 2718; + e.nyagurmukhi = 2590; + e.o = 111; + e.oacute = 243; + e.oangthai = 3629; + e.obarred = 629; + e.obarredcyrillic = 1257; + e.obarreddieresiscyrillic = 1259; + e.obengali = 2451; + e.obopomofo = 12571; + e.obreve = 335; + e.ocandradeva = 2321; + e.ocandragujarati = 2705; + e.ocandravowelsigndeva = 2377; + e.ocandravowelsigngujarati = 2761; + e.ocaron = 466; + e.ocircle = 9438; + e.ocircumflex = 244; + e.ocircumflexacute = 7889; + e.ocircumflexdotbelow = 7897; + e.ocircumflexgrave = 7891; + e.ocircumflexhookabove = 7893; + e.ocircumflextilde = 7895; + e.ocyrillic = 1086; + e.odblacute = 337; + e.odblgrave = 525; + e.odeva = 2323; + e.odieresis = 246; + e.odieresiscyrillic = 1255; + e.odotbelow = 7885; + e.oe = 339; + e.oekorean = 12634; + e.ogonek = 731; + e.ogonekcmb = 808; + e.ograve = 242; + e.ogujarati = 2707; + e.oharmenian = 1413; + e.ohiragana = 12362; + e.ohookabove = 7887; + e.ohorn = 417; + e.ohornacute = 7899; + e.ohorndotbelow = 7907; + e.ohorngrave = 7901; + e.ohornhookabove = 7903; + e.ohorntilde = 7905; + e.ohungarumlaut = 337; + e.oi = 419; + e.oinvertedbreve = 527; + e.okatakana = 12458; + e.okatakanahalfwidth = 65397; + e.okorean = 12631; + e.olehebrew = 1451; + e.omacron = 333; + e.omacronacute = 7763; + e.omacrongrave = 7761; + e.omdeva = 2384; + e.omega = 969; + e.omega1 = 982; + e.omegacyrillic = 1121; + e.omegalatinclosed = 631; + e.omegaroundcyrillic = 1147; + e.omegatitlocyrillic = 1149; + e.omegatonos = 974; + e.omgujarati = 2768; + e.omicron = 959; + e.omicrontonos = 972; + e.omonospace = 65359; + e.one = 49; + e.onearabic = 1633; + e.onebengali = 2535; + e.onecircle = 9312; + e.onecircleinversesansserif = 10122; + e.onedeva = 2407; + e.onedotenleader = 8228; + e.oneeighth = 8539; + e.onefitted = 63196; + e.onegujarati = 2791; + e.onegurmukhi = 2663; + e.onehackarabic = 1633; + e.onehalf = 189; + e.onehangzhou = 12321; + e.oneideographicparen = 12832; + e.oneinferior = 8321; + e.onemonospace = 65297; + e.onenumeratorbengali = 2548; + e.oneoldstyle = 63281; + e.oneparen = 9332; + e.oneperiod = 9352; + e.onepersian = 1777; + e.onequarter = 188; + e.oneroman = 8560; + e.onesuperior = 185; + e.onethai = 3665; + e.onethird = 8531; + e.oogonek = 491; + e.oogonekmacron = 493; + e.oogurmukhi = 2579; + e.oomatragurmukhi = 2635; + e.oopen = 596; + e.oparen = 9386; + e.openbullet = 9702; + e.option = 8997; + e.ordfeminine = 170; + e.ordmasculine = 186; + e.orthogonal = 8735; + e.oshortdeva = 2322; + e.oshortvowelsigndeva = 2378; + e.oslash = 248; + e.oslashacute = 511; + e.osmallhiragana = 12361; + e.osmallkatakana = 12457; + e.osmallkatakanahalfwidth = 65387; + e.ostrokeacute = 511; + e.osuperior = 63216; + e.otcyrillic = 1151; + e.otilde = 245; + e.otildeacute = 7757; + e.otildedieresis = 7759; + e.oubopomofo = 12577; + e.overline = 8254; + e.overlinecenterline = 65098; + e.overlinecmb = 773; + e.overlinedashed = 65097; + e.overlinedblwavy = 65100; + e.overlinewavy = 65099; + e.overscore = 175; + e.ovowelsignbengali = 2507; + e.ovowelsigndeva = 2379; + e.ovowelsigngujarati = 2763; + e.p = 112; + e.paampssquare = 13184; + e.paasentosquare = 13099; + e.pabengali = 2474; + e.pacute = 7765; + e.padeva = 2346; + e.pagedown = 8671; + e.pageup = 8670; + e.pagujarati = 2730; + e.pagurmukhi = 2602; + e.pahiragana = 12401; + e.paiyannoithai = 3631; + e.pakatakana = 12497; + e.palatalizationcyrilliccmb = 1156; + e.palochkacyrillic = 1216; + e.pansioskorean = 12671; + e.paragraph = 182; + e.parallel = 8741; + e.parenleft = 40; + e.parenleftaltonearabic = 64830; + e.parenleftbt = 63725; + e.parenleftex = 63724; + e.parenleftinferior = 8333; + e.parenleftmonospace = 65288; + e.parenleftsmall = 65113; + e.parenleftsuperior = 8317; + e.parenlefttp = 63723; + e.parenleftvertical = 65077; + e.parenright = 41; + e.parenrightaltonearabic = 64831; + e.parenrightbt = 63736; + e.parenrightex = 63735; + e.parenrightinferior = 8334; + e.parenrightmonospace = 65289; + e.parenrightsmall = 65114; + e.parenrightsuperior = 8318; + e.parenrighttp = 63734; + e.parenrightvertical = 65078; + e.partialdiff = 8706; + e.paseqhebrew = 1472; + e.pashtahebrew = 1433; + e.pasquare = 13225; + e.patah = 1463; + e.patah11 = 1463; + e.patah1d = 1463; + e.patah2a = 1463; + e.patahhebrew = 1463; + e.patahnarrowhebrew = 1463; + e.patahquarterhebrew = 1463; + e.patahwidehebrew = 1463; + e.pazerhebrew = 1441; + e.pbopomofo = 12550; + e.pcircle = 9439; + e.pdotaccent = 7767; + e.pe = 1508; + e.pecyrillic = 1087; + e.pedagesh = 64324; + e.pedageshhebrew = 64324; + e.peezisquare = 13115; + e.pefinaldageshhebrew = 64323; + e.peharabic = 1662; + e.peharmenian = 1402; + e.pehebrew = 1508; + e.pehfinalarabic = 64343; + e.pehinitialarabic = 64344; + e.pehiragana = 12410; + e.pehmedialarabic = 64345; + e.pekatakana = 12506; + e.pemiddlehookcyrillic = 1191; + e.perafehebrew = 64334; + e.percent = 37; + e.percentarabic = 1642; + e.percentmonospace = 65285; + e.percentsmall = 65130; + e.period = 46; + e.periodarmenian = 1417; + e.periodcentered = 183; + e.periodhalfwidth = 65377; + e.periodinferior = 63207; + e.periodmonospace = 65294; + e.periodsmall = 65106; + e.periodsuperior = 63208; + e.perispomenigreekcmb = 834; + e.perpendicular = 8869; + e.perthousand = 8240; + e.peseta = 8359; + e.pfsquare = 13194; + e.phabengali = 2475; + e.phadeva = 2347; + e.phagujarati = 2731; + e.phagurmukhi = 2603; + e.phi = 966; + e.phi1 = 981; + e.phieuphacirclekorean = 12922; + e.phieuphaparenkorean = 12826; + e.phieuphcirclekorean = 12908; + e.phieuphkorean = 12621; + e.phieuphparenkorean = 12812; + e.philatin = 632; + e.phinthuthai = 3642; + e.phisymbolgreek = 981; + e.phook = 421; + e.phophanthai = 3614; + e.phophungthai = 3612; + e.phosamphaothai = 3616; + e.pi = 960; + e.pieupacirclekorean = 12915; + e.pieupaparenkorean = 12819; + e.pieupcieuckorean = 12662; + e.pieupcirclekorean = 12901; + e.pieupkiyeokkorean = 12658; + e.pieupkorean = 12610; + e.pieupparenkorean = 12805; + e.pieupsioskiyeokkorean = 12660; + e.pieupsioskorean = 12612; + e.pieupsiostikeutkorean = 12661; + e.pieupthieuthkorean = 12663; + e.pieuptikeutkorean = 12659; + e.pihiragana = 12404; + e.pikatakana = 12500; + e.pisymbolgreek = 982; + e.piwrarmenian = 1411; + e.plus = 43; + e.plusbelowcmb = 799; + e.pluscircle = 8853; + e.plusminus = 177; + e.plusmod = 726; + e.plusmonospace = 65291; + e.plussmall = 65122; + e.plussuperior = 8314; + e.pmonospace = 65360; + e.pmsquare = 13272; + e.pohiragana = 12413; + e.pointingindexdownwhite = 9759; + e.pointingindexleftwhite = 9756; + e.pointingindexrightwhite = 9758; + e.pointingindexupwhite = 9757; + e.pokatakana = 12509; + e.poplathai = 3611; + e.postalmark = 12306; + e.postalmarkface = 12320; + e.pparen = 9387; + e.precedes = 8826; + e.prescription = 8478; + e.primemod = 697; + e.primereversed = 8245; + e.product = 8719; + e.projective = 8965; + e.prolongedkana = 12540; + e.propellor = 8984; + e.propersubset = 8834; + e.propersuperset = 8835; + e.proportion = 8759; + e.proportional = 8733; + e.psi = 968; + e.psicyrillic = 1137; + e.psilipneumatacyrilliccmb = 1158; + e.pssquare = 13232; + e.puhiragana = 12407; + e.pukatakana = 12503; + e.pvsquare = 13236; + e.pwsquare = 13242; + e.q = 113; + e.qadeva = 2392; + e.qadmahebrew = 1448; + e.qafarabic = 1602; + e.qaffinalarabic = 65238; + e.qafinitialarabic = 65239; + e.qafmedialarabic = 65240; + e.qamats = 1464; + e.qamats10 = 1464; + e.qamats1a = 1464; + e.qamats1c = 1464; + e.qamats27 = 1464; + e.qamats29 = 1464; + e.qamats33 = 1464; + e.qamatsde = 1464; + e.qamatshebrew = 1464; + e.qamatsnarrowhebrew = 1464; + e.qamatsqatanhebrew = 1464; + e.qamatsqatannarrowhebrew = 1464; + e.qamatsqatanquarterhebrew = 1464; + e.qamatsqatanwidehebrew = 1464; + e.qamatsquarterhebrew = 1464; + e.qamatswidehebrew = 1464; + e.qarneyparahebrew = 1439; + e.qbopomofo = 12561; + e.qcircle = 9440; + e.qhook = 672; + e.qmonospace = 65361; + e.qof = 1511; + e.qofdagesh = 64327; + e.qofdageshhebrew = 64327; + e.qofhebrew = 1511; + e.qparen = 9388; + e.quarternote = 9833; + e.qubuts = 1467; + e.qubuts18 = 1467; + e.qubuts25 = 1467; + e.qubuts31 = 1467; + e.qubutshebrew = 1467; + e.qubutsnarrowhebrew = 1467; + e.qubutsquarterhebrew = 1467; + e.qubutswidehebrew = 1467; + e.question = 63; + e.questionarabic = 1567; + e.questionarmenian = 1374; + e.questiondown = 191; + e.questiondownsmall = 63423; + e.questiongreek = 894; + e.questionmonospace = 65311; + e.questionsmall = 63295; + e.quotedbl = 34; + e.quotedblbase = 8222; + e.quotedblleft = 8220; + e.quotedblmonospace = 65282; + e.quotedblprime = 12318; + e.quotedblprimereversed = 12317; + e.quotedblright = 8221; + e.quoteleft = 8216; + e.quoteleftreversed = 8219; + e.quotereversed = 8219; + e.quoteright = 8217; + e.quoterightn = 329; + e.quotesinglbase = 8218; + e.quotesingle = 39; + e.quotesinglemonospace = 65287; + e.r = 114; + e.raarmenian = 1404; + e.rabengali = 2480; + e.racute = 341; + e.radeva = 2352; + e.radical = 8730; + e.radicalex = 63717; + e.radoverssquare = 13230; + e.radoverssquaredsquare = 13231; + e.radsquare = 13229; + e.rafe = 1471; + e.rafehebrew = 1471; + e.ragujarati = 2736; + e.ragurmukhi = 2608; + e.rahiragana = 12425; + e.rakatakana = 12521; + e.rakatakanahalfwidth = 65431; + e.ralowerdiagonalbengali = 2545; + e.ramiddlediagonalbengali = 2544; + e.ramshorn = 612; + e.ratio = 8758; + e.rbopomofo = 12566; + e.rcaron = 345; + e.rcedilla = 343; + e.rcircle = 9441; + e.rcommaaccent = 343; + e.rdblgrave = 529; + e.rdotaccent = 7769; + e.rdotbelow = 7771; + e.rdotbelowmacron = 7773; + e.referencemark = 8251; + e.reflexsubset = 8838; + e.reflexsuperset = 8839; + e.registered = 174; + e.registersans = 63720; + e.registerserif = 63194; + e.reharabic = 1585; + e.reharmenian = 1408; + e.rehfinalarabic = 65198; + e.rehiragana = 12428; + e.rekatakana = 12524; + e.rekatakanahalfwidth = 65434; + e.resh = 1512; + e.reshdageshhebrew = 64328; + e.reshhebrew = 1512; + e.reversedtilde = 8765; + e.reviahebrew = 1431; + e.reviamugrashhebrew = 1431; + e.revlogicalnot = 8976; + e.rfishhook = 638; + e.rfishhookreversed = 639; + e.rhabengali = 2525; + e.rhadeva = 2397; + e.rho = 961; + e.rhook = 637; + e.rhookturned = 635; + e.rhookturnedsuperior = 693; + e.rhosymbolgreek = 1009; + e.rhotichookmod = 734; + e.rieulacirclekorean = 12913; + e.rieulaparenkorean = 12817; + e.rieulcirclekorean = 12899; + e.rieulhieuhkorean = 12608; + e.rieulkiyeokkorean = 12602; + e.rieulkiyeoksioskorean = 12649; + e.rieulkorean = 12601; + e.rieulmieumkorean = 12603; + e.rieulpansioskorean = 12652; + e.rieulparenkorean = 12803; + e.rieulphieuphkorean = 12607; + e.rieulpieupkorean = 12604; + e.rieulpieupsioskorean = 12651; + e.rieulsioskorean = 12605; + e.rieulthieuthkorean = 12606; + e.rieultikeutkorean = 12650; + e.rieulyeorinhieuhkorean = 12653; + e.rightangle = 8735; + e.righttackbelowcmb = 793; + e.righttriangle = 8895; + e.rihiragana = 12426; + e.rikatakana = 12522; + e.rikatakanahalfwidth = 65432; + e.ring = 730; + e.ringbelowcmb = 805; + e.ringcmb = 778; + e.ringhalfleft = 703; + e.ringhalfleftarmenian = 1369; + e.ringhalfleftbelowcmb = 796; + e.ringhalfleftcentered = 723; + e.ringhalfright = 702; + e.ringhalfrightbelowcmb = 825; + e.ringhalfrightcentered = 722; + e.rinvertedbreve = 531; + e.rittorusquare = 13137; + e.rlinebelow = 7775; + e.rlongleg = 636; + e.rlonglegturned = 634; + e.rmonospace = 65362; + e.rohiragana = 12429; + e.rokatakana = 12525; + e.rokatakanahalfwidth = 65435; + e.roruathai = 3619; + e.rparen = 9389; + e.rrabengali = 2524; + e.rradeva = 2353; + e.rragurmukhi = 2652; + e.rreharabic = 1681; + e.rrehfinalarabic = 64397; + e.rrvocalicbengali = 2528; + e.rrvocalicdeva = 2400; + e.rrvocalicgujarati = 2784; + e.rrvocalicvowelsignbengali = 2500; + e.rrvocalicvowelsigndeva = 2372; + e.rrvocalicvowelsigngujarati = 2756; + e.rsuperior = 63217; + e.rtblock = 9616; + e.rturned = 633; + e.rturnedsuperior = 692; + e.ruhiragana = 12427; + e.rukatakana = 12523; + e.rukatakanahalfwidth = 65433; + e.rupeemarkbengali = 2546; + e.rupeesignbengali = 2547; + e.rupiah = 63197; + e.ruthai = 3620; + e.rvocalicbengali = 2443; + e.rvocalicdeva = 2315; + e.rvocalicgujarati = 2699; + e.rvocalicvowelsignbengali = 2499; + e.rvocalicvowelsigndeva = 2371; + e.rvocalicvowelsigngujarati = 2755; + e.s = 115; + e.sabengali = 2488; + e.sacute = 347; + e.sacutedotaccent = 7781; + e.sadarabic = 1589; + e.sadeva = 2360; + e.sadfinalarabic = 65210; + e.sadinitialarabic = 65211; + e.sadmedialarabic = 65212; + e.sagujarati = 2744; + e.sagurmukhi = 2616; + e.sahiragana = 12373; + e.sakatakana = 12469; + e.sakatakanahalfwidth = 65403; + e.sallallahoualayhewasallamarabic = 65018; + e.samekh = 1505; + e.samekhdagesh = 64321; + e.samekhdageshhebrew = 64321; + e.samekhhebrew = 1505; + e.saraaathai = 3634; + e.saraaethai = 3649; + e.saraaimaimalaithai = 3652; + e.saraaimaimuanthai = 3651; + e.saraamthai = 3635; + e.saraathai = 3632; + e.saraethai = 3648; + e.saraiileftthai = 63622; + e.saraiithai = 3637; + e.saraileftthai = 63621; + e.saraithai = 3636; + e.saraothai = 3650; + e.saraueeleftthai = 63624; + e.saraueethai = 3639; + e.saraueleftthai = 63623; + e.sarauethai = 3638; + e.sarauthai = 3640; + e.sarauuthai = 3641; + e.sbopomofo = 12569; + e.scaron = 353; + e.scarondotaccent = 7783; + e.scedilla = 351; + e.schwa = 601; + e.schwacyrillic = 1241; + e.schwadieresiscyrillic = 1243; + e.schwahook = 602; + e.scircle = 9442; + e.scircumflex = 349; + e.scommaaccent = 537; + e.sdotaccent = 7777; + e.sdotbelow = 7779; + e.sdotbelowdotaccent = 7785; + e.seagullbelowcmb = 828; + e.second = 8243; + e.secondtonechinese = 714; + e.section = 167; + e.seenarabic = 1587; + e.seenfinalarabic = 65202; + e.seeninitialarabic = 65203; + e.seenmedialarabic = 65204; + e.segol = 1462; + e.segol13 = 1462; + e.segol1f = 1462; + e.segol2c = 1462; + e.segolhebrew = 1462; + e.segolnarrowhebrew = 1462; + e.segolquarterhebrew = 1462; + e.segoltahebrew = 1426; + e.segolwidehebrew = 1462; + e.seharmenian = 1405; + e.sehiragana = 12379; + e.sekatakana = 12475; + e.sekatakanahalfwidth = 65406; + e.semicolon = 59; + e.semicolonarabic = 1563; + e.semicolonmonospace = 65307; + e.semicolonsmall = 65108; + e.semivoicedmarkkana = 12444; + e.semivoicedmarkkanahalfwidth = 65439; + e.sentisquare = 13090; + e.sentosquare = 13091; + e.seven = 55; + e.sevenarabic = 1639; + e.sevenbengali = 2541; + e.sevencircle = 9318; + e.sevencircleinversesansserif = 10128; + e.sevendeva = 2413; + e.seveneighths = 8542; + e.sevengujarati = 2797; + e.sevengurmukhi = 2669; + e.sevenhackarabic = 1639; + e.sevenhangzhou = 12327; + e.sevenideographicparen = 12838; + e.seveninferior = 8327; + e.sevenmonospace = 65303; + e.sevenoldstyle = 63287; + e.sevenparen = 9338; + e.sevenperiod = 9358; + e.sevenpersian = 1783; + e.sevenroman = 8566; + e.sevensuperior = 8311; + e.seventeencircle = 9328; + e.seventeenparen = 9348; + e.seventeenperiod = 9368; + e.seventhai = 3671; + e.sfthyphen = 173; + e.shaarmenian = 1399; + e.shabengali = 2486; + e.shacyrillic = 1096; + e.shaddaarabic = 1617; + e.shaddadammaarabic = 64609; + e.shaddadammatanarabic = 64606; + e.shaddafathaarabic = 64608; + e.shaddakasraarabic = 64610; + e.shaddakasratanarabic = 64607; + e.shade = 9618; + e.shadedark = 9619; + e.shadelight = 9617; + e.shademedium = 9618; + e.shadeva = 2358; + e.shagujarati = 2742; + e.shagurmukhi = 2614; + e.shalshelethebrew = 1427; + e.shbopomofo = 12565; + e.shchacyrillic = 1097; + e.sheenarabic = 1588; + e.sheenfinalarabic = 65206; + e.sheeninitialarabic = 65207; + e.sheenmedialarabic = 65208; + e.sheicoptic = 995; + e.sheqel = 8362; + e.sheqelhebrew = 8362; + e.sheva = 1456; + e.sheva115 = 1456; + e.sheva15 = 1456; + e.sheva22 = 1456; + e.sheva2e = 1456; + e.shevahebrew = 1456; + e.shevanarrowhebrew = 1456; + e.shevaquarterhebrew = 1456; + e.shevawidehebrew = 1456; + e.shhacyrillic = 1211; + e.shimacoptic = 1005; + e.shin = 1513; + e.shindagesh = 64329; + e.shindageshhebrew = 64329; + e.shindageshshindot = 64300; + e.shindageshshindothebrew = 64300; + e.shindageshsindot = 64301; + e.shindageshsindothebrew = 64301; + e.shindothebrew = 1473; + e.shinhebrew = 1513; + e.shinshindot = 64298; + e.shinshindothebrew = 64298; + e.shinsindot = 64299; + e.shinsindothebrew = 64299; + e.shook = 642; + e.sigma = 963; + e.sigma1 = 962; + e.sigmafinal = 962; + e.sigmalunatesymbolgreek = 1010; + e.sihiragana = 12375; + e.sikatakana = 12471; + e.sikatakanahalfwidth = 65404; + e.siluqhebrew = 1469; + e.siluqlefthebrew = 1469; + e.similar = 8764; + e.sindothebrew = 1474; + e.siosacirclekorean = 12916; + e.siosaparenkorean = 12820; + e.sioscieuckorean = 12670; + e.sioscirclekorean = 12902; + e.sioskiyeokkorean = 12666; + e.sioskorean = 12613; + e.siosnieunkorean = 12667; + e.siosparenkorean = 12806; + e.siospieupkorean = 12669; + e.siostikeutkorean = 12668; + e.six = 54; + e.sixarabic = 1638; + e.sixbengali = 2540; + e.sixcircle = 9317; + e.sixcircleinversesansserif = 10127; + e.sixdeva = 2412; + e.sixgujarati = 2796; + e.sixgurmukhi = 2668; + e.sixhackarabic = 1638; + e.sixhangzhou = 12326; + e.sixideographicparen = 12837; + e.sixinferior = 8326; + e.sixmonospace = 65302; + e.sixoldstyle = 63286; + e.sixparen = 9337; + e.sixperiod = 9357; + e.sixpersian = 1782; + e.sixroman = 8565; + e.sixsuperior = 8310; + e.sixteencircle = 9327; + e.sixteencurrencydenominatorbengali = 2553; + e.sixteenparen = 9347; + e.sixteenperiod = 9367; + e.sixthai = 3670; + e.slash = 47; + e.slashmonospace = 65295; + e.slong = 383; + e.slongdotaccent = 7835; + e.smileface = 9786; + e.smonospace = 65363; + e.sofpasuqhebrew = 1475; + e.softhyphen = 173; + e.softsigncyrillic = 1100; + e.sohiragana = 12381; + e.sokatakana = 12477; + e.sokatakanahalfwidth = 65407; + e.soliduslongoverlaycmb = 824; + e.solidusshortoverlaycmb = 823; + e.sorusithai = 3625; + e.sosalathai = 3624; + e.sosothai = 3595; + e.sosuathai = 3626; + e.space = 32; + e.spacehackarabic = 32; + e.spade = 9824; + e.spadesuitblack = 9824; + e.spadesuitwhite = 9828; + e.sparen = 9390; + e.squarebelowcmb = 827; + e.squarecc = 13252; + e.squarecm = 13213; + e.squarediagonalcrosshatchfill = 9641; + e.squarehorizontalfill = 9636; + e.squarekg = 13199; + e.squarekm = 13214; + e.squarekmcapital = 13262; + e.squareln = 13265; + e.squarelog = 13266; + e.squaremg = 13198; + e.squaremil = 13269; + e.squaremm = 13212; + e.squaremsquared = 13217; + e.squareorthogonalcrosshatchfill = 9638; + e.squareupperlefttolowerrightfill = 9639; + e.squareupperrighttolowerleftfill = 9640; + e.squareverticalfill = 9637; + e.squarewhitewithsmallblack = 9635; + e.srsquare = 13275; + e.ssabengali = 2487; + e.ssadeva = 2359; + e.ssagujarati = 2743; + e.ssangcieuckorean = 12617; + e.ssanghieuhkorean = 12677; + e.ssangieungkorean = 12672; + e.ssangkiyeokkorean = 12594; + e.ssangnieunkorean = 12645; + e.ssangpieupkorean = 12611; + e.ssangsioskorean = 12614; + e.ssangtikeutkorean = 12600; + e.ssuperior = 63218; + e.sterling = 163; + e.sterlingmonospace = 65505; + e.strokelongoverlaycmb = 822; + e.strokeshortoverlaycmb = 821; + e.subset = 8834; + e.subsetnotequal = 8842; + e.subsetorequal = 8838; + e.succeeds = 8827; + e.suchthat = 8715; + e.suhiragana = 12377; + e.sukatakana = 12473; + e.sukatakanahalfwidth = 65405; + e.sukunarabic = 1618; + e.summation = 8721; + e.sun = 9788; + e.superset = 8835; + e.supersetnotequal = 8843; + e.supersetorequal = 8839; + e.svsquare = 13276; + e.syouwaerasquare = 13180; + e.t = 116; + e.tabengali = 2468; + e.tackdown = 8868; + e.tackleft = 8867; + e.tadeva = 2340; + e.tagujarati = 2724; + e.tagurmukhi = 2596; + e.taharabic = 1591; + e.tahfinalarabic = 65218; + e.tahinitialarabic = 65219; + e.tahiragana = 12383; + e.tahmedialarabic = 65220; + e.taisyouerasquare = 13181; + e.takatakana = 12479; + e.takatakanahalfwidth = 65408; + e.tatweelarabic = 1600; + e.tau = 964; + e.tav = 1514; + e.tavdages = 64330; + e.tavdagesh = 64330; + e.tavdageshhebrew = 64330; + e.tavhebrew = 1514; + e.tbar = 359; + e.tbopomofo = 12554; + e.tcaron = 357; + e.tccurl = 680; + e.tcedilla = 355; + e.tcheharabic = 1670; + e.tchehfinalarabic = 64379; + e.tchehinitialarabic = 64380; + e.tchehmedialarabic = 64381; + e.tcircle = 9443; + e.tcircumflexbelow = 7793; + e.tcommaaccent = 355; + e.tdieresis = 7831; + e.tdotaccent = 7787; + e.tdotbelow = 7789; + e.tecyrillic = 1090; + e.tedescendercyrillic = 1197; + e.teharabic = 1578; + e.tehfinalarabic = 65174; + e.tehhahinitialarabic = 64674; + e.tehhahisolatedarabic = 64524; + e.tehinitialarabic = 65175; + e.tehiragana = 12390; + e.tehjeeminitialarabic = 64673; + e.tehjeemisolatedarabic = 64523; + e.tehmarbutaarabic = 1577; + e.tehmarbutafinalarabic = 65172; + e.tehmedialarabic = 65176; + e.tehmeeminitialarabic = 64676; + e.tehmeemisolatedarabic = 64526; + e.tehnoonfinalarabic = 64627; + e.tekatakana = 12486; + e.tekatakanahalfwidth = 65411; + e.telephone = 8481; + e.telephoneblack = 9742; + e.telishagedolahebrew = 1440; + e.telishaqetanahebrew = 1449; + e.tencircle = 9321; + e.tenideographicparen = 12841; + e.tenparen = 9341; + e.tenperiod = 9361; + e.tenroman = 8569; + e.tesh = 679; + e.tet = 1496; + e.tetdagesh = 64312; + e.tetdageshhebrew = 64312; + e.tethebrew = 1496; + e.tetsecyrillic = 1205; + e.tevirhebrew = 1435; + e.tevirlefthebrew = 1435; + e.thabengali = 2469; + e.thadeva = 2341; + e.thagujarati = 2725; + e.thagurmukhi = 2597; + e.thalarabic = 1584; + e.thalfinalarabic = 65196; + e.thanthakhatlowleftthai = 63640; + e.thanthakhatlowrightthai = 63639; + e.thanthakhatthai = 3660; + e.thanthakhatupperleftthai = 63638; + e.theharabic = 1579; + e.thehfinalarabic = 65178; + e.thehinitialarabic = 65179; + e.thehmedialarabic = 65180; + e.thereexists = 8707; + e.therefore = 8756; + e.theta = 952; + e.theta1 = 977; + e.thetasymbolgreek = 977; + e.thieuthacirclekorean = 12921; + e.thieuthaparenkorean = 12825; + e.thieuthcirclekorean = 12907; + e.thieuthkorean = 12620; + e.thieuthparenkorean = 12811; + e.thirteencircle = 9324; + e.thirteenparen = 9344; + e.thirteenperiod = 9364; + e.thonangmonthothai = 3601; + e.thook = 429; + e.thophuthaothai = 3602; + e.thorn = 254; + e.thothahanthai = 3607; + e.thothanthai = 3600; + e.thothongthai = 3608; + e.thothungthai = 3606; + e.thousandcyrillic = 1154; + e.thousandsseparatorarabic = 1644; + e.thousandsseparatorpersian = 1644; + e.three = 51; + e.threearabic = 1635; + e.threebengali = 2537; + e.threecircle = 9314; + e.threecircleinversesansserif = 10124; + e.threedeva = 2409; + e.threeeighths = 8540; + e.threegujarati = 2793; + e.threegurmukhi = 2665; + e.threehackarabic = 1635; + e.threehangzhou = 12323; + e.threeideographicparen = 12834; + e.threeinferior = 8323; + e.threemonospace = 65299; + e.threenumeratorbengali = 2550; + e.threeoldstyle = 63283; + e.threeparen = 9334; + e.threeperiod = 9354; + e.threepersian = 1779; + e.threequarters = 190; + e.threequartersemdash = 63198; + e.threeroman = 8562; + e.threesuperior = 179; + e.threethai = 3667; + e.thzsquare = 13204; + e.tihiragana = 12385; + e.tikatakana = 12481; + e.tikatakanahalfwidth = 65409; + e.tikeutacirclekorean = 12912; + e.tikeutaparenkorean = 12816; + e.tikeutcirclekorean = 12898; + e.tikeutkorean = 12599; + e.tikeutparenkorean = 12802; + e.tilde = 732; + e.tildebelowcmb = 816; + e.tildecmb = 771; + e.tildecomb = 771; + e.tildedoublecmb = 864; + e.tildeoperator = 8764; + e.tildeoverlaycmb = 820; + e.tildeverticalcmb = 830; + e.timescircle = 8855; + e.tipehahebrew = 1430; + e.tipehalefthebrew = 1430; + e.tippigurmukhi = 2672; + e.titlocyrilliccmb = 1155; + e.tiwnarmenian = 1407; + e.tlinebelow = 7791; + e.tmonospace = 65364; + e.toarmenian = 1385; + e.tohiragana = 12392; + e.tokatakana = 12488; + e.tokatakanahalfwidth = 65412; + e.tonebarextrahighmod = 741; + e.tonebarextralowmod = 745; + e.tonebarhighmod = 742; + e.tonebarlowmod = 744; + e.tonebarmidmod = 743; + e.tonefive = 445; + e.tonesix = 389; + e.tonetwo = 424; + e.tonos = 900; + e.tonsquare = 13095; + e.topatakthai = 3599; + e.tortoiseshellbracketleft = 12308; + e.tortoiseshellbracketleftsmall = 65117; + e.tortoiseshellbracketleftvertical = 65081; + e.tortoiseshellbracketright = 12309; + e.tortoiseshellbracketrightsmall = 65118; + e.tortoiseshellbracketrightvertical = 65082; + e.totaothai = 3605; + e.tpalatalhook = 427; + e.tparen = 9391; + e.trademark = 8482; + e.trademarksans = 63722; + e.trademarkserif = 63195; + e.tretroflexhook = 648; + e.triagdn = 9660; + e.triaglf = 9668; + e.triagrt = 9658; + e.triagup = 9650; + e.ts = 678; + e.tsadi = 1510; + e.tsadidagesh = 64326; + e.tsadidageshhebrew = 64326; + e.tsadihebrew = 1510; + e.tsecyrillic = 1094; + e.tsere = 1461; + e.tsere12 = 1461; + e.tsere1e = 1461; + e.tsere2b = 1461; + e.tserehebrew = 1461; + e.tserenarrowhebrew = 1461; + e.tserequarterhebrew = 1461; + e.tserewidehebrew = 1461; + e.tshecyrillic = 1115; + e.tsuperior = 63219; + e.ttabengali = 2463; + e.ttadeva = 2335; + e.ttagujarati = 2719; + e.ttagurmukhi = 2591; + e.tteharabic = 1657; + e.ttehfinalarabic = 64359; + e.ttehinitialarabic = 64360; + e.ttehmedialarabic = 64361; + e.tthabengali = 2464; + e.tthadeva = 2336; + e.tthagujarati = 2720; + e.tthagurmukhi = 2592; + e.tturned = 647; + e.tuhiragana = 12388; + e.tukatakana = 12484; + e.tukatakanahalfwidth = 65410; + e.tusmallhiragana = 12387; + e.tusmallkatakana = 12483; + e.tusmallkatakanahalfwidth = 65391; + e.twelvecircle = 9323; + e.twelveparen = 9343; + e.twelveperiod = 9363; + e.twelveroman = 8571; + e.twentycircle = 9331; + e.twentyhangzhou = 21316; + e.twentyparen = 9351; + e.twentyperiod = 9371; + e.two = 50; + e.twoarabic = 1634; + e.twobengali = 2536; + e.twocircle = 9313; + e.twocircleinversesansserif = 10123; + e.twodeva = 2408; + e.twodotenleader = 8229; + e.twodotleader = 8229; + e.twodotleadervertical = 65072; + e.twogujarati = 2792; + e.twogurmukhi = 2664; + e.twohackarabic = 1634; + e.twohangzhou = 12322; + e.twoideographicparen = 12833; + e.twoinferior = 8322; + e.twomonospace = 65298; + e.twonumeratorbengali = 2549; + e.twooldstyle = 63282; + e.twoparen = 9333; + e.twoperiod = 9353; + e.twopersian = 1778; + e.tworoman = 8561; + e.twostroke = 443; + e.twosuperior = 178; + e.twothai = 3666; + e.twothirds = 8532; + e.u = 117; + e.uacute = 250; + e.ubar = 649; + e.ubengali = 2441; + e.ubopomofo = 12584; + e.ubreve = 365; + e.ucaron = 468; + e.ucircle = 9444; + e.ucircumflex = 251; + e.ucircumflexbelow = 7799; + e.ucyrillic = 1091; + e.udattadeva = 2385; + e.udblacute = 369; + e.udblgrave = 533; + e.udeva = 2313; + e.udieresis = 252; + e.udieresisacute = 472; + e.udieresisbelow = 7795; + e.udieresiscaron = 474; + e.udieresiscyrillic = 1265; + e.udieresisgrave = 476; + e.udieresismacron = 470; + e.udotbelow = 7909; + e.ugrave = 249; + e.ugujarati = 2697; + e.ugurmukhi = 2569; + e.uhiragana = 12358; + e.uhookabove = 7911; + e.uhorn = 432; + e.uhornacute = 7913; + e.uhorndotbelow = 7921; + e.uhorngrave = 7915; + e.uhornhookabove = 7917; + e.uhorntilde = 7919; + e.uhungarumlaut = 369; + e.uhungarumlautcyrillic = 1267; + e.uinvertedbreve = 535; + e.ukatakana = 12454; + e.ukatakanahalfwidth = 65395; + e.ukcyrillic = 1145; + e.ukorean = 12636; + e.umacron = 363; + e.umacroncyrillic = 1263; + e.umacrondieresis = 7803; + e.umatragurmukhi = 2625; + e.umonospace = 65365; + e.underscore = 95; + e.underscoredbl = 8215; + e.underscoremonospace = 65343; + e.underscorevertical = 65075; + e.underscorewavy = 65103; + e.union = 8746; + e.universal = 8704; + e.uogonek = 371; + e.uparen = 9392; + e.upblock = 9600; + e.upperdothebrew = 1476; + e.upsilon = 965; + e.upsilondieresis = 971; + e.upsilondieresistonos = 944; + e.upsilonlatin = 650; + e.upsilontonos = 973; + e.uptackbelowcmb = 797; + e.uptackmod = 724; + e.uragurmukhi = 2675; + e.uring = 367; + e.ushortcyrillic = 1118; + e.usmallhiragana = 12357; + e.usmallkatakana = 12453; + e.usmallkatakanahalfwidth = 65385; + e.ustraightcyrillic = 1199; + e.ustraightstrokecyrillic = 1201; + e.utilde = 361; + e.utildeacute = 7801; + e.utildebelow = 7797; + e.uubengali = 2442; + e.uudeva = 2314; + e.uugujarati = 2698; + e.uugurmukhi = 2570; + e.uumatragurmukhi = 2626; + e.uuvowelsignbengali = 2498; + e.uuvowelsigndeva = 2370; + e.uuvowelsigngujarati = 2754; + e.uvowelsignbengali = 2497; + e.uvowelsigndeva = 2369; + e.uvowelsigngujarati = 2753; + e.v = 118; + e.vadeva = 2357; + e.vagujarati = 2741; + e.vagurmukhi = 2613; + e.vakatakana = 12535; + e.vav = 1493; + e.vavdagesh = 64309; + e.vavdagesh65 = 64309; + e.vavdageshhebrew = 64309; + e.vavhebrew = 1493; + e.vavholam = 64331; + e.vavholamhebrew = 64331; + e.vavvavhebrew = 1520; + e.vavyodhebrew = 1521; + e.vcircle = 9445; + e.vdotbelow = 7807; + e.vecyrillic = 1074; + e.veharabic = 1700; + e.vehfinalarabic = 64363; + e.vehinitialarabic = 64364; + e.vehmedialarabic = 64365; + e.vekatakana = 12537; + e.venus = 9792; + e.verticalbar = 124; + e.verticallineabovecmb = 781; + e.verticallinebelowcmb = 809; + e.verticallinelowmod = 716; + e.verticallinemod = 712; + e.vewarmenian = 1406; + e.vhook = 651; + e.vikatakana = 12536; + e.viramabengali = 2509; + e.viramadeva = 2381; + e.viramagujarati = 2765; + e.visargabengali = 2435; + e.visargadeva = 2307; + e.visargagujarati = 2691; + e.vmonospace = 65366; + e.voarmenian = 1400; + e.voicediterationhiragana = 12446; + e.voicediterationkatakana = 12542; + e.voicedmarkkana = 12443; + e.voicedmarkkanahalfwidth = 65438; + e.vokatakana = 12538; + e.vparen = 9393; + e.vtilde = 7805; + e.vturned = 652; + e.vuhiragana = 12436; + e.vukatakana = 12532; + e.w = 119; + e.wacute = 7811; + e.waekorean = 12633; + e.wahiragana = 12431; + e.wakatakana = 12527; + e.wakatakanahalfwidth = 65436; + e.wakorean = 12632; + e.wasmallhiragana = 12430; + e.wasmallkatakana = 12526; + e.wattosquare = 13143; + e.wavedash = 12316; + e.wavyunderscorevertical = 65076; + e.wawarabic = 1608; + e.wawfinalarabic = 65262; + e.wawhamzaabovearabic = 1572; + e.wawhamzaabovefinalarabic = 65158; + e.wbsquare = 13277; + e.wcircle = 9446; + e.wcircumflex = 373; + e.wdieresis = 7813; + e.wdotaccent = 7815; + e.wdotbelow = 7817; + e.wehiragana = 12433; + e.weierstrass = 8472; + e.wekatakana = 12529; + e.wekorean = 12638; + e.weokorean = 12637; + e.wgrave = 7809; + e.whitebullet = 9702; + e.whitecircle = 9675; + e.whitecircleinverse = 9689; + e.whitecornerbracketleft = 12302; + e.whitecornerbracketleftvertical = 65091; + e.whitecornerbracketright = 12303; + e.whitecornerbracketrightvertical = 65092; + e.whitediamond = 9671; + e.whitediamondcontainingblacksmalldiamond = 9672; + e.whitedownpointingsmalltriangle = 9663; + e.whitedownpointingtriangle = 9661; + e.whiteleftpointingsmalltriangle = 9667; + e.whiteleftpointingtriangle = 9665; + e.whitelenticularbracketleft = 12310; + e.whitelenticularbracketright = 12311; + e.whiterightpointingsmalltriangle = 9657; + e.whiterightpointingtriangle = 9655; + e.whitesmallsquare = 9643; + e.whitesmilingface = 9786; + e.whitesquare = 9633; + e.whitestar = 9734; + e.whitetelephone = 9743; + e.whitetortoiseshellbracketleft = 12312; + e.whitetortoiseshellbracketright = 12313; + e.whiteuppointingsmalltriangle = 9653; + e.whiteuppointingtriangle = 9651; + e.wihiragana = 12432; + e.wikatakana = 12528; + e.wikorean = 12639; + e.wmonospace = 65367; + e.wohiragana = 12434; + e.wokatakana = 12530; + e.wokatakanahalfwidth = 65382; + e.won = 8361; + e.wonmonospace = 65510; + e.wowaenthai = 3623; + e.wparen = 9394; + e.wring = 7832; + e.wsuperior = 695; + e.wturned = 653; + e.wynn = 447; + e.x = 120; + e.xabovecmb = 829; + e.xbopomofo = 12562; + e.xcircle = 9447; + e.xdieresis = 7821; + e.xdotaccent = 7819; + e.xeharmenian = 1389; + e.xi = 958; + e.xmonospace = 65368; + e.xparen = 9395; + e.xsuperior = 739; + e.y = 121; + e.yaadosquare = 13134; + e.yabengali = 2479; + e.yacute = 253; + e.yadeva = 2351; + e.yaekorean = 12626; + e.yagujarati = 2735; + e.yagurmukhi = 2607; + e.yahiragana = 12420; + e.yakatakana = 12516; + e.yakatakanahalfwidth = 65428; + e.yakorean = 12625; + e.yamakkanthai = 3662; + e.yasmallhiragana = 12419; + e.yasmallkatakana = 12515; + e.yasmallkatakanahalfwidth = 65388; + e.yatcyrillic = 1123; + e.ycircle = 9448; + e.ycircumflex = 375; + e.ydieresis = 255; + e.ydotaccent = 7823; + e.ydotbelow = 7925; + e.yeharabic = 1610; + e.yehbarreearabic = 1746; + e.yehbarreefinalarabic = 64431; + e.yehfinalarabic = 65266; + e.yehhamzaabovearabic = 1574; + e.yehhamzaabovefinalarabic = 65162; + e.yehhamzaaboveinitialarabic = 65163; + e.yehhamzaabovemedialarabic = 65164; + e.yehinitialarabic = 65267; + e.yehmedialarabic = 65268; + e.yehmeeminitialarabic = 64733; + e.yehmeemisolatedarabic = 64600; + e.yehnoonfinalarabic = 64660; + e.yehthreedotsbelowarabic = 1745; + e.yekorean = 12630; + e.yen = 165; + e.yenmonospace = 65509; + e.yeokorean = 12629; + e.yeorinhieuhkorean = 12678; + e.yerahbenyomohebrew = 1450; + e.yerahbenyomolefthebrew = 1450; + e.yericyrillic = 1099; + e.yerudieresiscyrillic = 1273; + e.yesieungkorean = 12673; + e.yesieungpansioskorean = 12675; + e.yesieungsioskorean = 12674; + e.yetivhebrew = 1434; + e.ygrave = 7923; + e.yhook = 436; + e.yhookabove = 7927; + e.yiarmenian = 1397; + e.yicyrillic = 1111; + e.yikorean = 12642; + e.yinyang = 9775; + e.yiwnarmenian = 1410; + e.ymonospace = 65369; + e.yod = 1497; + e.yoddagesh = 64313; + e.yoddageshhebrew = 64313; + e.yodhebrew = 1497; + e.yodyodhebrew = 1522; + e.yodyodpatahhebrew = 64287; + e.yohiragana = 12424; + e.yoikorean = 12681; + e.yokatakana = 12520; + e.yokatakanahalfwidth = 65430; + e.yokorean = 12635; + e.yosmallhiragana = 12423; + e.yosmallkatakana = 12519; + e.yosmallkatakanahalfwidth = 65390; + e.yotgreek = 1011; + e.yoyaekorean = 12680; + e.yoyakorean = 12679; + e.yoyakthai = 3618; + e.yoyingthai = 3597; + e.yparen = 9396; + e.ypogegrammeni = 890; + e.ypogegrammenigreekcmb = 837; + e.yr = 422; + e.yring = 7833; + e.ysuperior = 696; + e.ytilde = 7929; + e.yturned = 654; + e.yuhiragana = 12422; + e.yuikorean = 12684; + e.yukatakana = 12518; + e.yukatakanahalfwidth = 65429; + e.yukorean = 12640; + e.yusbigcyrillic = 1131; + e.yusbigiotifiedcyrillic = 1133; + e.yuslittlecyrillic = 1127; + e.yuslittleiotifiedcyrillic = 1129; + e.yusmallhiragana = 12421; + e.yusmallkatakana = 12517; + e.yusmallkatakanahalfwidth = 65389; + e.yuyekorean = 12683; + e.yuyeokorean = 12682; + e.yyabengali = 2527; + e.yyadeva = 2399; + e.z = 122; + e.zaarmenian = 1382; + e.zacute = 378; + e.zadeva = 2395; + e.zagurmukhi = 2651; + e.zaharabic = 1592; + e.zahfinalarabic = 65222; + e.zahinitialarabic = 65223; + e.zahiragana = 12374; + e.zahmedialarabic = 65224; + e.zainarabic = 1586; + e.zainfinalarabic = 65200; + e.zakatakana = 12470; + e.zaqefgadolhebrew = 1429; + e.zaqefqatanhebrew = 1428; + e.zarqahebrew = 1432; + e.zayin = 1494; + e.zayindagesh = 64310; + e.zayindageshhebrew = 64310; + e.zayinhebrew = 1494; + e.zbopomofo = 12567; + e.zcaron = 382; + e.zcircle = 9449; + e.zcircumflex = 7825; + e.zcurl = 657; + e.zdot = 380; + e.zdotaccent = 380; + e.zdotbelow = 7827; + e.zecyrillic = 1079; + e.zedescendercyrillic = 1177; + e.zedieresiscyrillic = 1247; + e.zehiragana = 12380; + e.zekatakana = 12476; + e.zero = 48; + e.zeroarabic = 1632; + e.zerobengali = 2534; + e.zerodeva = 2406; + e.zerogujarati = 2790; + e.zerogurmukhi = 2662; + e.zerohackarabic = 1632; + e.zeroinferior = 8320; + e.zeromonospace = 65296; + e.zerooldstyle = 63280; + e.zeropersian = 1776; + e.zerosuperior = 8304; + e.zerothai = 3664; + e.zerowidthjoiner = 65279; + e.zerowidthnonjoiner = 8204; + e.zerowidthspace = 8203; + e.zeta = 950; + e.zhbopomofo = 12563; + e.zhearmenian = 1386; + e.zhebrevecyrillic = 1218; + e.zhecyrillic = 1078; + e.zhedescendercyrillic = 1175; + e.zhedieresiscyrillic = 1245; + e.zihiragana = 12376; + e.zikatakana = 12472; + e.zinorhebrew = 1454; + e.zlinebelow = 7829; + e.zmonospace = 65370; + e.zohiragana = 12382; + e.zokatakana = 12478; + e.zparen = 9397; + e.zretroflexhook = 656; + e.zstroke = 438; + e.zuhiragana = 12378; + e.zukatakana = 12474; + e['.notdef'] = 0; + e.angbracketleftbig = 9001; + e.angbracketleftBig = 9001; + e.angbracketleftbigg = 9001; + e.angbracketleftBigg = 9001; + e.angbracketrightBig = 9002; + e.angbracketrightbig = 9002; + e.angbracketrightBigg = 9002; + e.angbracketrightbigg = 9002; + e.arrowhookleft = 8618; + e.arrowhookright = 8617; + e.arrowlefttophalf = 8636; + e.arrowleftbothalf = 8637; + e.arrownortheast = 8599; + e.arrownorthwest = 8598; + e.arrowrighttophalf = 8640; + e.arrowrightbothalf = 8641; + e.arrowsoutheast = 8600; + e.arrowsouthwest = 8601; + e.backslashbig = 8726; + e.backslashBig = 8726; + e.backslashBigg = 8726; + e.backslashbigg = 8726; + e.bardbl = 8214; + e.bracehtipdownleft = 65079; + e.bracehtipdownright = 65079; + e.bracehtipupleft = 65080; + e.bracehtipupright = 65080; + e.braceleftBig = 123; + e.braceleftbig = 123; + e.braceleftbigg = 123; + e.braceleftBigg = 123; + e.bracerightBig = 125; + e.bracerightbig = 125; + e.bracerightbigg = 125; + e.bracerightBigg = 125; + e.bracketleftbig = 91; + e.bracketleftBig = 91; + e.bracketleftbigg = 91; + e.bracketleftBigg = 91; + e.bracketrightBig = 93; + e.bracketrightbig = 93; + e.bracketrightbigg = 93; + e.bracketrightBigg = 93; + e.ceilingleftbig = 8968; + e.ceilingleftBig = 8968; + e.ceilingleftBigg = 8968; + e.ceilingleftbigg = 8968; + e.ceilingrightbig = 8969; + e.ceilingrightBig = 8969; + e.ceilingrightbigg = 8969; + e.ceilingrightBigg = 8969; + e.circledotdisplay = 8857; + e.circledottext = 8857; + e.circlemultiplydisplay = 8855; + e.circlemultiplytext = 8855; + e.circleplusdisplay = 8853; + e.circleplustext = 8853; + e.contintegraldisplay = 8750; + e.contintegraltext = 8750; + e.coproductdisplay = 8720; + e.coproducttext = 8720; + e.floorleftBig = 8970; + e.floorleftbig = 8970; + e.floorleftbigg = 8970; + e.floorleftBigg = 8970; + e.floorrightbig = 8971; + e.floorrightBig = 8971; + e.floorrightBigg = 8971; + e.floorrightbigg = 8971; + e.hatwide = 770; + e.hatwider = 770; + e.hatwidest = 770; + e.intercal = 7488; + e.integraldisplay = 8747; + e.integraltext = 8747; + e.intersectiondisplay = 8898; + e.intersectiontext = 8898; + e.logicalanddisplay = 8743; + e.logicalandtext = 8743; + e.logicalordisplay = 8744; + e.logicalortext = 8744; + e.parenleftBig = 40; + e.parenleftbig = 40; + e.parenleftBigg = 40; + e.parenleftbigg = 40; + e.parenrightBig = 41; + e.parenrightbig = 41; + e.parenrightBigg = 41; + e.parenrightbigg = 41; + e.prime = 8242; + e.productdisplay = 8719; + e.producttext = 8719; + e.radicalbig = 8730; + e.radicalBig = 8730; + e.radicalBigg = 8730; + e.radicalbigg = 8730; + e.radicalbt = 8730; + e.radicaltp = 8730; + e.radicalvertex = 8730; + e.slashbig = 47; + e.slashBig = 47; + e.slashBigg = 47; + e.slashbigg = 47; + e.summationdisplay = 8721; + e.summationtext = 8721; + e.tildewide = 732; + e.tildewider = 732; + e.tildewidest = 732; + e.uniondisplay = 8899; + e.unionmultidisplay = 8846; + e.unionmultitext = 8846; + e.unionsqdisplay = 8852; + e.unionsqtext = 8852; + e.uniontext = 8899; + e.vextenddouble = 8741; + e.vextendsingle = 8739; + }), + n = (0, r.getLookupTableFactory)(function (e) { + e.space = 32; + e.a1 = 9985; + e.a2 = 9986; + e.a202 = 9987; + e.a3 = 9988; + e.a4 = 9742; + e.a5 = 9990; + e.a119 = 9991; + e.a118 = 9992; + e.a117 = 9993; + e.a11 = 9755; + e.a12 = 9758; + e.a13 = 9996; + e.a14 = 9997; + e.a15 = 9998; + e.a16 = 9999; + e.a105 = 1e4; + e.a17 = 10001; + e.a18 = 10002; + e.a19 = 10003; + e.a20 = 10004; + e.a21 = 10005; + e.a22 = 10006; + e.a23 = 10007; + e.a24 = 10008; + e.a25 = 10009; + e.a26 = 10010; + e.a27 = 10011; + e.a28 = 10012; + e.a6 = 10013; + e.a7 = 10014; + e.a8 = 10015; + e.a9 = 10016; + e.a10 = 10017; + e.a29 = 10018; + e.a30 = 10019; + e.a31 = 10020; + e.a32 = 10021; + e.a33 = 10022; + e.a34 = 10023; + e.a35 = 9733; + e.a36 = 10025; + e.a37 = 10026; + e.a38 = 10027; + e.a39 = 10028; + e.a40 = 10029; + e.a41 = 10030; + e.a42 = 10031; + e.a43 = 10032; + e.a44 = 10033; + e.a45 = 10034; + e.a46 = 10035; + e.a47 = 10036; + e.a48 = 10037; + e.a49 = 10038; + e.a50 = 10039; + e.a51 = 10040; + e.a52 = 10041; + e.a53 = 10042; + e.a54 = 10043; + e.a55 = 10044; + e.a56 = 10045; + e.a57 = 10046; + e.a58 = 10047; + e.a59 = 10048; + e.a60 = 10049; + e.a61 = 10050; + e.a62 = 10051; + e.a63 = 10052; + e.a64 = 10053; + e.a65 = 10054; + e.a66 = 10055; + e.a67 = 10056; + e.a68 = 10057; + e.a69 = 10058; + e.a70 = 10059; + e.a71 = 9679; + e.a72 = 10061; + e.a73 = 9632; + e.a74 = 10063; + e.a203 = 10064; + e.a75 = 10065; + e.a204 = 10066; + e.a76 = 9650; + e.a77 = 9660; + e.a78 = 9670; + e.a79 = 10070; + e.a81 = 9687; + e.a82 = 10072; + e.a83 = 10073; + e.a84 = 10074; + e.a97 = 10075; + e.a98 = 10076; + e.a99 = 10077; + e.a100 = 10078; + e.a101 = 10081; + e.a102 = 10082; + e.a103 = 10083; + e.a104 = 10084; + e.a106 = 10085; + e.a107 = 10086; + e.a108 = 10087; + e.a112 = 9827; + e.a111 = 9830; + e.a110 = 9829; + e.a109 = 9824; + e.a120 = 9312; + e.a121 = 9313; + e.a122 = 9314; + e.a123 = 9315; + e.a124 = 9316; + e.a125 = 9317; + e.a126 = 9318; + e.a127 = 9319; + e.a128 = 9320; + e.a129 = 9321; + e.a130 = 10102; + e.a131 = 10103; + e.a132 = 10104; + e.a133 = 10105; + e.a134 = 10106; + e.a135 = 10107; + e.a136 = 10108; + e.a137 = 10109; + e.a138 = 10110; + e.a139 = 10111; + e.a140 = 10112; + e.a141 = 10113; + e.a142 = 10114; + e.a143 = 10115; + e.a144 = 10116; + e.a145 = 10117; + e.a146 = 10118; + e.a147 = 10119; + e.a148 = 10120; + e.a149 = 10121; + e.a150 = 10122; + e.a151 = 10123; + e.a152 = 10124; + e.a153 = 10125; + e.a154 = 10126; + e.a155 = 10127; + e.a156 = 10128; + e.a157 = 10129; + e.a158 = 10130; + e.a159 = 10131; + e.a160 = 10132; + e.a161 = 8594; + e.a163 = 8596; + e.a164 = 8597; + e.a196 = 10136; + e.a165 = 10137; + e.a192 = 10138; + e.a166 = 10139; + e.a167 = 10140; + e.a168 = 10141; + e.a169 = 10142; + e.a170 = 10143; + e.a171 = 10144; + e.a172 = 10145; + e.a173 = 10146; + e.a162 = 10147; + e.a174 = 10148; + e.a175 = 10149; + e.a176 = 10150; + e.a177 = 10151; + e.a178 = 10152; + e.a179 = 10153; + e.a193 = 10154; + e.a180 = 10155; + e.a199 = 10156; + e.a181 = 10157; + e.a200 = 10158; + e.a182 = 10159; + e.a201 = 10161; + e.a183 = 10162; + e.a184 = 10163; + e.a197 = 10164; + e.a185 = 10165; + e.a194 = 10166; + e.a198 = 10167; + e.a186 = 10168; + e.a195 = 10169; + e.a187 = 10170; + e.a188 = 10171; + e.a189 = 10172; + e.a190 = 10173; + e.a191 = 10174; + e.a89 = 10088; + e.a90 = 10089; + e.a93 = 10090; + e.a94 = 10091; + e.a91 = 10092; + e.a92 = 10093; + e.a205 = 10094; + e.a85 = 10095; + e.a206 = 10096; + e.a86 = 10097; + e.a87 = 10098; + e.a88 = 10099; + e.a95 = 10100; + e.a96 = 10101; + e['.notdef'] = 0; + }); + }, + (e, t, a) => { + a.r(t); + a.d(t, { + clearUnicodeCaches: () => clearUnicodeCaches, + getCharUnicodeCategory: () => getCharUnicodeCategory, + getUnicodeForGlyph: () => getUnicodeForGlyph, + getUnicodeRangeFor: () => getUnicodeRangeFor, + mapSpecialUnicodeValues: () => mapSpecialUnicodeValues, + }); + const r = (0, a(3).getLookupTableFactory)(function (e) { + e[63721] = 169; + e[63193] = 169; + e[63720] = 174; + e[63194] = 174; + e[63722] = 8482; + e[63195] = 8482; + e[63729] = 9127; + e[63730] = 9128; + e[63731] = 9129; + e[63740] = 9131; + e[63741] = 9132; + e[63742] = 9133; + e[63726] = 9121; + e[63727] = 9122; + e[63728] = 9123; + e[63737] = 9124; + e[63738] = 9125; + e[63739] = 9126; + e[63723] = 9115; + e[63724] = 9116; + e[63725] = 9117; + e[63734] = 9118; + e[63735] = 9119; + e[63736] = 9120; + }); + function mapSpecialUnicodeValues(e) { + return e >= 65520 && e <= 65535 + ? 0 + : e >= 62976 && e <= 63743 + ? r()[e] || e + : 173 === e + ? 45 + : e; + } + function getUnicodeForGlyph(e, t) { + let a = t[e]; + if (void 0 !== a) return a; + if (!e) return -1; + if ('u' === e[0]) { + const t = e.length; + let r; + if (7 === t && 'n' === e[1] && 'i' === e[2]) r = e.substring(3); + else { + if (!(t >= 5 && t <= 7)) return -1; + r = e.substring(1); + } + if (r === r.toUpperCase()) { + a = parseInt(r, 16); + if (a >= 0) return a; + } + } + return -1; + } + const i = [ + [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], + ]; + function getUnicodeRangeFor(e, t = -1) { + if (-1 !== t) { + const a = i[t]; + for (let r = 0, i = a.length; r < i; r += 2) if (e >= a[r] && e <= a[r + 1]) return t; + } + for (let t = 0, a = i.length; t < a; t++) { + const a = i[t]; + for (let r = 0, i = a.length; r < i; r += 2) if (e >= a[r] && e <= a[r + 1]) return t; + } + return -1; + } + const n = new RegExp('^(\\s)|(\\p{Mn})|(\\p{Cf})$', 'u'), + s = new Map(); + function getCharUnicodeCategory(e) { + const t = s.get(e); + if (t) return t; + const a = e.match(n), + r = { + isWhitespace: !(!a || !a[1]), + isZeroWidthDiacritic: !(!a || !a[2]), + isInvisibleFormatMark: !(!a || !a[3]), + }; + s.set(e, r); + return r; + } + function clearUnicodeCaches() { + s.clear(); + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.getSerifFonts = + t.getNonStdFontMap = + t.getGlyphMapForStandardFonts = + t.getFontNameToFileMap = + void 0; + t.getStandardFontName = function getStandardFontName(e) { + const t = (0, i.normalizeFontName)(e); + return n()[t]; + }; + t.getSymbolsFonts = + t.getSupplementalGlyphMapForCalibri = + t.getSupplementalGlyphMapForArialBlack = + t.getStdFontMap = + void 0; + var r = a(3), + i = a(38); + const n = (0, r.getLookupTableFactory)(function (e) { + e['Times-Roman'] = 'Times-Roman'; + e.Helvetica = 'Helvetica'; + e.Courier = 'Courier'; + e.Symbol = 'Symbol'; + e['Times-Bold'] = 'Times-Bold'; + e['Helvetica-Bold'] = 'Helvetica-Bold'; + e['Courier-Bold'] = 'Courier-Bold'; + e.ZapfDingbats = 'ZapfDingbats'; + e['Times-Italic'] = 'Times-Italic'; + e['Helvetica-Oblique'] = 'Helvetica-Oblique'; + e['Courier-Oblique'] = 'Courier-Oblique'; + e['Times-BoldItalic'] = 'Times-BoldItalic'; + e['Helvetica-BoldOblique'] = 'Helvetica-BoldOblique'; + e['Courier-BoldOblique'] = 'Courier-BoldOblique'; + e.ArialNarrow = 'Helvetica'; + e['ArialNarrow-Bold'] = 'Helvetica-Bold'; + e['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique'; + e['ArialNarrow-Italic'] = 'Helvetica-Oblique'; + e.ArialBlack = 'Helvetica'; + e['ArialBlack-Bold'] = 'Helvetica-Bold'; + e['ArialBlack-BoldItalic'] = 'Helvetica-BoldOblique'; + e['ArialBlack-Italic'] = 'Helvetica-Oblique'; + e['Arial-Black'] = 'Helvetica'; + e['Arial-Black-Bold'] = 'Helvetica-Bold'; + e['Arial-Black-BoldItalic'] = 'Helvetica-BoldOblique'; + e['Arial-Black-Italic'] = 'Helvetica-Oblique'; + e.Arial = 'Helvetica'; + e['Arial-Bold'] = 'Helvetica-Bold'; + e['Arial-BoldItalic'] = 'Helvetica-BoldOblique'; + e['Arial-Italic'] = 'Helvetica-Oblique'; + e.ArialMT = 'Helvetica'; + e['Arial-BoldItalicMT'] = 'Helvetica-BoldOblique'; + e['Arial-BoldMT'] = 'Helvetica-Bold'; + e['Arial-ItalicMT'] = 'Helvetica-Oblique'; + e.ArialUnicodeMS = 'Helvetica'; + e['ArialUnicodeMS-Bold'] = 'Helvetica-Bold'; + e['ArialUnicodeMS-BoldItalic'] = 'Helvetica-BoldOblique'; + e['ArialUnicodeMS-Italic'] = 'Helvetica-Oblique'; + e['Courier-BoldItalic'] = 'Courier-BoldOblique'; + e['Courier-Italic'] = 'Courier-Oblique'; + e.CourierNew = 'Courier'; + e['CourierNew-Bold'] = 'Courier-Bold'; + e['CourierNew-BoldItalic'] = 'Courier-BoldOblique'; + e['CourierNew-Italic'] = 'Courier-Oblique'; + e['CourierNewPS-BoldItalicMT'] = 'Courier-BoldOblique'; + e['CourierNewPS-BoldMT'] = 'Courier-Bold'; + e['CourierNewPS-ItalicMT'] = 'Courier-Oblique'; + e.CourierNewPSMT = 'Courier'; + e['Helvetica-BoldItalic'] = 'Helvetica-BoldOblique'; + e['Helvetica-Italic'] = 'Helvetica-Oblique'; + e['Symbol-Bold'] = 'Symbol'; + e['Symbol-BoldItalic'] = 'Symbol'; + e['Symbol-Italic'] = 'Symbol'; + e.TimesNewRoman = 'Times-Roman'; + e['TimesNewRoman-Bold'] = 'Times-Bold'; + e['TimesNewRoman-BoldItalic'] = 'Times-BoldItalic'; + e['TimesNewRoman-Italic'] = 'Times-Italic'; + e.TimesNewRomanPS = 'Times-Roman'; + e['TimesNewRomanPS-Bold'] = 'Times-Bold'; + e['TimesNewRomanPS-BoldItalic'] = 'Times-BoldItalic'; + e['TimesNewRomanPS-BoldItalicMT'] = 'Times-BoldItalic'; + e['TimesNewRomanPS-BoldMT'] = 'Times-Bold'; + e['TimesNewRomanPS-Italic'] = 'Times-Italic'; + e['TimesNewRomanPS-ItalicMT'] = 'Times-Italic'; + e.TimesNewRomanPSMT = 'Times-Roman'; + e['TimesNewRomanPSMT-Bold'] = 'Times-Bold'; + e['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic'; + e['TimesNewRomanPSMT-Italic'] = 'Times-Italic'; + }); + t.getStdFontMap = n; + const s = (0, r.getLookupTableFactory)(function (e) { + e.Courier = 'FoxitFixed.pfb'; + e['Courier-Bold'] = 'FoxitFixedBold.pfb'; + e['Courier-BoldOblique'] = 'FoxitFixedBoldItalic.pfb'; + e['Courier-Oblique'] = 'FoxitFixedItalic.pfb'; + e.Helvetica = 'FoxitSans.pfb'; + e['Helvetica-Bold'] = 'FoxitSansBold.pfb'; + e['Helvetica-BoldOblique'] = 'FoxitSansBoldItalic.pfb'; + e['Helvetica-Oblique'] = 'FoxitSansItalic.pfb'; + e['Times-Roman'] = 'FoxitSerif.pfb'; + e['Times-Bold'] = 'FoxitSerifBold.pfb'; + e['Times-BoldItalic'] = 'FoxitSerifBoldItalic.pfb'; + e['Times-Italic'] = 'FoxitSerifItalic.pfb'; + e.Symbol = 'FoxitSymbol.pfb'; + e.ZapfDingbats = 'FoxitDingbats.pfb'; + e['LiberationSans-Regular'] = 'LiberationSans-Regular.ttf'; + e['LiberationSans-Bold'] = 'LiberationSans-Bold.ttf'; + e['LiberationSans-Italic'] = 'LiberationSans-Italic.ttf'; + e['LiberationSans-BoldItalic'] = 'LiberationSans-BoldItalic.ttf'; + }); + t.getFontNameToFileMap = s; + const o = (0, r.getLookupTableFactory)(function (e) { + e.Calibri = 'Helvetica'; + e['Calibri-Bold'] = 'Helvetica-Bold'; + e['Calibri-BoldItalic'] = 'Helvetica-BoldOblique'; + e['Calibri-Italic'] = 'Helvetica-Oblique'; + e.CenturyGothic = 'Helvetica'; + e['CenturyGothic-Bold'] = 'Helvetica-Bold'; + e['CenturyGothic-BoldItalic'] = 'Helvetica-BoldOblique'; + e['CenturyGothic-Italic'] = 'Helvetica-Oblique'; + e.ComicSansMS = 'Comic Sans MS'; + e['ComicSansMS-Bold'] = 'Comic Sans MS-Bold'; + e['ComicSansMS-BoldItalic'] = 'Comic Sans MS-BoldItalic'; + e['ComicSansMS-Italic'] = 'Comic Sans MS-Italic'; + e['ItcSymbol-Bold'] = 'Helvetica-Bold'; + e['ItcSymbol-BoldItalic'] = 'Helvetica-BoldOblique'; + e['ItcSymbol-Book'] = 'Helvetica'; + e['ItcSymbol-BookItalic'] = 'Helvetica-Oblique'; + e['ItcSymbol-Medium'] = 'Helvetica'; + e['ItcSymbol-MediumItalic'] = 'Helvetica-Oblique'; + e.LucidaConsole = 'Courier'; + e['LucidaConsole-Bold'] = 'Courier-Bold'; + e['LucidaConsole-BoldItalic'] = 'Courier-BoldOblique'; + e['LucidaConsole-Italic'] = 'Courier-Oblique'; + e['LucidaSans-Demi'] = 'Helvetica-Bold'; + e['MS-Gothic'] = 'MS Gothic'; + e['MS-Gothic-Bold'] = 'MS Gothic-Bold'; + e['MS-Gothic-BoldItalic'] = 'MS Gothic-BoldItalic'; + e['MS-Gothic-Italic'] = 'MS Gothic-Italic'; + e['MS-Mincho'] = 'MS Mincho'; + e['MS-Mincho-Bold'] = 'MS Mincho-Bold'; + e['MS-Mincho-BoldItalic'] = 'MS Mincho-BoldItalic'; + e['MS-Mincho-Italic'] = 'MS Mincho-Italic'; + e['MS-PGothic'] = 'MS PGothic'; + e['MS-PGothic-Bold'] = 'MS PGothic-Bold'; + e['MS-PGothic-BoldItalic'] = 'MS PGothic-BoldItalic'; + e['MS-PGothic-Italic'] = 'MS PGothic-Italic'; + e['MS-PMincho'] = 'MS PMincho'; + e['MS-PMincho-Bold'] = 'MS PMincho-Bold'; + e['MS-PMincho-BoldItalic'] = 'MS PMincho-BoldItalic'; + e['MS-PMincho-Italic'] = 'MS PMincho-Italic'; + e.NuptialScript = 'Times-Italic'; + e.SegoeUISymbol = 'Helvetica'; + e.Wingdings = 'ZapfDingbats'; + e['Wingdings-Regular'] = 'ZapfDingbats'; + }); + t.getNonStdFontMap = o; + const c = (0, r.getLookupTableFactory)(function (e) { + e['Adobe Jenson'] = !0; + e['Adobe Text'] = !0; + e.Albertus = !0; + e.Aldus = !0; + e.Alexandria = !0; + e.Algerian = !0; + e['American Typewriter'] = !0; + e.Antiqua = !0; + e.Apex = !0; + e.Arno = !0; + e.Aster = !0; + e.Aurora = !0; + e.Baskerville = !0; + e.Bell = !0; + e.Bembo = !0; + e['Bembo Schoolbook'] = !0; + e.Benguiat = !0; + e['Berkeley Old Style'] = !0; + e['Bernhard Modern'] = !0; + e['Berthold City'] = !0; + e.Bodoni = !0; + e['Bauer Bodoni'] = !0; + e['Book Antiqua'] = !0; + e.Bookman = !0; + e['Bordeaux Roman'] = !0; + e['Californian FB'] = !0; + e.Calisto = !0; + e.Calvert = !0; + e.Capitals = !0; + e.Cambria = !0; + e.Cartier = !0; + e.Caslon = !0; + e.Catull = !0; + e.Centaur = !0; + e['Century Old Style'] = !0; + e['Century Schoolbook'] = !0; + e.Chaparral = !0; + e['Charis SIL'] = !0; + e.Cheltenham = !0; + e['Cholla Slab'] = !0; + e.Clarendon = !0; + e.Clearface = !0; + e.Cochin = !0; + e.Colonna = !0; + e['Computer Modern'] = !0; + e['Concrete Roman'] = !0; + e.Constantia = !0; + e['Cooper Black'] = !0; + e.Corona = !0; + e.Ecotype = !0; + e.Egyptienne = !0; + e.Elephant = !0; + e.Excelsior = !0; + e.Fairfield = !0; + e['FF Scala'] = !0; + e.Folkard = !0; + e.Footlight = !0; + e.FreeSerif = !0; + e['Friz Quadrata'] = !0; + e.Garamond = !0; + e.Gentium = !0; + e.Georgia = !0; + e.Gloucester = !0; + e['Goudy Old Style'] = !0; + e['Goudy Schoolbook'] = !0; + e['Goudy Pro Font'] = !0; + e.Granjon = !0; + e['Guardian Egyptian'] = !0; + e.Heather = !0; + e.Hercules = !0; + e['High Tower Text'] = !0; + e.Hiroshige = !0; + e['Hoefler Text'] = !0; + e['Humana Serif'] = !0; + e.Imprint = !0; + e['Ionic No. 5'] = !0; + e.Janson = !0; + e.Joanna = !0; + e.Korinna = !0; + e.Lexicon = !0; + e.LiberationSerif = !0; + e['Liberation Serif'] = !0; + e['Linux Libertine'] = !0; + e.Literaturnaya = !0; + e.Lucida = !0; + e['Lucida Bright'] = !0; + e.Melior = !0; + e.Memphis = !0; + e.Miller = !0; + e.Minion = !0; + e.Modern = !0; + e['Mona Lisa'] = !0; + e['Mrs Eaves'] = !0; + e['MS Serif'] = !0; + e['Museo Slab'] = !0; + e['New York'] = !0; + e['Nimbus Roman'] = !0; + e['NPS Rawlinson Roadway'] = !0; + e.NuptialScript = !0; + e.Palatino = !0; + e.Perpetua = !0; + e.Plantin = !0; + e['Plantin Schoolbook'] = !0; + e.Playbill = !0; + e['Poor Richard'] = !0; + e['Rawlinson Roadway'] = !0; + e.Renault = !0; + e.Requiem = !0; + e.Rockwell = !0; + e.Roman = !0; + e['Rotis Serif'] = !0; + e.Sabon = !0; + e.Scala = !0; + e.Seagull = !0; + e.Sistina = !0; + e.Souvenir = !0; + e.STIX = !0; + e['Stone Informal'] = !0; + e['Stone Serif'] = !0; + e.Sylfaen = !0; + e.Times = !0; + e.Trajan = !0; + e['Trinité'] = !0; + e['Trump Mediaeval'] = !0; + e.Utopia = !0; + e['Vale Type'] = !0; + e['Bitstream Vera'] = !0; + e['Vera Serif'] = !0; + e.Versailles = !0; + e.Wanted = !0; + e.Weiss = !0; + e['Wide Latin'] = !0; + e.Windsor = !0; + e.XITS = !0; + }); + t.getSerifFonts = c; + const l = (0, r.getLookupTableFactory)(function (e) { + e.Dingbats = !0; + e.Symbol = !0; + e.ZapfDingbats = !0; + }); + t.getSymbolsFonts = l; + const h = (0, r.getLookupTableFactory)(function (e) { + e[2] = 10; + e[3] = 32; + e[4] = 33; + e[5] = 34; + e[6] = 35; + e[7] = 36; + e[8] = 37; + e[9] = 38; + e[10] = 39; + e[11] = 40; + e[12] = 41; + e[13] = 42; + e[14] = 43; + e[15] = 44; + e[16] = 45; + e[17] = 46; + e[18] = 47; + e[19] = 48; + e[20] = 49; + e[21] = 50; + e[22] = 51; + e[23] = 52; + e[24] = 53; + e[25] = 54; + e[26] = 55; + e[27] = 56; + e[28] = 57; + e[29] = 58; + e[30] = 894; + e[31] = 60; + e[32] = 61; + e[33] = 62; + e[34] = 63; + e[35] = 64; + e[36] = 65; + e[37] = 66; + e[38] = 67; + e[39] = 68; + e[40] = 69; + e[41] = 70; + e[42] = 71; + e[43] = 72; + e[44] = 73; + e[45] = 74; + e[46] = 75; + e[47] = 76; + e[48] = 77; + e[49] = 78; + e[50] = 79; + e[51] = 80; + e[52] = 81; + e[53] = 82; + e[54] = 83; + e[55] = 84; + e[56] = 85; + e[57] = 86; + e[58] = 87; + e[59] = 88; + e[60] = 89; + e[61] = 90; + e[62] = 91; + e[63] = 92; + e[64] = 93; + e[65] = 94; + e[66] = 95; + e[67] = 96; + e[68] = 97; + e[69] = 98; + e[70] = 99; + e[71] = 100; + e[72] = 101; + e[73] = 102; + e[74] = 103; + e[75] = 104; + e[76] = 105; + e[77] = 106; + e[78] = 107; + e[79] = 108; + e[80] = 109; + e[81] = 110; + e[82] = 111; + e[83] = 112; + e[84] = 113; + e[85] = 114; + e[86] = 115; + e[87] = 116; + e[88] = 117; + e[89] = 118; + e[90] = 119; + e[91] = 120; + e[92] = 121; + e[93] = 122; + e[94] = 123; + e[95] = 124; + e[96] = 125; + e[97] = 126; + e[98] = 196; + e[99] = 197; + e[100] = 199; + e[101] = 201; + e[102] = 209; + e[103] = 214; + e[104] = 220; + e[105] = 225; + e[106] = 224; + e[107] = 226; + e[108] = 228; + e[109] = 227; + e[110] = 229; + e[111] = 231; + e[112] = 233; + e[113] = 232; + e[114] = 234; + e[115] = 235; + e[116] = 237; + e[117] = 236; + e[118] = 238; + e[119] = 239; + e[120] = 241; + e[121] = 243; + e[122] = 242; + e[123] = 244; + e[124] = 246; + e[125] = 245; + e[126] = 250; + e[127] = 249; + e[128] = 251; + e[129] = 252; + e[130] = 8224; + e[131] = 176; + e[132] = 162; + e[133] = 163; + e[134] = 167; + e[135] = 8226; + e[136] = 182; + e[137] = 223; + e[138] = 174; + e[139] = 169; + e[140] = 8482; + e[141] = 180; + e[142] = 168; + e[143] = 8800; + e[144] = 198; + e[145] = 216; + e[146] = 8734; + e[147] = 177; + e[148] = 8804; + e[149] = 8805; + e[150] = 165; + e[151] = 181; + e[152] = 8706; + e[153] = 8721; + e[154] = 8719; + e[156] = 8747; + e[157] = 170; + e[158] = 186; + e[159] = 8486; + e[160] = 230; + e[161] = 248; + e[162] = 191; + e[163] = 161; + e[164] = 172; + e[165] = 8730; + e[166] = 402; + e[167] = 8776; + e[168] = 8710; + e[169] = 171; + e[170] = 187; + e[171] = 8230; + e[179] = 8220; + e[180] = 8221; + e[181] = 8216; + e[182] = 8217; + e[200] = 193; + e[203] = 205; + e[207] = 211; + e[210] = 218; + e[223] = 711; + e[224] = 321; + e[225] = 322; + e[226] = 352; + e[227] = 353; + e[228] = 381; + e[229] = 382; + e[233] = 221; + e[234] = 253; + e[252] = 263; + e[253] = 268; + e[254] = 269; + e[258] = 258; + e[260] = 260; + e[261] = 261; + e[265] = 280; + e[266] = 281; + e[267] = 282; + e[268] = 283; + e[269] = 313; + e[275] = 323; + e[276] = 324; + e[278] = 328; + e[283] = 344; + e[284] = 345; + e[285] = 346; + e[286] = 347; + e[292] = 367; + e[295] = 377; + e[296] = 378; + e[298] = 380; + e[305] = 963; + e[306] = 964; + e[307] = 966; + e[308] = 8215; + e[309] = 8252; + e[310] = 8319; + e[311] = 8359; + e[312] = 8592; + e[313] = 8593; + e[337] = 9552; + e[493] = 1039; + e[494] = 1040; + e[672] = 1488; + e[673] = 1489; + e[674] = 1490; + e[675] = 1491; + e[676] = 1492; + e[677] = 1493; + e[678] = 1494; + e[679] = 1495; + e[680] = 1496; + e[681] = 1497; + e[682] = 1498; + e[683] = 1499; + e[684] = 1500; + e[685] = 1501; + e[686] = 1502; + e[687] = 1503; + e[688] = 1504; + e[689] = 1505; + e[690] = 1506; + e[691] = 1507; + e[692] = 1508; + e[693] = 1509; + e[694] = 1510; + e[695] = 1511; + e[696] = 1512; + e[697] = 1513; + e[698] = 1514; + e[705] = 1524; + e[706] = 8362; + e[710] = 64288; + e[711] = 64298; + e[759] = 1617; + e[761] = 1776; + e[763] = 1778; + e[775] = 1652; + e[777] = 1764; + e[778] = 1780; + e[779] = 1781; + e[780] = 1782; + e[782] = 771; + e[783] = 64726; + e[786] = 8363; + e[788] = 8532; + e[790] = 768; + e[791] = 769; + e[792] = 768; + e[795] = 803; + e[797] = 64336; + e[798] = 64337; + e[799] = 64342; + e[800] = 64343; + e[801] = 64344; + e[802] = 64345; + e[803] = 64362; + e[804] = 64363; + e[805] = 64364; + e[2424] = 7821; + e[2425] = 7822; + e[2426] = 7823; + e[2427] = 7824; + e[2428] = 7825; + e[2429] = 7826; + e[2430] = 7827; + e[2433] = 7682; + e[2678] = 8045; + e[2679] = 8046; + e[2830] = 1552; + e[2838] = 686; + e[2840] = 751; + e[2842] = 753; + e[2843] = 754; + e[2844] = 755; + e[2846] = 757; + e[2856] = 767; + e[2857] = 848; + e[2858] = 849; + e[2862] = 853; + e[2863] = 854; + e[2864] = 855; + e[2865] = 861; + e[2866] = 862; + e[2906] = 7460; + e[2908] = 7462; + e[2909] = 7463; + e[2910] = 7464; + e[2912] = 7466; + e[2913] = 7467; + e[2914] = 7468; + e[2916] = 7470; + e[2917] = 7471; + e[2918] = 7472; + e[2920] = 7474; + e[2921] = 7475; + e[2922] = 7476; + e[2924] = 7478; + e[2925] = 7479; + e[2926] = 7480; + e[2928] = 7482; + e[2929] = 7483; + e[2930] = 7484; + e[2932] = 7486; + e[2933] = 7487; + e[2934] = 7488; + e[2936] = 7490; + e[2937] = 7491; + e[2938] = 7492; + e[2940] = 7494; + e[2941] = 7495; + e[2942] = 7496; + e[2944] = 7498; + e[2946] = 7500; + e[2948] = 7502; + e[2950] = 7504; + e[2951] = 7505; + e[2952] = 7506; + e[2954] = 7508; + e[2955] = 7509; + e[2956] = 7510; + e[2958] = 7512; + e[2959] = 7513; + e[2960] = 7514; + e[2962] = 7516; + e[2963] = 7517; + e[2964] = 7518; + e[2966] = 7520; + e[2967] = 7521; + e[2968] = 7522; + e[2970] = 7524; + e[2971] = 7525; + e[2972] = 7526; + e[2974] = 7528; + e[2975] = 7529; + e[2976] = 7530; + e[2978] = 1537; + e[2979] = 1538; + e[2980] = 1539; + e[2982] = 1549; + e[2983] = 1551; + e[2984] = 1552; + e[2986] = 1554; + e[2987] = 1555; + e[2988] = 1556; + e[2990] = 1623; + e[2991] = 1624; + e[2995] = 1775; + e[2999] = 1791; + e[3002] = 64290; + e[3003] = 64291; + e[3004] = 64292; + e[3006] = 64294; + e[3007] = 64295; + e[3008] = 64296; + e[3011] = 1900; + e[3014] = 8223; + e[3015] = 8244; + e[3017] = 7532; + e[3018] = 7533; + e[3019] = 7534; + e[3075] = 7590; + e[3076] = 7591; + e[3079] = 7594; + e[3080] = 7595; + e[3083] = 7598; + e[3084] = 7599; + e[3087] = 7602; + e[3088] = 7603; + e[3091] = 7606; + e[3092] = 7607; + e[3095] = 7610; + e[3096] = 7611; + e[3099] = 7614; + e[3100] = 7615; + e[3103] = 7618; + e[3104] = 7619; + e[3107] = 8337; + e[3108] = 8338; + e[3116] = 1884; + e[3119] = 1885; + e[3120] = 1885; + e[3123] = 1886; + e[3124] = 1886; + e[3127] = 1887; + e[3128] = 1887; + e[3131] = 1888; + e[3132] = 1888; + e[3135] = 1889; + e[3136] = 1889; + e[3139] = 1890; + e[3140] = 1890; + e[3143] = 1891; + e[3144] = 1891; + e[3147] = 1892; + e[3148] = 1892; + e[3153] = 580; + e[3154] = 581; + e[3157] = 584; + e[3158] = 585; + e[3161] = 588; + e[3162] = 589; + e[3165] = 891; + e[3166] = 892; + e[3169] = 1274; + e[3170] = 1275; + e[3173] = 1278; + e[3174] = 1279; + e[3181] = 7622; + e[3182] = 7623; + e[3282] = 11799; + e[3316] = 578; + e[3379] = 42785; + e[3393] = 1159; + e[3416] = 8377; + }); + t.getGlyphMapForStandardFonts = h; + const u = (0, r.getLookupTableFactory)(function (e) { + e[227] = 322; + e[264] = 261; + e[291] = 346; + }); + t.getSupplementalGlyphMapForArialBlack = u; + const d = (0, r.getLookupTableFactory)(function (e) { + e[1] = 32; + e[4] = 65; + e[5] = 192; + e[6] = 193; + e[9] = 196; + e[17] = 66; + e[18] = 67; + e[21] = 268; + e[24] = 68; + e[28] = 69; + e[29] = 200; + e[30] = 201; + e[32] = 282; + e[38] = 70; + e[39] = 71; + e[44] = 72; + e[47] = 73; + e[48] = 204; + e[49] = 205; + e[58] = 74; + e[60] = 75; + e[62] = 76; + e[68] = 77; + e[69] = 78; + e[75] = 79; + e[76] = 210; + e[80] = 214; + e[87] = 80; + e[89] = 81; + e[90] = 82; + e[92] = 344; + e[94] = 83; + e[97] = 352; + e[100] = 84; + e[104] = 85; + e[109] = 220; + e[115] = 86; + e[116] = 87; + e[121] = 88; + e[122] = 89; + e[124] = 221; + e[127] = 90; + e[129] = 381; + e[258] = 97; + e[259] = 224; + e[260] = 225; + e[263] = 228; + e[268] = 261; + e[271] = 98; + e[272] = 99; + e[273] = 263; + e[275] = 269; + e[282] = 100; + e[286] = 101; + e[287] = 232; + e[288] = 233; + e[290] = 283; + e[295] = 281; + e[296] = 102; + e[336] = 103; + e[346] = 104; + e[349] = 105; + e[350] = 236; + e[351] = 237; + e[361] = 106; + e[364] = 107; + e[367] = 108; + e[371] = 322; + e[373] = 109; + e[374] = 110; + e[381] = 111; + e[382] = 242; + e[383] = 243; + e[386] = 246; + e[393] = 112; + e[395] = 113; + e[396] = 114; + e[398] = 345; + e[400] = 115; + e[401] = 347; + e[403] = 353; + e[410] = 116; + e[437] = 117; + e[442] = 252; + e[448] = 118; + e[449] = 119; + e[454] = 120; + e[455] = 121; + e[457] = 253; + e[460] = 122; + e[462] = 382; + e[463] = 380; + e[853] = 44; + e[855] = 58; + e[856] = 46; + e[876] = 47; + e[878] = 45; + e[882] = 45; + e[894] = 40; + e[895] = 41; + e[896] = 91; + e[897] = 93; + e[923] = 64; + e[1004] = 48; + e[1005] = 49; + e[1006] = 50; + e[1007] = 51; + e[1008] = 52; + e[1009] = 53; + e[1010] = 54; + e[1011] = 55; + e[1012] = 56; + e[1013] = 57; + e[1081] = 37; + e[1085] = 43; + e[1086] = 45; + }); + t.getSupplementalGlyphMapForCalibri = d; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ToUnicodeMap = t.IdentityToUnicodeMap = void 0; + var r = a(2); + t.ToUnicodeMap = class ToUnicodeMap { + constructor(e = []) { + this._map = e; + } + get length() { + return this._map.length; + } + forEach(e) { + for (const t in this._map) e(t, this._map[t].charCodeAt(0)); + } + has(e) { + return void 0 !== this._map[e]; + } + get(e) { + return this._map[e]; + } + charCodeOf(e) { + const t = this._map; + if (t.length <= 65536) return t.indexOf(e); + for (const a in t) if (t[a] === e) return 0 | a; + return -1; + } + amend(e) { + for (const t in e) this._map[t] = e[t]; + } + }; + t.IdentityToUnicodeMap = class IdentityToUnicodeMap { + constructor(e, t) { + this.firstChar = e; + this.lastChar = t; + } + get length() { + return this.lastChar + 1 - this.firstChar; + } + forEach(e) { + for (let t = this.firstChar, a = this.lastChar; t <= a; t++) e(t, t); + } + 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) { + (0, r.unreachable)('Should not call amend()'); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CFFFont = void 0; + var r = a(35), + i = a(38), + n = a(2); + t.CFFFont = class CFFFont { + constructor(e, t) { + this.properties = t; + const a = new r.CFFParser(e, t, i.SEAC_ANALYSIS_ENABLED); + this.cff = a.parse(); + this.cff.duplicateFirstGlyph(); + const s = new r.CFFCompiler(this.cff); + this.seacs = this.cff.seacs; + try { + this.data = s.compile(); + } catch (a) { + (0, n.warn)('Failed to compile font ' + t.loadedName); + this.data = e; + } + this._createBuiltInEncoding(); + } + get numGlyphs() { + return this.cff.charStrings.count; + } + getCharset() { + return this.cff.charset.charset; + } + getGlyphMapping() { + const e = this.cff, + t = this.properties, + { cidToGidMap: a, cMap: r } = t, + n = e.charset.charset; + let s, o; + if (t.composite) { + let t, i; + if (a && a.length > 0) { + t = Object.create(null); + for (let e = 0, r = a.length; e < r; e++) { + const r = a[e]; + void 0 !== r && (t[r] = e); + } + } + s = Object.create(null); + if (e.isCIDFont) + for (o = 0; o < n.length; o++) { + const e = n[o]; + i = r.charCodeOf(e); + t && void 0 !== t[i] && (i = t[i]); + s[i] = o; + } + else + for (o = 0; o < e.charStrings.count; o++) { + i = r.charCodeOf(o); + s[i] = o; + } + return s; + } + let c = e.encoding ? e.encoding.encoding : null; + t.isInternalFont && (c = t.defaultEncoding); + s = (0, i.type1FontGlyphMapping)(t, c, n); + return s; + } + hasGlyphId(e) { + return this.cff.hasGlyphId(e); + } + _createBuiltInEncoding() { + const { charset: e, encoding: t } = this.cff; + if (!e || !t) return; + const a = e.charset, + r = t.encoding, + i = []; + for (const e in r) { + const t = r[e]; + if (t >= 0) { + const r = a[t]; + r && (i[e] = r); + } + } + i.length > 0 && (this.properties.builtInEncoding = i); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FontRendererFactory = void 0; + var r = a(2), + i = a(35), + n = a(39), + s = a(37), + o = a(8); + function getUint32(e, t) { + return ((e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]) >>> 0; + } + function getUint16(e, t) { + return (e[t] << 8) | e[t + 1]; + } + function getInt16(e, t) { + return ((e[t] << 24) | (e[t + 1] << 16)) >> 16; + } + function getInt8(e, t) { + return (e[t] << 24) >> 24; + } + function getFloat214(e, t) { + return getInt16(e, t) / 16384; + } + function getSubroutineBias(e) { + const t = e.length; + let a = 32768; + t < 1240 ? (a = 107) : t < 33900 && (a = 1131); + return a; + } + function parseCmap(e, t, a) { + const i = 1 === getUint16(e, t + 2) ? getUint32(e, t + 8) : getUint32(e, t + 16), + n = getUint16(e, t + i); + let s, o, c; + if (4 === n) { + getUint16(e, t + i + 2); + const a = getUint16(e, t + i + 6) >> 1; + o = t + i + 14; + s = []; + for (c = 0; c < a; c++, o += 2) s[c] = { end: getUint16(e, o) }; + o += 2; + for (c = 0; c < a; c++, o += 2) s[c].start = getUint16(e, o); + for (c = 0; c < a; c++, o += 2) s[c].idDelta = getUint16(e, o); + for (c = 0; c < a; c++, o += 2) { + let t = getUint16(e, o); + if (0 !== t) { + s[c].ids = []; + for (let a = 0, r = s[c].end - s[c].start + 1; a < r; a++) { + s[c].ids[a] = getUint16(e, o + t); + t += 2; + } + } + } + return s; + } + if (12 === n) { + const a = getUint32(e, t + i + 12); + o = t + i + 16; + s = []; + for (c = 0; c < a; c++) { + t = getUint32(e, o); + s.push({ start: t, end: getUint32(e, o + 4), idDelta: getUint32(e, o + 8) - t }); + o += 12; + } + return s; + } + throw new r.FormatError(`unsupported cmap: ${n}`); + } + function parseCff(e, t, a, r) { + const n = new i.CFFParser(new o.Stream(e, t, a - t), {}, r).parse(); + return { + glyphs: n.charStrings.objects, + subrs: + n.topDict.privateDict && + n.topDict.privateDict.subrsIndex && + n.topDict.privateDict.subrsIndex.objects, + gsubrs: n.globalSubrIndex && n.globalSubrIndex.objects, + isCFFCIDFont: n.isCIDFont, + fdSelect: n.fdSelect, + fdArray: n.fdArray, + }; + } + function lookupCmap(e, t) { + const a = t.codePointAt(0); + let r = 0, + i = 0, + n = e.length - 1; + for (; i < n; ) { + const t = (i + n + 1) >> 1; + a < e[t].start ? (n = t - 1) : (i = t); + } + e[i].start <= a && + a <= e[i].end && + (r = (e[i].idDelta + (e[i].ids ? e[i].ids[a - e[i].start] : a)) & 65535); + return { charCode: a, glyphId: r }; + } + function compileGlyf(e, t, a) { + function moveTo(e, a) { + t.push({ cmd: 'moveTo', args: [e, a] }); + } + function lineTo(e, a) { + t.push({ cmd: 'lineTo', args: [e, a] }); + } + function quadraticCurveTo(e, a, r, i) { + t.push({ cmd: 'quadraticCurveTo', args: [e, a, r, i] }); + } + let r = 0; + const i = getInt16(e, r); + let n, + s = 0, + o = 0; + r += 10; + if (i < 0) + do { + n = getUint16(e, r); + const i = getUint16(e, r + 2); + r += 4; + let c, l; + if (1 & n) { + if (2 & n) { + c = getInt16(e, r); + l = getInt16(e, r + 2); + } else { + c = getUint16(e, r); + l = getUint16(e, r + 2); + } + r += 4; + } else if (2 & n) { + c = getInt8(e, r++); + l = getInt8(e, r++); + } else { + c = e[r++]; + l = e[r++]; + } + if (2 & n) { + s = c; + o = l; + } else { + s = 0; + o = 0; + } + let h = 1, + u = 1, + d = 0, + f = 0; + if (8 & n) { + h = u = getFloat214(e, r); + r += 2; + } else if (64 & n) { + h = getFloat214(e, r); + u = getFloat214(e, r + 2); + r += 4; + } else if (128 & n) { + h = getFloat214(e, r); + d = getFloat214(e, r + 2); + f = getFloat214(e, r + 4); + u = getFloat214(e, r + 6); + r += 8; + } + const g = a.glyphs[i]; + if (g) { + t.push({ cmd: 'save' }, { cmd: 'transform', args: [h, d, f, u, s, o] }); + compileGlyf(g, t, a); + t.push({ cmd: 'restore' }); + } + } while (32 & n); + else { + const t = []; + let a, c; + for (a = 0; a < i; a++) { + t.push(getUint16(e, r)); + r += 2; + } + r += 2 + getUint16(e, r); + const l = t.at(-1) + 1, + h = []; + for (; h.length < l; ) { + n = e[r++]; + let t = 1; + 8 & n && (t += e[r++]); + for (; t-- > 0; ) h.push({ flags: n }); + } + for (a = 0; a < l; a++) { + switch (18 & h[a].flags) { + case 0: + s += getInt16(e, r); + r += 2; + break; + case 2: + s -= e[r++]; + break; + case 18: + s += e[r++]; + } + h[a].x = s; + } + for (a = 0; a < l; a++) { + switch (36 & h[a].flags) { + case 0: + o += getInt16(e, r); + r += 2; + break; + case 4: + o -= e[r++]; + break; + case 36: + o += e[r++]; + } + h[a].y = o; + } + let u = 0; + for (r = 0; r < i; r++) { + const e = t[r], + i = h.slice(u, e + 1); + if (1 & i[0].flags) i.push(i[0]); + else if (1 & i.at(-1).flags) i.unshift(i.at(-1)); + else { + const e = { + flags: 1, + x: (i[0].x + i.at(-1).x) / 2, + y: (i[0].y + i.at(-1).y) / 2, + }; + i.unshift(e); + i.push(e); + } + moveTo(i[0].x, i[0].y); + for (a = 1, c = i.length; a < c; a++) + if (1 & i[a].flags) lineTo(i[a].x, i[a].y); + else if (1 & i[a + 1].flags) { + quadraticCurveTo(i[a].x, i[a].y, i[a + 1].x, i[a + 1].y); + a++; + } else + quadraticCurveTo( + i[a].x, + i[a].y, + (i[a].x + i[a + 1].x) / 2, + (i[a].y + i[a + 1].y) / 2, + ); + u = e + 1; + } + } + } + function compileCharString(e, t, a, i) { + function moveTo(e, a) { + t.push({ cmd: 'moveTo', args: [e, a] }); + } + function lineTo(e, a) { + t.push({ cmd: 'lineTo', args: [e, a] }); + } + function bezierCurveTo(e, a, r, i, n, s) { + t.push({ cmd: 'bezierCurveTo', args: [e, a, r, i, n, s] }); + } + const n = []; + let o = 0, + c = 0, + l = 0; + !(function parse(e) { + let h = 0; + for (; h < e.length; ) { + let u, + d, + f, + g, + p, + m, + b, + y, + w, + S = !1, + x = e[h++]; + switch (x) { + case 1: + case 3: + case 18: + case 23: + l += n.length >> 1; + S = !0; + break; + case 4: + c += n.pop(); + moveTo(o, c); + S = !0; + break; + case 5: + for (; n.length > 0; ) { + o += n.shift(); + c += n.shift(); + lineTo(o, c); + } + break; + case 6: + for (; n.length > 0; ) { + o += n.shift(); + lineTo(o, c); + if (0 === n.length) break; + c += n.shift(); + lineTo(o, c); + } + break; + case 7: + for (; n.length > 0; ) { + c += n.shift(); + lineTo(o, c); + if (0 === n.length) break; + o += n.shift(); + lineTo(o, c); + } + break; + case 8: + for (; n.length > 0; ) { + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + } + break; + case 10: + y = n.pop(); + w = null; + if (a.isCFFCIDFont) { + const e = a.fdSelect.getFDIndex(i); + if (e >= 0 && e < a.fdArray.length) { + const t = a.fdArray[e]; + let r; + t.privateDict && + t.privateDict.subrsIndex && + (r = t.privateDict.subrsIndex.objects); + if (r) { + y += getSubroutineBias(r); + w = r[y]; + } + } else (0, r.warn)('Invalid fd index for glyph index.'); + } else w = a.subrs[y + a.subrsBias]; + w && parse(w); + break; + case 11: + return; + case 12: + x = e[h++]; + switch (x) { + case 34: + u = o + n.shift(); + d = u + n.shift(); + p = c + n.shift(); + o = d + n.shift(); + bezierCurveTo(u, c, d, p, o, p); + u = o + n.shift(); + d = u + n.shift(); + o = d + n.shift(); + bezierCurveTo(u, p, d, c, o, c); + break; + case 35: + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + n.pop(); + break; + case 36: + u = o + n.shift(); + p = c + n.shift(); + d = u + n.shift(); + m = p + n.shift(); + o = d + n.shift(); + bezierCurveTo(u, p, d, m, o, m); + u = o + n.shift(); + d = u + n.shift(); + b = m + n.shift(); + o = d + n.shift(); + bezierCurveTo(u, m, d, b, o, c); + break; + case 37: + const e = o, + t = c; + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d; + c = g; + Math.abs(o - e) > Math.abs(c - t) ? (o += n.shift()) : (c += n.shift()); + bezierCurveTo(u, f, d, g, o, c); + break; + default: + throw new r.FormatError(`unknown operator: 12 ${x}`); + } + break; + case 14: + if (n.length >= 4) { + const e = n.pop(), + r = n.pop(); + c = n.pop(); + o = n.pop(); + t.push({ cmd: 'save' }, { cmd: 'translate', args: [o, c] }); + let i = lookupCmap( + a.cmap, + String.fromCharCode(a.glyphNameMap[s.StandardEncoding[e]]), + ); + compileCharString(a.glyphs[i.glyphId], t, a, i.glyphId); + t.push({ cmd: 'restore' }); + i = lookupCmap( + a.cmap, + String.fromCharCode(a.glyphNameMap[s.StandardEncoding[r]]), + ); + compileCharString(a.glyphs[i.glyphId], t, a, i.glyphId); + } + return; + case 19: + case 20: + l += n.length >> 1; + h += (l + 7) >> 3; + S = !0; + break; + case 21: + c += n.pop(); + o += n.pop(); + moveTo(o, c); + S = !0; + break; + case 22: + o += n.pop(); + moveTo(o, c); + S = !0; + break; + case 24: + for (; n.length > 2; ) { + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + } + o += n.shift(); + c += n.shift(); + lineTo(o, c); + break; + case 25: + for (; n.length > 6; ) { + o += n.shift(); + c += n.shift(); + lineTo(o, c); + } + u = o + n.shift(); + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + break; + case 26: + n.length % 2 && (o += n.shift()); + for (; n.length > 0; ) { + u = o; + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d; + c = g + n.shift(); + bezierCurveTo(u, f, d, g, o, c); + } + break; + case 27: + n.length % 2 && (c += n.shift()); + for (; n.length > 0; ) { + u = o + n.shift(); + f = c; + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g; + bezierCurveTo(u, f, d, g, o, c); + } + break; + case 28: + n.push(((e[h] << 24) | (e[h + 1] << 16)) >> 16); + h += 2; + break; + case 29: + y = n.pop() + a.gsubrsBias; + w = a.gsubrs[y]; + w && parse(w); + break; + case 30: + for (; n.length > 0; ) { + u = o; + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + (1 === n.length ? n.shift() : 0); + bezierCurveTo(u, f, d, g, o, c); + if (0 === n.length) break; + u = o + n.shift(); + f = c; + d = u + n.shift(); + g = f + n.shift(); + c = g + n.shift(); + o = d + (1 === n.length ? n.shift() : 0); + bezierCurveTo(u, f, d, g, o, c); + } + break; + case 31: + for (; n.length > 0; ) { + u = o + n.shift(); + f = c; + d = u + n.shift(); + g = f + n.shift(); + c = g + n.shift(); + o = d + (1 === n.length ? n.shift() : 0); + bezierCurveTo(u, f, d, g, o, c); + if (0 === n.length) break; + u = o; + f = c + n.shift(); + d = u + n.shift(); + g = f + n.shift(); + o = d + n.shift(); + c = g + (1 === n.length ? n.shift() : 0); + bezierCurveTo(u, f, d, g, o, c); + } + break; + default: + if (x < 32) throw new r.FormatError(`unknown operator: ${x}`); + if (x < 247) n.push(x - 139); + else if (x < 251) n.push(256 * (x - 247) + e[h++] + 108); + else if (x < 255) n.push(256 * -(x - 251) - e[h++] - 108); + else { + n.push( + ((e[h] << 24) | (e[h + 1] << 16) | (e[h + 2] << 8) | e[h + 3]) / 65536, + ); + h += 4; + } + } + S && (n.length = 0); + } + })(e); + } + const c = []; + class CompiledFont { + constructor(e) { + this.constructor === CompiledFont && + (0, r.unreachable)('Cannot initialize CompiledFont.'); + this.fontMatrix = e; + this.compiledGlyphs = Object.create(null); + this.compiledCharCodeToGlyphId = Object.create(null); + } + getPathJs(e) { + const { charCode: t, glyphId: a } = lookupCmap(this.cmap, e); + let r = this.compiledGlyphs[a]; + if (!r) + try { + r = this.compileGlyph(this.glyphs[a], a); + this.compiledGlyphs[a] = r; + } catch (e) { + this.compiledGlyphs[a] = c; + void 0 === this.compiledCharCodeToGlyphId[t] && + (this.compiledCharCodeToGlyphId[t] = a); + throw e; + } + void 0 === this.compiledCharCodeToGlyphId[t] && + (this.compiledCharCodeToGlyphId[t] = a); + return r; + } + compileGlyph(e, t) { + if (!e || 0 === e.length || 14 === e[0]) return c; + let a = this.fontMatrix; + if (this.isCFFCIDFont) { + const e = this.fdSelect.getFDIndex(t); + if (e >= 0 && e < this.fdArray.length) { + a = this.fdArray[e].getByName('FontMatrix') || r.FONT_IDENTITY_MATRIX; + } else (0, r.warn)('Invalid fd index for glyph index.'); + } + const i = [ + { cmd: 'save' }, + { cmd: 'transform', args: a.slice() }, + { cmd: 'scale', args: ['size', '-size'] }, + ]; + this.compileGlyphImpl(e, i, t); + i.push({ cmd: 'restore' }); + return i; + } + compileGlyphImpl() { + (0, r.unreachable)('Children classes should implement this.'); + } + hasBuiltPath(e) { + const { charCode: t, glyphId: a } = lookupCmap(this.cmap, e); + return ( + void 0 !== this.compiledGlyphs[a] && void 0 !== this.compiledCharCodeToGlyphId[t] + ); + } + } + class TrueTypeCompiled extends CompiledFont { + constructor(e, t, a) { + super(a || [488e-6, 0, 0, 488e-6, 0, 0]); + this.glyphs = e; + this.cmap = t; + } + compileGlyphImpl(e, t) { + compileGlyf(e, t, this); + } + } + class Type2Compiled extends CompiledFont { + constructor(e, t, a, r) { + super(a || [0.001, 0, 0, 0.001, 0, 0]); + this.glyphs = e.glyphs; + this.gsubrs = e.gsubrs || []; + this.subrs = e.subrs || []; + this.cmap = t; + this.glyphNameMap = r || (0, n.getGlyphsUnicode)(); + this.gsubrsBias = getSubroutineBias(this.gsubrs); + this.subrsBias = getSubroutineBias(this.subrs); + this.isCFFCIDFont = e.isCFFCIDFont; + this.fdSelect = e.fdSelect; + this.fdArray = e.fdArray; + } + compileGlyphImpl(e, t, a) { + compileCharString(e, t, this, a); + } + } + t.FontRendererFactory = class FontRendererFactory { + static create(e, t) { + const a = new Uint8Array(e.data); + let i, n, s, o, c, l; + const h = getUint16(a, 4); + for (let e = 0, u = 12; e < h; e++, u += 16) { + const e = (0, r.bytesToString)(a.subarray(u, u + 4)), + h = getUint32(a, u + 8), + d = getUint32(a, u + 12); + switch (e) { + case 'cmap': + i = parseCmap(a, h); + break; + case 'glyf': + n = a.subarray(h, h + d); + break; + case 'loca': + s = a.subarray(h, h + d); + break; + case 'head': + l = getUint16(a, h + 18); + c = getUint16(a, h + 50); + break; + case 'CFF ': + o = parseCff(a, h, h + d, t); + } + } + if (n) { + const t = l ? [1 / l, 0, 0, 1 / l, 0, 0] : e.fontMatrix; + return new TrueTypeCompiled( + (function parseGlyfTable(e, t, a) { + let r, i; + if (a) { + r = 4; + i = getUint32; + } else { + r = 2; + i = (e, t) => 2 * getUint16(e, t); + } + const n = []; + let s = i(t, 0); + for (let a = r; a < t.length; a += r) { + const r = i(t, a); + n.push(e.subarray(s, r)); + s = r; + } + return n; + })(n, s, c), + i, + t, + ); + } + return new Type2Compiled(o, i, e.fontMatrix, e.glyphNameMap); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.getMetrics = t.getFontBasicMetrics = void 0; + var r = a(3); + const i = (0, r.getLookupTableFactory)(function (e) { + e.Courier = 600; + e['Courier-Bold'] = 600; + e['Courier-BoldOblique'] = 600; + e['Courier-Oblique'] = 600; + e.Helvetica = (0, r.getLookupTableFactory)(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; + }); + e['Helvetica-Bold'] = (0, r.getLookupTableFactory)(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; + }); + e['Helvetica-BoldOblique'] = (0, r.getLookupTableFactory)(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; + }); + e['Helvetica-Oblique'] = (0, r.getLookupTableFactory)(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; + }); + e.Symbol = (0, r.getLookupTableFactory)(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; + }); + e['Times-Roman'] = (0, r.getLookupTableFactory)(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; + }); + e['Times-Bold'] = (0, r.getLookupTableFactory)(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; + }); + e['Times-BoldItalic'] = (0, r.getLookupTableFactory)(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; + }); + e['Times-Italic'] = (0, r.getLookupTableFactory)(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; + }); + e.ZapfDingbats = (0, r.getLookupTableFactory)(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; + }); + }); + t.getMetrics = i; + const n = (0, r.getLookupTableFactory)(function (e) { + e.Courier = { ascent: 629, descent: -157, capHeight: 562, xHeight: -426 }; + e['Courier-Bold'] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 439 }; + e['Courier-Oblique'] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 }; + e['Courier-BoldOblique'] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 }; + e.Helvetica = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 }; + e['Helvetica-Bold'] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 532 }; + e['Helvetica-Oblique'] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 }; + e['Helvetica-BoldOblique'] = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 532, + }; + e['Times-Roman'] = { ascent: 683, descent: -217, capHeight: 662, xHeight: 450 }; + e['Times-Bold'] = { ascent: 683, descent: -217, capHeight: 676, xHeight: 461 }; + e['Times-Italic'] = { ascent: 683, descent: -217, capHeight: 653, xHeight: 441 }; + e['Times-BoldItalic'] = { ascent: 683, descent: -217, capHeight: 669, xHeight: 462 }; + e.Symbol = { + ascent: Math.NaN, + descent: Math.NaN, + capHeight: Math.NaN, + xHeight: Math.NaN, + }; + e.ZapfDingbats = { + ascent: Math.NaN, + descent: Math.NaN, + capHeight: Math.NaN, + xHeight: Math.NaN, + }; + }); + t.getFontBasicMetrics = n; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.GlyfTable = void 0; + t.GlyfTable = class GlyfTable { + constructor({ glyfTable: e, isGlyphLocationsLong: t, locaTable: a, numGlyphs: r }) { + this.glyphs = []; + const i = new DataView(a.buffer, a.byteOffset, a.byteLength), + n = new DataView(e.buffer, e.byteOffset, e.byteLength), + s = t ? 4 : 2; + let o = t ? i.getUint32(0) : 2 * i.getUint16(0), + c = 0; + for (let e = 0; e < r; e++) { + c += s; + const e = t ? i.getUint32(c) : 2 * i.getUint16(c); + if (e === o) { + this.glyphs.push(new Glyph({})); + continue; + } + const a = Glyph.parse(o, n); + this.glyphs.push(a); + o = e; + } + } + getSize() { + return this.glyphs.reduce((e, t) => e + ((t.getSize() + 3) & -4), 0); + } + write() { + const e = this.getSize(), + t = new DataView(new ArrayBuffer(e)), + a = e > 131070, + r = a ? 4 : 2, + i = new DataView(new ArrayBuffer((this.glyphs.length + 1) * r)); + a ? i.setUint32(0, 0) : i.setUint16(0, 0); + let n = 0, + s = 0; + for (const e of this.glyphs) { + n += e.write(n, t); + n = (n + 3) & -4; + s += r; + a ? i.setUint32(s, n) : i.setUint16(s, n >> 1); + } + return { + isLocationLong: a, + loca: new Uint8Array(i.buffer), + glyf: new Uint8Array(t.buffer), + }; + } + scale(e) { + for (let t = 0, a = this.glyphs.length; t < a; t++) this.glyphs[t].scale(e[t]); + } + }; + class Glyph { + constructor({ header: e = null, simple: t = null, composites: a = null }) { + this.header = e; + this.simple = t; + this.composites = a; + } + static parse(e, t) { + const [a, r] = GlyphHeader.parse(e, t); + e += a; + if (r.numberOfContours < 0) { + const a = []; + for (;;) { + const [r, i] = CompositeGlyph.parse(e, t); + e += r; + a.push(i); + if (!(32 & i.flags)) break; + } + return new Glyph({ header: r, composites: a }); + } + const i = SimpleGlyph.parse(e, t, r.numberOfContours); + return new Glyph({ header: r, simple: i }); + } + getSize() { + if (!this.header) return 0; + const e = this.simple + ? this.simple.getSize() + : this.composites.reduce((e, t) => e + t.getSize(), 0); + return this.header.getSize() + e; + } + write(e, t) { + if (!this.header) return 0; + const a = e; + e += this.header.write(e, t); + if (this.simple) e += this.simple.write(e, t); + else for (const a of this.composites) e += a.write(e, t); + return e - a; + } + scale(e) { + if (!this.header) return; + const t = (this.header.xMin + this.header.xMax) / 2; + this.header.scale(t, e); + if (this.simple) this.simple.scale(t, e); + else for (const a of this.composites) a.scale(t, e); + } + } + class GlyphHeader { + constructor({ numberOfContours: e, xMin: t, yMin: a, xMax: r, yMax: i }) { + this.numberOfContours = e; + this.xMin = t; + this.yMin = a; + this.xMax = r; + this.yMax = i; + } + static parse(e, t) { + return [ + 10, + new GlyphHeader({ + numberOfContours: t.getInt16(e), + xMin: t.getInt16(e + 2), + yMin: t.getInt16(e + 4), + xMax: t.getInt16(e + 6), + yMax: t.getInt16(e + 8), + }), + ]; + } + getSize() { + return 10; + } + write(e, t) { + t.setInt16(e, this.numberOfContours); + t.setInt16(e + 2, this.xMin); + t.setInt16(e + 4, this.yMin); + t.setInt16(e + 6, this.xMax); + t.setInt16(e + 8, this.yMax); + return 10; + } + scale(e, t) { + this.xMin = Math.round(e + (this.xMin - e) * t); + this.xMax = Math.round(e + (this.xMax - e) * t); + } + } + class Contour { + constructor({ flags: e, xCoordinates: t, yCoordinates: a }) { + this.xCoordinates = t; + this.yCoordinates = a; + this.flags = e; + } + } + class SimpleGlyph { + constructor({ contours: e, instructions: t }) { + this.contours = e; + this.instructions = t; + } + static parse(e, t, a) { + const r = []; + for (let i = 0; i < a; i++) { + const a = t.getUint16(e); + e += 2; + r.push(a); + } + const i = r[a - 1] + 1, + n = t.getUint16(e); + e += 2; + const s = new Uint8Array(t).slice(e, e + n); + e += n; + const o = []; + for (let a = 0; a < i; e++, a++) { + let r = t.getUint8(e); + o.push(r); + if (8 & r) { + const i = t.getUint8(++e); + r ^= 8; + for (let e = 0; e < i; e++) o.push(r); + a += i; + } + } + const c = []; + let l = [], + h = [], + u = []; + const d = []; + let f = 0, + g = 0; + for (let a = 0; a < i; a++) { + const i = o[a]; + if (2 & i) { + const a = t.getUint8(e++); + g += 16 & i ? a : -a; + l.push(g); + } else if (16 & i) l.push(g); + else { + g += t.getInt16(e); + e += 2; + l.push(g); + } + if (r[f] === a) { + f++; + c.push(l); + l = []; + } + } + g = 0; + f = 0; + for (let a = 0; a < i; a++) { + const i = o[a]; + if (4 & i) { + const a = t.getUint8(e++); + g += 32 & i ? a : -a; + h.push(g); + } else if (32 & i) h.push(g); + else { + g += t.getInt16(e); + e += 2; + h.push(g); + } + u.push((1 & i) | (64 & i)); + if (r[f] === a) { + l = c[f]; + f++; + d.push(new Contour({ flags: u, xCoordinates: l, yCoordinates: h })); + h = []; + u = []; + } + } + return new SimpleGlyph({ contours: d, instructions: s }); + } + getSize() { + let e = 2 * this.contours.length + 2 + this.instructions.length, + t = 0, + a = 0; + for (const r of this.contours) { + e += r.flags.length; + for (let i = 0, n = r.xCoordinates.length; i < n; i++) { + const n = r.xCoordinates[i], + s = r.yCoordinates[i]; + let o = Math.abs(n - t); + o > 255 ? (e += 2) : o > 0 && (e += 1); + t = n; + o = Math.abs(s - a); + o > 255 ? (e += 2) : o > 0 && (e += 1); + a = s; + } + } + return e; + } + write(e, t) { + const a = e, + r = [], + i = [], + n = []; + let s = 0, + o = 0; + for (const a of this.contours) { + for (let e = 0, t = a.xCoordinates.length; e < t; e++) { + let t = a.flags[e]; + const c = a.xCoordinates[e]; + let l = c - s; + if (0 === l) { + t |= 16; + r.push(0); + } else { + const e = Math.abs(l); + if (e <= 255) { + t |= l >= 0 ? 18 : 2; + r.push(e); + } else r.push(l); + } + s = c; + const h = a.yCoordinates[e]; + l = h - o; + if (0 === l) { + t |= 32; + i.push(0); + } else { + const e = Math.abs(l); + if (e <= 255) { + t |= l >= 0 ? 36 : 4; + i.push(e); + } else i.push(l); + } + o = h; + n.push(t); + } + t.setUint16(e, r.length - 1); + e += 2; + } + t.setUint16(e, this.instructions.length); + e += 2; + if (this.instructions.length) { + new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(this.instructions, e); + e += this.instructions.length; + } + for (const a of n) t.setUint8(e++, a); + for (let a = 0, i = r.length; a < i; a++) { + const i = r[a], + s = n[a]; + if (2 & s) t.setUint8(e++, i); + else if (!(16 & s)) { + t.setInt16(e, i); + e += 2; + } + } + for (let a = 0, r = i.length; a < r; a++) { + const r = i[a], + s = n[a]; + if (4 & s) t.setUint8(e++, r); + else if (!(32 & s)) { + t.setInt16(e, r); + e += 2; + } + } + return e - a; + } + scale(e, t) { + for (const a of this.contours) + if (0 !== a.xCoordinates.length) + for (let r = 0, i = a.xCoordinates.length; r < i; r++) + a.xCoordinates[r] = Math.round(e + (a.xCoordinates[r] - e) * t); + } + } + class CompositeGlyph { + constructor({ + flags: e, + glyphIndex: t, + argument1: a, + argument2: r, + transf: i, + instructions: n, + }) { + this.flags = e; + this.glyphIndex = t; + this.argument1 = a; + this.argument2 = r; + this.transf = i; + this.instructions = n; + } + static parse(e, t) { + const a = e, + r = []; + let i = t.getUint16(e); + const n = t.getUint16(e + 2); + e += 4; + let s, o; + if (1 & i) { + if (2 & i) { + s = t.getInt16(e); + o = t.getInt16(e + 2); + } else { + s = t.getUint16(e); + o = t.getUint16(e + 2); + } + e += 4; + i ^= 1; + } else { + if (2 & i) { + s = t.getInt8(e); + o = t.getInt8(e + 1); + } else { + s = t.getUint8(e); + o = t.getUint8(e + 1); + } + e += 2; + } + if (8 & i) { + r.push(t.getUint16(e)); + e += 2; + } else if (64 & i) { + r.push(t.getUint16(e), t.getUint16(e + 2)); + e += 4; + } else if (128 & i) { + r.push(t.getUint16(e), t.getUint16(e + 2), t.getUint16(e + 4), t.getUint16(e + 6)); + e += 8; + } + let c = null; + if (256 & i) { + const a = t.getUint16(e); + e += 2; + c = new Uint8Array(t).slice(e, e + a); + e += a; + } + return [ + e - a, + new CompositeGlyph({ + flags: i, + glyphIndex: n, + argument1: s, + argument2: o, + transf: r, + instructions: c, + }), + ]; + } + getSize() { + let e = 4 + 2 * this.transf.length; + 256 & this.flags && (e += 2 + this.instructions.length); + e += 2; + 2 & this.flags + ? (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); + return e; + } + write(e, t) { + const a = e; + 2 & this.flags + ? (this.argument1 >= -128 && + this.argument1 <= 127 && + this.argument2 >= -128 && + this.argument2 <= 127) || + (this.flags |= 1) + : (this.argument1 >= 0 && + this.argument1 <= 255 && + this.argument2 >= 0 && + this.argument2 <= 255) || + (this.flags |= 1); + t.setUint16(e, this.flags); + t.setUint16(e + 2, this.glyphIndex); + e += 4; + if (1 & this.flags) { + if (2 & this.flags) { + t.setInt16(e, this.argument1); + t.setInt16(e + 2, this.argument2); + } else { + t.setUint16(e, this.argument1); + t.setUint16(e + 2, this.argument2); + } + e += 4; + } else { + t.setUint8(e, this.argument1); + t.setUint8(e + 1, this.argument2); + e += 2; + } + if (256 & this.flags) { + t.setUint16(e, this.instructions.length); + e += 2; + if (this.instructions.length) { + new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(this.instructions, e); + e += this.instructions.length; + } + } + return e - a; + } + scale(e, t) {} + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.OpenTypeFileBuilder = void 0; + var r = a(3), + i = a(2); + function writeInt16(e, t, a) { + e[t] = (a >> 8) & 255; + e[t + 1] = 255 & a; + } + function writeInt32(e, t, a) { + e[t] = (a >> 24) & 255; + e[t + 1] = (a >> 16) & 255; + e[t + 2] = (a >> 8) & 255; + e[t + 3] = 255 & a; + } + function writeData(e, t, a) { + if (a instanceof Uint8Array) e.set(a, t); + else if ('string' == typeof a) + for (let r = 0, i = a.length; r < i; r++) e[t++] = 255 & a.charCodeAt(r); + else for (const r of a) e[t++] = 255 & r; + } + class OpenTypeFileBuilder { + constructor(e) { + this.sfnt = e; + this.tables = Object.create(null); + } + static getSearchParams(e, t) { + let a = 1, + r = 0; + for (; (a ^ e) > a; ) { + a <<= 1; + r++; + } + const i = a * t; + return { range: i, entry: r, rangeShift: t * e - i }; + } + toArray() { + let e = this.sfnt; + const t = this.tables, + a = Object.keys(t); + a.sort(); + const n = a.length; + let s, + o, + c, + l, + h, + u = 12 + 16 * n; + const d = [u]; + for (s = 0; s < n; s++) { + l = t[a[s]]; + u += ((l.length + 3) & -4) >>> 0; + d.push(u); + } + const f = new Uint8Array(u); + for (s = 0; s < n; s++) { + l = t[a[s]]; + writeData(f, d[s], l); + } + 'true' === e && (e = (0, i.string32)(65536)); + f[0] = 255 & e.charCodeAt(0); + f[1] = 255 & e.charCodeAt(1); + f[2] = 255 & e.charCodeAt(2); + f[3] = 255 & e.charCodeAt(3); + writeInt16(f, 4, n); + const g = OpenTypeFileBuilder.getSearchParams(n, 16); + writeInt16(f, 6, g.range); + writeInt16(f, 8, g.entry); + writeInt16(f, 10, g.rangeShift); + u = 12; + for (s = 0; s < n; s++) { + h = a[s]; + f[u] = 255 & h.charCodeAt(0); + f[u + 1] = 255 & h.charCodeAt(1); + f[u + 2] = 255 & h.charCodeAt(2); + f[u + 3] = 255 & h.charCodeAt(3); + let e = 0; + for (o = d[s], c = d[s + 1]; o < c; o += 4) { + e = (e + (0, r.readUint32)(f, o)) >>> 0; + } + writeInt32(f, u + 4, e); + writeInt32(f, u + 8, d[s]); + writeInt32(f, u + 12, t[h].length); + u += 16; + } + return f; + } + addTable(e, t) { + if (e in this.tables) throw new Error('Table ' + e + ' already exists'); + this.tables[e] = t; + } + } + t.OpenTypeFileBuilder = OpenTypeFileBuilder; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Type1Font = void 0; + var r = a(35), + i = a(2), + n = a(38), + s = a(3), + o = a(8), + c = a(49); + function findBlock(e, t, a) { + const r = e.length, + i = t.length, + n = r - i; + let o = a, + c = !1; + for (; o < n; ) { + let a = 0; + for (; a < i && e[o + a] === t[a]; ) a++; + if (a >= i) { + o += a; + for (; o < r && (0, s.isWhiteSpace)(e[o]); ) o++; + c = !0; + break; + } + o++; + } + return { found: c, length: o }; + } + t.Type1Font = class Type1Font { + constructor(e, t, a) { + let r = a.length1, + s = a.length2, + l = t.peekBytes(6); + const h = 128 === l[0] && 1 === l[1]; + if (h) { + t.skip(6); + r = (l[5] << 24) | (l[4] << 16) | (l[3] << 8) | l[2]; + } + const u = (function getHeaderBlock(e, t) { + const a = [101, 101, 120, 101, 99], + r = e.pos; + let n, s, c, l; + try { + n = e.getBytes(t); + s = n.length; + } catch (e) {} + if (s === t) { + c = findBlock(n, a, t - 2 * a.length); + if (c.found && c.length === t) return { stream: new o.Stream(n), length: t }; + } + (0, i.warn)('Invalid "Length1" property in Type1 font -- trying to recover.'); + e.pos = r; + for (;;) { + c = findBlock(e.peekBytes(2048), a, 0); + if (0 === c.length) break; + e.pos += c.length; + if (c.found) { + l = e.pos - r; + break; + } + } + e.pos = r; + if (l) return { stream: new o.Stream(e.getBytes(l)), length: l }; + (0, i.warn)('Unable to recover "Length1" property in Type1 font -- using as is.'); + return { stream: new o.Stream(e.getBytes(t)), length: t }; + })(t, r); + new c.Type1Parser(u.stream, !1, n.SEAC_ANALYSIS_ENABLED).extractFontHeader(a); + if (h) { + l = t.getBytes(6); + s = (l[5] << 24) | (l[4] << 16) | (l[3] << 8) | l[2]; + } + const d = (function getEexecBlock(e, t) { + const a = e.getBytes(); + if (0 === a.length) + throw new i.FormatError('getEexecBlock - no font program found.'); + return { stream: new o.Stream(a), length: a.length }; + })(t), + f = new c.Type1Parser(d.stream, !0, n.SEAC_ANALYSIS_ENABLED).extractFontProgram(a); + for (const e in f.properties) a[e] = f.properties[e]; + const g = f.charstrings, + p = this.getType2Charstrings(g), + m = this.getType2Subrs(f.subrs); + this.charstrings = g; + this.data = this.wrap(e, p, this.charstrings, m, a); + this.seacs = this.getSeacs(f.charstrings); + } + get numGlyphs() { + return this.charstrings.length + 1; + } + getCharset() { + const e = ['.notdef']; + for (const { glyphName: t } of this.charstrings) e.push(t); + return e; + } + getGlyphMapping(e) { + const t = this.charstrings; + if (e.composite) { + const a = Object.create(null); + for (let r = 0, i = t.length; r < i; r++) { + a[e.cMap.charCodeOf(r)] = r + 1; + } + return a; + } + const a = ['.notdef']; + let r, i; + for (i = 0; i < t.length; i++) a.push(t[i].glyphName); + const s = e.builtInEncoding; + if (s) { + r = Object.create(null); + for (const e in s) { + i = a.indexOf(s[e]); + i >= 0 && (r[e] = i); + } + } + return (0, n.type1FontGlyphMapping)(e, r, a); + } + hasGlyphId(e) { + if (e < 0 || e >= this.numGlyphs) return !1; + if (0 === e) return !0; + return this.charstrings[e - 1].charstring.length > 0; + } + getSeacs(e) { + const t = []; + for (let a = 0, r = e.length; a < r; a++) { + const r = e[a]; + r.seac && (t[a + 1] = r.seac); + } + return t; + } + getType2Charstrings(e) { + const t = []; + for (const a of e) t.push(a.charstring); + return t; + } + getType2Subrs(e) { + let t = 0; + const a = e.length; + t = a < 1133 ? 107 : a < 33769 ? 1131 : 32768; + const r = []; + let i; + for (i = 0; i < t; i++) r.push([11]); + for (i = 0; i < a; i++) r.push(e[i]); + return r; + } + wrap(e, t, a, i, n) { + const s = new r.CFF(); + s.header = new r.CFFHeader(1, 0, 4, 4); + s.names = [e]; + const o = new r.CFFTopDict(); + 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', n.fontMatrix); + o.setByName('FontBBox', n.bbox); + o.setByName('charset', null); + o.setByName('CharStrings', null); + o.setByName('Private', null); + s.topDict = o; + const c = new r.CFFStrings(); + c.add('Version 0.11'); + c.add('See original notice'); + c.add(e); + c.add(e); + c.add('Medium'); + s.strings = c; + s.globalSubrIndex = new r.CFFIndex(); + const l = t.length, + h = ['.notdef']; + let u, d; + for (u = 0; u < l; u++) { + const e = a[u].glyphName; + -1 === r.CFFStandardStrings.indexOf(e) && c.add(e); + h.push(e); + } + s.charset = new r.CFFCharset(!1, 0, h); + const f = new r.CFFIndex(); + f.add([139, 14]); + for (u = 0; u < l; u++) f.add(t[u]); + s.charStrings = f; + const g = new r.CFFPrivateDict(); + g.setByName('Subrs', null); + const p = [ + 'BlueValues', + 'OtherBlues', + 'FamilyBlues', + 'FamilyOtherBlues', + 'StemSnapH', + 'StemSnapV', + 'BlueShift', + 'BlueFuzz', + 'BlueScale', + 'LanguageGroup', + 'ExpansionFactor', + 'ForceBold', + 'StdHW', + 'StdVW', + ]; + for (u = 0, d = p.length; u < d; u++) { + const e = p[u]; + if (!(e in n.privateData)) continue; + const t = n.privateData[e]; + if (Array.isArray(t)) for (let e = t.length - 1; e > 0; e--) t[e] -= t[e - 1]; + g.setByName(e, t); + } + s.topDict.privateDict = g; + const m = new r.CFFIndex(); + for (u = 0, d = i.length; u < d; u++) m.add(i[u]); + g.subrsIndex = m; + return new r.CFFCompiler(s).compile(); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Type1Parser = void 0; + var r = a(37), + i = a(3), + n = a(8), + s = a(2); + const o = [4], + c = [5], + l = [6], + h = [7], + u = [8], + d = [12, 35], + f = [14], + g = [21], + p = [22], + m = [30], + b = [31]; + class Type1CharString { + constructor() { + this.width = 0; + this.lsb = 0; + this.flexing = !1; + this.output = []; + this.stack = []; + } + convert(e, t, a) { + const r = e.length; + let i, + n, + y, + w = !1; + for (let S = 0; S < r; S++) { + let r = e[S]; + if (r < 32) { + 12 === r && (r = (r << 8) + e[++S]); + switch (r) { + case 1: + case 3: + case 9: + case 3072: + case 3073: + case 3074: + case 3105: + this.stack = []; + break; + case 4: + if (this.flexing) { + if (this.stack.length < 1) { + w = !0; + break; + } + const e = this.stack.pop(); + this.stack.push(0, e); + break; + } + w = this.executeCommand(1, o); + break; + case 5: + w = this.executeCommand(2, c); + break; + case 6: + w = this.executeCommand(1, l); + break; + case 7: + w = this.executeCommand(1, h); + break; + case 8: + w = this.executeCommand(6, u); + break; + case 10: + if (this.stack.length < 1) { + w = !0; + break; + } + y = this.stack.pop(); + if (!t[y]) { + w = !0; + break; + } + w = this.convert(t[y], t, a); + break; + case 11: + return w; + case 13: + if (this.stack.length < 2) { + w = !0; + break; + } + i = this.stack.pop(); + n = this.stack.pop(); + this.lsb = n; + this.width = i; + this.stack.push(i, n); + w = this.executeCommand(2, p); + break; + case 14: + this.output.push(f[0]); + break; + case 21: + if (this.flexing) break; + w = this.executeCommand(2, g); + break; + case 22: + if (this.flexing) { + this.stack.push(0); + break; + } + w = this.executeCommand(1, p); + break; + case 30: + w = this.executeCommand(4, m); + break; + case 31: + w = this.executeCommand(4, b); + break; + case 3078: + if (a) { + const e = this.stack.at(-5); + this.seac = this.stack.splice(-4, 4); + this.seac[0] += this.lsb - e; + w = this.executeCommand(0, f); + } else w = this.executeCommand(4, f); + break; + case 3079: + if (this.stack.length < 4) { + w = !0; + break; + } + this.stack.pop(); + i = this.stack.pop(); + const e = this.stack.pop(); + n = this.stack.pop(); + this.lsb = n; + this.width = i; + this.stack.push(i, n, e); + w = this.executeCommand(3, g); + break; + case 3084: + if (this.stack.length < 2) { + w = !0; + break; + } + const S = this.stack.pop(), + x = this.stack.pop(); + this.stack.push(x / S); + break; + case 3088: + if (this.stack.length < 2) { + w = !0; + break; + } + y = this.stack.pop(); + const C = this.stack.pop(); + if (0 === y && 3 === C) { + const e = this.stack.splice(-17, 17); + this.stack.push( + e[2] + e[0], + e[3] + e[1], + e[4], + e[5], + e[6], + e[7], + e[8], + e[9], + e[10], + e[11], + e[12], + e[13], + e[14], + ); + w = this.executeCommand(13, d, !0); + this.flexing = !1; + this.stack.push(e[15], e[16]); + } else 1 === y && 0 === C && (this.flexing = !0); + break; + case 3089: + break; + default: + (0, s.warn)('Unknown type 1 charstring command of "' + r + '"'); + } + if (w) break; + } else { + r <= 246 + ? (r -= 139) + : (r = + r <= 250 + ? 256 * (r - 247) + e[++S] + 108 + : r <= 254 + ? -256 * (r - 251) - e[++S] - 108 + : ((255 & e[++S]) << 24) | + ((255 & e[++S]) << 16) | + ((255 & e[++S]) << 8) | + ((255 & e[++S]) << 0)); + this.stack.push(r); + } + } + return w; + } + executeCommand(e, t, a) { + const r = this.stack.length; + if (e > r) return !0; + const i = r - e; + for (let e = i; e < r; e++) { + let t = this.stack[e]; + if (Number.isInteger(t)) this.output.push(28, (t >> 8) & 255, 255 & t); + else { + t = (65536 * t) | 0; + this.output.push(255, (t >> 24) & 255, (t >> 16) & 255, (t >> 8) & 255, 255 & t); + } + } + this.output.push(...t); + a ? this.stack.splice(i, e) : (this.stack.length = 0); + return !1; + } + } + function isHexDigit(e) { + return (e >= 48 && e <= 57) || (e >= 65 && e <= 70) || (e >= 97 && e <= 102); + } + function decrypt(e, t, a) { + if (a >= e.length) return new Uint8Array(0); + let r, + i, + n = 0 | t; + for (r = 0; r < a; r++) n = (52845 * (e[r] + n) + 22719) & 65535; + const s = e.length - a, + o = new Uint8Array(s); + for (r = a, i = 0; i < s; r++, i++) { + const t = e[r]; + o[i] = t ^ (n >> 8); + n = (52845 * (t + n) + 22719) & 65535; + } + return o; + } + function isSpecial(e) { + return ( + 47 === e || 91 === e || 93 === e || 123 === e || 125 === e || 40 === e || 41 === e + ); + } + t.Type1Parser = class Type1Parser { + constructor(e, t, a) { + if (t) { + const t = e.getBytes(), + a = !( + (isHexDigit(t[0]) || (0, i.isWhiteSpace)(t[0])) && + isHexDigit(t[1]) && + isHexDigit(t[2]) && + isHexDigit(t[3]) && + isHexDigit(t[4]) && + isHexDigit(t[5]) && + isHexDigit(t[6]) && + isHexDigit(t[7]) + ); + e = new n.Stream( + a + ? decrypt(t, 55665, 4) + : (function decryptAscii(e, t, a) { + let r = 0 | t; + const i = e.length, + n = new Uint8Array(i >>> 1); + let s, o; + for (s = 0, o = 0; s < i; s++) { + const t = e[s]; + if (!isHexDigit(t)) continue; + s++; + let a; + for (; s < i && !isHexDigit((a = e[s])); ) s++; + if (s < i) { + const e = parseInt(String.fromCharCode(t, a), 16); + n[o++] = e ^ (r >> 8); + r = (52845 * (e + r) + 22719) & 65535; + } + } + return n.slice(a, o); + })(t, 55665, 4), + ); + } + this.seacAnalysisEnabled = !!a; + this.stream = e; + this.nextChar(); + } + readNumberArray() { + this.getToken(); + const e = []; + for (;;) { + const t = this.getToken(); + if (null === t || ']' === t || '}' === t) break; + e.push(parseFloat(t || 0)); + } + return e; + } + readNumber() { + const e = this.getToken(); + return parseFloat(e || 0); + } + readInt() { + const e = this.getToken(); + return 0 | parseInt(e || 0, 10); + } + readBoolean() { + return 'true' === this.getToken() ? 1 : 0; + } + nextChar() { + return (this.currentChar = this.stream.getByte()); + } + prevChar() { + this.stream.skip(-2); + return (this.currentChar = this.stream.getByte()); + } + getToken() { + let e = !1, + t = this.currentChar; + for (;;) { + if (-1 === t) return null; + if (e) (10 !== t && 13 !== t) || (e = !1); + else if (37 === t) e = !0; + else if (!(0, i.isWhiteSpace)(t)) break; + t = this.nextChar(); + } + if (isSpecial(t)) { + this.nextChar(); + return String.fromCharCode(t); + } + let a = ''; + do { + a += String.fromCharCode(t); + t = this.nextChar(); + } while (t >= 0 && !(0, i.isWhiteSpace)(t) && !isSpecial(t)); + return a; + } + readCharStrings(e, t) { + return -1 === t ? e : decrypt(e, 4330, t); + } + extractFontProgram(e) { + const t = this.stream, + a = [], + r = [], + i = Object.create(null); + i.lenIV = 4; + const n = { subrs: [], charstrings: [], properties: { privateData: i } }; + let s, o, c, l; + for (; null !== (s = this.getToken()); ) + if ('/' === s) { + s = this.getToken(); + switch (s) { + case 'CharStrings': + this.getToken(); + this.getToken(); + this.getToken(); + this.getToken(); + for (;;) { + s = this.getToken(); + if (null === s || 'end' === s) break; + if ('/' !== s) continue; + const e = this.getToken(); + o = this.readInt(); + this.getToken(); + c = o > 0 ? t.getBytes(o) : new Uint8Array(0); + l = n.properties.privateData.lenIV; + const a = this.readCharStrings(c, l); + this.nextChar(); + s = this.getToken(); + 'noaccess' === s ? this.getToken() : '/' === s && this.prevChar(); + r.push({ glyph: e, encoded: a }); + } + break; + case 'Subrs': + this.readInt(); + this.getToken(); + for (; 'dup' === this.getToken(); ) { + const e = this.readInt(); + o = this.readInt(); + this.getToken(); + c = o > 0 ? t.getBytes(o) : new Uint8Array(0); + l = n.properties.privateData.lenIV; + const r = this.readCharStrings(c, l); + this.nextChar(); + s = this.getToken(); + 'noaccess' === s && this.getToken(); + a[e] = r; + } + break; + case 'BlueValues': + case 'OtherBlues': + case 'FamilyBlues': + case 'FamilyOtherBlues': + const e = this.readNumberArray(); + e.length > 0 && e.length, 0; + break; + case 'StemSnapH': + case 'StemSnapV': + n.properties.privateData[s] = this.readNumberArray(); + break; + case 'StdHW': + case 'StdVW': + n.properties.privateData[s] = this.readNumberArray()[0]; + break; + case 'BlueShift': + case 'lenIV': + case 'BlueFuzz': + case 'BlueScale': + case 'LanguageGroup': + n.properties.privateData[s] = this.readNumber(); + break; + case 'ExpansionFactor': + n.properties.privateData[s] = this.readNumber() || 0.06; + break; + case 'ForceBold': + n.properties.privateData[s] = this.readBoolean(); + } + } + for (const { encoded: t, glyph: i } of r) { + const r = new Type1CharString(), + s = r.convert(t, a, this.seacAnalysisEnabled); + let o = r.output; + s && (o = [14]); + const c = { glyphName: i, charstring: o, width: r.width, lsb: r.lsb, seac: r.seac }; + '.notdef' === i ? n.charstrings.unshift(c) : n.charstrings.push(c); + if (e.builtInEncoding) { + const t = e.builtInEncoding.indexOf(i); + t > -1 && + void 0 === e.widths[t] && + t >= e.firstChar && + t <= e.lastChar && + (e.widths[t] = r.width); + } + } + return n; + } + extractFontHeader(e) { + let t; + for (; null !== (t = this.getToken()); ) + if ('/' === t) { + t = this.getToken(); + switch (t) { + case 'FontMatrix': + const a = this.readNumberArray(); + e.fontMatrix = a; + break; + case 'Encoding': + const i = this.getToken(); + let n; + if (/^\d+$/.test(i)) { + n = []; + const e = 0 | parseInt(i, 10); + this.getToken(); + for (let a = 0; a < e; a++) { + t = this.getToken(); + for (; 'dup' !== t && 'def' !== t; ) { + t = this.getToken(); + if (null === t) return; + } + if ('def' === t) break; + const e = this.readInt(); + this.getToken(); + const a = this.getToken(); + n[e] = a; + this.getToken(); + } + } else n = (0, r.getEncoding)(i); + e.builtInEncoding = n; + break; + case 'FontBBox': + const s = this.readNumberArray(); + e.ascent = Math.max(s[3], s[1]); + e.descent = Math.min(s[1], s[3]); + e.ascentScaled = !0; + } + } + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Pattern = void 0; + t.getTilingPatternIR = function getTilingPatternIR(e, t, a) { + const i = t.getArray('Matrix'), + n = r.Util.normalizeRect(t.getArray('BBox')), + s = t.get('XStep'), + o = t.get('YStep'), + c = t.get('PaintType'), + l = t.get('TilingType'); + if (n[2] - n[0] == 0 || n[3] - n[1] == 0) + throw new r.FormatError(`Invalid getTilingPatternIR /BBox array: [${n}].`); + return ['TilingPattern', a, e, i, n, s, o, c, l]; + }; + var r = a(2), + i = a(5), + n = a(12), + s = a(3); + const o = 2, + c = 3, + l = 4, + h = 5, + u = 6, + d = 7; + t.Pattern = class Pattern { + constructor() { + (0, r.unreachable)('Cannot initialize Pattern.'); + } + static parseShading(e, t, a, n, f) { + const g = e instanceof i.BaseStream ? e.dict : e, + p = g.get('ShadingType'); + try { + switch (p) { + case o: + case c: + return new RadialAxialShading(g, t, a, n, f); + case l: + case h: + case u: + case d: + return new MeshShading(e, t, a, n, f); + default: + throw new r.FormatError('Unsupported ShadingType: ' + p); + } + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.warn)(e); + return new DummyShading(); + } + } + }; + class BaseShading { + static SMALL_NUMBER = 1e-6; + constructor() { + this.constructor === BaseShading && + (0, r.unreachable)('Cannot initialize BaseShading.'); + } + getIR() { + (0, r.unreachable)('Abstract method `getIR` called.'); + } + } + class RadialAxialShading extends BaseShading { + constructor(e, t, a, i, s) { + super(); + this.coordsArr = e.getArray('Coords'); + this.shadingType = e.get('ShadingType'); + const o = n.ColorSpace.parse({ + cs: e.getRaw('CS') || e.getRaw('ColorSpace'), + xref: t, + resources: a, + pdfFunctionFactory: i, + localColorSpaceCache: s, + }), + l = e.getArray('BBox'); + Array.isArray(l) && 4 === l.length + ? (this.bbox = r.Util.normalizeRect(l)) + : (this.bbox = null); + let h = 0, + u = 1; + if (e.has('Domain')) { + const t = e.getArray('Domain'); + h = t[0]; + u = t[1]; + } + let d = !1, + f = !1; + if (e.has('Extend')) { + const t = e.getArray('Extend'); + d = t[0]; + f = t[1]; + } + if (!(this.shadingType !== c || (d && f))) { + const [e, t, a, i, n, s] = this.coordsArr, + o = Math.hypot(e - i, t - n); + a <= s + o && s <= a + o && (0, r.warn)('Unsupported radial gradient.'); + } + this.extendStart = d; + this.extendEnd = f; + const g = e.getRaw('Function'), + p = i.createFromArray(g), + m = (u - h) / 840, + b = (this.colorStops = []); + if (h >= u || m <= 0) { + (0, r.info)('Bad shading domain.'); + return; + } + const y = new Float32Array(o.numComps), + w = new Float32Array(1); + let S, + x = 0; + w[0] = h; + p(w, 0, y, 0); + let C = o.getRgb(y, 0); + const k = r.Util.makeHexColor(C[0], C[1], C[2]); + b.push([0, k]); + let v = 1; + w[0] = h + m; + p(w, 0, y, 0); + let F = o.getRgb(y, 0), + O = F[0] - C[0] + 1, + T = F[1] - C[1] + 1, + M = F[2] - C[2] + 1, + E = F[0] - C[0] - 1, + D = F[1] - C[1] - 1, + N = F[2] - C[2] - 1; + for (let e = 2; e < 840; e++) { + w[0] = h + e * m; + p(w, 0, y, 0); + S = o.getRgb(y, 0); + const t = e - x; + O = Math.min(O, (S[0] - C[0] + 1) / t); + T = Math.min(T, (S[1] - C[1] + 1) / t); + M = Math.min(M, (S[2] - C[2] + 1) / t); + E = Math.max(E, (S[0] - C[0] - 1) / t); + D = Math.max(D, (S[1] - C[1] - 1) / t); + N = Math.max(N, (S[2] - C[2] - 1) / t); + if (!(E <= O && D <= T && N <= M)) { + const e = r.Util.makeHexColor(F[0], F[1], F[2]); + b.push([v / 840, e]); + O = S[0] - F[0] + 1; + T = S[1] - F[1] + 1; + M = S[2] - F[2] + 1; + E = S[0] - F[0] - 1; + D = S[1] - F[1] - 1; + N = S[2] - F[2] - 1; + x = v; + C = F; + } + v = e; + F = S; + } + const R = r.Util.makeHexColor(F[0], F[1], F[2]); + b.push([1, R]); + let L = 'transparent'; + if (e.has('Background')) { + S = o.getRgb(e.get('Background'), 0); + L = r.Util.makeHexColor(S[0], S[1], S[2]); + } + if (!d) { + b.unshift([0, L]); + b[1][0] += BaseShading.SMALL_NUMBER; + } + if (!f) { + b.at(-1)[0] -= BaseShading.SMALL_NUMBER; + b.push([1, L]); + } + this.colorStops = b; + } + getIR() { + const e = this.coordsArr, + t = this.shadingType; + let a, i, n, s, l; + if (t === o) { + i = [e[0], e[1]]; + n = [e[2], e[3]]; + s = null; + l = null; + a = 'axial'; + } else if (t === c) { + i = [e[0], e[1]]; + n = [e[3], e[4]]; + s = e[2]; + l = e[5]; + a = 'radial'; + } else (0, r.unreachable)(`getPattern type unknown: ${t}`); + return ['RadialAxial', a, this.bbox, this.colorStops, i, n, s, l]; + } + } + class MeshStreamReader { + constructor(e, t) { + this.stream = e; + this.context = t; + this.buffer = 0; + this.bufferLength = 0; + const a = t.numComps; + this.tmpCompsBuf = new Float32Array(a); + const r = t.colorSpace.numComps; + this.tmpCsCompsBuf = t.colorFn ? new Float32Array(r) : this.tmpCompsBuf; + } + get hasData() { + if (this.stream.end) return this.stream.pos < this.stream.end; + if (this.bufferLength > 0) return !0; + const e = this.stream.getByte(); + if (e < 0) return !1; + this.buffer = e; + this.bufferLength = 8; + return !0; + } + readBits(e) { + let t = this.buffer, + a = this.bufferLength; + if (32 === e) { + if (0 === a) + return ( + ((this.stream.getByte() << 24) | + (this.stream.getByte() << 16) | + (this.stream.getByte() << 8) | + this.stream.getByte()) >>> + 0 + ); + t = + (t << 24) | + (this.stream.getByte() << 16) | + (this.stream.getByte() << 8) | + this.stream.getByte(); + const e = this.stream.getByte(); + this.buffer = e & ((1 << a) - 1); + return ((t << (8 - a)) | ((255 & e) >> a)) >>> 0; + } + if (8 === e && 0 === a) return this.stream.getByte(); + for (; a < e; ) { + t = (t << 8) | this.stream.getByte(); + a += 8; + } + a -= e; + this.bufferLength = a; + this.buffer = t & ((1 << a) - 1); + return t >> a; + } + align() { + this.buffer = 0; + this.bufferLength = 0; + } + readFlag() { + return this.readBits(this.context.bitsPerFlag); + } + readCoordinate() { + const e = this.context.bitsPerCoordinate, + t = this.readBits(e), + a = this.readBits(e), + r = this.context.decode, + i = e < 32 ? 1 / ((1 << e) - 1) : 2.3283064365386963e-10; + return [t * i * (r[1] - r[0]) + r[0], a * i * (r[3] - r[2]) + r[2]]; + } + readComponents() { + const e = this.context.numComps, + t = this.context.bitsPerComponent, + a = t < 32 ? 1 / ((1 << t) - 1) : 2.3283064365386963e-10, + r = this.context.decode, + i = this.tmpCompsBuf; + for (let n = 0, s = 4; n < e; n++, s += 2) { + const e = this.readBits(t); + i[n] = e * a * (r[s + 1] - r[s]) + r[s]; + } + const n = this.tmpCsCompsBuf; + this.context.colorFn && this.context.colorFn(i, 0, n, 0); + return this.context.colorSpace.getRgb(n, 0); + } + } + const f = (function getBClosure() { + const e = Object.create(null); + return function (t) { + return (e[t] ||= (function buildB(e) { + const t = []; + for (let a = 0; a <= e; a++) { + const r = a / e, + i = 1 - r; + t.push(new Float32Array([i * i * i, 3 * r * i * i, 3 * r * r * i, r * r * r])); + } + return t; + })(t)); + }; + })(); + class MeshShading extends BaseShading { + static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3; + static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20; + static TRIANGLE_DENSITY = 20; + constructor(e, t, a, s, o) { + super(); + if (!(e instanceof i.BaseStream)) + throw new r.FormatError('Mesh data is not a stream'); + const c = e.dict; + this.shadingType = c.get('ShadingType'); + const f = c.getArray('BBox'); + Array.isArray(f) && 4 === f.length + ? (this.bbox = r.Util.normalizeRect(f)) + : (this.bbox = null); + const g = n.ColorSpace.parse({ + cs: c.getRaw('CS') || c.getRaw('ColorSpace'), + xref: t, + resources: a, + pdfFunctionFactory: s, + localColorSpaceCache: o, + }); + this.background = c.has('Background') ? g.getRgb(c.get('Background'), 0) : null; + const p = c.getRaw('Function'), + m = p ? s.createFromArray(p) : null; + this.coords = []; + this.colors = []; + this.figures = []; + const b = { + bitsPerCoordinate: c.get('BitsPerCoordinate'), + bitsPerComponent: c.get('BitsPerComponent'), + bitsPerFlag: c.get('BitsPerFlag'), + decode: c.getArray('Decode'), + colorFn: m, + colorSpace: g, + numComps: m ? 1 : g.numComps, + }, + y = new MeshStreamReader(e, b); + let w = !1; + switch (this.shadingType) { + case l: + this._decodeType4Shading(y); + break; + case h: + const e = 0 | c.get('VerticesPerRow'); + if (e < 2) throw new r.FormatError('Invalid VerticesPerRow'); + this._decodeType5Shading(y, e); + break; + case u: + this._decodeType6Shading(y); + w = !0; + break; + case d: + this._decodeType7Shading(y); + w = !0; + break; + default: + (0, r.unreachable)('Unsupported mesh type.'); + } + if (w) { + this._updateBounds(); + for (let e = 0, t = this.figures.length; e < t; e++) this._buildFigureFromPatch(e); + } + this._updateBounds(); + this._packData(); + } + _decodeType4Shading(e) { + const t = this.coords, + a = this.colors, + i = [], + n = []; + let s = 0; + for (; e.hasData; ) { + const o = e.readFlag(), + c = e.readCoordinate(), + l = e.readComponents(); + if (0 === s) { + if (!(0 <= o && o <= 2)) throw new r.FormatError('Unknown type4 flag'); + switch (o) { + case 0: + s = 3; + break; + case 1: + n.push(n.at(-2), n.at(-1)); + s = 1; + break; + case 2: + n.push(n.at(-3), n.at(-1)); + s = 1; + } + i.push(o); + } + n.push(t.length); + t.push(c); + a.push(l); + s--; + e.align(); + } + this.figures.push({ + type: 'triangles', + coords: new Int32Array(n), + colors: new Int32Array(n), + }); + } + _decodeType5Shading(e, t) { + const a = this.coords, + r = this.colors, + i = []; + for (; e.hasData; ) { + const t = e.readCoordinate(), + n = e.readComponents(); + i.push(a.length); + a.push(t); + r.push(n); + } + this.figures.push({ + type: 'lattice', + coords: new Int32Array(i), + colors: new Int32Array(i), + verticesPerRow: t, + }); + } + _decodeType6Shading(e) { + const t = this.coords, + a = this.colors, + i = new Int32Array(16), + n = new Int32Array(4); + for (; e.hasData; ) { + const s = e.readFlag(); + if (!(0 <= s && s <= 3)) throw new r.FormatError('Unknown type6 flag'); + const o = t.length; + for (let a = 0, r = 0 !== s ? 8 : 12; a < r; a++) t.push(e.readCoordinate()); + const c = a.length; + for (let t = 0, r = 0 !== s ? 2 : 4; t < r; t++) a.push(e.readComponents()); + let l, h, u, d; + switch (s) { + 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; + n[2] = c + 1; + n[3] = c + 2; + n[0] = c; + n[1] = c + 3; + break; + case 1: + l = i[12]; + h = i[13]; + u = i[14]; + d = i[15]; + i[12] = d; + i[13] = o + 0; + i[14] = o + 1; + i[15] = o + 2; + i[8] = u; + i[11] = o + 3; + i[4] = h; + i[7] = o + 4; + i[0] = l; + i[1] = o + 7; + i[2] = o + 6; + i[3] = o + 5; + l = n[2]; + h = n[3]; + n[2] = h; + n[3] = c; + n[0] = l; + n[1] = c + 1; + break; + case 2: + l = i[15]; + h = 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] = h; + i[7] = o + 4; + i[0] = l; + i[1] = o + 7; + i[2] = o + 6; + i[3] = o + 5; + l = n[3]; + n[2] = n[1]; + n[3] = c; + n[0] = l; + n[1] = c + 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; + n[2] = n[0]; + n[3] = c; + n[0] = n[1]; + n[1] = c + 1; + } + i[5] = t.length; + t.push([ + (-4 * t[i[0]][0] - + t[i[15]][0] + + 6 * (t[i[4]][0] + t[i[1]][0]) - + 2 * (t[i[12]][0] + t[i[3]][0]) + + 3 * (t[i[13]][0] + t[i[7]][0])) / + 9, + (-4 * t[i[0]][1] - + t[i[15]][1] + + 6 * (t[i[4]][1] + t[i[1]][1]) - + 2 * (t[i[12]][1] + t[i[3]][1]) + + 3 * (t[i[13]][1] + t[i[7]][1])) / + 9, + ]); + i[6] = t.length; + t.push([ + (-4 * t[i[3]][0] - + t[i[12]][0] + + 6 * (t[i[2]][0] + t[i[7]][0]) - + 2 * (t[i[0]][0] + t[i[15]][0]) + + 3 * (t[i[4]][0] + t[i[14]][0])) / + 9, + (-4 * t[i[3]][1] - + t[i[12]][1] + + 6 * (t[i[2]][1] + t[i[7]][1]) - + 2 * (t[i[0]][1] + t[i[15]][1]) + + 3 * (t[i[4]][1] + t[i[14]][1])) / + 9, + ]); + i[9] = t.length; + t.push([ + (-4 * t[i[12]][0] - + t[i[3]][0] + + 6 * (t[i[8]][0] + t[i[13]][0]) - + 2 * (t[i[0]][0] + t[i[15]][0]) + + 3 * (t[i[11]][0] + t[i[1]][0])) / + 9, + (-4 * t[i[12]][1] - + t[i[3]][1] + + 6 * (t[i[8]][1] + t[i[13]][1]) - + 2 * (t[i[0]][1] + t[i[15]][1]) + + 3 * (t[i[11]][1] + t[i[1]][1])) / + 9, + ]); + i[10] = t.length; + t.push([ + (-4 * t[i[15]][0] - + t[i[0]][0] + + 6 * (t[i[11]][0] + t[i[14]][0]) - + 2 * (t[i[12]][0] + t[i[3]][0]) + + 3 * (t[i[2]][0] + t[i[8]][0])) / + 9, + (-4 * t[i[15]][1] - + t[i[0]][1] + + 6 * (t[i[11]][1] + t[i[14]][1]) - + 2 * (t[i[12]][1] + t[i[3]][1]) + + 3 * (t[i[2]][1] + t[i[8]][1])) / + 9, + ]); + this.figures.push({ + type: 'patch', + coords: new Int32Array(i), + colors: new Int32Array(n), + }); + } + } + _decodeType7Shading(e) { + const t = this.coords, + a = this.colors, + i = new Int32Array(16), + n = new Int32Array(4); + for (; e.hasData; ) { + const s = e.readFlag(); + if (!(0 <= s && s <= 3)) throw new r.FormatError('Unknown type7 flag'); + const o = t.length; + for (let a = 0, r = 0 !== s ? 12 : 16; a < r; a++) t.push(e.readCoordinate()); + const c = a.length; + for (let t = 0, r = 0 !== s ? 2 : 4; t < r; t++) a.push(e.readComponents()); + let l, h, u, d; + switch (s) { + 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; + n[2] = c + 1; + n[3] = c + 2; + n[0] = c; + n[1] = c + 3; + break; + case 1: + l = i[12]; + h = i[13]; + u = i[14]; + d = i[15]; + i[12] = d; + i[13] = o + 0; + i[14] = o + 1; + i[15] = o + 2; + i[8] = u; + i[9] = o + 9; + i[10] = o + 10; + i[11] = o + 3; + i[4] = h; + i[5] = o + 8; + i[6] = o + 11; + i[7] = o + 4; + i[0] = l; + i[1] = o + 7; + i[2] = o + 6; + i[3] = o + 5; + l = n[2]; + h = n[3]; + n[2] = h; + n[3] = c; + n[0] = l; + n[1] = c + 1; + break; + case 2: + l = i[15]; + h = 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] = h; + i[5] = o + 8; + i[6] = o + 11; + i[7] = o + 4; + i[0] = l; + i[1] = o + 7; + i[2] = o + 6; + i[3] = o + 5; + l = n[3]; + n[2] = n[1]; + n[3] = c; + n[0] = l; + n[1] = c + 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; + n[2] = n[0]; + n[3] = c; + n[0] = n[1]; + n[1] = c + 1; + } + this.figures.push({ + type: 'patch', + coords: new Int32Array(i), + colors: new Int32Array(n), + }); + } + } + _buildFigureFromPatch(e) { + const t = this.figures[e]; + (0, r.assert)('patch' === t.type, 'Unexpected patch mesh figure'); + const a = this.coords, + i = this.colors, + n = t.coords, + s = t.colors, + o = Math.min(a[n[0]][0], a[n[3]][0], a[n[12]][0], a[n[15]][0]), + c = Math.min(a[n[0]][1], a[n[3]][1], a[n[12]][1], a[n[15]][1]), + l = Math.max(a[n[0]][0], a[n[3]][0], a[n[12]][0], a[n[15]][0]), + h = Math.max(a[n[0]][1], a[n[3]][1], a[n[12]][1], a[n[15]][1]); + let u = Math.ceil( + ((l - o) * MeshShading.TRIANGLE_DENSITY) / (this.bounds[2] - this.bounds[0]), + ); + u = Math.max( + MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, + Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, u), + ); + let d = Math.ceil( + ((h - c) * MeshShading.TRIANGLE_DENSITY) / (this.bounds[3] - this.bounds[1]), + ); + d = Math.max( + MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, + Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, d), + ); + const g = u + 1, + p = new Int32Array((d + 1) * g), + m = new Int32Array((d + 1) * g); + let b = 0; + const y = new Uint8Array(3), + w = new Uint8Array(3), + S = i[s[0]], + x = i[s[1]], + C = i[s[2]], + k = i[s[3]], + v = f(d), + F = f(u); + for (let e = 0; e <= d; e++) { + y[0] = ((S[0] * (d - e) + C[0] * e) / d) | 0; + y[1] = ((S[1] * (d - e) + C[1] * e) / d) | 0; + y[2] = ((S[2] * (d - e) + C[2] * e) / d) | 0; + w[0] = ((x[0] * (d - e) + k[0] * e) / d) | 0; + w[1] = ((x[1] * (d - e) + k[1] * e) / d) | 0; + w[2] = ((x[2] * (d - e) + k[2] * e) / d) | 0; + for (let t = 0; t <= u; t++, b++) { + if (!((0 !== e && e !== d) || (0 !== t && t !== u))) continue; + let r = 0, + s = 0, + o = 0; + for (let i = 0; i <= 3; i++) + for (let c = 0; c <= 3; c++, o++) { + const l = v[e][i] * F[t][c]; + r += a[n[o]][0] * l; + s += a[n[o]][1] * l; + } + p[b] = a.length; + a.push([r, s]); + m[b] = i.length; + const c = new Uint8Array(3); + c[0] = ((y[0] * (u - t) + w[0] * t) / u) | 0; + c[1] = ((y[1] * (u - t) + w[1] * t) / u) | 0; + c[2] = ((y[2] * (u - t) + w[2] * t) / u) | 0; + i.push(c); + } + } + p[0] = n[0]; + m[0] = s[0]; + p[u] = n[3]; + m[u] = s[1]; + p[g * d] = n[12]; + m[g * d] = s[2]; + p[g * d + u] = n[15]; + m[g * d + u] = s[3]; + this.figures[e] = { type: 'lattice', coords: p, colors: m, verticesPerRow: g }; + } + _updateBounds() { + let e = this.coords[0][0], + t = this.coords[0][1], + a = e, + r = t; + for (let i = 1, n = this.coords.length; i < n; i++) { + const n = this.coords[i][0], + s = this.coords[i][1]; + e = e > n ? n : e; + t = t > s ? s : t; + a = a < n ? n : a; + r = r < s ? s : r; + } + this.bounds = [e, t, a, r]; + } + _packData() { + let e, t, a, r; + const i = this.coords, + n = new Float32Array(2 * i.length); + for (e = 0, a = 0, t = i.length; e < t; e++) { + const t = i[e]; + n[a++] = t[0]; + n[a++] = t[1]; + } + this.coords = n; + const s = this.colors, + o = new Uint8Array(3 * s.length); + for (e = 0, a = 0, t = s.length; e < t; e++) { + const t = s[e]; + o[a++] = t[0]; + o[a++] = t[1]; + o[a++] = t[2]; + } + this.colors = o; + const c = this.figures; + for (e = 0, t = c.length; e < t; e++) { + const t = c[e], + i = t.coords, + n = t.colors; + for (a = 0, r = i.length; a < r; a++) { + i[a] *= 2; + n[a] *= 3; + } + } + } + getIR() { + return [ + 'Mesh', + this.shadingType, + this.coords, + this.colors, + this.figures, + this.bounds, + this.bbox, + this.background, + ]; + } + } + class DummyShading extends BaseShading { + getIR() { + return ['Dummy']; + } + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.getXfaFontDict = function getXfaFontDict(e) { + const t = (function getXfaFontWidths(e) { + const t = getXfaFontName(e); + if (!t) return null; + const { baseWidths: a, baseMapping: r, factors: i } = t; + let n; + n = i ? a.map((e, t) => e * i[t]) : a; + let s, + o = -2; + const c = []; + for (const [e, t] of r.map((e, t) => [e, t]).sort(([e], [t]) => e - t)) + if (-1 !== e) + if (e === o + 1) { + s.push(n[t]); + o += 1; + } else { + o = e; + s = [n[t]]; + c.push(e, s); + } + return c; + })(e), + a = new i.Dict(null); + a.set('BaseFont', i.Name.get(e)); + a.set('Type', i.Name.get('Font')); + a.set('Subtype', i.Name.get('CIDFontType2')); + a.set('Encoding', i.Name.get('Identity-H')); + a.set('CIDToGIDMap', i.Name.get('Identity')); + a.set('W', t); + a.set('FirstChar', t[0]); + a.set('LastChar', t.at(-2) + t.at(-1).length - 1); + const r = new i.Dict(null); + a.set('FontDescriptor', r); + const n = new i.Dict(null); + n.set('Ordering', 'Identity'); + n.set('Registry', 'Adobe'); + n.set('Supplement', 0); + a.set('CIDSystemInfo', n); + return a; + }; + t.getXfaFontName = getXfaFontName; + var r = a(52), + i = a(4), + n = a(53), + s = a(54), + o = a(55), + c = a(56), + l = a(3), + h = a(38); + const u = (0, l.getLookupTableFactory)(function (e) { + e['MyriadPro-Regular'] = e['PdfJS-Fallback-Regular'] = { + name: 'LiberationSans-Regular', + factors: o.MyriadProRegularFactors, + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + metrics: o.MyriadProRegularMetrics, + }; + e['MyriadPro-Bold'] = e['PdfJS-Fallback-Bold'] = { + name: 'LiberationSans-Bold', + factors: o.MyriadProBoldFactors, + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + metrics: o.MyriadProBoldMetrics, + }; + e['MyriadPro-It'] = + e['MyriadPro-Italic'] = + e['PdfJS-Fallback-Italic'] = + { + name: 'LiberationSans-Italic', + factors: o.MyriadProItalicFactors, + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + metrics: o.MyriadProItalicMetrics, + }; + e['MyriadPro-BoldIt'] = + e['MyriadPro-BoldItalic'] = + e['PdfJS-Fallback-BoldItalic'] = + { + name: 'LiberationSans-BoldItalic', + factors: o.MyriadProBoldItalicFactors, + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + metrics: o.MyriadProBoldItalicMetrics, + }; + e.ArialMT = + e.Arial = + e['Arial-Regular'] = + { + name: 'LiberationSans-Regular', + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + }; + e['Arial-BoldMT'] = e['Arial-Bold'] = { + name: 'LiberationSans-Bold', + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + }; + e['Arial-ItalicMT'] = e['Arial-Italic'] = { + name: 'LiberationSans-Italic', + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + }; + e['Arial-BoldItalicMT'] = e['Arial-BoldItalic'] = { + name: 'LiberationSans-BoldItalic', + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + }; + e['Calibri-Regular'] = { + name: 'LiberationSans-Regular', + factors: r.CalibriRegularFactors, + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + metrics: r.CalibriRegularMetrics, + }; + e['Calibri-Bold'] = { + name: 'LiberationSans-Bold', + factors: r.CalibriBoldFactors, + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + metrics: r.CalibriBoldMetrics, + }; + e['Calibri-Italic'] = { + name: 'LiberationSans-Italic', + factors: r.CalibriItalicFactors, + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + metrics: r.CalibriItalicMetrics, + }; + e['Calibri-BoldItalic'] = { + name: 'LiberationSans-BoldItalic', + factors: r.CalibriBoldItalicFactors, + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + metrics: r.CalibriBoldItalicMetrics, + }; + e['Segoeui-Regular'] = { + name: 'LiberationSans-Regular', + factors: c.SegoeuiRegularFactors, + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + metrics: c.SegoeuiRegularMetrics, + }; + e['Segoeui-Bold'] = { + name: 'LiberationSans-Bold', + factors: c.SegoeuiBoldFactors, + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + metrics: c.SegoeuiBoldMetrics, + }; + e['Segoeui-Italic'] = { + name: 'LiberationSans-Italic', + factors: c.SegoeuiItalicFactors, + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + metrics: c.SegoeuiItalicMetrics, + }; + e['Segoeui-BoldItalic'] = { + name: 'LiberationSans-BoldItalic', + factors: c.SegoeuiBoldItalicFactors, + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + metrics: c.SegoeuiBoldItalicMetrics, + }; + e['Helvetica-Regular'] = e.Helvetica = { + name: 'LiberationSans-Regular', + factors: n.HelveticaRegularFactors, + baseWidths: s.LiberationSansRegularWidths, + baseMapping: s.LiberationSansRegularMapping, + metrics: n.HelveticaRegularMetrics, + }; + e['Helvetica-Bold'] = { + name: 'LiberationSans-Bold', + factors: n.HelveticaBoldFactors, + baseWidths: s.LiberationSansBoldWidths, + baseMapping: s.LiberationSansBoldMapping, + metrics: n.HelveticaBoldMetrics, + }; + e['Helvetica-Italic'] = { + name: 'LiberationSans-Italic', + factors: n.HelveticaItalicFactors, + baseWidths: s.LiberationSansItalicWidths, + baseMapping: s.LiberationSansItalicMapping, + metrics: n.HelveticaItalicMetrics, + }; + e['Helvetica-BoldItalic'] = { + name: 'LiberationSans-BoldItalic', + factors: n.HelveticaBoldItalicFactors, + baseWidths: s.LiberationSansBoldItalicWidths, + baseMapping: s.LiberationSansBoldItalicMapping, + metrics: n.HelveticaBoldItalicMetrics, + }; + }); + function getXfaFontName(e) { + const t = (0, h.normalizeFontName)(e); + return u()[t]; + } + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.CalibriRegularMetrics = + t.CalibriRegularFactors = + t.CalibriItalicMetrics = + t.CalibriItalicFactors = + t.CalibriBoldMetrics = + t.CalibriBoldItalicMetrics = + t.CalibriBoldItalicFactors = + t.CalibriBoldFactors = + void 0; + t.CalibriBoldFactors = [ + 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, + ]; + t.CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 }; + t.CalibriBoldItalicFactors = [ + 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, + ]; + t.CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 }; + t.CalibriItalicFactors = [ + 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, + ]; + t.CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 }; + t.CalibriRegularFactors = [ + 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, + ]; + t.CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.HelveticaRegularMetrics = + t.HelveticaRegularFactors = + t.HelveticaItalicMetrics = + t.HelveticaItalicFactors = + t.HelveticaBoldMetrics = + t.HelveticaBoldItalicMetrics = + t.HelveticaBoldItalicFactors = + t.HelveticaBoldFactors = + void 0; + t.HelveticaBoldFactors = [ + 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, + ]; + t.HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + t.HelveticaBoldItalicFactors = [ + 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, + ]; + t.HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 }; + t.HelveticaItalicFactors = [ + 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, + ]; + t.HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 }; + t.HelveticaRegularFactors = [ + 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, + ]; + t.HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.LiberationSansRegularWidths = + t.LiberationSansRegularMapping = + t.LiberationSansItalicWidths = + t.LiberationSansItalicMapping = + t.LiberationSansBoldWidths = + t.LiberationSansBoldMapping = + t.LiberationSansBoldItalicWidths = + t.LiberationSansBoldItalicMapping = + void 0; + t.LiberationSansBoldWidths = [ + 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, + ]; + t.LiberationSansBoldMapping = [ + -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, + ]; + t.LiberationSansBoldItalicWidths = [ + 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, + ]; + t.LiberationSansBoldItalicMapping = [ + -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, + ]; + t.LiberationSansItalicWidths = [ + 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, + ]; + t.LiberationSansItalicMapping = [ + -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, + ]; + t.LiberationSansRegularWidths = [ + 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, + ]; + t.LiberationSansRegularMapping = [ + -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, + ]; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.MyriadProRegularMetrics = + t.MyriadProRegularFactors = + t.MyriadProItalicMetrics = + t.MyriadProItalicFactors = + t.MyriadProBoldMetrics = + t.MyriadProBoldItalicMetrics = + t.MyriadProBoldItalicFactors = + t.MyriadProBoldFactors = + void 0; + t.MyriadProBoldFactors = [ + 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, + ]; + t.MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + t.MyriadProBoldItalicFactors = [ + 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, + ]; + t.MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + t.MyriadProItalicFactors = [ + 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, + ]; + t.MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + t.MyriadProRegularFactors = [ + 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, + ]; + t.MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.SegoeuiRegularMetrics = + t.SegoeuiRegularFactors = + t.SegoeuiItalicMetrics = + t.SegoeuiItalicFactors = + t.SegoeuiBoldMetrics = + t.SegoeuiBoldItalicMetrics = + t.SegoeuiBoldItalicFactors = + t.SegoeuiBoldFactors = + void 0; + t.SegoeuiBoldFactors = [ + 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, + ]; + t.SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 }; + t.SegoeuiBoldItalicFactors = [ + 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, + ]; + t.SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 }; + t.SegoeuiItalicFactors = [ + 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, + ]; + t.SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 }; + t.SegoeuiRegularFactors = [ + 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, + ]; + t.SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PostScriptEvaluator = t.PostScriptCompiler = t.PDFFunctionFactory = void 0; + t.isPDFFunction = function isPDFFunction(e) { + let t; + if (e instanceof r.Dict) t = e; + else { + if (!(e instanceof s.BaseStream)) return !1; + t = e.dict; + } + return t.has('FunctionType'); + }; + var r = a(4), + i = a(2), + n = a(58), + s = a(5), + o = a(59); + t.PDFFunctionFactory = class PDFFunctionFactory { + constructor({ xref: e, isEvalSupported: t = !0 }) { + this.xref = e; + this.isEvalSupported = !1 !== t; + } + create(e) { + const t = this.getCached(e); + if (t) return t; + const a = PDFFunction.parse({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fn: e instanceof r.Ref ? this.xref.fetch(e) : e, + }); + this._cache(e, a); + return a; + } + createFromArray(e) { + const t = this.getCached(e); + if (t) return t; + const a = PDFFunction.parseArray({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fnObj: e instanceof r.Ref ? this.xref.fetch(e) : e, + }); + this._cache(e, a); + return a; + } + getCached(e) { + let t; + e instanceof r.Ref + ? (t = e) + : e instanceof r.Dict + ? (t = e.objId) + : e instanceof s.BaseStream && (t = e.dict && e.dict.objId); + if (t) { + const e = this._localFunctionCache.getByRef(t); + if (e) return e; + } + return null; + } + _cache(e, t) { + if (!t) + throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.'); + let a; + e instanceof r.Ref + ? (a = e) + : e instanceof r.Dict + ? (a = e.objId) + : e instanceof s.BaseStream && (a = e.dict && e.dict.objId); + a && this._localFunctionCache.set(null, a, t); + } + get _localFunctionCache() { + return (0, i.shadow)(this, '_localFunctionCache', new o.LocalFunctionCache()); + } + }; + function toNumberArray(e) { + if (!Array.isArray(e)) return null; + const t = e.length; + for (let a = 0; a < t; a++) + if ('number' != typeof e[a]) { + const a = new Array(t); + for (let r = 0; r < t; r++) a[r] = +e[r]; + return a; + } + return e; + } + class PDFFunction { + static getSampleArray(e, t, a, r) { + let i, + n, + s = 1; + for (i = 0, n = e.length; i < n; i++) s *= e[i]; + s *= t; + const o = new Array(s); + let c = 0, + l = 0; + const h = 1 / (2 ** a - 1), + u = r.getBytes((s * a + 7) / 8); + let d = 0; + for (i = 0; i < s; i++) { + for (; c < a; ) { + l <<= 8; + l |= u[d++]; + c += 8; + } + c -= a; + o[i] = (l >> c) * h; + l &= (1 << c) - 1; + } + return o; + } + static parse({ xref: e, isEvalSupported: t, fn: a }) { + const r = a.dict || a; + switch (r.get('FunctionType')) { + case 0: + return this.constructSampled({ xref: e, isEvalSupported: t, fn: a, dict: r }); + case 1: + break; + case 2: + return this.constructInterpolated({ xref: e, isEvalSupported: t, dict: r }); + case 3: + return this.constructStiched({ xref: e, isEvalSupported: t, dict: r }); + case 4: + return this.constructPostScript({ xref: e, isEvalSupported: t, fn: a, dict: r }); + } + throw new i.FormatError('Unknown type of function'); + } + static parseArray({ xref: e, isEvalSupported: t, fnObj: a }) { + if (!Array.isArray(a)) return this.parse({ xref: e, isEvalSupported: t, fn: a }); + const r = []; + for (const i of a) + r.push(this.parse({ xref: e, isEvalSupported: t, fn: e.fetchIfRef(i) })); + return function (e, t, a, i) { + for (let n = 0, s = r.length; n < s; n++) r[n](e, t, a, i + n); + }; + } + static constructSampled({ xref: e, isEvalSupported: t, fn: a, dict: r }) { + function toMultiArray(e) { + const t = e.length, + a = []; + let r = 0; + for (let i = 0; i < t; i += 2) a[r++] = [e[i], e[i + 1]]; + return a; + } + function interpolate(e, t, a, r, i) { + return r + ((i - r) / (a - t)) * (e - t); + } + let n = toNumberArray(r.getArray('Domain')), + s = toNumberArray(r.getArray('Range')); + if (!n || !s) throw new i.FormatError('No domain or range'); + const o = n.length / 2, + c = s.length / 2; + n = toMultiArray(n); + s = toMultiArray(s); + const l = toNumberArray(r.getArray('Size')), + h = r.get('BitsPerSample'), + u = r.get('Order') || 1; + 1 !== u && (0, i.info)('No support for cubic spline interpolation: ' + u); + let d = toNumberArray(r.getArray('Encode')); + if (d) d = toMultiArray(d); + else { + d = []; + for (let e = 0; e < o; ++e) d.push([0, l[e] - 1]); + } + let f = toNumberArray(r.getArray('Decode')); + f = f ? toMultiArray(f) : s; + const g = this.getSampleArray(l, c, h, a); + return function constructSampledFn(e, t, a, r) { + const i = 1 << o, + h = new Float64Array(i), + u = new Uint32Array(i); + let p, m; + for (m = 0; m < i; m++) h[m] = 1; + let b = c, + y = 1; + for (p = 0; p < o; ++p) { + const a = n[p][0], + r = n[p][1]; + let s = interpolate(Math.min(Math.max(e[t + p], a), r), a, r, d[p][0], d[p][1]); + const o = l[p]; + s = Math.min(Math.max(s, 0), o - 1); + const c = s < o - 1 ? Math.floor(s) : s - 1, + f = c + 1 - s, + g = s - c, + w = c * b, + S = w + b; + for (m = 0; m < i; m++) + if (m & y) { + h[m] *= g; + u[m] += S; + } else { + h[m] *= f; + u[m] += w; + } + b *= o; + y <<= 1; + } + for (m = 0; m < c; ++m) { + let e = 0; + for (p = 0; p < i; p++) e += g[u[p] + m] * h[p]; + e = interpolate(e, 0, 1, f[m][0], f[m][1]); + a[r + m] = Math.min(Math.max(e, s[m][0]), s[m][1]); + } + }; + } + static constructInterpolated({ xref: e, isEvalSupported: t, dict: a }) { + const r = toNumberArray(a.getArray('C0')) || [0], + i = toNumberArray(a.getArray('C1')) || [1], + n = a.get('N'), + s = []; + for (let e = 0, t = r.length; e < t; ++e) s.push(i[e] - r[e]); + const o = s.length; + return function constructInterpolatedFn(e, t, a, i) { + const c = 1 === n ? e[t] : e[t] ** n; + for (let e = 0; e < o; ++e) a[i + e] = r[e] + c * s[e]; + }; + } + static constructStiched({ xref: e, isEvalSupported: t, dict: a }) { + const r = toNumberArray(a.getArray('Domain')); + if (!r) throw new i.FormatError('No domain'); + if (1 !== r.length / 2) throw new i.FormatError('Bad domain for stiched function'); + const n = []; + for (const r of a.get('Functions')) + n.push(this.parse({ xref: e, isEvalSupported: t, fn: e.fetchIfRef(r) })); + const s = toNumberArray(a.getArray('Bounds')), + o = toNumberArray(a.getArray('Encode')), + c = new Float32Array(1); + return function constructStichedFn(e, t, a, i) { + const l = (function constructStichedFromIRClip(e, t, a) { + e > a ? (e = a) : e < t && (e = t); + return e; + })(e[t], r[0], r[1]), + h = s.length; + let u; + for (u = 0; u < h && !(l < s[u]); ++u); + let d = r[0]; + u > 0 && (d = s[u - 1]); + let f = r[1]; + u < s.length && (f = s[u]); + const g = o[2 * u], + p = o[2 * u + 1]; + c[0] = d === f ? g : g + ((l - d) * (p - g)) / (f - d); + n[u](c, 0, a, i); + }; + } + static constructPostScript({ xref: e, isEvalSupported: t, fn: a, dict: r }) { + const s = toNumberArray(r.getArray('Domain')), + o = toNumberArray(r.getArray('Range')); + if (!s) throw new i.FormatError('No domain.'); + if (!o) throw new i.FormatError('No range.'); + const c = new n.PostScriptLexer(a), + l = new n.PostScriptParser(c).parse(); + if (t && i.FeatureTest.isEvalSupported) { + const e = new PostScriptCompiler().compile(l, s, o); + if (e) return new Function('src', 'srcOffset', 'dest', 'destOffset', e); + } + (0, i.info)('Unable to compile PS function'); + const h = o.length >> 1, + u = s.length >> 1, + d = new PostScriptEvaluator(l), + f = Object.create(null); + let g = 8192; + const p = new Float32Array(u); + return function constructPostScriptFn(e, t, a, r) { + let i, + n, + s = ''; + const c = p; + for (i = 0; i < u; i++) { + n = e[t + i]; + c[i] = n; + s += n + '_'; + } + const l = f[s]; + if (void 0 !== l) { + a.set(l, r); + return; + } + const m = new Float32Array(h), + b = d.execute(c), + y = b.length - h; + for (i = 0; i < h; i++) { + n = b[y + i]; + let e = o[2 * i]; + if (n < e) n = e; + else { + e = o[2 * i + 1]; + n > e && (n = e); + } + m[i] = n; + } + if (g > 0) { + g--; + f[s] = m; + } + a.set(m, r); + }; + } + } + class PostScriptStack { + static MAX_STACK_SIZE = 100; + constructor(e) { + this.stack = e ? Array.from(e) : []; + } + push(e) { + if (this.stack.length >= PostScriptStack.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 >= PostScriptStack.MAX_STACK_SIZE) + throw new Error('PostScript function stack overflow.'); + const t = this.stack; + for (let a = t.length - e, r = e - 1; r >= 0; r--, a++) t.push(t[a]); + } + index(e) { + this.push(this.stack[this.stack.length - e - 1]); + } + roll(e, t) { + const a = this.stack, + r = a.length - e, + i = a.length - 1, + n = r + (t - Math.floor(t / e) * e); + for (let e = r, t = i; e < t; e++, t--) { + const r = a[e]; + a[e] = a[t]; + a[t] = r; + } + for (let e = r, t = n - 1; e < t; e++, t--) { + const r = a[e]; + a[e] = a[t]; + a[t] = r; + } + for (let e = n, t = i; e < t; e++, t--) { + const r = a[e]; + a[e] = a[t]; + a[t] = r; + } + } + } + class PostScriptEvaluator { + constructor(e) { + this.operators = e; + } + execute(e) { + const t = new PostScriptStack(e); + let a = 0; + const r = this.operators, + n = r.length; + let s, o, c; + for (; a < n; ) { + s = r[a++]; + if ('number' != typeof s) + switch (s) { + case 'jz': + c = t.pop(); + o = t.pop(); + o || (a = c); + break; + case 'j': + o = t.pop(); + a = o; + break; + case 'abs': + o = t.pop(); + t.push(Math.abs(o)); + break; + case 'add': + c = t.pop(); + o = t.pop(); + t.push(o + c); + break; + case 'and': + c = t.pop(); + o = t.pop(); + 'boolean' == typeof o && 'boolean' == typeof c + ? t.push(o && c) + : t.push(o & c); + break; + case 'atan': + c = t.pop(); + o = t.pop(); + o = (Math.atan2(o, c) / Math.PI) * 180; + o < 0 && (o += 360); + t.push(o); + break; + case 'bitshift': + c = t.pop(); + o = t.pop(); + o > 0 ? t.push(o << c) : t.push(o >> c); + break; + case 'ceiling': + o = t.pop(); + t.push(Math.ceil(o)); + break; + case 'copy': + o = t.pop(); + t.copy(o); + break; + case 'cos': + o = t.pop(); + t.push(Math.cos(((o % 360) / 180) * Math.PI)); + break; + case 'cvi': + o = 0 | t.pop(); + t.push(o); + break; + case 'cvr': + break; + case 'div': + c = t.pop(); + o = t.pop(); + t.push(o / c); + break; + case 'dup': + t.copy(1); + break; + case 'eq': + c = t.pop(); + o = t.pop(); + t.push(o === c); + break; + case 'exch': + t.roll(2, 1); + break; + case 'exp': + c = t.pop(); + o = t.pop(); + t.push(o ** c); + break; + case 'false': + t.push(!1); + break; + case 'floor': + o = t.pop(); + t.push(Math.floor(o)); + break; + case 'ge': + c = t.pop(); + o = t.pop(); + t.push(o >= c); + break; + case 'gt': + c = t.pop(); + o = t.pop(); + t.push(o > c); + break; + case 'idiv': + c = t.pop(); + o = t.pop(); + t.push((o / c) | 0); + break; + case 'index': + o = t.pop(); + t.index(o); + break; + case 'le': + c = t.pop(); + o = t.pop(); + t.push(o <= c); + break; + case 'ln': + o = t.pop(); + t.push(Math.log(o)); + break; + case 'log': + o = t.pop(); + t.push(Math.log(o) / Math.LN10); + break; + case 'lt': + c = t.pop(); + o = t.pop(); + t.push(o < c); + break; + case 'mod': + c = t.pop(); + o = t.pop(); + t.push(o % c); + break; + case 'mul': + c = t.pop(); + o = t.pop(); + t.push(o * c); + break; + case 'ne': + c = t.pop(); + o = t.pop(); + t.push(o !== c); + break; + case 'neg': + o = t.pop(); + t.push(-o); + break; + case 'not': + o = t.pop(); + 'boolean' == typeof o ? t.push(!o) : t.push(~o); + break; + case 'or': + c = t.pop(); + o = t.pop(); + 'boolean' == typeof o && 'boolean' == typeof c + ? t.push(o || c) + : t.push(o | c); + break; + case 'pop': + t.pop(); + break; + case 'roll': + c = t.pop(); + o = t.pop(); + t.roll(o, c); + break; + case 'round': + o = t.pop(); + t.push(Math.round(o)); + break; + case 'sin': + o = t.pop(); + t.push(Math.sin(((o % 360) / 180) * Math.PI)); + break; + case 'sqrt': + o = t.pop(); + t.push(Math.sqrt(o)); + break; + case 'sub': + c = t.pop(); + o = t.pop(); + t.push(o - c); + break; + case 'true': + t.push(!0); + break; + case 'truncate': + o = t.pop(); + o = o < 0 ? Math.ceil(o) : Math.floor(o); + t.push(o); + break; + case 'xor': + c = t.pop(); + o = t.pop(); + 'boolean' == typeof o && 'boolean' == typeof c + ? t.push(o !== c) + : t.push(o ^ c); + break; + default: + throw new i.FormatError(`Unknown operator ${s}`); + } + else t.push(s); + } + return t.stack; + } + } + t.PostScriptEvaluator = PostScriptEvaluator; + class AstNode { + constructor(e) { + this.type = e; + } + visit(e) { + (0, i.unreachable)('abstract method'); + } + } + class AstArgument extends AstNode { + constructor(e, t, a) { + super('args'); + this.index = e; + this.min = t; + this.max = a; + } + visit(e) { + e.visitArgument(this); + } + } + class AstLiteral extends AstNode { + constructor(e) { + super('literal'); + this.number = e; + this.min = e; + this.max = e; + } + visit(e) { + e.visitLiteral(this); + } + } + class AstBinaryOperation extends AstNode { + constructor(e, t, a, r, i) { + super('binary'); + this.op = e; + this.arg1 = t; + this.arg2 = a; + this.min = r; + this.max = i; + } + visit(e) { + e.visitBinaryOperation(this); + } + } + class AstMin extends AstNode { + constructor(e, t) { + super('max'); + this.arg = e; + this.min = e.min; + this.max = t; + } + visit(e) { + e.visitMin(this); + } + } + class AstVariable extends AstNode { + constructor(e, t, a) { + super('var'); + this.index = e; + this.min = t; + this.max = a; + } + visit(e) { + e.visitVariable(this); + } + } + class AstVariableDefinition extends AstNode { + constructor(e, t) { + super('definition'); + this.variable = e; + this.arg = t; + } + visit(e) { + e.visitVariableDefinition(this); + } + } + class ExpressionBuilderVisitor { + constructor() { + this.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(''); + } + } + function buildAddOperation(e, t) { + return 'literal' === t.type && 0 === t.number + ? e + : 'literal' === e.type && 0 === e.number + ? t + : 'literal' === t.type && 'literal' === e.type + ? new AstLiteral(e.number + t.number) + : new AstBinaryOperation('+', e, t, e.min + t.min, e.max + t.max); + } + function buildMulOperation(e, t) { + if ('literal' === t.type) { + if (0 === t.number) return new AstLiteral(0); + if (1 === t.number) return e; + if ('literal' === e.type) return new AstLiteral(e.number * t.number); + } + if ('literal' === e.type) { + if (0 === e.number) return new AstLiteral(0); + if (1 === e.number) return t; + } + const a = Math.min(e.min * t.min, e.min * t.max, e.max * t.min, e.max * t.max), + r = Math.max(e.min * t.min, e.min * t.max, e.max * t.min, e.max * t.max); + return new AstBinaryOperation('*', e, t, a, r); + } + function buildSubOperation(e, t) { + if ('literal' === t.type) { + if (0 === t.number) return e; + if ('literal' === e.type) return new AstLiteral(e.number - t.number); + } + return 'binary' === t.type && + '-' === t.op && + 'literal' === e.type && + 1 === e.number && + 'literal' === t.arg1.type && + 1 === t.arg1.number + ? t.arg2 + : new AstBinaryOperation('-', e, t, e.min - t.max, e.max - t.min); + } + function buildMinOperation(e, t) { + return e.min >= t ? new AstLiteral(t) : e.max <= t ? e : new AstMin(e, t); + } + class PostScriptCompiler { + compile(e, t, a) { + const r = [], + i = [], + n = t.length >> 1, + s = a.length >> 1; + let o, + c, + l, + h, + u, + d, + f, + g, + p = 0; + for (let e = 0; e < n; e++) r.push(new AstArgument(e, t[2 * e], t[2 * e + 1])); + for (let t = 0, a = e.length; t < a; t++) { + g = e[t]; + if ('number' != typeof g) + switch (g) { + case 'add': + if (r.length < 2) return null; + h = r.pop(); + l = r.pop(); + r.push(buildAddOperation(l, h)); + break; + case 'cvr': + if (r.length < 1) return null; + break; + case 'mul': + if (r.length < 2) return null; + h = r.pop(); + l = r.pop(); + r.push(buildMulOperation(l, h)); + break; + case 'sub': + if (r.length < 2) return null; + h = r.pop(); + l = r.pop(); + r.push(buildSubOperation(l, h)); + break; + case 'exch': + if (r.length < 2) return null; + u = r.pop(); + d = r.pop(); + r.push(u, d); + break; + case 'pop': + if (r.length < 1) return null; + r.pop(); + break; + case 'index': + if (r.length < 1) return null; + l = r.pop(); + if ('literal' !== l.type) return null; + o = l.number; + if (o < 0 || !Number.isInteger(o) || r.length < o) return null; + u = r[r.length - o - 1]; + if ('literal' === u.type || 'var' === u.type) { + r.push(u); + break; + } + f = new AstVariable(p++, u.min, u.max); + r[r.length - o - 1] = f; + r.push(f); + i.push(new AstVariableDefinition(f, u)); + break; + case 'dup': + if (r.length < 1) return null; + if ( + 'number' == typeof e[t + 1] && + 'gt' === e[t + 2] && + e[t + 3] === t + 7 && + 'jz' === e[t + 4] && + 'pop' === e[t + 5] && + e[t + 6] === e[t + 1] + ) { + l = r.pop(); + r.push(buildMinOperation(l, e[t + 1])); + t += 6; + break; + } + u = r.at(-1); + if ('literal' === u.type || 'var' === u.type) { + r.push(u); + break; + } + f = new AstVariable(p++, u.min, u.max); + r[r.length - 1] = f; + r.push(f); + i.push(new AstVariableDefinition(f, u)); + break; + case 'roll': + if (r.length < 2) return null; + h = r.pop(); + l = r.pop(); + if ('literal' !== h.type || 'literal' !== l.type) return null; + c = h.number; + o = l.number; + if (o <= 0 || !Number.isInteger(o) || !Number.isInteger(c) || r.length < o) + return null; + c = ((c % o) + o) % o; + if (0 === c) break; + r.push(...r.splice(r.length - o, o - c)); + break; + default: + return null; + } + else r.push(new AstLiteral(g)); + } + if (r.length !== s) return null; + const m = []; + for (const e of i) { + const t = new ExpressionBuilderVisitor(); + e.visit(t); + m.push(t.toString()); + } + for (let e = 0, t = r.length; e < t; e++) { + const t = r[e], + i = new ExpressionBuilderVisitor(); + t.visit(i); + const n = a[2 * e], + s = a[2 * e + 1], + o = [i.toString()]; + if (n > t.min) { + o.unshift('Math.max(', n, ', '); + o.push(')'); + } + if (s < t.max) { + o.unshift('Math.min(', s, ', '); + o.push(')'); + } + o.unshift('dest[destOffset + ', e, '] = '); + o.push(';'); + m.push(o.join('')); + } + return m.join('\n'); + } + } + t.PostScriptCompiler = PostScriptCompiler; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PostScriptParser = t.PostScriptLexer = void 0; + var r = a(2), + i = a(4), + n = a(3); + t.PostScriptParser = class 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) { + if (this.token.type === e) { + this.nextToken(); + return !0; + } + return !1; + } + expect(e) { + if (this.accept(e)) return !0; + throw new r.FormatError(`Unexpected symbol: found ${this.token.type} expected ${e}.`); + } + parse() { + this.nextToken(); + this.expect(s.LBRACE); + this.parseBlock(); + this.expect(s.RBRACE); + return this.operators; + } + parseBlock() { + for (;;) + if (this.accept(s.NUMBER)) this.operators.push(this.prev.value); + else if (this.accept(s.OPERATOR)) this.operators.push(this.prev.value); + else { + if (!this.accept(s.LBRACE)) return; + this.parseCondition(); + } + } + parseCondition() { + const e = this.operators.length; + this.operators.push(null, null); + this.parseBlock(); + this.expect(s.RBRACE); + if (this.accept(s.IF)) { + this.operators[e] = this.operators.length; + this.operators[e + 1] = 'jz'; + } else { + if (!this.accept(s.LBRACE)) + throw new r.FormatError('PS Function: error parsing conditional.'); + { + const t = this.operators.length; + this.operators.push(null, null); + const a = this.operators.length; + this.parseBlock(); + this.expect(s.RBRACE); + this.expect(s.IFELSE); + this.operators[t] = this.operators.length; + this.operators[t + 1] = 'j'; + this.operators[e] = a; + this.operators[e + 1] = 'jz'; + } + } + } + }; + const s = { LBRACE: 0, RBRACE: 1, NUMBER: 2, OPERATOR: 3, IF: 4, IFELSE: 5 }; + class PostScriptToken { + static get opCache() { + return (0, r.shadow)(this, 'opCache', Object.create(null)); + } + constructor(e, t) { + this.type = e; + this.value = t; + } + static getOperator(e) { + return (PostScriptToken.opCache[e] ||= new PostScriptToken(s.OPERATOR, e)); + } + static get LBRACE() { + return (0, r.shadow)(this, 'LBRACE', new PostScriptToken(s.LBRACE, '{')); + } + static get RBRACE() { + return (0, r.shadow)(this, 'RBRACE', new PostScriptToken(s.RBRACE, '}')); + } + static get IF() { + return (0, r.shadow)(this, 'IF', new PostScriptToken(s.IF, 'IF')); + } + static get IFELSE() { + return (0, r.shadow)(this, 'IFELSE', new PostScriptToken(s.IFELSE, 'IFELSE')); + } + } + t.PostScriptLexer = class PostScriptLexer { + constructor(e) { + this.stream = e; + this.nextChar(); + this.strBuf = []; + } + nextChar() { + return (this.currentChar = this.stream.getByte()); + } + getToken() { + let e = !1, + t = this.currentChar; + for (;;) { + if (t < 0) return i.EOF; + if (e) (10 !== t && 13 !== t) || (e = !1); + else if (37 === t) e = !0; + else if (!(0, n.isWhiteSpace)(t)) break; + t = this.nextChar(); + } + switch (0 | t) { + 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 PostScriptToken(s.NUMBER, this.getNumber()); + case 123: + this.nextChar(); + return PostScriptToken.LBRACE; + case 125: + this.nextChar(); + return PostScriptToken.RBRACE; + } + const a = this.strBuf; + a.length = 0; + a[0] = String.fromCharCode(t); + for ( + ; + (t = this.nextChar()) >= 0 && ((t >= 65 && t <= 90) || (t >= 97 && t <= 122)); + + ) + a.push(String.fromCharCode(t)); + const r = a.join(''); + switch (r.toLowerCase()) { + case 'if': + return PostScriptToken.IF; + case 'ifelse': + return PostScriptToken.IFELSE; + default: + return PostScriptToken.getOperator(r); + } + } + getNumber() { + let e = this.currentChar; + const t = this.strBuf; + t.length = 0; + t[0] = String.fromCharCode(e); + for (; (e = this.nextChar()) >= 0 && ((e >= 48 && e <= 57) || 45 === e || 46 === e); ) + t.push(String.fromCharCode(e)); + const a = parseFloat(t.join('')); + if (isNaN(a)) throw new r.FormatError(`Invalid floating point number: ${a}`); + return a; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.RegionalImageCache = + t.LocalTilingPatternCache = + t.LocalImageCache = + t.LocalGStateCache = + t.LocalFunctionCache = + t.LocalColorSpaceCache = + t.GlobalImageCache = + void 0; + var r = a(2), + i = a(4); + class BaseLocalCache { + constructor(e) { + this.constructor === BaseLocalCache && + (0, r.unreachable)('Cannot initialize BaseLocalCache.'); + this._onlyRefs = !0 === (e && e.onlyRefs); + if (!this._onlyRefs) { + this._nameRefMap = new Map(); + this._imageMap = new Map(); + } + this._imageCache = new i.RefSetCache(); + } + getByName(e) { + this._onlyRefs && (0, r.unreachable)('Should not call `getByName` method.'); + const t = this._nameRefMap.get(e); + return t ? this.getByRef(t) : this._imageMap.get(e) || null; + } + getByRef(e) { + return this._imageCache.get(e) || null; + } + set(e, t, a) { + (0, r.unreachable)('Abstract method `set` called.'); + } + } + t.LocalImageCache = class LocalImageCache extends BaseLocalCache { + set(e, t = null, a) { + if ('string' != typeof e) + throw new Error('LocalImageCache.set - expected "name" argument.'); + if (t) { + if (this._imageCache.has(t)) return; + this._nameRefMap.set(e, t); + this._imageCache.put(t, a); + } else this._imageMap.has(e) || this._imageMap.set(e, a); + } + }; + t.LocalColorSpaceCache = class LocalColorSpaceCache extends BaseLocalCache { + set(e = null, t = null, a) { + if ('string' != typeof e && !t) + throw new Error( + 'LocalColorSpaceCache.set - expected "name" and/or "ref" argument.', + ); + if (t) { + if (this._imageCache.has(t)) return; + null !== e && this._nameRefMap.set(e, t); + this._imageCache.put(t, a); + } else this._imageMap.has(e) || this._imageMap.set(e, a); + } + }; + t.LocalFunctionCache = class LocalFunctionCache extends BaseLocalCache { + constructor(e) { + super({ onlyRefs: !0 }); + } + set(e = null, t, a) { + if (!t) throw new Error('LocalFunctionCache.set - expected "ref" argument.'); + this._imageCache.has(t) || this._imageCache.put(t, a); + } + }; + t.LocalGStateCache = class LocalGStateCache extends BaseLocalCache { + set(e, t = null, a) { + if ('string' != typeof e) + throw new Error('LocalGStateCache.set - expected "name" argument.'); + if (t) { + if (this._imageCache.has(t)) return; + this._nameRefMap.set(e, t); + this._imageCache.put(t, a); + } else this._imageMap.has(e) || this._imageMap.set(e, a); + } + }; + t.LocalTilingPatternCache = class LocalTilingPatternCache extends BaseLocalCache { + constructor(e) { + super({ onlyRefs: !0 }); + } + set(e = null, t, a) { + if (!t) throw new Error('LocalTilingPatternCache.set - expected "ref" argument.'); + this._imageCache.has(t) || this._imageCache.put(t, a); + } + }; + t.RegionalImageCache = class RegionalImageCache extends BaseLocalCache { + constructor(e) { + super({ onlyRefs: !0 }); + } + set(e = null, t, a) { + if (!t) throw new Error('RegionalImageCache.set - expected "ref" argument.'); + this._imageCache.has(t) || this._imageCache.put(t, a); + } + }; + class GlobalImageCache { + static NUM_PAGES_THRESHOLD = 2; + static MIN_IMAGES_TO_CACHE = 10; + static MAX_BYTE_SIZE = 5 * r.MAX_IMAGE_SIZE_TO_CACHE; + constructor() { + this._refCache = new i.RefSetCache(); + this._imageCache = new i.RefSetCache(); + } + get _byteSize() { + let e = 0; + for (const t of this._imageCache) e += t.byteSize; + return e; + } + get _cacheLimitReached() { + return ( + !(this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) && + !(this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) + ); + } + shouldCache(e, t) { + let a = this._refCache.get(e); + if (!a) { + a = new Set(); + this._refCache.put(e, a); + } + a.add(t); + return ( + !(a.size < GlobalImageCache.NUM_PAGES_THRESHOLD) && + !(!this._imageCache.has(e) && this._cacheLimitReached) + ); + } + addByteSize(e, t) { + const a = this._imageCache.get(e); + a && (a.byteSize || (a.byteSize = t)); + } + getData(e, t) { + const a = this._refCache.get(e); + if (!a) return null; + if (a.size < GlobalImageCache.NUM_PAGES_THRESHOLD) return null; + const r = this._imageCache.get(e); + if (!r) return null; + a.add(t); + return r; + } + setData(e, t) { + if (!this._refCache.has(e)) + throw new Error( + 'GlobalImageCache.setData - expected "shouldCache" to have been called.', + ); + this._imageCache.has(e) || + (this._cacheLimitReached + ? (0, r.warn)('GlobalImageCache.setData - cache limit reached.') + : this._imageCache.put(e, t)); + } + clear(e = !1) { + e || this._refCache.clear(); + this._imageCache.clear(); + } + } + t.GlobalImageCache = GlobalImageCache; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.bidi = function bidi(e, t = -1, a = !1) { + let c = !0; + const l = e.length; + if (0 === l || a) return createBidiText(e, c, a); + s.length = l; + o.length = l; + let h, + u, + d = 0; + for (h = 0; h < l; ++h) { + s[h] = e.charAt(h); + const t = e.charCodeAt(h); + let a = 'L'; + if (t <= 255) a = i[t]; + else if (1424 <= t && t <= 1524) a = 'R'; + else if (1536 <= t && t <= 1791) { + a = n[255 & t]; + a || (0, r.warn)('Bidi: invalid Unicode character ' + t.toString(16)); + } else + ((1792 <= t && t <= 2220) || + (64336 <= t && t <= 65023) || + (65136 <= t && t <= 65279)) && + (a = 'AL'); + ('R' !== a && 'AL' !== a && 'AN' !== a) || d++; + o[h] = a; + } + if (0 === d) { + c = !0; + return createBidiText(e, c); + } + if (-1 === t) + if (d / l < 0.3 && l > 4) { + c = !0; + t = 0; + } else { + c = !1; + t = 1; + } + const f = []; + for (h = 0; h < l; ++h) f[h] = t; + const g = isOdd(t) ? 'R' : 'L', + p = g, + m = p; + let b, + y = p; + for (h = 0; h < l; ++h) 'NSM' === o[h] ? (o[h] = y) : (y = o[h]); + y = p; + for (h = 0; h < l; ++h) { + b = o[h]; + 'EN' === b + ? (o[h] = 'AL' === y ? 'AN' : 'EN') + : ('R' !== b && 'L' !== b && 'AL' !== b) || (y = b); + } + for (h = 0; h < l; ++h) { + b = o[h]; + 'AL' === b && (o[h] = 'R'); + } + for (h = 1; h < l - 1; ++h) { + 'ES' === o[h] && 'EN' === o[h - 1] && 'EN' === o[h + 1] && (o[h] = 'EN'); + 'CS' !== o[h] || + ('EN' !== o[h - 1] && 'AN' !== o[h - 1]) || + o[h + 1] !== o[h - 1] || + (o[h] = o[h - 1]); + } + for (h = 0; h < l; ++h) + if ('EN' === o[h]) { + for (let e = h - 1; e >= 0 && 'ET' === o[e]; --e) o[e] = 'EN'; + for (let e = h + 1; e < l && 'ET' === o[e]; ++e) o[e] = 'EN'; + } + for (h = 0; h < l; ++h) { + b = o[h]; + ('WS' !== b && 'ES' !== b && 'ET' !== b && 'CS' !== b) || (o[h] = 'ON'); + } + y = p; + for (h = 0; h < l; ++h) { + b = o[h]; + 'EN' === b ? (o[h] = 'L' === y ? 'L' : 'EN') : ('R' !== b && 'L' !== b) || (y = b); + } + for (h = 0; h < l; ++h) + if ('ON' === o[h]) { + const e = findUnequal(o, h + 1, 'ON'); + let t = p; + h > 0 && (t = o[h - 1]); + let a = m; + e + 1 < l && (a = o[e + 1]); + 'L' !== t && (t = 'R'); + 'L' !== a && (a = 'R'); + t === a && setValues(o, h, e, t); + h = e - 1; + } + for (h = 0; h < l; ++h) 'ON' === o[h] && (o[h] = g); + for (h = 0; h < l; ++h) { + b = o[h]; + isEven(f[h]) + ? 'R' === b + ? (f[h] += 1) + : ('AN' !== b && 'EN' !== b) || (f[h] += 2) + : ('L' !== b && 'AN' !== b && 'EN' !== b) || (f[h] += 1); + } + let w, + S = -1, + x = 99; + for (h = 0, u = f.length; h < u; ++h) { + w = f[h]; + S < w && (S = w); + x > w && isOdd(w) && (x = w); + } + for (w = S; w >= x; --w) { + let e = -1; + for (h = 0, u = f.length; h < u; ++h) + if (f[h] < w) { + if (e >= 0) { + reverseValues(s, e, h); + e = -1; + } + } else e < 0 && (e = h); + e >= 0 && reverseValues(s, e, f.length); + } + for (h = 0, u = s.length; h < u; ++h) { + const e = s[h]; + ('<' !== e && '>' !== e) || (s[h] = ''); + } + return createBidiText(s.join(''), c); + }; + var r = a(2); + const i = [ + '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', + ], + n = [ + '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', + ]; + function isOdd(e) { + return 0 != (1 & e); + } + function isEven(e) { + return 0 == (1 & e); + } + function findUnequal(e, t, a) { + let r, i; + for (r = t, i = e.length; r < i; ++r) if (e[r] !== a) return r; + return r; + } + function setValues(e, t, a, r) { + for (let i = t; i < a; ++i) e[i] = r; + } + function reverseValues(e, t, a) { + for (let r = t, i = a - 1; r < i; ++r, --i) { + const t = e[r]; + e[r] = e[i]; + e[i] = t; + } + } + function createBidiText(e, t, a = !1) { + let r = 'ltr'; + a ? (r = 'ttb') : t || (r = 'rtl'); + return { str: e, dir: r }; + } + const s = [], + o = []; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ImageResizer = void 0; + var r = a(2); + class ImageResizer { + constructor(e, t) { + this._imgData = e; + this._isMask = t; + } + static needsToBeResized(e, t) { + if (e <= this._goodSquareLength && t <= this._goodSquareLength) return !1; + const { MAX_DIM: a } = this; + if (e > a || t > a) return !0; + const r = e * t; + if (this._hasMaxArea) return r > this.MAX_AREA; + if (r < this._goodSquareLength ** 2) return !1; + if (this._areGoodDims(e, t)) { + this._goodSquareLength = Math.max( + this._goodSquareLength, + Math.floor(Math.sqrt(e * t)), + ); + return !1; + } + this._goodSquareLength = this._guessMax(this._goodSquareLength, a, 128, 0); + return r > (this.MAX_AREA = this._goodSquareLength ** 2); + } + static get MAX_DIM() { + return (0, r.shadow)(this, 'MAX_DIM', this._guessMax(2048, 65537, 0, 1)); + } + static get MAX_AREA() { + this._hasMaxArea = !0; + return (0, r.shadow)( + this, + 'MAX_AREA', + this._guessMax(ImageResizer._goodSquareLength, this.MAX_DIM, 128, 0) ** 2, + ); + } + static set MAX_AREA(e) { + if (e >= 0) { + this._hasMaxArea = !0; + (0, r.shadow)(this, 'MAX_AREA', e); + } + } + static setMaxArea(e) { + this._hasMaxArea || (this.MAX_AREA = e >> 2); + } + static _areGoodDims(e, t) { + try { + const a = new OffscreenCanvas(e, t), + r = a.getContext('2d'); + r.fillRect(0, 0, 1, 1); + const i = r.getImageData(0, 0, 1, 1).data[3]; + a.width = a.height = 1; + return 0 !== i; + } catch (e) { + return !1; + } + } + static _guessMax(e, t, a, r) { + for (; e + a + 1 < t; ) { + const a = Math.floor((e + t) / 2), + i = r || a; + this._areGoodDims(a, i) ? (e = a) : (t = a); + } + return e; + } + static async createImage(e, t = !1) { + return new ImageResizer(e, t)._createImage(); + } + async _createImage() { + const e = this._encodeBMP(), + t = new Blob([e.buffer], { type: 'image/bmp' }), + a = createImageBitmap(t), + { MAX_AREA: r, MAX_DIM: i } = ImageResizer, + { _imgData: n } = this, + { width: s, height: o } = n, + c = Math.max(s / i, o / i, Math.sqrt((s * o) / r)), + l = Math.max(c, 2), + h = Math.round(10 * (c + 1.25)) / 10 / l, + u = Math.floor(Math.log2(h)), + d = new Array(u + 2).fill(2); + d[0] = l; + d.splice(-1, 1, h / (1 << u)); + let f = s, + g = o, + p = await a; + for (const e of d) { + const t = f, + a = g; + f = Math.floor(f / e) - 1; + g = Math.floor(g / e) - 1; + const r = new OffscreenCanvas(f, g); + r.getContext('2d').drawImage(p, 0, 0, t, a, 0, 0, f, g); + p = r.transferToImageBitmap(); + } + n.data = null; + n.bitmap = p; + n.width = f; + n.height = g; + return n; + } + _encodeBMP() { + const { width: e, height: t, kind: a } = this._imgData; + let i, + n = this._imgData.data, + s = new Uint8Array(0), + o = s, + c = 0; + switch (a) { + case r.ImageKind.GRAYSCALE_1BPP: { + i = 1; + s = new Uint8Array( + this._isMask + ? [255, 255, 255, 255, 0, 0, 0, 0] + : [0, 0, 0, 0, 255, 255, 255, 255], + ); + const a = (e + 7) >> 3, + r = (a + 3) & -4; + if (a !== r) { + const e = new Uint8Array(r * t); + let i = 0; + for (let s = 0, o = t * a; s < o; s += a, i += r) + e.set(n.subarray(s, s + a), i); + n = e; + } + break; + } + case r.ImageKind.RGB_24BPP: + i = 24; + if (3 & e) { + const a = 3 * e, + r = (a + 3) & -4, + i = r - a, + s = new Uint8Array(r * t); + let o = 0; + for (let e = 0, r = t * a; e < r; e += a) { + const t = n.subarray(e, e + a); + for (let e = 0; e < a; e += 3) { + s[o++] = t[e + 2]; + s[o++] = t[e + 1]; + s[o++] = t[e]; + } + o += i; + } + n = s; + } else + for (let e = 0, t = n.length; e < t; e += 3) { + const t = n[e]; + n[e] = n[e + 2]; + n[e + 2] = t; + } + break; + case r.ImageKind.RGBA_32BPP: + i = 32; + c = 3; + o = new Uint8Array(68); + const a = new DataView(o.buffer); + if (r.FeatureTest.isLittleEndian) { + a.setUint32(0, 255, !0); + a.setUint32(4, 65280, !0); + a.setUint32(8, 16711680, !0); + a.setUint32(12, 4278190080, !0); + } else { + a.setUint32(0, 4278190080, !0); + a.setUint32(4, 16711680, !0); + a.setUint32(8, 65280, !0); + a.setUint32(12, 255, !0); + } + break; + default: + throw new Error('invalid format'); + } + let l = 0; + const h = 40 + o.length, + u = 14 + h + s.length + n.length, + d = new Uint8Array(u), + f = new DataView(d.buffer); + f.setUint16(l, 19778, !0); + l += 2; + f.setUint32(l, u, !0); + l += 4; + f.setUint32(l, 0, !0); + l += 4; + f.setUint32(l, 14 + h + s.length, !0); + l += 4; + f.setUint32(l, h, !0); + l += 4; + f.setInt32(l, e, !0); + l += 4; + f.setInt32(l, -t, !0); + l += 4; + f.setUint16(l, 1, !0); + l += 2; + f.setUint16(l, i, !0); + l += 2; + f.setUint32(l, c, !0); + l += 4; + f.setUint32(l, 0, !0); + l += 4; + f.setInt32(l, 0, !0); + l += 4; + f.setInt32(l, 0, !0); + l += 4; + f.setUint32(l, s.length / 4, !0); + l += 4; + f.setUint32(l, 0, !0); + l += 4; + d.set(o, l); + l += o.length; + d.set(s, l); + l += s.length; + d.set(n, l); + return d; + } + } + t.ImageResizer = ImageResizer; + ImageResizer._goodSquareLength = 2048; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.MurmurHash3_64 = void 0; + var r = a(2); + const i = 3285377520, + n = 4294901760, + s = 65535; + t.MurmurHash3_64 = class MurmurHash3_64 { + constructor(e) { + this.h1 = e ? 4294967295 & e : i; + this.h2 = e ? 4294967295 & e : i; + } + update(e) { + let t, a; + if ('string' == typeof e) { + t = new Uint8Array(2 * e.length); + a = 0; + for (let r = 0, i = e.length; r < i; r++) { + const i = e.charCodeAt(r); + if (i <= 255) t[a++] = i; + else { + t[a++] = i >>> 8; + t[a++] = 255 & i; + } + } + } else { + if (!(0, r.isArrayBuffer)(e)) + throw new Error( + 'Wrong data format in MurmurHash3_64_update. Input must be a string or array.', + ); + t = e.slice(); + a = t.byteLength; + } + const i = a >> 2, + o = a - 4 * i, + c = new Uint32Array(t.buffer, 0, i); + let l = 0, + h = 0, + u = this.h1, + d = this.h2; + const f = 3432918353, + g = 461845907, + p = 11601, + m = 13715; + for (let e = 0; e < i; e++) + if (1 & e) { + l = c[e]; + l = ((l * f) & n) | ((l * p) & s); + l = (l << 15) | (l >>> 17); + l = ((l * g) & n) | ((l * m) & s); + u ^= l; + u = (u << 13) | (u >>> 19); + u = 5 * u + 3864292196; + } else { + h = c[e]; + h = ((h * f) & n) | ((h * p) & s); + h = (h << 15) | (h >>> 17); + h = ((h * g) & n) | ((h * m) & s); + d ^= h; + d = (d << 13) | (d >>> 19); + d = 5 * d + 3864292196; + } + l = 0; + switch (o) { + case 3: + l ^= t[4 * i + 2] << 16; + case 2: + l ^= t[4 * i + 1] << 8; + case 1: + l ^= t[4 * i]; + l = ((l * f) & n) | ((l * p) & s); + l = (l << 15) | (l >>> 17); + l = ((l * g) & n) | ((l * m) & s); + 1 & i ? (u ^= l) : (d ^= l); + } + this.h1 = u; + this.h2 = d; + } + hexdigest() { + let e = this.h1, + t = this.h2; + e ^= t >>> 1; + e = ((3981806797 * e) & n) | ((36045 * e) & s); + t = ((4283543511 * t) & n) | (((2950163797 * ((t << 16) | (e >>> 16))) & n) >>> 16); + e ^= t >>> 1; + e = ((444984403 * e) & n) | ((60499 * e) & s); + t = ((3301882366 * t) & n) | (((3120437893 * ((t << 16) | (e >>> 16))) & n) >>> 16); + e ^= t >>> 1; + return ( + (e >>> 0).toString(16).padStart(8, '0') + (t >>> 0).toString(16).padStart(8, '0') + ); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.OperatorList = void 0; + var r = a(2); + function addState(e, t, a, r, i) { + let n = e; + for (let e = 0, a = t.length - 1; e < a; e++) { + const a = t[e]; + n = n[a] ||= []; + } + n[t.at(-1)] = { checkFn: a, iterateFn: r, processFn: i }; + } + const i = []; + addState( + i, + [r.OPS.save, r.OPS.transform, r.OPS.paintInlineImageXObject, r.OPS.restore], + null, + function iterateInlineImageGroup(e, t) { + const a = e.fnArray, + i = (t - (e.iCurr - 3)) % 4; + switch (i) { + case 0: + return a[t] === r.OPS.save; + case 1: + return a[t] === r.OPS.transform; + case 2: + return a[t] === r.OPS.paintInlineImageXObject; + case 3: + return a[t] === r.OPS.restore; + } + throw new Error(`iterateInlineImageGroup - invalid pos: ${i}`); + }, + function foundInlineImageGroup(e, t) { + const a = e.fnArray, + i = e.argsArray, + n = e.iCurr, + s = n - 3, + o = n - 2, + c = n - 1, + l = Math.min(Math.floor((t - s) / 4), 200); + if (l < 10) return t - ((t - s) % 4); + let h = 0; + const u = []; + let d = 0, + f = 1, + g = 1; + for (let e = 0; e < l; e++) { + const t = i[o + (e << 2)], + a = i[c + (e << 2)][0]; + if (f + a.width > 1e3) { + h = Math.max(h, f); + g += d + 2; + f = 0; + d = 0; + } + u.push({ transform: t, x: f, y: g, w: a.width, h: a.height }); + f += a.width + 2; + d = Math.max(d, a.height); + } + const p = Math.max(h, f) + 1, + m = g + d + 1, + b = new Uint8Array(p * m * 4), + y = p << 2; + for (let e = 0; e < l; e++) { + const t = i[c + (e << 2)][0].data, + a = u[e].w << 2; + let r = 0, + n = (u[e].x + u[e].y * p) << 2; + b.set(t.subarray(0, a), n - y); + for (let i = 0, s = u[e].h; i < s; i++) { + b.set(t.subarray(r, r + a), n); + r += a; + n += y; + } + b.set(t.subarray(r - a, r), n); + for (; n >= 0; ) { + t[n - 4] = t[n]; + t[n - 3] = t[n + 1]; + t[n - 2] = t[n + 2]; + t[n - 1] = t[n + 3]; + t[n + a] = t[n + a - 4]; + t[n + a + 1] = t[n + a - 3]; + t[n + a + 2] = t[n + a - 2]; + t[n + a + 3] = t[n + a - 1]; + n -= y; + } + } + const w = { width: p, height: m }; + if (e.isOffscreenCanvasSupported) { + const e = new OffscreenCanvas(p, m); + e.getContext('2d').putImageData( + new ImageData(new Uint8ClampedArray(b.buffer), p, m), + 0, + 0, + ); + w.bitmap = e.transferToImageBitmap(); + w.data = null; + } else { + w.kind = r.ImageKind.RGBA_32BPP; + w.data = b; + } + a.splice(s, 4 * l, r.OPS.paintInlineImageXObjectGroup); + i.splice(s, 4 * l, [w, u]); + return s + 1; + }, + ); + addState( + i, + [r.OPS.save, r.OPS.transform, r.OPS.paintImageMaskXObject, r.OPS.restore], + null, + function iterateImageMaskGroup(e, t) { + const a = e.fnArray, + i = (t - (e.iCurr - 3)) % 4; + switch (i) { + case 0: + return a[t] === r.OPS.save; + case 1: + return a[t] === r.OPS.transform; + case 2: + return a[t] === r.OPS.paintImageMaskXObject; + case 3: + return a[t] === r.OPS.restore; + } + throw new Error(`iterateImageMaskGroup - invalid pos: ${i}`); + }, + function foundImageMaskGroup(e, t) { + const a = e.fnArray, + i = e.argsArray, + n = e.iCurr, + s = n - 3, + o = n - 2, + c = n - 1; + let l = Math.floor((t - s) / 4); + if (l < 10) return t - ((t - s) % 4); + let h, + u, + d = !1; + const f = i[c][0], + g = i[o][0], + p = i[o][1], + m = i[o][2], + b = i[o][3]; + if (p === m) { + d = !0; + h = o + 4; + let e = c + 4; + for (let t = 1; t < l; t++, h += 4, e += 4) { + u = i[h]; + if (i[e][0] !== f || u[0] !== g || u[1] !== p || u[2] !== m || u[3] !== b) { + t < 10 ? (d = !1) : (l = t); + break; + } + } + } + if (d) { + l = Math.min(l, 1e3); + const e = new Float32Array(2 * l); + h = o; + for (let t = 0; t < l; t++, h += 4) { + u = i[h]; + e[t << 1] = u[4]; + e[1 + (t << 1)] = u[5]; + } + a.splice(s, 4 * l, r.OPS.paintImageMaskXObjectRepeat); + i.splice(s, 4 * l, [f, g, p, m, b, e]); + } else { + l = Math.min(l, 100); + const e = []; + for (let t = 0; t < l; t++) { + u = i[o + (t << 2)]; + const a = i[c + (t << 2)][0]; + e.push({ + data: a.data, + width: a.width, + height: a.height, + interpolate: a.interpolate, + count: a.count, + transform: u, + }); + } + a.splice(s, 4 * l, r.OPS.paintImageMaskXObjectGroup); + i.splice(s, 4 * l, [e]); + } + return s + 1; + }, + ); + addState( + i, + [r.OPS.save, r.OPS.transform, r.OPS.paintImageXObject, r.OPS.restore], + function (e) { + const t = e.argsArray, + a = e.iCurr - 2; + return 0 === t[a][1] && 0 === t[a][2]; + }, + function iterateImageGroup(e, t) { + const a = e.fnArray, + i = e.argsArray, + n = (t - (e.iCurr - 3)) % 4; + switch (n) { + case 0: + return a[t] === r.OPS.save; + case 1: + if (a[t] !== r.OPS.transform) return !1; + const n = e.iCurr - 2, + s = i[n][0], + o = i[n][3]; + return i[t][0] === s && 0 === i[t][1] && 0 === i[t][2] && i[t][3] === o; + case 2: + if (a[t] !== r.OPS.paintImageXObject) return !1; + const c = i[e.iCurr - 1][0]; + return i[t][0] === c; + case 3: + return a[t] === r.OPS.restore; + } + throw new Error(`iterateImageGroup - invalid pos: ${n}`); + }, + function (e, t) { + const a = e.fnArray, + i = e.argsArray, + n = e.iCurr, + s = n - 3, + o = n - 2, + c = i[n - 1][0], + l = i[o][0], + h = i[o][3], + u = Math.min(Math.floor((t - s) / 4), 1e3); + if (u < 3) return t - ((t - s) % 4); + const d = new Float32Array(2 * u); + let f = o; + for (let e = 0; e < u; e++, f += 4) { + const t = i[f]; + d[e << 1] = t[4]; + d[1 + (e << 1)] = t[5]; + } + const g = [c, l, h, d]; + a.splice(s, 4 * u, r.OPS.paintImageXObjectRepeat); + i.splice(s, 4 * u, g); + return s + 1; + }, + ); + addState( + i, + [r.OPS.beginText, r.OPS.setFont, r.OPS.setTextMatrix, r.OPS.showText, r.OPS.endText], + null, + function iterateShowTextGroup(e, t) { + const a = e.fnArray, + i = e.argsArray, + n = (t - (e.iCurr - 4)) % 5; + switch (n) { + case 0: + return a[t] === r.OPS.beginText; + case 1: + return a[t] === r.OPS.setFont; + case 2: + return a[t] === r.OPS.setTextMatrix; + case 3: + if (a[t] !== r.OPS.showText) return !1; + const n = e.iCurr - 3, + s = i[n][0], + o = i[n][1]; + return i[t][0] === s && i[t][1] === o; + case 4: + return a[t] === r.OPS.endText; + } + throw new Error(`iterateShowTextGroup - invalid pos: ${n}`); + }, + function (e, t) { + const a = e.fnArray, + r = e.argsArray, + i = e.iCurr, + n = i - 4, + s = i - 3, + o = i - 2, + c = i - 1, + l = i, + h = r[s][0], + u = r[s][1]; + let d = Math.min(Math.floor((t - n) / 5), 1e3); + if (d < 3) return t - ((t - n) % 5); + let f = n; + if ( + n >= 4 && + a[n - 4] === a[s] && + a[n - 3] === a[o] && + a[n - 2] === a[c] && + a[n - 1] === a[l] && + r[n - 4][0] === h && + r[n - 4][1] === u + ) { + d++; + f -= 5; + } + let g = f + 4; + for (let e = 1; e < d; e++) { + a.splice(g, 3); + r.splice(g, 3); + g += 2; + } + return g + 1; + }, + ); + class NullOptimizer { + constructor(e) { + this.queue = e; + } + _optimize() {} + push(e, t) { + this.queue.fnArray.push(e); + this.queue.argsArray.push(t); + this._optimize(); + } + flush() {} + reset() {} + } + class QueueOptimizer extends NullOptimizer { + constructor(e) { + super(e); + this.state = null; + this.context = { + iCurr: 0, + fnArray: e.fnArray, + argsArray: e.argsArray, + isOffscreenCanvasSupported: !1, + }; + this.match = null; + this.lastProcessed = 0; + } + set isOffscreenCanvasSupported(e) { + this.context.isOffscreenCanvasSupported = e; + } + _optimize() { + const e = this.queue.fnArray; + let t = this.lastProcessed, + a = e.length, + r = this.state, + n = this.match; + if (!r && !n && t + 1 === a && !i[e[t]]) { + this.lastProcessed = a; + return; + } + const s = this.context; + for (; t < a; ) { + if (n) { + if ((0, n.iterateFn)(s, t)) { + t++; + continue; + } + t = (0, n.processFn)(s, t + 1); + a = e.length; + n = null; + r = null; + if (t >= a) break; + } + r = (r || i)[e[t]]; + if (r && !Array.isArray(r)) { + s.iCurr = t; + t++; + if (!r.checkFn || (0, r.checkFn)(s)) { + n = r; + r = null; + } else r = null; + } else t++; + } + this.state = r; + this.match = n; + this.lastProcessed = t; + } + 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; + } + } + class OperatorList { + static CHUNK_SIZE = 1e3; + static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5; + constructor(e = 0, t) { + this._streamSink = t; + this.fnArray = []; + this.argsArray = []; + !t || e & r.RenderingIntentFlag.OPLIST + ? (this.optimizer = new NullOptimizer(this)) + : (this.optimizer = new QueueOptimizer(this)); + this.dependencies = new Set(); + this._totalLength = 0; + this.weight = 0; + this._resolved = t ? null : Promise.resolve(); + } + set isOffscreenCanvasSupported(e) { + this.optimizer.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, t) { + this.optimizer.push(e, t); + this.weight++; + this._streamSink && + (this.weight >= OperatorList.CHUNK_SIZE || + (this.weight >= OperatorList.CHUNK_SIZE_ABOUT && + (e === r.OPS.restore || e === r.OPS.endText))) && + this.flush(); + } + addImageOps(e, t, a) { + void 0 !== a && this.addOp(r.OPS.beginMarkedContentProps, ['OC', a]); + this.addOp(e, t); + void 0 !== a && this.addOp(r.OPS.endMarkedContent, []); + } + addDependency(e) { + if (!this.dependencies.has(e)) { + this.dependencies.add(e); + this.addOp(r.OPS.dependency, [e]); + } + } + addDependencies(e) { + for (const t of e) this.addDependency(t); + } + addOpList(e) { + if (e instanceof OperatorList) { + for (const t of e.dependencies) this.dependencies.add(t); + for (let t = 0, a = e.length; t < a; t++) this.addOp(e.fnArray[t], e.argsArray[t]); + } else (0, r.warn)('addOpList - ignoring invalid "opList" parameter.'); + } + getIR() { + return { fnArray: this.fnArray, argsArray: this.argsArray, length: this.length }; + } + get _transfers() { + const e = [], + { fnArray: t, argsArray: a, length: i } = this; + for (let n = 0; n < i; n++) + switch (t[n]) { + case r.OPS.paintInlineImageXObject: + case r.OPS.paintInlineImageXObjectGroup: + case r.OPS.paintImageMaskXObject: + const t = a[n][0]; + !t.cached && + t.data && + t.data.buffer instanceof ArrayBuffer && + e.push(t.data.buffer); + } + return e; + } + flush(e = !1, t = null) { + this.optimizer.flush(); + const a = this.length; + this._totalLength += a; + this._streamSink.enqueue( + { + fnArray: this.fnArray, + argsArray: this.argsArray, + lastChunk: e, + separateAnnots: t, + length: a, + }, + 1, + this._transfers, + ); + this.dependencies.clear(); + this.fnArray.length = 0; + this.argsArray.length = 0; + this.weight = 0; + this.optimizer.reset(); + } + } + t.OperatorList = OperatorList; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PDFImage = void 0; + var r = a(2), + i = a(28), + n = a(5), + s = a(12), + o = a(18), + c = a(61), + l = a(26), + h = a(30), + u = a(4); + function decodeAndClamp(e, t, a, r) { + (e = t + e * a) < 0 ? (e = 0) : e > r && (e = r); + return e; + } + function resizeImageMask(e, t, a, r, i, n) { + const s = i * n; + let o; + o = t <= 8 ? new Uint8Array(s) : t <= 16 ? new Uint16Array(s) : new Uint32Array(s); + const c = a / i, + l = r / n; + let h, + u, + d, + f, + g = 0; + const p = new Uint16Array(i), + m = a; + for (h = 0; h < i; h++) p[h] = Math.floor(h * c); + for (h = 0; h < n; h++) { + d = Math.floor(h * l) * m; + for (u = 0; u < i; u++) { + f = d + p[u]; + o[g++] = e[f]; + } + } + return o; + } + class PDFImage { + constructor({ + xref: e, + res: t, + image: a, + isInline: i = !1, + smask: o = null, + mask: c = null, + isMask: l = !1, + pdfFunctionFactory: d, + localColorSpaceCache: f, + }) { + this.image = a; + const g = a.dict, + p = g.get('F', 'Filter'); + let m; + if (p instanceof u.Name) m = p.name; + else if (Array.isArray(p)) { + const t = e.fetchIfRef(p[0]); + t instanceof u.Name && (m = t.name); + } + switch (m) { + case 'JPXDecode': + const e = new h.JpxImage(); + e.parseImageProperties(a.stream); + a.stream.reset(); + a.width = e.width; + a.height = e.height; + a.bitsPerComponent = e.bitsPerComponent; + a.numComps = e.componentsCount; + break; + case 'JBIG2Decode': + a.bitsPerComponent = 1; + a.numComps = 1; + } + let b = g.get('W', 'Width'), + y = g.get('H', 'Height'); + if ( + Number.isInteger(a.width) && + a.width > 0 && + Number.isInteger(a.height) && + a.height > 0 && + (a.width !== b || a.height !== y) + ) { + (0, r.warn)( + 'PDFImage - using the Width/Height of the image data, rather than the image dictionary.', + ); + b = a.width; + y = a.height; + } + if (b < 1 || y < 1) + throw new r.FormatError(`Invalid image width: ${b} or height: ${y}`); + this.width = b; + this.height = y; + this.interpolate = g.get('I', 'Interpolate'); + this.imageMask = g.get('IM', 'ImageMask') || !1; + this.matte = g.get('Matte') || !1; + let w = a.bitsPerComponent; + if (!w) { + w = g.get('BPC', 'BitsPerComponent'); + if (!w) { + if (!this.imageMask) + throw new r.FormatError( + `Bits per component missing in image: ${this.imageMask}`, + ); + w = 1; + } + } + this.bpc = w; + if (!this.imageMask) { + let n = g.getRaw('CS') || g.getRaw('ColorSpace'); + if (!n) { + (0, r.info)('JPX images (which do not require color spaces)'); + switch (a.numComps) { + case 1: + n = u.Name.get('DeviceGray'); + break; + case 3: + n = u.Name.get('DeviceRGB'); + break; + case 4: + n = u.Name.get('DeviceCMYK'); + break; + default: + throw new Error( + `JPX images with ${a.numComps} color components not supported.`, + ); + } + } + this.colorSpace = s.ColorSpace.parse({ + cs: n, + xref: e, + resources: i ? t : null, + pdfFunctionFactory: d, + localColorSpaceCache: f, + }); + this.numComps = this.colorSpace.numComps; + } + this.decode = g.getArray('D', 'Decode'); + this.needsDecode = !1; + if ( + this.decode && + ((this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, w)) || + (l && !s.ColorSpace.isDefaultDecode(this.decode, 1))) + ) { + this.needsDecode = !0; + const e = (1 << w) - 1; + this.decodeCoefficients = []; + this.decodeAddends = []; + const t = this.colorSpace && 'Indexed' === this.colorSpace.name; + for (let a = 0, r = 0; a < this.decode.length; a += 2, ++r) { + const i = this.decode[a], + n = this.decode[a + 1]; + this.decodeCoefficients[r] = t ? (n - i) / e : n - i; + this.decodeAddends[r] = t ? i : e * i; + } + } + if (o) + this.smask = new PDFImage({ + xref: e, + res: t, + image: o, + isInline: i, + pdfFunctionFactory: d, + localColorSpaceCache: f, + }); + else if (c) + if (c instanceof n.BaseStream) { + c.dict.get('IM', 'ImageMask') + ? (this.mask = new PDFImage({ + xref: e, + res: t, + image: c, + isInline: i, + isMask: !0, + pdfFunctionFactory: d, + localColorSpaceCache: f, + })) + : (0, r.warn)('Ignoring /Mask in image without /ImageMask.'); + } else this.mask = c; + } + static async buildImage({ + xref: e, + res: t, + image: a, + isInline: i = !1, + pdfFunctionFactory: s, + localColorSpaceCache: o, + }) { + const c = a; + let l = null, + h = null; + const u = a.dict.get('SMask'), + d = a.dict.get('Mask'); + u + ? u instanceof n.BaseStream + ? (l = u) + : (0, r.warn)('Unsupported /SMask format.') + : d && + (d instanceof n.BaseStream || Array.isArray(d) + ? (h = d) + : (0, r.warn)('Unsupported /Mask format.')); + return new PDFImage({ + xref: e, + res: t, + image: c, + isInline: i, + smask: l, + mask: h, + pdfFunctionFactory: s, + localColorSpaceCache: o, + }); + } + static createRawMask({ + imgArray: e, + width: t, + height: a, + imageIsFromDecodeStream: r, + inverseDecode: i, + interpolate: n, + }) { + const s = ((t + 7) >> 3) * a, + o = e.byteLength; + let c, l; + if (!r || (i && !(s === o))) + if (i) { + c = new Uint8Array(s); + c.set(e); + c.fill(255, o); + } else c = new Uint8Array(e); + else c = e; + if (i) for (l = 0; l < o; l++) c[l] ^= 255; + return { data: c, width: t, height: a, interpolate: n }; + } + static async createMask({ + imgArray: e, + width: t, + height: a, + imageIsFromDecodeStream: n, + inverseDecode: s, + interpolate: o, + isOffscreenCanvasSupported: l = !1, + }) { + const h = 1 === t && 1 === a && s === (0 === e.length || !!(128 & e[0])); + if (h) return { isSingleOpaquePixel: h }; + if (l) { + if (c.ImageResizer.needsToBeResized(t, a)) { + const n = new Uint8ClampedArray(t * a * 4); + (0, i.convertBlackAndWhiteToRGBA)({ + src: e, + dest: n, + width: t, + height: a, + nonBlackColor: 0, + inverseDecode: s, + }); + return c.ImageResizer.createImage({ + kind: r.ImageKind.RGBA_32BPP, + data: n, + width: t, + height: a, + interpolate: o, + }); + } + const n = new OffscreenCanvas(t, a), + l = n.getContext('2d'), + h = l.createImageData(t, a); + (0, i.convertBlackAndWhiteToRGBA)({ + src: e, + dest: h.data, + width: t, + height: a, + nonBlackColor: 0, + inverseDecode: s, + }); + l.putImageData(h, 0, 0); + return { + data: null, + width: t, + height: a, + interpolate: o, + bitmap: n.transferToImageBitmap(), + }; + } + return this.createRawMask({ + imgArray: e, + width: t, + height: a, + inverseDecode: s, + imageIsFromDecodeStream: n, + interpolate: o, + }); + } + get drawWidth() { + return Math.max( + this.width, + (this.smask && this.smask.width) || 0, + (this.mask && this.mask.width) || 0, + ); + } + get drawHeight() { + return Math.max( + this.height, + (this.smask && this.smask.height) || 0, + (this.mask && this.mask.height) || 0, + ); + } + decodeBuffer(e) { + const t = this.bpc, + a = this.numComps, + r = this.decodeAddends, + i = this.decodeCoefficients, + n = (1 << t) - 1; + let s, o; + if (1 === t) { + for (s = 0, o = e.length; s < o; s++) e[s] = +!e[s]; + return; + } + let c = 0; + for (s = 0, o = this.width * this.height; s < o; s++) + for (let t = 0; t < a; t++) { + e[c] = decodeAndClamp(e[c], r[t], i[t], n); + c++; + } + } + getComponents(e) { + const t = this.bpc; + if (8 === t) return e; + const a = this.width, + r = this.height, + i = this.numComps, + n = a * r * i; + let s, + o = 0; + s = t <= 8 ? new Uint8Array(n) : t <= 16 ? new Uint16Array(n) : new Uint32Array(n); + const c = a * i, + l = (1 << t) - 1; + let h, + u, + d = 0; + if (1 === t) { + let t, a, i; + for (let n = 0; n < r; n++) { + a = d + (-8 & c); + i = d + c; + for (; d < a; ) { + u = e[o++]; + s[d] = (u >> 7) & 1; + s[d + 1] = (u >> 6) & 1; + s[d + 2] = (u >> 5) & 1; + s[d + 3] = (u >> 4) & 1; + s[d + 4] = (u >> 3) & 1; + s[d + 5] = (u >> 2) & 1; + s[d + 6] = (u >> 1) & 1; + s[d + 7] = 1 & u; + d += 8; + } + if (d < i) { + u = e[o++]; + t = 128; + for (; d < i; ) { + s[d++] = +!!(u & t); + t >>= 1; + } + } + } + } else { + let a = 0; + u = 0; + for (d = 0, h = n; d < h; ++d) { + if (d % c == 0) { + u = 0; + a = 0; + } + for (; a < t; ) { + u = (u << 8) | e[o++]; + a += 8; + } + const r = a - t; + let i = u >> r; + i < 0 ? (i = 0) : i > l && (i = l); + s[d] = i; + u &= (1 << r) - 1; + a = r; + } + } + return s; + } + fillOpacity(e, t, a, i, n) { + const s = this.smask, + o = this.mask; + let c, l, h, u, d, f; + if (s) { + l = s.width; + h = s.height; + c = new Uint8ClampedArray(l * h); + s.fillGrayBuffer(c); + (l === t && h === a) || (c = resizeImageMask(c, s.bpc, l, h, t, a)); + } else if (o) + if (o instanceof PDFImage) { + l = o.width; + h = o.height; + c = new Uint8ClampedArray(l * h); + o.numComps = 1; + o.fillGrayBuffer(c); + for (u = 0, d = l * h; u < d; ++u) c[u] = 255 - c[u]; + (l === t && h === a) || (c = resizeImageMask(c, o.bpc, l, h, t, a)); + } else { + if (!Array.isArray(o)) throw new r.FormatError('Unknown mask format.'); + { + c = new Uint8ClampedArray(t * a); + const e = this.numComps; + for (u = 0, d = t * a; u < d; ++u) { + let t = 0; + const a = u * e; + for (f = 0; f < e; ++f) { + const e = n[a + f], + r = 2 * f; + if (e < o[r] || e > o[r + 1]) { + t = 255; + break; + } + } + c[u] = t; + } + } + } + if (c) for (u = 0, f = 3, d = t * i; u < d; ++u, f += 4) e[f] = c[u]; + else for (u = 0, f = 3, d = t * i; u < d; ++u, f += 4) e[f] = 255; + } + undoPreblend(e, t, a) { + const r = this.smask && this.smask.matte; + if (!r) return; + const i = this.colorSpace.getRgb(r, 0), + n = i[0], + s = i[1], + o = i[2], + c = t * a * 4; + for (let t = 0; t < c; t += 4) { + const a = e[t + 3]; + if (0 === a) { + e[t] = 255; + e[t + 1] = 255; + e[t + 2] = 255; + continue; + } + const r = 255 / a; + e[t] = (e[t] - n) * r + n; + e[t + 1] = (e[t + 1] - s) * r + s; + e[t + 2] = (e[t + 2] - o) * r + o; + } + } + async createImageData(e = !1, t = !1) { + const a = this.drawWidth, + i = this.drawHeight, + n = { width: a, height: i, interpolate: this.interpolate, kind: 0, data: null }, + s = this.numComps, + o = this.width, + h = this.height, + u = this.bpc, + d = (o * s * u + 7) >> 3, + f = t && c.ImageResizer.needsToBeResized(a, i); + if (!e) { + let e; + 'DeviceGray' === this.colorSpace.name && 1 === u + ? (e = r.ImageKind.GRAYSCALE_1BPP) + : 'DeviceRGB' !== this.colorSpace.name || + 8 !== u || + this.needsDecode || + (e = r.ImageKind.RGB_24BPP); + if (e && !this.smask && !this.mask && a === o && i === h) { + const s = this.getImageBytes(h * d, {}); + if (t) + return f + ? c.ImageResizer.createImage( + { data: s, kind: e, width: a, height: i, interpolate: this.interpolate }, + this.needsDecode, + ) + : this.createBitmap(e, o, h, s); + n.kind = e; + n.data = s; + if (this.needsDecode) { + (0, r.assert)( + e === r.ImageKind.GRAYSCALE_1BPP, + 'PDFImage.createImageData: The image must be grayscale.', + ); + const t = n.data; + for (let e = 0, a = t.length; e < a; e++) t[e] ^= 255; + } + return n; + } + if ( + this.image instanceof l.JpegStream && + !this.smask && + !this.mask && + !this.needsDecode + ) { + let e = h * d; + if (t && !f) { + let t = !1; + switch (this.colorSpace.name) { + case 'DeviceGray': + e *= 4; + t = !0; + break; + case 'DeviceRGB': + e = (e / 3) * 4; + t = !0; + break; + case 'DeviceCMYK': + t = !0; + } + if (t) { + const t = this.getImageBytes(e, { + drawWidth: a, + drawHeight: i, + forceRGBA: !0, + }); + return this.createBitmap(r.ImageKind.RGBA_32BPP, a, i, t); + } + } else + switch (this.colorSpace.name) { + case 'DeviceGray': + e *= 3; + case 'DeviceRGB': + case 'DeviceCMYK': + n.kind = r.ImageKind.RGB_24BPP; + n.data = this.getImageBytes(e, { + drawWidth: a, + drawHeight: i, + forceRGB: !0, + }); + return f ? c.ImageResizer.createImage(n) : n; + } + } + } + const g = this.getImageBytes(h * d, { internal: !0 }), + p = 0 | (((g.length / d) * i) / h), + m = this.getComponents(g); + let b, y, w, S, x, C; + if (t && !f) { + w = new OffscreenCanvas(a, i); + S = w.getContext('2d'); + x = S.createImageData(a, i); + C = x.data; + } + n.kind = r.ImageKind.RGBA_32BPP; + if (e || this.smask || this.mask) { + (t && !f) || (C = new Uint8ClampedArray(a * i * 4)); + b = 1; + y = !0; + this.fillOpacity(C, a, i, p, m); + } else { + if (!t || f) { + n.kind = r.ImageKind.RGB_24BPP; + C = new Uint8ClampedArray(a * i * 3); + b = 0; + } else { + new Uint32Array(C.buffer).fill(r.FeatureTest.isLittleEndian ? 4278190080 : 255); + b = 1; + } + y = !1; + } + this.needsDecode && this.decodeBuffer(m); + this.colorSpace.fillRgb(C, o, h, a, i, p, u, m, b); + y && this.undoPreblend(C, a, p); + if (t && !f) { + S.putImageData(x, 0, 0); + return { + data: null, + width: a, + height: i, + bitmap: w.transferToImageBitmap(), + interpolate: this.interpolate, + }; + } + n.data = C; + return f ? c.ImageResizer.createImage(n) : n; + } + fillGrayBuffer(e) { + const t = this.numComps; + if (1 !== t) throw new r.FormatError(`Reading gray scale from a color image: ${t}`); + const a = this.width, + i = this.height, + n = this.bpc, + s = (a * t * n + 7) >> 3, + o = this.getImageBytes(i * s, { internal: !0 }), + c = this.getComponents(o); + let l, h; + if (1 === n) { + h = a * i; + if (this.needsDecode) for (l = 0; l < h; ++l) e[l] = (c[l] - 1) & 255; + else for (l = 0; l < h; ++l) e[l] = 255 & -c[l]; + return; + } + this.needsDecode && this.decodeBuffer(c); + h = a * i; + const u = 255 / ((1 << n) - 1); + for (l = 0; l < h; ++l) e[l] = u * c[l]; + } + createBitmap(e, t, a, n) { + const s = new OffscreenCanvas(t, a), + o = s.getContext('2d'); + let c; + if (e === r.ImageKind.RGBA_32BPP) c = new ImageData(n, t, a); + else { + c = o.createImageData(t, a); + (0, i.convertToRGBA)({ + kind: e, + src: n, + dest: new Uint32Array(c.data.buffer), + width: t, + height: a, + inverseDecode: this.needsDecode, + }); + } + o.putImageData(c, 0, 0); + return { + data: null, + width: t, + height: a, + bitmap: s.transferToImageBitmap(), + interpolate: this.interpolate, + }; + } + getImageBytes( + e, + { + drawWidth: t, + drawHeight: a, + forceRGBA: i = !1, + forceRGB: n = !1, + internal: s = !1, + }, + ) { + this.image.reset(); + this.image.drawWidth = t || this.width; + this.image.drawHeight = a || this.height; + this.image.forceRGBA = !!i; + this.image.forceRGB = !!n; + const c = this.image.getBytes(e); + if (s || this.image instanceof o.DecodeStream) return c; + (0, r.assert)( + c instanceof Uint8Array, + 'PDFImage.getImageBytes: Unsupported "imageBytes" type.', + ); + return new Uint8Array(c); + } + } + t.PDFImage = PDFImage; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.incrementalUpdate = function incrementalUpdate({ + originalData: e, + xrefInfo: t, + newRefs: a, + xref: o = null, + hasXfa: l = !1, + xfaDatasetsRef: h = null, + hasXfaDatasetsEntry: u = !1, + needAppearances: d, + acroFormRef: f = null, + acroForm: g = null, + xfaData: p = null, + }) { + !(function updateAcroform({ + xref: e, + acroForm: t, + acroFormRef: a, + hasXfa: n, + hasXfaDatasetsEntry: s, + xfaDatasetsRef: o, + needAppearances: c, + newRefs: l, + }) { + !n || s || o || (0, r.warn)('XFA - Cannot save it'); + if (!(c || (n && o))) return; + const h = new i.Dict(e); + for (const e of t.getKeys()) h.set(e, t.getRaw(e)); + if (n && !s) { + const e = t.get('XFA').slice(); + e.splice(2, 0, 'datasets'); + e.splice(3, 0, o); + h.set('XFA', e); + } + c && h.set('NeedAppearances', !0); + const u = e.encrypt; + let d = null; + u && (d = u.createCipherTransform(a.num, a.gen)); + const f = []; + writeObject(a, h, f, d); + l.push({ ref: a, data: f.join('') }); + })({ + xref: o, + acroForm: g, + acroFormRef: f, + hasXfa: l, + hasXfaDatasetsEntry: u, + xfaDatasetsRef: h, + needAppearances: d, + newRefs: a, + }); + l && + (function updateXFA({ xfaData: e, xfaDatasetsRef: t, newRefs: a, xref: i }) { + if (null === e) { + e = (function writeXFADataForAcroform(e, t) { + const a = new s.SimpleXMLParser({ hasAttributes: !0 }).parseFromString(e); + for (const { xfa: e } of t) { + if (!e) continue; + const { path: t, value: i } = e; + if (!t) continue; + const o = (0, n.parseXFAPath)(t); + let c = a.documentElement.searchNode(o, 0); + !c && o.length > 1 && (c = a.documentElement.searchNode([o.at(-1)], 0)); + c + ? Array.isArray(i) + ? (c.childNodes = i.map((e) => new s.SimpleDOMNode('value', e))) + : (c.childNodes = [new s.SimpleDOMNode('#text', i)]) + : (0, r.warn)(`Node not found for path: ${t}`); + } + const i = []; + a.documentElement.dump(i); + return i.join(''); + })(i.fetchIfRef(t).getString(), a); + } + const o = i.encrypt; + if (o) { + e = o.createCipherTransform(t.num, t.gen).encryptString(e); + } + const c = + `${t.num} ${t.gen} obj\n<< /Type /EmbeddedFile /Length ${e.length}>>\nstream\n` + + e + + '\nendstream\nendobj\n'; + a.push({ ref: t, data: c }); + })({ xfaData: p, xfaDatasetsRef: h, newRefs: a, xref: o }); + const m = new i.Dict(null), + b = t.newRef; + let y, w; + const S = e.at(-1); + if (10 === S || 13 === S) { + y = []; + w = e.length; + } else { + y = ['\n']; + w = e.length + 1; + } + m.set('Size', b.num + 1); + m.set('Prev', t.startXRef); + m.set('Type', i.Name.get('XRef')); + null !== t.rootRef && m.set('Root', t.rootRef); + null !== t.infoRef && m.set('Info', t.infoRef); + null !== t.encryptRef && m.set('Encrypt', t.encryptRef); + a.push({ ref: b, data: '' }); + a = a.sort((e, t) => e.ref.num - t.ref.num); + const x = [[0, 1, 65535]], + C = [0, 1]; + let k = 0; + for (const { ref: e, data: t } of a) { + k = Math.max(k, w); + x.push([1, w, Math.min(e.gen, 65535)]); + w += t.length; + C.push(e.num, 1); + y.push(t); + } + m.set('Index', C); + if (Array.isArray(t.fileIds) && t.fileIds.length > 0) { + const e = (function computeMD5(e, t) { + const a = Math.floor(Date.now() / 1e3), + i = t.filename || '', + n = [a.toString(), i, e.toString()]; + let s = n.reduce((e, t) => e + t.length, 0); + for (const e of Object.values(t.info)) { + n.push(e); + s += e.length; + } + const o = new Uint8Array(s); + let l = 0; + for (const e of n) { + writeString(e, l, o); + l += e.length; + } + return (0, r.bytesToString)((0, c.calculateMD5)(o)); + })(w, t); + m.set('ID', [t.fileIds[0], e]); + } + const v = [1, Math.ceil(Math.log2(k) / 8), 2], + F = (v[0] + v[1] + v[2]) * x.length; + m.set('W', v); + m.set('Length', F); + y.push(`${b.num} ${b.gen} obj\n`); + writeDict(m, y, null); + y.push(' stream\n'); + const O = y.reduce((e, t) => e + t.length, 0), + T = `\nendstream\nendobj\nstartxref\n${w}\n%%EOF\n`, + M = new Uint8Array(e.length + O + F + T.length); + M.set(e); + let E = e.length; + for (const e of y) { + writeString(e, E, M); + E += e.length; + } + for (const [e, t, a] of x) { + E = writeInt(e, v[0], E, M); + E = writeInt(t, v[1], E, M); + E = writeInt(a, v[2], E, M); + } + writeString(T, E, M); + return M; + }; + t.writeDict = writeDict; + t.writeObject = writeObject; + var r = a(2), + i = a(4), + n = a(3), + s = a(66), + o = a(5), + c = a(67); + function writeObject(e, t, a, r) { + a.push(`${e.num} ${e.gen} obj\n`); + t instanceof i.Dict + ? writeDict(t, a, r) + : t instanceof o.BaseStream && writeStream(t, a, r); + a.push('\nendobj\n'); + } + function writeDict(e, t, a) { + t.push('<<'); + for (const r of e.getKeys()) { + t.push(` /${(0, n.escapePDFName)(r)} `); + writeValue(e.getRaw(r), t, a); + } + t.push('>>'); + } + function writeStream(e, t, a) { + let r = e.getString(); + null !== a && (r = a.encryptString(r)); + e.dict.set('Length', r.length); + writeDict(e.dict, t, a); + t.push(' stream\n', r, '\nendstream'); + } + function writeValue(e, t, a) { + if (e instanceof i.Name) t.push(`/${(0, n.escapePDFName)(e.name)}`); + else if (e instanceof i.Ref) t.push(`${e.num} ${e.gen} R`); + else if (Array.isArray(e)) + !(function writeArray(e, t, a) { + t.push('['); + let r = !0; + for (const i of e) { + r ? (r = !1) : t.push(' '); + writeValue(i, t, a); + } + t.push(']'); + })(e, t, a); + else if ('string' == typeof e) { + null !== a && (e = a.encryptString(e)); + t.push(`(${(0, n.escapeString)(e)})`); + } else + 'number' == typeof e + ? t.push((0, n.numberToString)(e)) + : 'boolean' == typeof e + ? t.push(e.toString()) + : e instanceof i.Dict + ? writeDict(e, t, a) + : e instanceof o.BaseStream + ? writeStream(e, t, a) + : null === e + ? t.push('null') + : (0, r.warn)(`Unhandled value in writer: ${typeof e}, please file a bug.`); + } + function writeInt(e, t, a, r) { + for (let i = t + a - 1; i > a - 1; i--) { + r[i] = 255 & e; + e >>= 8; + } + return a + t; + } + function writeString(e, t, a) { + for (let r = 0, i = e.length; r < i; r++) a[t + r] = 255 & e.charCodeAt(r); + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XMLParserErrorCode = t.XMLParserBase = t.SimpleXMLParser = t.SimpleDOMNode = void 0; + var r = a(3); + const i = { + NoError: 0, + EndOfDocument: -1, + UnterminatedCdat: -2, + UnterminatedXmlDeclaration: -3, + UnterminatedDoctypeDeclaration: -4, + UnterminatedComment: -5, + MalformedElement: -6, + OutOfMemory: -7, + UnterminatedAttributeValue: -8, + UnterminatedElement: -9, + ElementNeverBegun: -10, + }; + t.XMLParserErrorCode = i; + function isWhitespace(e, t) { + const a = e[t]; + return ' ' === a || '\n' === a || '\r' === a || '\t' === a; + } + class XMLParserBase { + _resolveEntities(e) { + return e.replaceAll(/&([^;]+);/g, (e, t) => { + if ('#x' === t.substring(0, 2)) + return String.fromCodePoint(parseInt(t.substring(2), 16)); + if ('#' === t.substring(0, 1)) + return String.fromCodePoint(parseInt(t.substring(1), 10)); + switch (t) { + case 'lt': + return '<'; + case 'gt': + return '>'; + case 'amp': + return '&'; + case 'quot': + return '"'; + case 'apos': + return "'"; + } + return this.onResolveEntity(t); + }); + } + _parseContent(e, t) { + const a = []; + let r = t; + function skipWs() { + for (; r < e.length && isWhitespace(e, r); ) ++r; + } + for (; r < e.length && !isWhitespace(e, r) && '>' !== e[r] && '/' !== e[r]; ) ++r; + const i = e.substring(t, r); + skipWs(); + for (; r < e.length && '>' !== e[r] && '/' !== e[r] && '?' !== e[r]; ) { + skipWs(); + let t = '', + i = ''; + for (; r < e.length && !isWhitespace(e, r) && '=' !== e[r]; ) { + t += e[r]; + ++r; + } + skipWs(); + if ('=' !== e[r]) return null; + ++r; + skipWs(); + const n = e[r]; + if ('"' !== n && "'" !== n) return null; + const s = e.indexOf(n, ++r); + if (s < 0) return null; + i = e.substring(r, s); + a.push({ name: t, value: this._resolveEntities(i) }); + r = s + 1; + skipWs(); + } + return { name: i, attributes: a, parsed: r - t }; + } + _parseProcessingInstruction(e, t) { + let a = t; + for ( + ; + a < e.length && !isWhitespace(e, a) && '>' !== e[a] && '?' !== e[a] && '/' !== e[a]; + + ) + ++a; + const r = e.substring(t, a); + !(function skipWs() { + for (; a < e.length && isWhitespace(e, a); ) ++a; + })(); + const i = a; + for (; a < e.length && ('?' !== e[a] || '>' !== e[a + 1]); ) ++a; + return { name: r, value: e.substring(i, a), parsed: a - t }; + } + parseXml(e) { + let t = 0; + for (; t < e.length; ) { + let a = t; + if ('<' === e[t]) { + ++a; + let t; + switch (e[a]) { + case '/': + ++a; + t = e.indexOf('>', a); + if (t < 0) { + this.onError(i.UnterminatedElement); + return; + } + this.onEndElement(e.substring(a, t)); + a = t + 1; + break; + case '?': + ++a; + const r = this._parseProcessingInstruction(e, a); + if ('?>' !== e.substring(a + r.parsed, a + r.parsed + 2)) { + this.onError(i.UnterminatedXmlDeclaration); + return; + } + this.onPi(r.name, r.value); + a += r.parsed + 2; + break; + case '!': + if ('--' === e.substring(a + 1, a + 3)) { + t = e.indexOf('--\x3e', a + 3); + if (t < 0) { + this.onError(i.UnterminatedComment); + return; + } + this.onComment(e.substring(a + 3, t)); + a = t + 3; + } else if ('[CDATA[' === e.substring(a + 1, a + 8)) { + t = e.indexOf(']]>', a + 8); + if (t < 0) { + this.onError(i.UnterminatedCdat); + return; + } + this.onCdata(e.substring(a + 8, t)); + a = t + 3; + } else { + if ('DOCTYPE' !== e.substring(a + 1, a + 8)) { + this.onError(i.MalformedElement); + return; + } + { + const r = e.indexOf('[', a + 8); + let n = !1; + t = e.indexOf('>', a + 8); + if (t < 0) { + this.onError(i.UnterminatedDoctypeDeclaration); + return; + } + if (r > 0 && t > r) { + t = e.indexOf(']>', a + 8); + if (t < 0) { + this.onError(i.UnterminatedDoctypeDeclaration); + return; + } + n = !0; + } + const s = e.substring(a + 8, t + (n ? 1 : 0)); + this.onDoctype(s); + a = t + (n ? 2 : 1); + } + } + break; + default: + const n = this._parseContent(e, a); + if (null === n) { + this.onError(i.MalformedElement); + return; + } + let s = !1; + if ('/>' === e.substring(a + n.parsed, a + n.parsed + 2)) s = !0; + else if ('>' !== e.substring(a + n.parsed, a + n.parsed + 1)) { + this.onError(i.UnterminatedElement); + return; + } + this.onBeginElement(n.name, n.attributes, s); + a += n.parsed + (s ? 2 : 1); + } + } else { + for (; a < e.length && '<' !== e[a]; ) a++; + const r = e.substring(t, a); + this.onText(this._resolveEntities(r)); + } + t = a; + } + } + onResolveEntity(e) { + return `&${e};`; + } + onPi(e, t) {} + onComment(e) {} + onCdata(e) {} + onDoctype(e) {} + onText(e) {} + onBeginElement(e, t, a) {} + onEndElement(e) {} + onError(e) {} + } + t.XMLParserBase = XMLParserBase; + class SimpleDOMNode { + constructor(e, t) { + this.nodeName = e; + this.nodeValue = t; + Object.defineProperty(this, 'parentNode', { value: null, writable: !0 }); + } + get firstChild() { + return this.childNodes && this.childNodes[0]; + } + get nextSibling() { + const e = this.parentNode.childNodes; + if (!e) return; + const t = e.indexOf(this); + return -1 !== t ? e[t + 1] : void 0; + } + get textContent() { + return this.childNodes + ? this.childNodes + .map(function (e) { + return e.textContent; + }) + .join('') + : this.nodeValue || ''; + } + get children() { + return this.childNodes || []; + } + hasChildNodes() { + return this.childNodes && this.childNodes.length > 0; + } + searchNode(e, t) { + if (t >= e.length) return this; + const a = e[t], + r = []; + let i = this; + for (;;) { + if (a.name === i.nodeName) { + if (0 !== a.pos) { + if (0 === r.length) return null; + { + const [n] = r.pop(); + let s = 0; + for (const r of n.childNodes) + if (a.name === r.nodeName) { + if (s === a.pos) return r.searchNode(e, t + 1); + s++; + } + return i.searchNode(e, t + 1); + } + } + { + const a = i.searchNode(e, t + 1); + if (null !== a) return a; + } + } + if (i.childNodes && 0 !== i.childNodes.length) { + r.push([i, 0]); + i = i.childNodes[0]; + } else { + if (0 === r.length) return null; + for (; 0 !== r.length; ) { + const [e, t] = r.pop(), + a = t + 1; + if (a < e.childNodes.length) { + r.push([e, a]); + i = e.childNodes[a]; + break; + } + } + if (0 === r.length) return null; + } + } + } + dump(e) { + if ('#text' !== this.nodeName) { + e.push(`<${this.nodeName}`); + if (this.attributes) + for (const t of this.attributes) + e.push(` ${t.name}="${(0, r.encodeToXmlString)(t.value)}"`); + if (this.hasChildNodes()) { + e.push('>'); + for (const t of this.childNodes) t.dump(e); + e.push(``); + } else + this.nodeValue + ? e.push(`>${(0, r.encodeToXmlString)(this.nodeValue)}`) + : e.push('/>'); + } else e.push((0, r.encodeToXmlString)(this.nodeValue)); + } + } + t.SimpleDOMNode = SimpleDOMNode; + t.SimpleXMLParser = class SimpleXMLParser extends XMLParserBase { + constructor({ hasAttributes: e = !1, lowerCaseName: t = !1 }) { + super(); + this._currentFragment = null; + this._stack = null; + this._errorCode = i.NoError; + this._hasAttributes = e; + this._lowerCaseName = t; + } + parseFromString(e) { + this._currentFragment = []; + this._stack = []; + this._errorCode = i.NoError; + this.parseXml(e); + if (this._errorCode !== i.NoError) return; + const [t] = this._currentFragment; + return t ? { documentElement: t } : void 0; + } + onText(e) { + if ( + (function isWhitespaceString(e) { + for (let t = 0, a = e.length; t < a; t++) if (!isWhitespace(e, t)) return !1; + return !0; + })(e) + ) + return; + const t = new SimpleDOMNode('#text', e); + this._currentFragment.push(t); + } + onCdata(e) { + const t = new SimpleDOMNode('#text', e); + this._currentFragment.push(t); + } + onBeginElement(e, t, a) { + this._lowerCaseName && (e = e.toLowerCase()); + const r = new SimpleDOMNode(e); + r.childNodes = []; + this._hasAttributes && (r.attributes = t); + this._currentFragment.push(r); + if (!a) { + this._stack.push(this._currentFragment); + this._currentFragment = r.childNodes; + } + } + onEndElement(e) { + this._currentFragment = this._stack.pop() || []; + const t = this._currentFragment.at(-1); + if (!t) return null; + for (const e of t.childNodes) e.parentNode = t; + return t; + } + onError(e) { + this._errorCode = e; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.calculateSHA256 = + t.calculateMD5 = + t.PDF20 = + t.PDF17 = + t.CipherTransformFactory = + t.ARCFourCipher = + t.AES256Cipher = + t.AES128Cipher = + void 0; + t.calculateSHA384 = calculateSHA384; + t.calculateSHA512 = void 0; + var r = a(2), + i = a(4), + n = a(68); + class ARCFourCipher { + constructor(e) { + this.a = 0; + this.b = 0; + const t = new Uint8Array(256), + a = e.length; + for (let e = 0; e < 256; ++e) t[e] = e; + for (let r = 0, i = 0; r < 256; ++r) { + const n = t[r]; + i = (i + n + e[r % a]) & 255; + t[r] = t[i]; + t[i] = n; + } + this.s = t; + } + encryptBlock(e) { + let t = this.a, + a = this.b; + const r = this.s, + i = e.length, + n = new Uint8Array(i); + for (let s = 0; s < i; ++s) { + t = (t + 1) & 255; + const i = r[t]; + a = (a + i) & 255; + const o = r[a]; + r[t] = o; + r[a] = i; + n[s] = e[s] ^ r[(i + o) & 255]; + } + this.a = t; + this.b = a; + return n; + } + decryptBlock(e) { + return this.encryptBlock(e); + } + encrypt(e) { + return this.encryptBlock(e); + } + } + t.ARCFourCipher = ARCFourCipher; + const s = (function calculateMD5Closure() { + const e = 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, + ]), + t = 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, + ]); + return function hash(a, r, i) { + let n = 1732584193, + s = -271733879, + o = -1732584194, + c = 271733878; + const l = (i + 72) & -64, + h = new Uint8Array(l); + let u, d; + for (u = 0; u < i; ++u) h[u] = a[r++]; + h[u++] = 128; + const f = l - 8; + for (; u < f; ) h[u++] = 0; + h[u++] = (i << 3) & 255; + h[u++] = (i >> 5) & 255; + h[u++] = (i >> 13) & 255; + h[u++] = (i >> 21) & 255; + h[u++] = (i >>> 29) & 255; + h[u++] = 0; + h[u++] = 0; + h[u++] = 0; + const g = new Int32Array(16); + for (u = 0; u < l; ) { + for (d = 0; d < 16; ++d, u += 4) + g[d] = h[u] | (h[u + 1] << 8) | (h[u + 2] << 16) | (h[u + 3] << 24); + let a, + r, + i = n, + l = s, + f = o, + p = c; + for (d = 0; d < 64; ++d) { + if (d < 16) { + a = (l & f) | (~l & p); + r = d; + } else if (d < 32) { + a = (p & l) | (~p & f); + r = (5 * d + 1) & 15; + } else if (d < 48) { + a = l ^ f ^ p; + r = (3 * d + 5) & 15; + } else { + a = f ^ (l | ~p); + r = (7 * d) & 15; + } + const n = p, + s = (i + a + t[d] + g[r]) | 0, + o = e[d]; + p = f; + f = l; + l = (l + ((s << o) | (s >>> (32 - o)))) | 0; + i = n; + } + n = (n + i) | 0; + s = (s + l) | 0; + o = (o + f) | 0; + c = (c + p) | 0; + } + return new Uint8Array([ + 255 & n, + (n >> 8) & 255, + (n >> 16) & 255, + (n >>> 24) & 255, + 255 & s, + (s >> 8) & 255, + (s >> 16) & 255, + (s >>> 24) & 255, + 255 & o, + (o >> 8) & 255, + (o >> 16) & 255, + (o >>> 24) & 255, + 255 & c, + (c >> 8) & 255, + (c >> 16) & 255, + (c >>> 24) & 255, + ]); + }; + })(); + t.calculateMD5 = s; + class Word64 { + constructor(e, t) { + this.high = 0 | e; + this.low = 0 | t; + } + and(e) { + this.high &= e.high; + this.low &= e.low; + } + xor(e) { + this.high ^= e.high; + this.low ^= e.low; + } + or(e) { + this.high |= e.high; + this.low |= e.low; + } + shiftRight(e) { + if (e >= 32) { + this.low = (this.high >>> (e - 32)) | 0; + this.high = 0; + } else { + this.low = (this.low >>> e) | (this.high << (32 - e)); + this.high = (this.high >>> e) | 0; + } + } + shiftLeft(e) { + if (e >= 32) { + this.high = this.low << (e - 32); + this.low = 0; + } else { + this.high = (this.high << e) | (this.low >>> (32 - e)); + this.low <<= e; + } + } + rotateRight(e) { + let t, a; + if (32 & e) { + a = this.low; + t = this.high; + } else { + t = this.low; + a = this.high; + } + e &= 31; + this.low = (t >>> e) | (a << (32 - e)); + this.high = (a >>> e) | (t << (32 - e)); + } + not() { + this.high = ~this.high; + this.low = ~this.low; + } + add(e) { + const t = (this.low >>> 0) + (e.low >>> 0); + let a = (this.high >>> 0) + (e.high >>> 0); + t > 4294967295 && (a += 1); + this.low = 0 | t; + this.high = 0 | a; + } + copyTo(e, t) { + e[t] = (this.high >>> 24) & 255; + e[t + 1] = (this.high >> 16) & 255; + e[t + 2] = (this.high >> 8) & 255; + e[t + 3] = 255 & this.high; + e[t + 4] = (this.low >>> 24) & 255; + e[t + 5] = (this.low >> 16) & 255; + e[t + 6] = (this.low >> 8) & 255; + e[t + 7] = 255 & this.low; + } + assign(e) { + this.high = e.high; + this.low = e.low; + } + } + const o = (function calculateSHA256Closure() { + function rotr(e, t) { + return (e >>> t) | (e << (32 - t)); + } + function ch(e, t, a) { + return (e & t) ^ (~e & a); + } + function maj(e, t, a) { + return (e & t) ^ (e & a) ^ (t & a); + } + function sigma(e) { + return rotr(e, 2) ^ rotr(e, 13) ^ rotr(e, 22); + } + function sigmaPrime(e) { + return rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25); + } + function littleSigma(e) { + return rotr(e, 7) ^ rotr(e, 18) ^ (e >>> 3); + } + const e = [ + 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, + ]; + return function hash(t, a, r) { + let i = 1779033703, + n = 3144134277, + s = 1013904242, + o = 2773480762, + c = 1359893119, + l = 2600822924, + h = 528734635, + u = 1541459225; + const d = 64 * Math.ceil((r + 9) / 64), + f = new Uint8Array(d); + let g, p; + for (g = 0; g < r; ++g) f[g] = t[a++]; + f[g++] = 128; + const m = d - 8; + for (; g < m; ) f[g++] = 0; + f[g++] = 0; + f[g++] = 0; + f[g++] = 0; + f[g++] = (r >>> 29) & 255; + f[g++] = (r >> 21) & 255; + f[g++] = (r >> 13) & 255; + f[g++] = (r >> 5) & 255; + f[g++] = (r << 3) & 255; + const b = new Uint32Array(64); + for (g = 0; g < d; ) { + for (p = 0; p < 16; ++p) { + b[p] = (f[g] << 24) | (f[g + 1] << 16) | (f[g + 2] << 8) | f[g + 3]; + g += 4; + } + for (p = 16; p < 64; ++p) + b[p] = + ((rotr((y = b[p - 2]), 17) ^ rotr(y, 19) ^ (y >>> 10)) + + b[p - 7] + + littleSigma(b[p - 15]) + + b[p - 16]) | + 0; + let t, + a, + r = i, + d = n, + m = s, + w = o, + S = c, + x = l, + C = h, + k = u; + for (p = 0; p < 64; ++p) { + t = k + sigmaPrime(S) + ch(S, x, C) + e[p] + b[p]; + a = sigma(r) + maj(r, d, m); + k = C; + C = x; + x = S; + S = (w + t) | 0; + w = m; + m = d; + d = r; + r = (t + a) | 0; + } + i = (i + r) | 0; + n = (n + d) | 0; + s = (s + m) | 0; + o = (o + w) | 0; + c = (c + S) | 0; + l = (l + x) | 0; + h = (h + C) | 0; + u = (u + k) | 0; + } + var y; + return new Uint8Array([ + (i >> 24) & 255, + (i >> 16) & 255, + (i >> 8) & 255, + 255 & i, + (n >> 24) & 255, + (n >> 16) & 255, + (n >> 8) & 255, + 255 & n, + (s >> 24) & 255, + (s >> 16) & 255, + (s >> 8) & 255, + 255 & s, + (o >> 24) & 255, + (o >> 16) & 255, + (o >> 8) & 255, + 255 & o, + (c >> 24) & 255, + (c >> 16) & 255, + (c >> 8) & 255, + 255 & c, + (l >> 24) & 255, + (l >> 16) & 255, + (l >> 8) & 255, + 255 & l, + (h >> 24) & 255, + (h >> 16) & 255, + (h >> 8) & 255, + 255 & h, + (u >> 24) & 255, + (u >> 16) & 255, + (u >> 8) & 255, + 255 & u, + ]); + }; + })(); + t.calculateSHA256 = o; + const c = (function calculateSHA512Closure() { + function ch(e, t, a, r, i) { + e.assign(t); + e.and(a); + i.assign(t); + i.not(); + i.and(r); + e.xor(i); + } + function maj(e, t, a, r, i) { + e.assign(t); + e.and(a); + i.assign(t); + i.and(r); + e.xor(i); + i.assign(a); + i.and(r); + e.xor(i); + } + function sigma(e, t, a) { + e.assign(t); + e.rotateRight(28); + a.assign(t); + a.rotateRight(34); + e.xor(a); + a.assign(t); + a.rotateRight(39); + e.xor(a); + } + function sigmaPrime(e, t, a) { + e.assign(t); + e.rotateRight(14); + a.assign(t); + a.rotateRight(18); + e.xor(a); + a.assign(t); + a.rotateRight(41); + e.xor(a); + } + function littleSigma(e, t, a) { + e.assign(t); + e.rotateRight(1); + a.assign(t); + a.rotateRight(8); + e.xor(a); + a.assign(t); + a.shiftRight(7); + e.xor(a); + } + function littleSigmaPrime(e, t, a) { + e.assign(t); + e.rotateRight(19); + a.assign(t); + a.rotateRight(61); + e.xor(a); + a.assign(t); + a.shiftRight(6); + e.xor(a); + } + const e = [ + new Word64(1116352408, 3609767458), + new Word64(1899447441, 602891725), + new Word64(3049323471, 3964484399), + new Word64(3921009573, 2173295548), + new Word64(961987163, 4081628472), + new Word64(1508970993, 3053834265), + new Word64(2453635748, 2937671579), + new Word64(2870763221, 3664609560), + new Word64(3624381080, 2734883394), + new Word64(310598401, 1164996542), + new Word64(607225278, 1323610764), + new Word64(1426881987, 3590304994), + new Word64(1925078388, 4068182383), + new Word64(2162078206, 991336113), + new Word64(2614888103, 633803317), + new Word64(3248222580, 3479774868), + new Word64(3835390401, 2666613458), + new Word64(4022224774, 944711139), + new Word64(264347078, 2341262773), + new Word64(604807628, 2007800933), + new Word64(770255983, 1495990901), + new Word64(1249150122, 1856431235), + new Word64(1555081692, 3175218132), + new Word64(1996064986, 2198950837), + new Word64(2554220882, 3999719339), + new Word64(2821834349, 766784016), + new Word64(2952996808, 2566594879), + new Word64(3210313671, 3203337956), + new Word64(3336571891, 1034457026), + new Word64(3584528711, 2466948901), + new Word64(113926993, 3758326383), + new Word64(338241895, 168717936), + new Word64(666307205, 1188179964), + new Word64(773529912, 1546045734), + new Word64(1294757372, 1522805485), + new Word64(1396182291, 2643833823), + new Word64(1695183700, 2343527390), + new Word64(1986661051, 1014477480), + new Word64(2177026350, 1206759142), + new Word64(2456956037, 344077627), + new Word64(2730485921, 1290863460), + new Word64(2820302411, 3158454273), + new Word64(3259730800, 3505952657), + new Word64(3345764771, 106217008), + new Word64(3516065817, 3606008344), + new Word64(3600352804, 1432725776), + new Word64(4094571909, 1467031594), + new Word64(275423344, 851169720), + new Word64(430227734, 3100823752), + new Word64(506948616, 1363258195), + new Word64(659060556, 3750685593), + new Word64(883997877, 3785050280), + new Word64(958139571, 3318307427), + new Word64(1322822218, 3812723403), + new Word64(1537002063, 2003034995), + new Word64(1747873779, 3602036899), + new Word64(1955562222, 1575990012), + new Word64(2024104815, 1125592928), + new Word64(2227730452, 2716904306), + new Word64(2361852424, 442776044), + new Word64(2428436474, 593698344), + new Word64(2756734187, 3733110249), + new Word64(3204031479, 2999351573), + new Word64(3329325298, 3815920427), + new Word64(3391569614, 3928383900), + new Word64(3515267271, 566280711), + new Word64(3940187606, 3454069534), + new Word64(4118630271, 4000239992), + new Word64(116418474, 1914138554), + new Word64(174292421, 2731055270), + new Word64(289380356, 3203993006), + new Word64(460393269, 320620315), + new Word64(685471733, 587496836), + new Word64(852142971, 1086792851), + new Word64(1017036298, 365543100), + new Word64(1126000580, 2618297676), + new Word64(1288033470, 3409855158), + new Word64(1501505948, 4234509866), + new Word64(1607167915, 987167468), + new Word64(1816402316, 1246189591), + ]; + return function hash(t, a, r, i = !1) { + let n, s, o, c, l, h, u, d; + if (i) { + n = new Word64(3418070365, 3238371032); + s = new Word64(1654270250, 914150663); + o = new Word64(2438529370, 812702999); + c = new Word64(355462360, 4144912697); + l = new Word64(1731405415, 4290775857); + h = new Word64(2394180231, 1750603025); + u = new Word64(3675008525, 1694076839); + d = new Word64(1203062813, 3204075428); + } else { + n = new Word64(1779033703, 4089235720); + s = new Word64(3144134277, 2227873595); + o = new Word64(1013904242, 4271175723); + c = new Word64(2773480762, 1595750129); + l = new Word64(1359893119, 2917565137); + h = new Word64(2600822924, 725511199); + u = new Word64(528734635, 4215389547); + d = new Word64(1541459225, 327033209); + } + const f = 128 * Math.ceil((r + 17) / 128), + g = new Uint8Array(f); + let p, m; + for (p = 0; p < r; ++p) g[p] = t[a++]; + g[p++] = 128; + const b = f - 16; + for (; p < b; ) g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = 0; + g[p++] = (r >>> 29) & 255; + g[p++] = (r >> 21) & 255; + g[p++] = (r >> 13) & 255; + g[p++] = (r >> 5) & 255; + g[p++] = (r << 3) & 255; + const y = new Array(80); + for (p = 0; p < 80; p++) y[p] = new Word64(0, 0); + let w = new Word64(0, 0), + S = new Word64(0, 0), + x = new Word64(0, 0), + C = new Word64(0, 0), + k = new Word64(0, 0), + v = new Word64(0, 0), + F = new Word64(0, 0), + O = new Word64(0, 0); + const T = new Word64(0, 0), + M = new Word64(0, 0), + E = new Word64(0, 0), + D = new Word64(0, 0); + let N, R; + for (p = 0; p < f; ) { + for (m = 0; m < 16; ++m) { + y[m].high = (g[p] << 24) | (g[p + 1] << 16) | (g[p + 2] << 8) | g[p + 3]; + y[m].low = (g[p + 4] << 24) | (g[p + 5] << 16) | (g[p + 6] << 8) | g[p + 7]; + p += 8; + } + for (m = 16; m < 80; ++m) { + N = y[m]; + littleSigmaPrime(N, y[m - 2], D); + N.add(y[m - 7]); + littleSigma(E, y[m - 15], D); + N.add(E); + N.add(y[m - 16]); + } + w.assign(n); + S.assign(s); + x.assign(o); + C.assign(c); + k.assign(l); + v.assign(h); + F.assign(u); + O.assign(d); + for (m = 0; m < 80; ++m) { + T.assign(O); + sigmaPrime(E, k, D); + T.add(E); + ch(E, k, v, F, D); + T.add(E); + T.add(e[m]); + T.add(y[m]); + sigma(M, w, D); + maj(E, w, S, x, D); + M.add(E); + N = O; + O = F; + F = v; + v = k; + C.add(T); + k = C; + C = x; + x = S; + S = w; + N.assign(T); + N.add(M); + w = N; + } + n.add(w); + s.add(S); + o.add(x); + c.add(C); + l.add(k); + h.add(v); + u.add(F); + d.add(O); + } + if (i) { + R = new Uint8Array(48); + n.copyTo(R, 0); + s.copyTo(R, 8); + o.copyTo(R, 16); + c.copyTo(R, 24); + l.copyTo(R, 32); + h.copyTo(R, 40); + } else { + R = new Uint8Array(64); + n.copyTo(R, 0); + s.copyTo(R, 8); + o.copyTo(R, 16); + c.copyTo(R, 24); + l.copyTo(R, 32); + h.copyTo(R, 40); + u.copyTo(R, 48); + d.copyTo(R, 56); + } + return R; + }; + })(); + t.calculateSHA512 = c; + function calculateSHA384(e, t, a) { + return c(e, t, a, !0); + } + class NullCipher { + decryptBlock(e) { + return e; + } + encrypt(e) { + return e; + } + } + class AESBaseCipher { + constructor() { + this.constructor === AESBaseCipher && + (0, r.unreachable)('Cannot initialize AESBaseCipher.'); + this._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, + ]); + this._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, + ]); + this._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, + ]); + this._mixCol = new Uint8Array(256); + for (let e = 0; e < 256; e++) this._mixCol[e] = e < 128 ? e << 1 : (e << 1) ^ 27; + this.buffer = new Uint8Array(16); + this.bufferPosition = 0; + } + _expandKey(e) { + (0, r.unreachable)('Cannot call `_expandKey` on the base class'); + } + _decrypt(e, t) { + let a, r, i; + const n = new Uint8Array(16); + n.set(e); + for (let e = 0, a = this._keySize; e < 16; ++e, ++a) n[e] ^= t[a]; + for (let e = this._cyclesOfRepetition - 1; e >= 1; --e) { + a = n[13]; + n[13] = n[9]; + n[9] = n[5]; + n[5] = n[1]; + n[1] = a; + a = n[14]; + r = n[10]; + n[14] = n[6]; + n[10] = n[2]; + n[6] = a; + n[2] = r; + a = n[15]; + r = n[11]; + i = n[7]; + n[15] = n[3]; + n[11] = a; + n[7] = r; + n[3] = i; + for (let e = 0; e < 16; ++e) n[e] = this._inv_s[n[e]]; + for (let a = 0, r = 16 * e; a < 16; ++a, ++r) n[a] ^= t[r]; + for (let e = 0; e < 16; e += 4) { + const t = this._mix[n[e]], + r = this._mix[n[e + 1]], + i = this._mix[n[e + 2]], + s = this._mix[n[e + 3]]; + a = t ^ (r >>> 8) ^ (r << 24) ^ (i >>> 16) ^ (i << 16) ^ (s >>> 24) ^ (s << 8); + n[e] = (a >>> 24) & 255; + n[e + 1] = (a >> 16) & 255; + n[e + 2] = (a >> 8) & 255; + n[e + 3] = 255 & a; + } + } + a = n[13]; + n[13] = n[9]; + n[9] = n[5]; + n[5] = n[1]; + n[1] = a; + a = n[14]; + r = n[10]; + n[14] = n[6]; + n[10] = n[2]; + n[6] = a; + n[2] = r; + a = n[15]; + r = n[11]; + i = n[7]; + n[15] = n[3]; + n[11] = a; + n[7] = r; + n[3] = i; + for (let e = 0; e < 16; ++e) { + n[e] = this._inv_s[n[e]]; + n[e] ^= t[e]; + } + return n; + } + _encrypt(e, t) { + const a = this._s; + let r, i, n; + const s = new Uint8Array(16); + s.set(e); + for (let e = 0; e < 16; ++e) s[e] ^= t[e]; + for (let e = 1; e < this._cyclesOfRepetition; e++) { + for (let e = 0; e < 16; ++e) s[e] = a[s[e]]; + n = s[1]; + s[1] = s[5]; + s[5] = s[9]; + s[9] = s[13]; + s[13] = n; + n = s[2]; + i = s[6]; + s[2] = s[10]; + s[6] = s[14]; + s[10] = n; + s[14] = i; + n = s[3]; + i = s[7]; + r = s[11]; + s[3] = s[15]; + s[7] = n; + s[11] = i; + s[15] = r; + for (let e = 0; e < 16; e += 4) { + const t = s[e + 0], + a = s[e + 1], + i = s[e + 2], + n = s[e + 3]; + r = t ^ a ^ i ^ n; + s[e + 0] ^= r ^ this._mixCol[t ^ a]; + s[e + 1] ^= r ^ this._mixCol[a ^ i]; + s[e + 2] ^= r ^ this._mixCol[i ^ n]; + s[e + 3] ^= r ^ this._mixCol[n ^ t]; + } + for (let a = 0, r = 16 * e; a < 16; ++a, ++r) s[a] ^= t[r]; + } + for (let e = 0; e < 16; ++e) s[e] = a[s[e]]; + n = s[1]; + s[1] = s[5]; + s[5] = s[9]; + s[9] = s[13]; + s[13] = n; + n = s[2]; + i = s[6]; + s[2] = s[10]; + s[6] = s[14]; + s[10] = n; + s[14] = i; + n = s[3]; + i = s[7]; + r = s[11]; + s[3] = s[15]; + s[7] = n; + s[11] = i; + s[15] = r; + for (let e = 0, a = this._keySize; e < 16; ++e, ++a) s[e] ^= t[a]; + return s; + } + _decryptBlock2(e, t) { + const a = e.length; + let r = this.buffer, + i = this.bufferPosition; + const n = []; + let s = this.iv; + for (let t = 0; t < a; ++t) { + r[i] = e[t]; + ++i; + if (i < 16) continue; + const a = this._decrypt(r, this._key); + for (let e = 0; e < 16; ++e) a[e] ^= s[e]; + s = r; + n.push(a); + r = new Uint8Array(16); + i = 0; + } + this.buffer = r; + this.bufferLength = i; + this.iv = s; + if (0 === n.length) return new Uint8Array(0); + let o = 16 * n.length; + if (t) { + const e = n.at(-1); + let t = e[15]; + if (t <= 16) { + for (let a = 15, r = 16 - t; a >= r; --a) + if (e[a] !== t) { + t = 0; + break; + } + o -= t; + n[n.length - 1] = e.subarray(0, 16 - t); + } + } + const c = new Uint8Array(o); + for (let e = 0, t = 0, a = n.length; e < a; ++e, t += 16) c.set(n[e], t); + return c; + } + decryptBlock(e, t, a = null) { + const r = e.length, + i = this.buffer; + let n = this.bufferPosition; + if (a) this.iv = a; + else { + for (let t = 0; n < 16 && t < r; ++t, ++n) i[n] = e[t]; + if (n < 16) { + this.bufferLength = n; + return new Uint8Array(0); + } + this.iv = i; + e = e.subarray(16); + } + this.buffer = new Uint8Array(16); + this.bufferLength = 0; + this.decryptBlock = this._decryptBlock2; + return this.decryptBlock(e, t); + } + encrypt(e, t) { + const a = e.length; + let r = this.buffer, + i = this.bufferPosition; + const n = []; + t || (t = new Uint8Array(16)); + for (let s = 0; s < a; ++s) { + r[i] = e[s]; + ++i; + if (i < 16) continue; + for (let e = 0; e < 16; ++e) r[e] ^= t[e]; + const a = this._encrypt(r, this._key); + t = a; + n.push(a); + r = new Uint8Array(16); + i = 0; + } + this.buffer = r; + this.bufferLength = i; + this.iv = t; + if (0 === n.length) return new Uint8Array(0); + const s = 16 * n.length, + o = new Uint8Array(s); + for (let e = 0, t = 0, a = n.length; e < a; ++e, t += 16) o.set(n[e], t); + return o; + } + } + class AES128Cipher extends AESBaseCipher { + constructor(e) { + super(); + this._cyclesOfRepetition = 10; + this._keySize = 160; + this._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, + ]); + this._key = this._expandKey(e); + } + _expandKey(e) { + const t = this._s, + a = this._rcon, + r = new Uint8Array(176); + r.set(e); + for (let e = 16, i = 1; e < 176; ++i) { + let n = r[e - 3], + s = r[e - 2], + o = r[e - 1], + c = r[e - 4]; + n = t[n]; + s = t[s]; + o = t[o]; + c = t[c]; + n ^= a[i]; + for (let t = 0; t < 4; ++t) { + r[e] = n ^= r[e - 16]; + e++; + r[e] = s ^= r[e - 16]; + e++; + r[e] = o ^= r[e - 16]; + e++; + r[e] = c ^= r[e - 16]; + e++; + } + } + return r; + } + } + t.AES128Cipher = AES128Cipher; + class AES256Cipher extends AESBaseCipher { + constructor(e) { + super(); + this._cyclesOfRepetition = 14; + this._keySize = 224; + this._key = this._expandKey(e); + } + _expandKey(e) { + const t = this._s, + a = new Uint8Array(240); + a.set(e); + let r, + i, + n, + s, + o = 1; + for (let e = 32, c = 1; e < 240; ++c) { + if (e % 32 == 16) { + r = t[r]; + i = t[i]; + n = t[n]; + s = t[s]; + } else if (e % 32 == 0) { + r = a[e - 3]; + i = a[e - 2]; + n = a[e - 1]; + s = a[e - 4]; + r = t[r]; + i = t[i]; + n = t[n]; + s = t[s]; + r ^= o; + (o <<= 1) >= 256 && (o = 255 & (27 ^ o)); + } + for (let t = 0; t < 4; ++t) { + a[e] = r ^= a[e - 32]; + e++; + a[e] = i ^= a[e - 32]; + e++; + a[e] = n ^= a[e - 32]; + e++; + a[e] = s ^= a[e - 32]; + e++; + } + } + return a; + } + } + t.AES256Cipher = AES256Cipher; + class PDF17 { + checkOwnerPassword(e, t, a, i) { + const n = new Uint8Array(e.length + 56); + n.set(e, 0); + n.set(t, e.length); + n.set(a, e.length + t.length); + const s = o(n, 0, n.length); + return (0, r.isArrayEqual)(s, i); + } + checkUserPassword(e, t, a) { + const i = new Uint8Array(e.length + 8); + i.set(e, 0); + i.set(t, e.length); + const n = o(i, 0, i.length); + return (0, r.isArrayEqual)(n, a); + } + getOwnerKey(e, t, a, r) { + const i = new Uint8Array(e.length + 56); + i.set(e, 0); + i.set(t, e.length); + i.set(a, e.length + t.length); + const n = o(i, 0, i.length); + return new AES256Cipher(n).decryptBlock(r, !1, new Uint8Array(16)); + } + getUserKey(e, t, a) { + const r = new Uint8Array(e.length + 8); + r.set(e, 0); + r.set(t, e.length); + const i = o(r, 0, r.length); + return new AES256Cipher(i).decryptBlock(a, !1, new Uint8Array(16)); + } + } + t.PDF17 = PDF17; + class PDF20 { + _hash(e, t, a) { + let r = o(t, 0, t.length).subarray(0, 32), + i = [0], + n = 0; + for (; n < 64 || i.at(-1) > n - 32; ) { + const t = e.length + r.length + a.length, + s = new Uint8Array(t); + let l = 0; + s.set(e, l); + l += e.length; + s.set(r, l); + l += r.length; + s.set(a, l); + const h = new Uint8Array(64 * t); + for (let e = 0, a = 0; e < 64; e++, a += t) h.set(s, a); + i = new AES128Cipher(r.subarray(0, 16)).encrypt(h, r.subarray(16, 32)); + const u = i.slice(0, 16).reduce((e, t) => e + t, 0) % 3; + 0 === u + ? (r = o(i, 0, i.length)) + : 1 === u + ? (r = calculateSHA384(i, 0, i.length)) + : 2 === u && (r = c(i, 0, i.length)); + n++; + } + return r.subarray(0, 32); + } + checkOwnerPassword(e, t, a, i) { + const n = new Uint8Array(e.length + 56); + n.set(e, 0); + n.set(t, e.length); + n.set(a, e.length + t.length); + const s = this._hash(e, n, a); + return (0, r.isArrayEqual)(s, i); + } + checkUserPassword(e, t, a) { + const i = new Uint8Array(e.length + 8); + i.set(e, 0); + i.set(t, e.length); + const n = this._hash(e, i, []); + return (0, r.isArrayEqual)(n, a); + } + getOwnerKey(e, t, a, r) { + const i = new Uint8Array(e.length + 56); + i.set(e, 0); + i.set(t, e.length); + i.set(a, e.length + t.length); + const n = this._hash(e, i, a); + return new AES256Cipher(n).decryptBlock(r, !1, new Uint8Array(16)); + } + getUserKey(e, t, a) { + const r = new Uint8Array(e.length + 8); + r.set(e, 0); + r.set(t, e.length); + const i = this._hash(e, r, []); + return new AES256Cipher(i).decryptBlock(a, !1, new Uint8Array(16)); + } + } + t.PDF20 = PDF20; + class CipherTransform { + constructor(e, t) { + this.StringCipherConstructor = e; + this.StreamCipherConstructor = t; + } + createStream(e, t) { + const a = new this.StreamCipherConstructor(); + return new n.DecryptStream(e, t, function cipherTransformDecryptStream(e, t) { + return a.decryptBlock(e, t); + }); + } + decryptString(e) { + const t = new this.StringCipherConstructor(); + let a = (0, r.stringToBytes)(e); + a = t.decryptBlock(a, !0); + return (0, r.bytesToString)(a); + } + encryptString(e) { + const t = new this.StringCipherConstructor(); + if (t instanceof AESBaseCipher) { + const a = 16 - (e.length % 16); + e += String.fromCharCode(a).repeat(a); + const i = new Uint8Array(16); + if ('undefined' != typeof crypto) crypto.getRandomValues(i); + else for (let e = 0; e < 16; e++) i[e] = Math.floor(256 * Math.random()); + let n = (0, r.stringToBytes)(e); + n = t.encrypt(n, i); + const s = new Uint8Array(16 + n.length); + s.set(i); + s.set(n, 16); + return (0, r.bytesToString)(s); + } + let a = (0, r.stringToBytes)(e); + a = t.encrypt(a); + return (0, r.bytesToString)(a); + } + } + const l = (function CipherTransformFactoryClosure() { + const e = 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, + ]); + function prepareKeyData(t, a, r, i, n, o, c, l) { + const h = 40 + r.length + t.length, + u = new Uint8Array(h); + let d, + f, + g = 0; + if (a) { + f = Math.min(32, a.length); + for (; g < f; ++g) u[g] = a[g]; + } + d = 0; + for (; g < 32; ) u[g++] = e[d++]; + for (d = 0, f = r.length; d < f; ++d) u[g++] = r[d]; + u[g++] = 255 & n; + u[g++] = (n >> 8) & 255; + u[g++] = (n >> 16) & 255; + u[g++] = (n >>> 24) & 255; + for (d = 0, f = t.length; d < f; ++d) u[g++] = t[d]; + if (o >= 4 && !l) { + u[g++] = 255; + u[g++] = 255; + u[g++] = 255; + u[g++] = 255; + } + let p = s(u, 0, g); + const m = c >> 3; + if (o >= 3) for (d = 0; d < 50; ++d) p = s(p, 0, m); + const b = p.subarray(0, m); + let y, w; + if (o >= 3) { + for (g = 0; g < 32; ++g) u[g] = e[g]; + for (d = 0, f = t.length; d < f; ++d) u[g++] = t[d]; + y = new ARCFourCipher(b); + w = y.encryptBlock(s(u, 0, g)); + f = b.length; + const a = new Uint8Array(f); + for (d = 1; d <= 19; ++d) { + for (let e = 0; e < f; ++e) a[e] = b[e] ^ d; + y = new ARCFourCipher(a); + w = y.encryptBlock(w); + } + for (d = 0, f = w.length; d < f; ++d) if (i[d] !== w[d]) return null; + } else { + y = new ARCFourCipher(b); + w = y.encryptBlock(e); + for (d = 0, f = w.length; d < f; ++d) if (i[d] !== w[d]) return null; + } + return b; + } + const t = i.Name.get('Identity'); + function buildObjectKey(e, t, a, r = !1) { + const i = new Uint8Array(a.length + 9), + n = a.length; + let o; + for (o = 0; o < n; ++o) i[o] = a[o]; + i[o++] = 255 & e; + i[o++] = (e >> 8) & 255; + i[o++] = (e >> 16) & 255; + i[o++] = 255 & t; + i[o++] = (t >> 8) & 255; + if (r) { + i[o++] = 115; + i[o++] = 65; + i[o++] = 108; + i[o++] = 84; + } + return s(i, 0, o).subarray(0, Math.min(a.length + 5, 16)); + } + function buildCipherConstructor(e, t, a, n, s) { + if (!(t instanceof i.Name)) throw new r.FormatError('Invalid crypt filter name.'); + const o = e.get(t.name); + let c; + null != o && (c = o.get('CFM')); + if (!c || 'None' === c.name) + return function cipherTransformFactoryBuildCipherConstructorNone() { + return new NullCipher(); + }; + if ('V2' === c.name) + return function cipherTransformFactoryBuildCipherConstructorV2() { + return new ARCFourCipher(buildObjectKey(a, n, s, !1)); + }; + if ('AESV2' === c.name) + return function cipherTransformFactoryBuildCipherConstructorAESV2() { + return new AES128Cipher(buildObjectKey(a, n, s, !0)); + }; + if ('AESV3' === c.name) + return function cipherTransformFactoryBuildCipherConstructorAESV3() { + return new AES256Cipher(s); + }; + throw new r.FormatError('Unknown crypto method'); + } + return class CipherTransformFactory { + constructor(a, n, o) { + const c = a.get('Filter'); + if (!(0, i.isName)(c, 'Standard')) + throw new r.FormatError('unknown encryption method'); + this.filterName = c.name; + this.dict = a; + const l = a.get('V'); + if (!Number.isInteger(l) || (1 !== l && 2 !== l && 4 !== l && 5 !== l)) + throw new r.FormatError('unsupported encryption algorithm'); + this.algorithm = l; + let h = a.get('Length'); + if (!h) + if (l <= 3) h = 40; + else { + const e = a.get('CF'), + t = a.get('StmF'); + if (e instanceof i.Dict && t instanceof i.Name) { + e.suppressEncryption = !0; + const a = e.get(t.name); + h = (a && a.get('Length')) || 128; + h < 40 && (h <<= 3); + } + } + if (!Number.isInteger(h) || h < 40 || h % 8 != 0) + throw new r.FormatError('invalid key length'); + const u = (0, r.stringToBytes)(a.get('O')), + d = (0, r.stringToBytes)(a.get('U')), + f = u.subarray(0, 32), + g = d.subarray(0, 32), + p = a.get('P'), + m = a.get('R'), + b = (4 === l || 5 === l) && !1 !== a.get('EncryptMetadata'); + this.encryptMetadata = b; + const y = (0, r.stringToBytes)(n); + let w, S; + if (o) { + if (6 === m) + try { + o = (0, r.utf8StringToString)(o); + } catch (e) { + (0, r.warn)( + 'CipherTransformFactory: Unable to convert UTF8 encoded password.', + ); + } + w = (0, r.stringToBytes)(o); + } + if (5 !== l) S = prepareKeyData(y, w, f, g, p, m, h, b); + else { + const e = u.subarray(32, 40), + t = u.subarray(40, 48), + i = d.subarray(0, 48), + n = d.subarray(32, 40), + s = d.subarray(40, 48), + o = (0, r.stringToBytes)(a.get('OE')), + c = (0, r.stringToBytes)(a.get('UE')); + (0, r.stringToBytes)(a.get('Perms')); + S = (function createEncryptionKey20(e, t, a, r, i, n, s, o, c, l, h, u) { + if (t) { + const e = Math.min(127, t.length); + t = t.subarray(0, e); + } else t = []; + let d; + d = 6 === e ? new PDF20() : new PDF17(); + return d.checkUserPassword(t, o, s) + ? d.getUserKey(t, c, h) + : t.length && d.checkOwnerPassword(t, r, n, a) + ? d.getOwnerKey(t, i, n, l) + : null; + })(m, w, f, e, t, i, g, n, s, o, c); + } + if (!S && !o) + throw new r.PasswordException( + 'No password given', + r.PasswordResponses.NEED_PASSWORD, + ); + if (!S && o) { + const t = (function decodeUserPassword(t, a, r, i) { + const n = new Uint8Array(32); + let o = 0; + const c = Math.min(32, t.length); + for (; o < c; ++o) n[o] = t[o]; + let l = 0; + for (; o < 32; ) n[o++] = e[l++]; + let h = s(n, 0, o); + const u = i >> 3; + if (r >= 3) for (l = 0; l < 50; ++l) h = s(h, 0, h.length); + let d, f; + if (r >= 3) { + f = a; + const e = new Uint8Array(u); + for (l = 19; l >= 0; l--) { + for (let t = 0; t < u; ++t) e[t] = h[t] ^ l; + d = new ARCFourCipher(e); + f = d.encryptBlock(f); + } + } else { + d = new ARCFourCipher(h.subarray(0, u)); + f = d.encryptBlock(a); + } + return f; + })(w, f, m, h); + S = prepareKeyData(y, t, f, g, p, m, h, b); + } + if (!S) + throw new r.PasswordException( + 'Incorrect Password', + r.PasswordResponses.INCORRECT_PASSWORD, + ); + this.encryptionKey = S; + if (l >= 4) { + const e = a.get('CF'); + e instanceof i.Dict && (e.suppressEncryption = !0); + this.cf = e; + this.stmf = a.get('StmF') || t; + this.strf = a.get('StrF') || t; + this.eff = a.get('EFF') || this.stmf; + } + } + createCipherTransform(e, t) { + if (4 === this.algorithm || 5 === this.algorithm) + return new CipherTransform( + buildCipherConstructor(this.cf, this.strf, e, t, this.encryptionKey), + buildCipherConstructor(this.cf, this.stmf, e, t, this.encryptionKey), + ); + const a = buildObjectKey(e, t, this.encryptionKey, !1), + r = function buildCipherCipherConstructor() { + return new ARCFourCipher(a); + }; + return new CipherTransform(r, r); + } + }; + })(); + t.CipherTransformFactory = l; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.DecryptStream = void 0; + var r = a(18); + class DecryptStream extends r.DecodeStream { + constructor(e, t, a) { + super(t); + this.str = e; + this.dict = e.dict; + this.decrypt = a; + this.nextChunk = null; + this.initialized = !1; + } + readBlock() { + let e; + if (this.initialized) e = this.nextChunk; + else { + e = this.str.getBytes(512); + this.initialized = !0; + } + if (!e || 0 === e.length) { + this.eof = !0; + return; + } + this.nextChunk = this.str.getBytes(512); + const t = this.nextChunk && this.nextChunk.length > 0; + e = (0, this.decrypt)(e, !t); + const a = this.bufferLength, + r = a + e.length; + this.ensureBuffer(r).set(e, a); + this.bufferLength = r; + } + } + t.DecryptStream = DecryptStream; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Catalog = void 0; + var r = a(3), + i = a(2), + n = a(4), + s = a(70), + o = a(5), + c = a(71), + l = a(12), + h = a(72), + u = a(59), + d = a(73), + f = a(74); + function fetchDestination(e) { + e instanceof n.Dict && (e = e.get('D')); + return Array.isArray(e) ? e : null; + } + class Catalog { + constructor(e, t) { + this.pdfManager = e; + this.xref = t; + this._catDict = t.getCatalogObj(); + if (!(this._catDict instanceof n.Dict)) + throw new i.FormatError('Catalog object is not a dictionary.'); + this.toplevelPagesDict; + this._actualNumPages = null; + this.fontCache = new n.RefSetCache(); + this.builtInCMapCache = new Map(); + this.standardFontDataCache = new Map(); + this.globalImageCache = new u.GlobalImageCache(); + this.pageKidsCountCache = new n.RefSetCache(); + this.pageIndexCache = new n.RefSetCache(); + this.nonBlendModesSet = new n.RefSet(); + } + get version() { + const e = this._catDict.get('Version'); + if (e instanceof n.Name) { + if (r.PDF_VERSION_REGEXP.test(e.name)) + return (0, i.shadow)(this, 'version', e.name); + (0, i.warn)(`Invalid PDF catalog version: ${e.name}`); + } + return (0, i.shadow)(this, 'version', null); + } + get lang() { + const e = this._catDict.get('Lang'); + return (0, i.shadow)( + this, + 'lang', + 'string' == typeof e ? (0, i.stringToPDFString)(e) : null, + ); + } + get needsRendering() { + const e = this._catDict.get('NeedsRendering'); + return (0, i.shadow)(this, 'needsRendering', 'boolean' == typeof e && e); + } + get collection() { + let e = null; + try { + const t = this._catDict.get('Collection'); + t instanceof n.Dict && t.size > 0 && (e = t); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.info)('Cannot fetch Collection entry; assuming no collection is present.'); + } + return (0, i.shadow)(this, 'collection', e); + } + get acroForm() { + let e = null; + try { + const t = this._catDict.get('AcroForm'); + t instanceof n.Dict && t.size > 0 && (e = t); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.info)('Cannot fetch AcroForm entry; assuming no forms are present.'); + } + return (0, i.shadow)(this, 'acroForm', e); + } + get acroFormRef() { + const e = this._catDict.getRaw('AcroForm'); + return (0, i.shadow)(this, 'acroFormRef', e instanceof n.Ref ? e : null); + } + get metadata() { + const e = this._catDict.getRaw('Metadata'); + if (!(e instanceof n.Ref)) return (0, i.shadow)(this, 'metadata', null); + let t = null; + try { + const a = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata), + r = this.xref.fetch(e, a); + if (r instanceof o.BaseStream && r.dict instanceof n.Dict) { + const e = r.dict.get('Type'), + a = r.dict.get('Subtype'); + if ((0, n.isName)(e, 'Metadata') && (0, n.isName)(a, 'XML')) { + const e = (0, i.stringToUTF8String)(r.getString()); + e && (t = new d.MetadataParser(e).serializable); + } + } + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.info)(`Skipping invalid Metadata: "${e}".`); + } + return (0, i.shadow)(this, 'metadata', t); + } + get markInfo() { + let e = null; + try { + e = this._readMarkInfo(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable to read mark info.'); + } + return (0, i.shadow)(this, 'markInfo', e); + } + _readMarkInfo() { + const e = this._catDict.get('MarkInfo'); + if (!(e instanceof n.Dict)) return null; + const t = { Marked: !1, UserProperties: !1, Suspects: !1 }; + for (const a in t) { + const r = e.get(a); + 'boolean' == typeof r && (t[a] = r); + } + return t; + } + get structTreeRoot() { + let e = null; + try { + e = this._readStructTreeRoot(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable read to structTreeRoot info.'); + } + return (0, i.shadow)(this, 'structTreeRoot', e); + } + _readStructTreeRoot() { + const e = this._catDict.get('StructTreeRoot'); + if (!(e instanceof n.Dict)) return null; + const t = new f.StructTreeRoot(e); + t.init(); + return t; + } + get toplevelPagesDict() { + const e = this._catDict.get('Pages'); + if (!(e instanceof n.Dict)) + throw new i.FormatError('Invalid top-level pages dictionary.'); + return (0, i.shadow)(this, 'toplevelPagesDict', e); + } + get documentOutline() { + let e = null; + try { + e = this._readDocumentOutline(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable to read document outline.'); + } + return (0, i.shadow)(this, 'documentOutline', e); + } + _readDocumentOutline() { + let e = this._catDict.get('Outlines'); + if (!(e instanceof n.Dict)) return null; + e = e.getRaw('First'); + if (!(e instanceof n.Ref)) return null; + const t = { items: [] }, + a = [{ obj: e, parent: t }], + r = new n.RefSet(); + r.put(e); + const s = this.xref, + o = new Uint8ClampedArray(3); + for (; a.length > 0; ) { + const t = a.shift(), + c = s.fetchIfRef(t.obj); + if (null === c) continue; + if (!c.has('Title')) throw new i.FormatError('Invalid outline item encountered.'); + const h = { url: null, dest: null, action: null }; + Catalog.parseDestDictionary({ + destDict: c, + resultObj: h, + docBaseUrl: this.pdfManager.docBaseUrl, + docAttachments: this.attachments, + }); + const u = c.get('Title'), + d = c.get('F') || 0, + f = c.getArray('C'), + g = c.get('Count'); + let p = o; + !Array.isArray(f) || + 3 !== f.length || + (0 === f[0] && 0 === f[1] && 0 === f[2]) || + (p = l.ColorSpace.singletons.rgb.getRgb(f, 0)); + const m = { + action: h.action, + attachment: h.attachment, + dest: h.dest, + url: h.url, + unsafeUrl: h.unsafeUrl, + newWindow: h.newWindow, + setOCGState: h.setOCGState, + title: (0, i.stringToPDFString)(u), + color: p, + count: Number.isInteger(g) ? g : void 0, + bold: !!(2 & d), + italic: !!(1 & d), + items: [], + }; + t.parent.items.push(m); + e = c.getRaw('First'); + if (e instanceof n.Ref && !r.has(e)) { + a.push({ obj: e, parent: m }); + r.put(e); + } + e = c.getRaw('Next'); + if (e instanceof n.Ref && !r.has(e)) { + a.push({ obj: e, parent: t.parent }); + r.put(e); + } + } + return t.items.length > 0 ? t.items : null; + } + get permissions() { + let e = null; + try { + e = this._readPermissions(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable to read permissions.'); + } + return (0, i.shadow)(this, 'permissions', e); + } + _readPermissions() { + const e = this.xref.trailer.get('Encrypt'); + if (!(e instanceof n.Dict)) return null; + let t = e.get('P'); + if ('number' != typeof t) return null; + t += 2 ** 32; + const a = []; + for (const e in i.PermissionFlag) { + const r = i.PermissionFlag[e]; + t & r && a.push(r); + } + return a; + } + get optionalContentConfig() { + let e = null; + try { + const t = this._catDict.get('OCProperties'); + if (!t) return (0, i.shadow)(this, 'optionalContentConfig', null); + const a = t.get('D'); + if (!a) return (0, i.shadow)(this, 'optionalContentConfig', null); + const r = t.get('OCGs'); + if (!Array.isArray(r)) return (0, i.shadow)(this, 'optionalContentConfig', null); + const s = [], + o = []; + for (const e of r) { + if (!(e instanceof n.Ref)) continue; + o.push(e); + const t = this.xref.fetchIfRef(e); + s.push({ + id: e.toString(), + name: + 'string' == typeof t.get('Name') + ? (0, i.stringToPDFString)(t.get('Name')) + : null, + intent: + 'string' == typeof t.get('Intent') + ? (0, i.stringToPDFString)(t.get('Intent')) + : null, + }); + } + e = this._readOptionalContentConfig(a, o); + e.groups = s; + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)(`Unable to read optional content config: ${e}`); + } + return (0, i.shadow)(this, 'optionalContentConfig', e); + } + _readOptionalContentConfig(e, t) { + function parseOnOff(e) { + const a = []; + if (Array.isArray(e)) + for (const r of e) r instanceof n.Ref && t.includes(r) && a.push(r.toString()); + return a; + } + function parseOrder(e, a = 0) { + if (!Array.isArray(e)) return null; + const i = []; + for (const s of e) { + if (s instanceof n.Ref && t.includes(s)) { + r.put(s); + i.push(s.toString()); + continue; + } + const e = parseNestedOrder(s, a); + e && i.push(e); + } + if (a > 0) return i; + const s = []; + for (const e of t) r.has(e) || s.push(e.toString()); + s.length && i.push({ name: null, order: s }); + return i; + } + function parseNestedOrder(e, t) { + if (++t > s) { + (0, i.warn)('parseNestedOrder - reached MAX_NESTED_LEVELS.'); + return null; + } + const r = a.fetchIfRef(e); + if (!Array.isArray(r)) return null; + const n = a.fetchIfRef(r[0]); + if ('string' != typeof n) return null; + const o = parseOrder(r.slice(1), t); + return o && o.length ? { name: (0, i.stringToPDFString)(n), order: o } : null; + } + const a = this.xref, + r = new n.RefSet(), + s = 10; + return { + name: + 'string' == typeof e.get('Name') ? (0, i.stringToPDFString)(e.get('Name')) : null, + creator: + 'string' == typeof e.get('Creator') + ? (0, i.stringToPDFString)(e.get('Creator')) + : null, + baseState: e.get('BaseState') instanceof n.Name ? e.get('BaseState').name : null, + on: parseOnOff(e.get('ON')), + off: parseOnOff(e.get('OFF')), + order: parseOrder(e.get('Order')), + groups: null, + }; + } + setActualNumPages(e = null) { + this._actualNumPages = e; + } + get hasActualNumPages() { + return null !== this._actualNumPages; + } + get _pagesCount() { + const e = this.toplevelPagesDict.get('Count'); + if (!Number.isInteger(e)) + throw new i.FormatError( + 'Page count in top-level pages dictionary is not an integer.', + ); + return (0, i.shadow)(this, '_pagesCount', e); + } + get numPages() { + return this.hasActualNumPages ? this._actualNumPages : this._pagesCount; + } + get destinations() { + const e = this._readDests(), + t = Object.create(null); + if (e instanceof s.NameTree) + for (const [a, r] of e.getAll()) { + const e = fetchDestination(r); + e && (t[(0, i.stringToPDFString)(a)] = e); + } + else + e instanceof n.Dict && + e.forEach(function (e, a) { + const r = fetchDestination(a); + r && (t[e] = r); + }); + return (0, i.shadow)(this, 'destinations', t); + } + getDestination(e) { + const t = this._readDests(); + if (t instanceof s.NameTree) { + const a = fetchDestination(t.get(e)); + if (a) return a; + const r = this.destinations[e]; + if (r) { + (0, i.warn)(`Found "${e}" at an incorrect position in the NameTree.`); + return r; + } + } else if (t instanceof n.Dict) { + const a = fetchDestination(t.get(e)); + if (a) return a; + } + return null; + } + _readDests() { + const e = this._catDict.get('Names'); + return e && e.has('Dests') + ? new s.NameTree(e.getRaw('Dests'), this.xref) + : this._catDict.has('Dests') + ? this._catDict.get('Dests') + : void 0; + } + get pageLabels() { + let e = null; + try { + e = this._readPageLabels(); + } catch (e) { + if (e instanceof r.MissingDataException) throw e; + (0, i.warn)('Unable to read page labels.'); + } + return (0, i.shadow)(this, 'pageLabels', e); + } + _readPageLabels() { + const e = this._catDict.getRaw('PageLabels'); + if (!e) return null; + const t = new Array(this.numPages); + let a = null, + o = ''; + const c = new s.NumberTree(e, this.xref).getAll(); + let l = '', + h = 1; + for (let e = 0, s = this.numPages; e < s; e++) { + const s = c.get(e); + if (void 0 !== s) { + if (!(s instanceof n.Dict)) + throw new i.FormatError('PageLabel is not a dictionary.'); + if (s.has('Type') && !(0, n.isName)(s.get('Type'), 'PageLabel')) + throw new i.FormatError('Invalid type in PageLabel dictionary.'); + if (s.has('S')) { + const e = s.get('S'); + if (!(e instanceof n.Name)) + throw new i.FormatError('Invalid style in PageLabel dictionary.'); + a = e.name; + } else a = null; + if (s.has('P')) { + const e = s.get('P'); + if ('string' != typeof e) + throw new i.FormatError('Invalid prefix in PageLabel dictionary.'); + o = (0, i.stringToPDFString)(e); + } else o = ''; + if (s.has('St')) { + const e = s.get('St'); + if (!(Number.isInteger(e) && e >= 1)) + throw new i.FormatError('Invalid start in PageLabel dictionary.'); + h = e; + } else h = 1; + } + switch (a) { + case 'D': + l = h; + break; + case 'R': + case 'r': + l = (0, r.toRomanNumerals)(h, 'r' === a); + break; + case 'A': + case 'a': + const e = 26, + t = 'a' === a ? 97 : 65, + n = h - 1; + l = String.fromCharCode(t + (n % e)).repeat(Math.floor(n / e) + 1); + break; + default: + if (a) throw new i.FormatError(`Invalid style "${a}" in PageLabel dictionary.`); + l = ''; + } + t[e] = o + l; + h++; + } + return t; + } + get pageLayout() { + const e = this._catDict.get('PageLayout'); + let t = ''; + if (e instanceof n.Name) + switch (e.name) { + case 'SinglePage': + case 'OneColumn': + case 'TwoColumnLeft': + case 'TwoColumnRight': + case 'TwoPageLeft': + case 'TwoPageRight': + t = e.name; + } + return (0, i.shadow)(this, 'pageLayout', t); + } + get pageMode() { + const e = this._catDict.get('PageMode'); + let t = 'UseNone'; + if (e instanceof n.Name) + switch (e.name) { + case 'UseNone': + case 'UseOutlines': + case 'UseThumbs': + case 'FullScreen': + case 'UseOC': + case 'UseAttachments': + t = e.name; + } + return (0, i.shadow)(this, 'pageMode', t); + } + get viewerPreferences() { + const e = this._catDict.get('ViewerPreferences'); + if (!(e instanceof n.Dict)) return (0, i.shadow)(this, 'viewerPreferences', null); + let t = null; + for (const a of e.getKeys()) { + const r = e.get(a); + let s; + switch (a) { + case 'HideToolbar': + case 'HideMenubar': + case 'HideWindowUI': + case 'FitWindow': + case 'CenterWindow': + case 'DisplayDocTitle': + case 'PickTrayByPDFSize': + 'boolean' == typeof r && (s = r); + break; + case 'NonFullScreenPageMode': + if (r instanceof n.Name) + switch (r.name) { + case 'UseNone': + case 'UseOutlines': + case 'UseThumbs': + case 'UseOC': + s = r.name; + break; + default: + s = 'UseNone'; + } + break; + case 'Direction': + if (r instanceof n.Name) + switch (r.name) { + case 'L2R': + case 'R2L': + s = r.name; + break; + default: + s = 'L2R'; + } + break; + case 'ViewArea': + case 'ViewClip': + case 'PrintArea': + case 'PrintClip': + if (r instanceof n.Name) + switch (r.name) { + case 'MediaBox': + case 'CropBox': + case 'BleedBox': + case 'TrimBox': + case 'ArtBox': + s = r.name; + break; + default: + s = 'CropBox'; + } + break; + case 'PrintScaling': + if (r instanceof n.Name) + switch (r.name) { + case 'None': + case 'AppDefault': + s = r.name; + break; + default: + s = 'AppDefault'; + } + break; + case 'Duplex': + if (r instanceof n.Name) + switch (r.name) { + case 'Simplex': + case 'DuplexFlipShortEdge': + case 'DuplexFlipLongEdge': + s = r.name; + break; + default: + s = 'None'; + } + break; + case 'PrintPageRange': + if (Array.isArray(r) && r.length % 2 == 0) { + r.every( + (e, t, a) => + Number.isInteger(e) && + e > 0 && + (0 === t || e >= a[t - 1]) && + e <= this.numPages, + ) && (s = r); + } + break; + case 'NumCopies': + Number.isInteger(r) && r > 0 && (s = r); + break; + default: + (0, i.warn)(`Ignoring non-standard key in ViewerPreferences: ${a}.`); + continue; + } + if (void 0 !== s) { + t || (t = Object.create(null)); + t[a] = s; + } else (0, i.warn)(`Bad value, for key "${a}", in ViewerPreferences: ${r}.`); + } + return (0, i.shadow)(this, 'viewerPreferences', t); + } + get openAction() { + const e = this._catDict.get('OpenAction'), + t = Object.create(null); + if (e instanceof n.Dict) { + const a = new n.Dict(this.xref); + a.set('A', e); + const r = { url: null, dest: null, action: null }; + Catalog.parseDestDictionary({ destDict: a, resultObj: r }); + Array.isArray(r.dest) ? (t.dest = r.dest) : r.action && (t.action = r.action); + } else Array.isArray(e) && (t.dest = e); + return (0, i.shadow)(this, 'openAction', (0, i.objectSize)(t) > 0 ? t : null); + } + get attachments() { + const e = this._catDict.get('Names'); + let t = null; + if (e instanceof n.Dict && e.has('EmbeddedFiles')) { + const a = new s.NameTree(e.getRaw('EmbeddedFiles'), this.xref); + for (const [e, r] of a.getAll()) { + const a = new h.FileSpec(r, this.xref); + t || (t = Object.create(null)); + t[(0, i.stringToPDFString)(e)] = a.serializable; + } + } + return (0, i.shadow)(this, 'attachments', t); + } + get xfaImages() { + const e = this._catDict.get('Names'); + let t = null; + if (e instanceof n.Dict && e.has('XFAImages')) { + const a = new s.NameTree(e.getRaw('XFAImages'), this.xref); + for (const [e, r] of a.getAll()) { + t || (t = new n.Dict(this.xref)); + t.set((0, i.stringToPDFString)(e), r); + } + } + return (0, i.shadow)(this, 'xfaImages', t); + } + _collectJavaScript() { + const e = this._catDict.get('Names'); + let t = null; + function appendIfJavaScriptDict(e, a) { + if (!(a instanceof n.Dict)) return; + if (!(0, n.isName)(a.get('S'), 'JavaScript')) return; + let r = a.get('JS'); + if (r instanceof o.BaseStream) r = r.getString(); + else if ('string' != typeof r) return; + r = (0, i.stringToPDFString)(r).replaceAll('\0', ''); + (t ||= new Map()).set(e, r); + } + if (e instanceof n.Dict && e.has('JavaScript')) { + const t = new s.NameTree(e.getRaw('JavaScript'), this.xref); + for (const [e, a] of t.getAll()) + appendIfJavaScriptDict((0, i.stringToPDFString)(e), a); + } + const a = this._catDict.get('OpenAction'); + a && appendIfJavaScriptDict('OpenAction', a); + return t; + } + get javaScript() { + const e = this._collectJavaScript(); + return (0, i.shadow)(this, 'javaScript', e ? [...e.values()] : null); + } + get jsActions() { + const e = this._collectJavaScript(); + let t = (0, r.collectActions)(this.xref, this._catDict, i.DocumentActionEventType); + if (e) { + t || (t = Object.create(null)); + for (const [a, r] of e) a in t ? t[a].push(r) : (t[a] = [r]); + } + return (0, i.shadow)(this, 'jsActions', t); + } + async fontFallback(e, t) { + const a = await Promise.all(this.fontCache); + for (const r of a) + if (r.loadedName === e) { + r.fallback(t); + return; + } + } + async cleanup(e = !1) { + (0, c.clearGlobalCaches)(); + this.globalImageCache.clear(e); + this.pageKidsCountCache.clear(); + this.pageIndexCache.clear(); + this.nonBlendModesSet.clear(); + const t = await Promise.all(this.fontCache); + for (const { dict: e } of t) delete e.cacheKey; + this.fontCache.clear(); + this.builtInCMapCache.clear(); + this.standardFontDataCache.clear(); + } + async getPageDict(e) { + const t = [this.toplevelPagesDict], + a = new n.RefSet(), + r = this._catDict.getRaw('Pages'); + r instanceof n.Ref && a.put(r); + const s = this.xref, + o = this.pageKidsCountCache, + c = this.pageIndexCache; + let l = 0; + for (; t.length; ) { + const r = t.pop(); + if (r instanceof n.Ref) { + const h = o.get(r); + if (h >= 0 && l + h <= e) { + l += h; + continue; + } + if (a.has(r)) throw new i.FormatError('Pages tree contains circular reference.'); + a.put(r); + const u = await s.fetchAsync(r); + if (u instanceof n.Dict) { + let t = u.getRaw('Type'); + t instanceof n.Ref && (t = await s.fetchAsync(t)); + if ((0, n.isName)(t, 'Page') || !u.has('Kids')) { + o.has(r) || o.put(r, 1); + c.has(r) || c.put(r, l); + if (l === e) return [u, r]; + l++; + continue; + } + } + t.push(u); + continue; + } + if (!(r instanceof n.Dict)) + throw new i.FormatError( + 'Page dictionary kid reference points to wrong type of object.', + ); + const { objId: h } = r; + let u = r.getRaw('Count'); + u instanceof n.Ref && (u = await s.fetchAsync(u)); + if (Number.isInteger(u) && u >= 0) { + h && !o.has(h) && o.put(h, u); + if (l + u <= e) { + l += u; + continue; + } + } + let d = r.getRaw('Kids'); + d instanceof n.Ref && (d = await s.fetchAsync(d)); + if (!Array.isArray(d)) { + let t = r.getRaw('Type'); + t instanceof n.Ref && (t = await s.fetchAsync(t)); + if ((0, n.isName)(t, 'Page') || !r.has('Kids')) { + if (l === e) return [r, null]; + l++; + continue; + } + throw new i.FormatError('Page dictionary kids object is not an array.'); + } + for (let e = d.length - 1; e >= 0; e--) t.push(d[e]); + } + throw new Error(`Page index ${e} not found.`); + } + async getAllPageDicts(e = !1) { + const { ignoreErrors: t } = this.pdfManager.evaluatorOptions, + a = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }], + s = new n.RefSet(), + o = this._catDict.getRaw('Pages'); + o instanceof n.Ref && s.put(o); + const c = new Map(), + l = this.xref, + h = this.pageIndexCache; + let u = 0; + function addPageDict(e, t) { + t && !h.has(t) && h.put(t, u); + c.set(u++, [e, t]); + } + function addPageError(a) { + if (a instanceof r.XRefEntryException && !e) throw a; + if (e && t && 0 === u) { + (0, i.warn)(`getAllPageDicts - Skipping invalid first page: "${a}".`); + a = n.Dict.empty; + } + c.set(u++, [a, null]); + } + for (; a.length > 0; ) { + const e = a.at(-1), + { currentNode: t, posInKids: r } = e; + let o = t.getRaw('Kids'); + if (o instanceof n.Ref) + try { + o = await l.fetchAsync(o); + } catch (e) { + addPageError(e); + break; + } + if (!Array.isArray(o)) { + addPageError(new i.FormatError('Page dictionary kids object is not an array.')); + break; + } + if (r >= o.length) { + a.pop(); + continue; + } + const c = o[r]; + let h; + if (c instanceof n.Ref) { + if (s.has(c)) { + addPageError(new i.FormatError('Pages tree contains circular reference.')); + break; + } + s.put(c); + try { + h = await l.fetchAsync(c); + } catch (e) { + addPageError(e); + break; + } + } else h = c; + if (!(h instanceof n.Dict)) { + addPageError( + new i.FormatError( + 'Page dictionary kid reference points to wrong type of object.', + ), + ); + break; + } + let u = h.getRaw('Type'); + if (u instanceof n.Ref) + try { + u = await l.fetchAsync(u); + } catch (e) { + addPageError(e); + break; + } + (0, n.isName)(u, 'Page') || !h.has('Kids') + ? addPageDict(h, c instanceof n.Ref ? c : null) + : a.push({ currentNode: h, posInKids: 0 }); + e.posInKids++; + } + return c; + } + getPageIndex(e) { + const t = this.pageIndexCache.get(e); + if (void 0 !== t) return Promise.resolve(t); + const a = this.xref; + let r = 0; + const next = (t) => + (function pagesBeforeRef(t) { + let r, + s = 0; + return a + .fetchAsync(t) + .then(function (a) { + if ( + (0, n.isRefsEqual)(t, e) && + !(0, n.isDict)(a, 'Page') && + !(a instanceof n.Dict && !a.has('Type') && a.has('Contents')) + ) + throw new i.FormatError( + 'The reference does not point to a /Page dictionary.', + ); + if (!a) return null; + if (!(a instanceof n.Dict)) + throw new i.FormatError('Node must be a dictionary.'); + r = a.getRaw('Parent'); + return a.getAsync('Parent'); + }) + .then(function (e) { + if (!e) return null; + if (!(e instanceof n.Dict)) + throw new i.FormatError('Parent must be a dictionary.'); + return e.getAsync('Kids'); + }) + .then(function (e) { + if (!e) return null; + const o = []; + let c = !1; + for (const r of e) { + if (!(r instanceof n.Ref)) + throw new i.FormatError('Kid must be a reference.'); + if ((0, n.isRefsEqual)(r, t)) { + c = !0; + break; + } + o.push( + a.fetchAsync(r).then(function (e) { + if (!(e instanceof n.Dict)) + throw new i.FormatError('Kid node must be a dictionary.'); + e.has('Count') ? (s += e.get('Count')) : s++; + }), + ); + } + if (!c) throw new i.FormatError("Kid reference not found in parent's kids."); + return Promise.all(o).then(function () { + return [s, r]; + }); + }); + })(t).then((t) => { + if (!t) { + this.pageIndexCache.put(e, r); + return r; + } + const [a, i] = t; + r += a; + return next(i); + }); + return next(e); + } + get baseUrl() { + const e = this._catDict.get('URI'); + if (e instanceof n.Dict) { + const t = e.get('Base'); + if ('string' == typeof t) { + const e = (0, i.createValidAbsoluteUrl)(t, null, { tryConvertEncoding: !0 }); + if (e) return (0, i.shadow)(this, 'baseUrl', e.href); + } + } + return (0, i.shadow)(this, 'baseUrl', null); + } + static parseDestDictionary(e) { + const t = e.destDict; + if (!(t instanceof n.Dict)) { + (0, i.warn)('parseDestDictionary: `destDict` must be a dictionary.'); + return; + } + const a = e.resultObj; + if ('object' != typeof a) { + (0, i.warn)('parseDestDictionary: `resultObj` must be an object.'); + return; + } + const s = e.docBaseUrl || null, + c = e.docAttachments || null; + let l, + h, + u = t.get('A'); + if (!(u instanceof n.Dict)) + if (t.has('Dest')) u = t.get('Dest'); + else { + u = t.get('AA'); + u instanceof n.Dict && + (u.has('D') ? (u = u.get('D')) : u.has('U') && (u = u.get('U'))); + } + if (u instanceof n.Dict) { + const e = u.get('S'); + if (!(e instanceof n.Name)) { + (0, i.warn)('parseDestDictionary: Invalid type in Action dictionary.'); + return; + } + const t = e.name; + switch (t) { + case 'ResetForm': + const e = u.get('Flags'), + s = 0 == (1 & ('number' == typeof e ? e : 0)), + d = [], + f = []; + for (const e of u.get('Fields') || []) + e instanceof n.Ref + ? f.push(e.toString()) + : 'string' == typeof e && d.push((0, i.stringToPDFString)(e)); + a.resetForm = { fields: d, refs: f, include: s }; + break; + case 'URI': + l = u.get('URI'); + l instanceof n.Name && (l = '/' + l.name); + break; + case 'GoTo': + h = u.get('D'); + break; + case 'Launch': + case 'GoToR': + const g = u.get('F'); + g instanceof n.Dict + ? (l = g.get('F') || null) + : 'string' == typeof g && (l = g); + let p = u.get('D'); + if (p) { + p instanceof n.Name && (p = p.name); + if ('string' == typeof l) { + const e = l.split('#')[0]; + 'string' == typeof p + ? (l = e + '#' + p) + : Array.isArray(p) && (l = e + '#' + JSON.stringify(p)); + } + } + const m = u.get('NewWindow'); + 'boolean' == typeof m && (a.newWindow = m); + break; + case 'GoToE': + const b = u.get('T'); + let y; + if (c && b instanceof n.Dict) { + const e = b.get('R'), + t = b.get('N'); + (0, n.isName)(e, 'C') && + 'string' == typeof t && + (y = c[(0, i.stringToPDFString)(t)]); + } + y + ? (a.attachment = y) + : (0, i.warn)('parseDestDictionary - unimplemented "GoToE" action.'); + break; + case 'Named': + const w = u.get('N'); + w instanceof n.Name && (a.action = w.name); + break; + case 'SetOCGState': + const S = u.get('State'), + x = u.get('PreserveRB'); + if (!Array.isArray(S) || 0 === S.length) break; + const C = []; + for (const e of S) + if (e instanceof n.Name) + switch (e.name) { + case 'ON': + case 'OFF': + case 'Toggle': + C.push(e.name); + } + else e instanceof n.Ref && C.push(e.toString()); + if (C.length !== S.length) break; + a.setOCGState = { state: C, preserveRB: 'boolean' != typeof x || x }; + break; + case 'JavaScript': + const k = u.get('JS'); + let v; + k instanceof o.BaseStream + ? (v = k.getString()) + : 'string' == typeof k && (v = k); + const F = v && (0, r.recoverJsURL)((0, i.stringToPDFString)(v)); + if (F) { + l = F.url; + a.newWindow = F.newWindow; + break; + } + default: + if ('JavaScript' === t || 'SubmitForm' === t) break; + (0, i.warn)(`parseDestDictionary - unsupported action: "${t}".`); + } + } else t.has('Dest') && (h = t.get('Dest')); + if ('string' == typeof l) { + const e = (0, i.createValidAbsoluteUrl)(l, s, { + addDefaultProtocol: !0, + tryConvertEncoding: !0, + }); + e && (a.url = e.href); + a.unsafeUrl = l; + } + if (h) { + h instanceof n.Name && (h = h.name); + 'string' == typeof h + ? (a.dest = (0, i.stringToPDFString)(h)) + : Array.isArray(h) && (a.dest = h); + } + } + } + t.Catalog = Catalog; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.NumberTree = t.NameTree = void 0; + var r = a(4), + i = a(2); + class NameOrNumberTree { + constructor(e, t, a) { + this.constructor === NameOrNumberTree && + (0, i.unreachable)('Cannot initialize NameOrNumberTree.'); + this.root = e; + this.xref = t; + this._type = a; + } + getAll() { + const e = new Map(); + if (!this.root) return e; + const t = this.xref, + a = new r.RefSet(); + a.put(this.root); + const n = [this.root]; + for (; n.length > 0; ) { + const s = t.fetchIfRef(n.shift()); + if (!(s instanceof r.Dict)) continue; + if (s.has('Kids')) { + const e = s.get('Kids'); + if (!Array.isArray(e)) continue; + for (const t of e) { + if (a.has(t)) + throw new i.FormatError(`Duplicate entry in "${this._type}" tree.`); + n.push(t); + a.put(t); + } + continue; + } + const o = s.get(this._type); + if (Array.isArray(o)) + for (let a = 0, r = o.length; a < r; a += 2) + e.set(t.fetchIfRef(o[a]), t.fetchIfRef(o[a + 1])); + } + return e; + } + get(e) { + if (!this.root) return null; + const t = this.xref; + let a = t.fetchIfRef(this.root), + r = 0; + for (; a.has('Kids'); ) { + if (++r > 10) { + (0, i.warn)(`Search depth limit reached for "${this._type}" tree.`); + return null; + } + const n = a.get('Kids'); + if (!Array.isArray(n)) return null; + let s = 0, + o = n.length - 1; + for (; s <= o; ) { + const r = (s + o) >> 1, + i = t.fetchIfRef(n[r]), + c = i.get('Limits'); + if (e < t.fetchIfRef(c[0])) o = r - 1; + else { + if (!(e > t.fetchIfRef(c[1]))) { + a = i; + break; + } + s = r + 1; + } + } + if (s > o) return null; + } + const n = a.get(this._type); + if (Array.isArray(n)) { + let a = 0, + r = n.length - 2; + for (; a <= r; ) { + const i = (a + r) >> 1, + s = i + (1 & i), + o = t.fetchIfRef(n[s]); + if (e < o) r = s - 2; + else { + if (!(e > o)) return t.fetchIfRef(n[s + 1]); + a = s + 2; + } + } + } + return null; + } + } + t.NameTree = class NameTree extends NameOrNumberTree { + constructor(e, t) { + super(e, t, 'Names'); + } + }; + t.NumberTree = class NumberTree extends NameOrNumberTree { + constructor(e, t) { + super(e, t, 'Nums'); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.clearGlobalCaches = function clearGlobalCaches() { + (0, r.clearPrimitiveCaches)(); + (0, i.clearUnicodeCaches)(); + }; + var r = a(4), + i = a(40); + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FileSpec = void 0; + var r = a(2), + i = a(5), + n = a(4); + function pickPlatformItem(e) { + return e.has('UF') + ? e.get('UF') + : e.has('F') + ? e.get('F') + : e.has('Unix') + ? e.get('Unix') + : e.has('Mac') + ? e.get('Mac') + : e.has('DOS') + ? e.get('DOS') + : null; + } + t.FileSpec = class FileSpec { + constructor(e, t) { + if (e instanceof n.Dict) { + this.xref = t; + this.root = e; + e.has('FS') && (this.fs = e.get('FS')); + this.description = e.has('Desc') ? (0, r.stringToPDFString)(e.get('Desc')) : ''; + e.has('RF') && (0, r.warn)('Related file specifications are not supported'); + this.contentAvailable = !0; + if (!e.has('EF')) { + this.contentAvailable = !1; + (0, r.warn)('Non-embedded file specifications are not supported'); + } + } + } + get filename() { + if (!this._filename && this.root) { + const e = pickPlatformItem(this.root) || 'unnamed'; + this._filename = (0, r.stringToPDFString)(e) + .replaceAll('\\\\', '\\') + .replaceAll('\\/', '/') + .replaceAll('\\', '/'); + } + return this._filename; + } + get content() { + if (!this.contentAvailable) return null; + !this.contentRef && + this.root && + (this.contentRef = pickPlatformItem(this.root.get('EF'))); + let e = null; + if (this.contentRef) { + const t = this.xref.fetchIfRef(this.contentRef); + t instanceof i.BaseStream + ? (e = t.getBytes()) + : (0, r.warn)( + 'Embedded file specification points to non-existing/invalid content', + ); + } else (0, r.warn)('Embedded file specification does not have a content'); + return e; + } + get serializable() { + return { filename: this.filename, content: this.content }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.MetadataParser = void 0; + var r = a(66); + t.MetadataParser = class MetadataParser { + constructor(e) { + e = this._repair(e); + const t = new r.SimpleXMLParser({ lowerCaseName: !0 }).parseFromString(e); + this._metadataMap = new Map(); + this._data = e; + t && this._parse(t); + } + _repair(e) { + return e.replace(/^[^<]+/, '').replaceAll(/>\\376\\377([^<]+)/g, function (e, t) { + const a = t + .replaceAll(/\\([0-3])([0-7])([0-7])/g, function (e, t, a, r) { + return String.fromCharCode(64 * t + 8 * a + 1 * r); + }) + .replaceAll(/&(amp|apos|gt|lt|quot);/g, function (e, t) { + switch (t) { + case 'amp': + return '&'; + case 'apos': + return "'"; + case 'gt': + return '>'; + case 'lt': + return '<'; + case 'quot': + return '"'; + } + throw new Error(`_repair: ${t} isn't defined.`); + }), + r = ['>']; + for (let e = 0, t = a.length; e < t; e += 2) { + const t = 256 * a.charCodeAt(e) + a.charCodeAt(e + 1); + t >= 32 && t < 127 && 60 !== t && 62 !== t && 38 !== t + ? r.push(String.fromCharCode(t)) + : r.push('&#x' + (65536 + t).toString(16).substring(1) + ';'); + } + return r.join(''); + }); + } + _getSequence(e) { + const t = e.nodeName; + return 'rdf:bag' !== t && 'rdf:seq' !== t && 'rdf:alt' !== t + ? null + : e.childNodes.filter((e) => 'rdf:li' === e.nodeName); + } + _parseArray(e) { + if (!e.hasChildNodes()) return; + const [t] = e.childNodes, + a = this._getSequence(t) || []; + this._metadataMap.set( + e.nodeName, + a.map((e) => e.textContent.trim()), + ); + } + _parse(e) { + let t = e.documentElement; + if ('rdf:rdf' !== t.nodeName) { + t = t.firstChild; + for (; t && 'rdf:rdf' !== t.nodeName; ) t = t.nextSibling; + } + if (t && 'rdf:rdf' === t.nodeName && t.hasChildNodes()) + for (const e of t.childNodes) + if ('rdf:description' === e.nodeName) + for (const t of e.childNodes) { + const e = t.nodeName; + switch (e) { + case '#text': + continue; + case 'dc:creator': + case 'dc:subject': + this._parseArray(t); + continue; + } + this._metadataMap.set(e, t.textContent.trim()); + } + } + get serializable() { + return { parsedData: this._metadataMap, rawData: this._data }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.StructTreeRoot = t.StructTreePage = void 0; + var r = a(4), + i = a(2), + n = a(70); + const s = 'PAGE_CONTENT', + o = 'STREAM_CONTENT', + c = 'OBJECT', + l = 'ELEMENT'; + t.StructTreeRoot = class StructTreeRoot { + constructor(e) { + this.dict = e; + this.roleMap = new Map(); + } + init() { + this.readRoleMap(); + } + readRoleMap() { + const e = this.dict.get('RoleMap'); + e instanceof r.Dict && + e.forEach((e, t) => { + t instanceof r.Name && this.roleMap.set(e, t.name); + }); + } + }; + class StructElementNode { + constructor(e, t) { + this.tree = e; + this.dict = t; + this.kids = []; + this.parseKids(); + } + get role() { + const e = this.dict.get('S'), + t = e instanceof r.Name ? e.name : '', + { root: a } = this.tree; + return a.roleMap.has(t) ? a.roleMap.get(t) : t; + } + parseKids() { + let e = null; + const t = this.dict.getRaw('Pg'); + t instanceof r.Ref && (e = t.toString()); + const a = this.dict.get('K'); + if (Array.isArray(a)) + for (const t of a) { + const a = this.parseKid(e, t); + a && this.kids.push(a); + } + else { + const t = this.parseKid(e, a); + t && this.kids.push(t); + } + } + parseKid(e, t) { + if (Number.isInteger(t)) + return this.tree.pageDict.objId !== e + ? null + : new StructElement({ type: s, mcid: t, pageObjId: e }); + let a = null; + t instanceof r.Ref ? (a = this.dict.xref.fetch(t)) : t instanceof r.Dict && (a = t); + if (!a) return null; + const i = a.getRaw('Pg'); + i instanceof r.Ref && (e = i.toString()); + const n = a.get('Type') instanceof r.Name ? a.get('Type').name : null; + return 'MCR' === n + ? this.tree.pageDict.objId !== e + ? null + : new StructElement({ + type: o, + refObjId: + a.getRaw('Stm') instanceof r.Ref ? a.getRaw('Stm').toString() : null, + pageObjId: e, + mcid: a.get('MCID'), + }) + : 'OBJR' === n + ? this.tree.pageDict.objId !== e + ? null + : new StructElement({ + type: c, + refObjId: + a.getRaw('Obj') instanceof r.Ref ? a.getRaw('Obj').toString() : null, + pageObjId: e, + }) + : new StructElement({ type: l, dict: a }); + } + } + class StructElement { + constructor({ + type: e, + dict: t = null, + mcid: a = null, + pageObjId: r = null, + refObjId: i = null, + }) { + this.type = e; + this.dict = t; + this.mcid = a; + this.pageObjId = r; + this.refObjId = i; + this.parentNode = null; + } + } + t.StructTreePage = class StructTreePage { + constructor(e, t) { + this.root = e; + this.rootDict = e ? e.dict : null; + this.pageDict = t; + this.nodes = []; + } + parse() { + if (!this.root || !this.rootDict) return; + const e = this.rootDict.get('ParentTree'); + if (!e) return; + const t = this.pageDict.get('StructParents'); + if (!Number.isInteger(t)) return; + const a = new n.NumberTree(e, this.rootDict.xref).get(t); + if (!Array.isArray(a)) return; + const i = new Map(); + for (const e of a) e instanceof r.Ref && this.addNode(this.rootDict.xref.fetch(e), i); + } + addNode(e, t, a = 0) { + if (a > 40) { + (0, i.warn)('StructTree MAX_DEPTH reached.'); + return null; + } + if (t.has(e)) return t.get(e); + const n = new StructElementNode(this, e); + t.set(e, n); + const s = e.get('P'); + if (!s || (0, r.isName)(s.get('Type'), 'StructTreeRoot')) { + this.addTopLevelNode(e, n) || t.delete(e); + return n; + } + const o = this.addNode(s, t, a + 1); + if (!o) return n; + let c = !1; + for (const t of o.kids) + if (t.type === l && t.dict === e) { + t.parentNode = n; + c = !0; + } + c || t.delete(e); + return n; + } + addTopLevelNode(e, t) { + const a = this.rootDict.get('K'); + if (!a) return !1; + if (a instanceof r.Dict) { + if (a.objId !== e.objId) return !1; + this.nodes[0] = t; + return !0; + } + if (!Array.isArray(a)) return !0; + let i = !1; + for (let r = 0; r < a.length; r++) { + const n = a[r]; + if (n && n.toString() === e.objId) { + this.nodes[r] = t; + i = !0; + } + } + return i; + } + get serializable() { + function nodeToSerializable(e, t, a = 0) { + if (a > 40) { + (0, i.warn)('StructTree too deep to be fully serialized.'); + return; + } + const r = Object.create(null); + r.role = e.role; + r.children = []; + t.children.push(r); + const n = e.dict.get('Alt'); + 'string' == typeof n && (r.alt = (0, i.stringToPDFString)(n)); + const h = e.dict.get('Lang'); + 'string' == typeof h && (r.lang = (0, i.stringToPDFString)(h)); + for (const t of e.kids) { + const e = t.type === l ? t.parentNode : null; + e + ? nodeToSerializable(e, r, a + 1) + : t.type === s || t.type === o + ? r.children.push({ type: 'content', id: `page${t.pageObjId}_mcid${t.mcid}` }) + : t.type === c && r.children.push({ type: 'object', id: t.refObjId }); + } + } + const e = Object.create(null); + e.children = []; + e.role = 'Root'; + for (const t of this.nodes) t && nodeToSerializable(t, e); + return e; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ObjectLoader = void 0; + var r = a(4), + i = a(5), + n = a(3), + s = a(2); + function addChildren(e, t) { + if (e instanceof r.Dict) e = e.getRawValues(); + else if (e instanceof i.BaseStream) e = e.dict.getRawValues(); + else if (!Array.isArray(e)) return; + for (const n of e) + ((a = n) instanceof r.Ref || + a instanceof r.Dict || + a instanceof i.BaseStream || + Array.isArray(a)) && + t.push(n); + var a; + } + t.ObjectLoader = class ObjectLoader { + constructor(e, t, a) { + this.dict = e; + this.keys = t; + this.xref = a; + this.refSet = null; + } + async load() { + if (this.xref.stream.isDataLoaded) return; + const { keys: e, dict: t } = this; + this.refSet = new r.RefSet(); + const a = []; + for (const r of e) { + const e = t.getRaw(r); + void 0 !== e && a.push(e); + } + return this._walk(a); + } + async _walk(e) { + const t = [], + a = []; + for (; e.length; ) { + let o = e.pop(); + if (o instanceof r.Ref) { + if (this.refSet.has(o)) continue; + try { + this.refSet.put(o); + o = this.xref.fetch(o); + } catch (e) { + if (!(e instanceof n.MissingDataException)) { + (0, s.warn)(`ObjectLoader._walk - requesting all data: "${e}".`); + this.refSet = null; + const { manager: t } = this.xref.stream; + return t.requestAllChunks(); + } + t.push(o); + a.push({ begin: e.begin, end: e.end }); + } + } + if (o instanceof i.BaseStream) { + const e = o.getBaseStreams(); + if (e) { + let r = !1; + for (const t of e) + if (!t.isDataLoaded) { + r = !0; + a.push({ begin: t.start, end: t.end }); + } + r && t.push(o); + } + } + addChildren(o, e); + } + if (a.length) { + await this.xref.stream.manager.requestRanges(a); + for (const e of t) e instanceof r.Ref && this.refSet.remove(e); + return this._walk(t); + } + this.refSet = null; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XFAFactory = void 0; + var r = a(77), + i = a(81), + n = a(87), + s = a(85), + o = a(78), + c = a(2), + l = a(88), + h = a(98); + class XFAFactory { + constructor(e) { + try { + this.root = new l.XFAParser().parse(XFAFactory._createDocument(e)); + const t = new i.Binder(this.root); + this.form = t.bind(); + this.dataHandler = new n.DataHandler(this.root, t.getData()); + this.form[r.$globalData].template = this.form; + } catch (e) { + (0, c.warn)(`XFA - an error occurred during parsing and binding: ${e}`); + } + } + isValid() { + return this.root && this.form; + } + _createPagesHelper() { + const e = this.form[r.$toPages](); + return new Promise((t, a) => { + const nextIteration = () => { + try { + const a = e.next(); + a.done ? t(a.value) : setTimeout(nextIteration, 0); + } catch (e) { + a(e); + } + }; + setTimeout(nextIteration, 0); + }); + } + async _createPages() { + try { + this.pages = await this._createPagesHelper(); + this.dims = this.pages.children.map((e) => { + const { width: t, height: a } = e.attributes.style; + return [0, 0, parseInt(t), parseInt(a)]; + }); + } catch (e) { + (0, c.warn)(`XFA - an error occurred during layout: ${e}`); + } + } + getBoundingBox(e) { + return this.dims[e]; + } + async getNumPages() { + this.pages || (await this._createPages()); + return this.dims.length; + } + setImages(e) { + this.form[r.$globalData].images = e; + } + setFonts(e) { + this.form[r.$globalData].fontFinder = new s.FontFinder(e); + const t = []; + for (let e of this.form[r.$globalData].usedTypefaces) { + e = (0, o.stripQuotes)(e); + this.form[r.$globalData].fontFinder.find(e) || t.push(e); + } + return t.length > 0 ? t : null; + } + appendFonts(e, t) { + this.form[r.$globalData].fontFinder.add(e, t); + } + async getPages() { + this.pages || (await this._createPages()); + const e = this.pages; + this.pages = null; + return 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 || 'string' != typeof e) return null; + try { + let t = new l.XFAParser(h.XhtmlNamespace, !0).parse(e); + if (!['body', 'xhtml'].includes(t[r.$nodeName])) { + const e = h.XhtmlNamespace.body({}); + e[r.$appendChild](t); + t = e; + } + const a = t[r.$toHTML](); + if (!a.success) return null; + const { html: i } = a, + { attributes: n } = i; + if (n) { + n.class && (n.class = n.class.filter((e) => !e.startsWith('xfa'))); + n.dir = 'auto'; + } + return { html: i, str: t[r.$text]() }; + } catch (e) { + (0, c.warn)(`XFA - an error occurred during parsing of rich text: ${e}`); + } + return null; + } + } + t.XFAFactory = XFAFactory; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XmlObject = + t.XFAObjectArray = + t.XFAObject = + t.XFAAttribute = + t.StringObject = + t.OptionObject = + t.Option10 = + t.Option01 = + t.IntegerObject = + t.ContentObject = + t.$uid = + t.$toStyle = + t.$toString = + t.$toPages = + t.$toHTML = + t.$text = + t.$tabIndex = + t.$setValue = + t.$setSetAttributes = + t.$setId = + t.$searchNode = + t.$root = + t.$resolvePrototypes = + t.$removeChild = + t.$pushPara = + t.$pushGlyphs = + t.$popPara = + t.$onText = + t.$onChildCheck = + t.$onChild = + t.$nsAttributes = + t.$nodeName = + t.$namespaceId = + t.$isUsable = + t.$isTransparent = + t.$isThereMoreWidth = + t.$isSplittable = + t.$isNsAgnostic = + t.$isDescendent = + t.$isDataValue = + t.$isCDATAXml = + t.$isBindable = + t.$insertAt = + t.$indexOf = + t.$ids = + t.$hasSettableValue = + t.$globalData = + t.$getTemplateRoot = + t.$getSubformParent = + t.$getRealChildrenByNameIt = + t.$getParent = + t.$getNextPage = + t.$getExtra = + t.$getDataValue = + t.$getContainedChildren = + t.$getChildrenByNameIt = + t.$getChildrenByName = + t.$getChildrenByClass = + t.$getChildren = + t.$getAvailableSpace = + t.$getAttributes = + t.$getAttributeIt = + t.$flushHTML = + t.$finalize = + t.$extra = + t.$dump = + t.$data = + t.$content = + t.$consumed = + t.$clone = + t.$cleanup = + t.$cleanPage = + t.$clean = + t.$childrenToHTML = + t.$appendChild = + t.$addHTML = + t.$acceptWhitespace = + void 0; + var r = a(78), + i = a(2), + n = a(3), + s = a(79), + o = a(80); + const c = Symbol(); + t.$acceptWhitespace = c; + const l = Symbol(); + t.$addHTML = l; + const h = Symbol(); + t.$appendChild = h; + const u = Symbol(); + t.$childrenToHTML = u; + const d = Symbol(); + t.$clean = d; + const f = Symbol(); + t.$cleanPage = f; + const g = Symbol(); + t.$cleanup = g; + const p = Symbol(); + t.$clone = p; + const m = Symbol(); + t.$consumed = m; + const b = Symbol('content'); + t.$content = b; + const y = Symbol('data'); + t.$data = y; + const w = Symbol(); + t.$dump = w; + const S = Symbol('extra'); + t.$extra = S; + const x = Symbol(); + t.$finalize = x; + const C = Symbol(); + t.$flushHTML = C; + const k = Symbol(); + t.$getAttributeIt = k; + const v = Symbol(); + t.$getAttributes = v; + const F = Symbol(); + t.$getAvailableSpace = F; + const O = Symbol(); + t.$getChildrenByClass = O; + const T = Symbol(); + t.$getChildrenByName = T; + const M = Symbol(); + t.$getChildrenByNameIt = M; + const E = Symbol(); + t.$getDataValue = E; + const D = Symbol(); + t.$getExtra = D; + const N = Symbol(); + t.$getRealChildrenByNameIt = N; + const R = Symbol(); + t.$getChildren = R; + const L = Symbol(); + t.$getContainedChildren = L; + const _ = Symbol(); + t.$getNextPage = _; + const $ = Symbol(); + t.$getSubformParent = $; + const j = Symbol(); + t.$getParent = j; + const U = Symbol(); + t.$getTemplateRoot = U; + const X = Symbol(); + t.$globalData = X; + const H = Symbol(); + t.$hasSettableValue = H; + const q = Symbol(); + t.$ids = q; + const z = Symbol(); + t.$indexOf = z; + const W = Symbol(); + t.$insertAt = W; + const G = Symbol(); + t.$isCDATAXml = G; + const V = Symbol(); + t.$isBindable = V; + const K = Symbol(); + t.$isDataValue = K; + const J = Symbol(); + t.$isDescendent = J; + const Y = Symbol(); + t.$isNsAgnostic = Y; + const Z = Symbol(); + t.$isSplittable = Z; + const Q = Symbol(); + t.$isThereMoreWidth = Q; + const ee = Symbol(); + t.$isTransparent = ee; + const te = Symbol(); + t.$isUsable = te; + const ae = Symbol(), + re = Symbol('namespaceId'); + t.$namespaceId = re; + const ie = Symbol('nodeName'); + t.$nodeName = ie; + const ne = Symbol(); + t.$nsAttributes = ne; + const se = Symbol(); + t.$onChild = se; + const oe = Symbol(); + t.$onChildCheck = oe; + const ce = Symbol(); + t.$onText = ce; + const le = Symbol(); + t.$pushGlyphs = le; + const he = Symbol(); + t.$popPara = he; + const ue = Symbol(); + t.$pushPara = ue; + const de = Symbol(); + t.$removeChild = de; + const fe = Symbol('root'); + t.$root = fe; + const ge = Symbol(); + t.$resolvePrototypes = ge; + const pe = Symbol(); + t.$searchNode = pe; + const me = Symbol(); + t.$setId = me; + const be = Symbol(); + t.$setSetAttributes = be; + const ye = Symbol(); + t.$setValue = ye; + const we = Symbol(); + t.$tabIndex = we; + const Se = Symbol(); + t.$text = Se; + const xe = Symbol(); + t.$toPages = xe; + const Ae = Symbol(); + t.$toHTML = Ae; + const Ce = Symbol(); + t.$toString = Ce; + const ke = Symbol(); + t.$toStyle = ke; + const ve = Symbol('uid'); + t.$uid = ve; + const Fe = Symbol(), + Oe = Symbol(), + Ie = Symbol(), + Te = Symbol('_children'), + Me = Symbol(), + Pe = Symbol(), + Ee = Symbol(), + De = Symbol(), + Be = Symbol(), + Ne = Symbol(), + Re = Symbol(), + Le = Symbol(), + _e = Symbol(), + $e = Symbol('parent'), + je = Symbol(), + Ue = Symbol(), + Xe = Symbol(); + let He = 0; + const qe = s.NamespaceIds.datasets.id; + class XFAObject { + constructor(e, t, a = !1) { + this[re] = e; + this[ie] = t; + this[Re] = a; + this[$e] = null; + this[Te] = []; + this[ve] = `${t}${He++}`; + this[X] = null; + } + [se](e) { + if (!this[Re] || !this[oe](e)) return !1; + const t = e[ie], + a = this[t]; + if (!(a instanceof XFAObjectArray)) { + null !== a && this[de](a); + this[t] = e; + this[h](e); + return !0; + } + if (a.push(e)) { + this[h](e); + return !0; + } + let r = ''; + this.id + ? (r = ` (id: ${this.id})`) + : this.name && (r = ` (name: ${this.name} ${this.h.value})`); + (0, i.warn)(`XFA - node "${this[ie]}"${r} has already enough "${t}"!`); + return !1; + } + [oe](e) { + return this.hasOwnProperty(e[ie]) && e[re] === this[re]; + } + [Y]() { + return !1; + } + [c]() { + return !1; + } + [G]() { + return !1; + } + [V]() { + return !1; + } + [he]() { + this.para && this[U]()[S].paraStack.pop(); + } + [ue]() { + this[U]()[S].paraStack.push(this.para); + } + [me](e) { + this.id && this[re] === s.NamespaceIds.template.id && e.set(this.id, this); + } + [U]() { + return this[X].template; + } + [Z]() { + return !1; + } + [Q]() { + return !1; + } + [h](e) { + e[$e] = this; + this[Te].push(e); + !e[X] && this[X] && (e[X] = this[X]); + } + [de](e) { + const t = this[Te].indexOf(e); + this[Te].splice(t, 1); + } + [H]() { + return this.hasOwnProperty('value'); + } + [ye](e) {} + [ce](e) {} + [x]() {} + [d](e) { + delete this[Re]; + if (this[g]) { + e.clean(this[g]); + delete this[g]; + } + } + [z](e) { + return this[Te].indexOf(e); + } + [W](e, t) { + t[$e] = this; + this[Te].splice(e, 0, t); + !t[X] && this[X] && (t[X] = this[X]); + } + [ee]() { + return !this.name; + } + [ae]() { + return ''; + } + [Se]() { + return 0 === this[Te].length ? this[b] : this[Te].map((e) => e[Se]()).join(''); + } + get [Ie]() { + const e = Object.getPrototypeOf(this); + if (!e._attributes) { + const t = (e._attributes = new Set()); + for (const e of Object.getOwnPropertyNames(this)) { + if ( + null === this[e] || + this[e] instanceof XFAObject || + this[e] instanceof XFAObjectArray + ) + break; + t.add(e); + } + } + return (0, i.shadow)(this, Ie, e._attributes); + } + [J](e) { + let t = this; + for (; t; ) { + if (t === e) return !0; + t = t[j](); + } + return !1; + } + [j]() { + return this[$e]; + } + [$]() { + return this[j](); + } + [R](e = null) { + return e ? this[e] : this[Te]; + } + [w]() { + const e = Object.create(null); + this[b] && (e.$content = this[b]); + for (const t of Object.getOwnPropertyNames(this)) { + const a = this[t]; + null !== a && + (a instanceof XFAObject + ? (e[t] = a[w]()) + : a instanceof XFAObjectArray + ? a.isEmpty() || (e[t] = a.dump()) + : (e[t] = a)); + } + return e; + } + [ke]() { + return null; + } + [Ae]() { + return r.HTMLResult.EMPTY; + } + *[L]() { + for (const e of this[R]()) yield e; + } + *[De](e, t) { + for (const a of this[L]()) + if (!e || t === e.has(a[ie])) { + const e = this[F](), + t = a[Ae](e); + t.success || (this[S].failingNode = a); + yield t; + } + } + [C]() { + return null; + } + [l](e, t) { + this[S].children.push(e); + } + [F]() {} + [u]({ filter: e = null, include: t = !0 }) { + if (this[S].generator) { + const e = this[F](), + t = this[S].failingNode[Ae](e); + if (!t.success) return t; + t.html && this[l](t.html, t.bbox); + delete this[S].failingNode; + } else this[S].generator = this[De](e, t); + for (;;) { + const e = this[S].generator.next(); + if (e.done) break; + const t = e.value; + if (!t.success) return t; + t.html && this[l](t.html, t.bbox); + } + this[S].generator = null; + return r.HTMLResult.EMPTY; + } + [be](e) { + this[Ue] = new Set(Object.keys(e)); + } + [Ne](e) { + const t = this[Ie], + a = this[Ue]; + return [...e].filter((e) => t.has(e) && !a.has(e)); + } + [ge](e, t = new Set()) { + for (const a of this[Te]) a[je](e, t); + } + [je](e, t) { + const a = this[Be](e, t); + a ? this[Fe](a, e, t) : this[ge](e, t); + } + [Be](e, t) { + const { use: a, usehref: r } = this; + if (!a && !r) return null; + let n = null, + s = null, + c = null, + l = a; + if (r) { + l = r; + r.startsWith('#som(') && r.endsWith(')') + ? (s = r.slice(5, -1)) + : r.startsWith('.#som(') && r.endsWith(')') + ? (s = r.slice(6, -1)) + : r.startsWith('#') + ? (c = r.slice(1)) + : r.startsWith('.#') && (c = r.slice(2)); + } else a.startsWith('#') ? (c = a.slice(1)) : (s = a); + this.use = this.usehref = ''; + if (c) n = e.get(c); + else { + n = (0, o.searchNode)(e.get(fe), this, s, !0, !1); + n && (n = n[0]); + } + if (!n) { + (0, i.warn)(`XFA - Invalid prototype reference: ${l}.`); + return null; + } + if (n[ie] !== this[ie]) { + (0, i.warn)(`XFA - Incompatible prototype: ${n[ie]} !== ${this[ie]}.`); + return null; + } + if (t.has(n)) { + (0, i.warn)('XFA - Cycle detected in prototypes use.'); + return null; + } + t.add(n); + const h = n[Be](e, t); + h && n[Fe](h, e, t); + n[ge](e, t); + t.delete(n); + return n; + } + [Fe](e, t, a) { + if (a.has(e)) { + (0, i.warn)('XFA - Cycle detected in prototypes use.'); + return; + } + !this[b] && e[b] && (this[b] = e[b]); + new Set(a).add(e); + for (const t of this[Ne](e[Ue])) { + this[t] = e[t]; + this[Ue] && this[Ue].add(t); + } + for (const r of Object.getOwnPropertyNames(this)) { + if (this[Ie].has(r)) continue; + const i = this[r], + n = e[r]; + if (i instanceof XFAObjectArray) { + for (const e of i[Te]) e[je](t, a); + for (let r = i[Te].length, s = n[Te].length; r < s; r++) { + const n = e[Te][r][p](); + if (!i.push(n)) break; + n[$e] = this; + this[Te].push(n); + n[je](t, a); + } + } else if (null === i) { + if (null !== n) { + const e = n[p](); + e[$e] = this; + this[r] = e; + this[Te].push(e); + e[je](t, a); + } + } else { + i[ge](t, a); + n && i[Fe](n, t, a); + } + } + } + static [Me](e) { + return Array.isArray(e) + ? e.map((e) => XFAObject[Me](e)) + : 'object' == typeof e && null !== e + ? Object.assign({}, e) + : e; + } + [p]() { + const e = Object.create(Object.getPrototypeOf(this)); + for (const t of Object.getOwnPropertySymbols(this)) + try { + e[t] = this[t]; + } catch (a) { + (0, i.shadow)(e, t, this[t]); + } + e[ve] = `${e[ie]}${He++}`; + e[Te] = []; + for (const t of Object.getOwnPropertyNames(this)) { + if (this[Ie].has(t)) { + e[t] = XFAObject[Me](this[t]); + continue; + } + const a = this[t]; + e[t] = a instanceof XFAObjectArray ? new XFAObjectArray(a[Le]) : null; + } + for (const t of this[Te]) { + const a = t[ie], + r = t[p](); + e[Te].push(r); + r[$e] = e; + null === e[a] ? (e[a] = r) : e[a][Te].push(r); + } + return e; + } + [R](e = null) { + return e ? this[Te].filter((t) => t[ie] === e) : this[Te]; + } + [O](e) { + return this[e]; + } + [T](e, t, a = !0) { + return Array.from(this[M](e, t, a)); + } + *[M](e, t, a = !0) { + if ('parent' !== e) { + for (const a of this[Te]) { + a[ie] === e && (yield a); + a.name === e && (yield a); + (t || a[ee]()) && (yield* a[M](e, t, !1)); + } + a && this[Ie].has(e) && (yield new XFAAttribute(this, e, this[e])); + } else yield this[$e]; + } + } + t.XFAObject = XFAObject; + class XFAObjectArray { + constructor(e = 1 / 0) { + this[Le] = e; + this[Te] = []; + } + push(e) { + if (this[Te].length <= this[Le]) { + this[Te].push(e); + return !0; + } + (0, i.warn)(`XFA - node "${e[ie]}" accepts no more than ${this[Le]} children`); + return !1; + } + isEmpty() { + return 0 === this[Te].length; + } + dump() { + return 1 === this[Te].length ? this[Te][0][w]() : this[Te].map((e) => e[w]()); + } + [p]() { + const e = new XFAObjectArray(this[Le]); + e[Te] = this[Te].map((e) => e[p]()); + return e; + } + get children() { + return this[Te]; + } + clear() { + this[Te].length = 0; + } + } + t.XFAObjectArray = XFAObjectArray; + class XFAAttribute { + constructor(e, t, a) { + this[$e] = e; + this[ie] = t; + this[b] = a; + this[m] = !1; + this[ve] = 'attribute' + He++; + } + [j]() { + return this[$e]; + } + [K]() { + return !0; + } + [E]() { + return this[b].trim(); + } + [ye](e) { + e = e.value || ''; + this[b] = e.toString(); + } + [Se]() { + return this[b]; + } + [J](e) { + return this[$e] === e || this[$e][J](e); + } + } + t.XFAAttribute = XFAAttribute; + class XmlObject extends XFAObject { + constructor(e, t, a = {}) { + super(e, t); + this[b] = ''; + this[Pe] = null; + if ('#text' !== t) { + const e = new Map(); + this[Oe] = e; + for (const [t, r] of Object.entries(a)) e.set(t, new XFAAttribute(this, t, r)); + if (a.hasOwnProperty(ne)) { + const e = a[ne].xfa.dataNode; + void 0 !== e && + ('dataGroup' === e ? (this[Pe] = !1) : 'dataValue' === e && (this[Pe] = !0)); + } + } + this[m] = !1; + } + [Ce](e) { + const t = this[ie]; + if ('#text' === t) { + e.push((0, n.encodeToXmlString)(this[b])); + return; + } + const a = (0, i.utf8StringToString)(t), + r = this[re] === qe ? 'xfa:' : ''; + e.push(`<${r}${a}`); + for (const [t, a] of this[Oe].entries()) { + const r = (0, i.utf8StringToString)(t); + e.push(` ${r}="${(0, n.encodeToXmlString)(a[b])}"`); + } + null !== this[Pe] && + (this[Pe] + ? e.push(' xfa:dataNode="dataValue"') + : e.push(' xfa:dataNode="dataGroup"')); + if (this[b] || 0 !== this[Te].length) { + e.push('>'); + if (this[b]) + 'string' == typeof this[b] + ? e.push((0, n.encodeToXmlString)(this[b])) + : this[b][Ce](e); + else for (const t of this[Te]) t[Ce](e); + e.push(``); + } else e.push('/>'); + } + [se](e) { + if (this[b]) { + const e = new XmlObject(this[re], '#text'); + this[h](e); + e[b] = this[b]; + this[b] = ''; + } + this[h](e); + return !0; + } + [ce](e) { + this[b] += e; + } + [x]() { + if (this[b] && this[Te].length > 0) { + const e = new XmlObject(this[re], '#text'); + this[h](e); + e[b] = this[b]; + delete this[b]; + } + } + [Ae]() { + return '#text' === this[ie] + ? r.HTMLResult.success({ name: '#text', value: this[b] }) + : r.HTMLResult.EMPTY; + } + [R](e = null) { + return e ? this[Te].filter((t) => t[ie] === e) : this[Te]; + } + [v]() { + return this[Oe]; + } + [O](e) { + const t = this[Oe].get(e); + return void 0 !== t ? t : this[R](e); + } + *[M](e, t) { + const a = this[Oe].get(e); + a && (yield a); + for (const a of this[Te]) { + a[ie] === e && (yield a); + t && (yield* a[M](e, t)); + } + } + *[k](e, t) { + const a = this[Oe].get(e); + !a || (t && a[m]) || (yield a); + for (const a of this[Te]) yield* a[k](e, t); + } + *[N](e, t, a) { + for (const r of this[Te]) { + r[ie] !== e || (a && r[m]) || (yield r); + t && (yield* r[N](e, t, a)); + } + } + [K]() { + return null === this[Pe] + ? 0 === this[Te].length || this[Te][0][re] === s.NamespaceIds.xhtml.id + : this[Pe]; + } + [E]() { + return null === this[Pe] + ? 0 === this[Te].length + ? this[b].trim() + : this[Te][0][re] === s.NamespaceIds.xhtml.id + ? this[Te][0][Se]().trim() + : null + : this[b].trim(); + } + [ye](e) { + e = e.value || ''; + this[b] = e.toString(); + } + [w](e = !1) { + const t = Object.create(null); + e && (t.$ns = this[re]); + this[b] && (t.$content = this[b]); + t.$name = this[ie]; + t.children = []; + for (const a of this[Te]) t.children.push(a[w](e)); + t.attributes = Object.create(null); + for (const [e, a] of this[Oe]) t.attributes[e] = a[b]; + return t; + } + } + t.XmlObject = XmlObject; + class ContentObject extends XFAObject { + constructor(e, t) { + super(e, t); + this[b] = ''; + } + [ce](e) { + this[b] += e; + } + [x]() {} + } + t.ContentObject = ContentObject; + t.OptionObject = class OptionObject extends ContentObject { + constructor(e, t, a) { + super(e, t); + this[_e] = a; + } + [x]() { + this[b] = (0, r.getKeyword)({ + data: this[b], + defaultValue: this[_e][0], + validate: (e) => this[_e].includes(e), + }); + } + [d](e) { + super[d](e); + delete this[_e]; + } + }; + t.StringObject = class StringObject extends ContentObject { + [x]() { + this[b] = this[b].trim(); + } + }; + class IntegerObject extends ContentObject { + constructor(e, t, a, r) { + super(e, t); + this[Ee] = a; + this[Xe] = r; + } + [x]() { + this[b] = (0, r.getInteger)({ + data: this[b], + defaultValue: this[Ee], + validate: this[Xe], + }); + } + [d](e) { + super[d](e); + delete this[Ee]; + delete this[Xe]; + } + } + t.IntegerObject = IntegerObject; + t.Option01 = class Option01 extends IntegerObject { + constructor(e, t) { + super(e, t, 0, (e) => 1 === e); + } + }; + t.Option10 = class Option10 extends IntegerObject { + constructor(e, t) { + super(e, t, 1, (e) => 0 === e); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.HTMLResult = void 0; + t.getBBox = function getBBox(e) { + const t = -1; + if (!e) return { x: t, y: t, width: t, height: t }; + const a = e + .trim() + .split(/\s*,\s*/) + .map((e) => getMeasurement(e, '-1')); + if (a.length < 4 || a[2] < 0 || a[3] < 0) return { x: t, y: t, width: t, height: t }; + const [r, i, n, s] = a; + return { x: r, y: i, width: n, height: s }; + }; + t.getColor = function getColor(e, t = [0, 0, 0]) { + let [a, r, i] = t; + if (!e) return { r: a, g: r, b: i }; + const n = e + .trim() + .split(/\s*,\s*/) + .map((e) => Math.min(Math.max(0, parseInt(e.trim(), 10)), 255)) + .map((e) => (isNaN(e) ? 0 : e)); + if (n.length < 3) return { r: a, g: r, b: i }; + [a, r, i] = n; + return { r: a, g: r, b: i }; + }; + t.getFloat = function getFloat({ data: e, defaultValue: t, validate: a }) { + if (!e) return t; + e = e.trim(); + const r = parseFloat(e); + if (!isNaN(r) && a(r)) return r; + return t; + }; + t.getInteger = function getInteger({ data: e, defaultValue: t, validate: a }) { + if (!e) return t; + e = e.trim(); + const r = parseInt(e, 10); + if (!isNaN(r) && a(r)) return r; + return t; + }; + t.getKeyword = getKeyword; + t.getMeasurement = getMeasurement; + t.getRatio = function getRatio(e) { + if (!e) return { num: 1, den: 1 }; + const t = e + .trim() + .split(/\s*:\s*/) + .map((e) => parseFloat(e)) + .filter((e) => !isNaN(e)); + 1 === t.length && t.push(1); + if (0 === t.length) return { num: 1, den: 1 }; + const [a, r] = t; + return { num: a, den: r }; + }; + t.getRelevant = function getRelevant(e) { + if (!e) return []; + return e + .trim() + .split(/\s+/) + .map((e) => ({ excluded: '-' === e[0], viewname: e.substring(1) })); + }; + t.getStringOption = function getStringOption(e, t) { + return getKeyword({ data: e, defaultValue: t[0], validate: (e) => t.includes(e) }); + }; + t.stripQuotes = function stripQuotes(e) { + if (e.startsWith("'") || e.startsWith('"')) return e.slice(1, -1); + return e; + }; + var r = a(2); + const i = { + pt: (e) => e, + cm: (e) => (e / 2.54) * 72, + mm: (e) => (e / 25.4) * 72, + in: (e) => 72 * e, + px: (e) => e, + }, + n = /([+-]?\d+\.?\d*)(.*)/; + function getKeyword({ data: e, defaultValue: t, validate: a }) { + return e && a((e = e.trim())) ? e : t; + } + function getMeasurement(e, t = '0') { + t ||= '0'; + if (!e) return getMeasurement(t); + const a = e.trim().match(n); + if (!a) return getMeasurement(t); + const [, r, s] = a, + o = parseFloat(r); + if (isNaN(o)) return getMeasurement(t); + if (0 === o) return 0; + const c = i[s]; + return c ? c(o) : o; + } + class HTMLResult { + static get FAILURE() { + return (0, r.shadow)(this, 'FAILURE', new HTMLResult(!1, null, null, null)); + } + static get EMPTY() { + return (0, r.shadow)(this, 'EMPTY', new HTMLResult(!0, null, null, null)); + } + constructor(e, t, a, r) { + this.success = e; + this.html = t; + this.bbox = a; + this.breakNode = r; + } + isBreak() { + return !!this.breakNode; + } + static breakNode(e) { + return new HTMLResult(!1, null, null, e); + } + static success(e, t = null) { + return new HTMLResult(!0, e, t, null); + } + } + t.HTMLResult = HTMLResult; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.NamespaceIds = t.$buildXFAObject = void 0; + const a = Symbol(); + t.$buildXFAObject = a; + t.NamespaceIds = { + config: { id: 0, check: (e) => e.startsWith('http://www.xfa.org/schema/xci/') }, + connectionSet: { + id: 1, + check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-connection-set/'), + }, + datasets: { id: 2, check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-data/') }, + form: { id: 3, check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-form/') }, + localeSet: { + id: 4, + check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-locale-set/'), + }, + pdf: { id: 5, check: (e) => 'http://ns.adobe.com/xdp/pdf/' === e }, + signature: { id: 6, check: (e) => 'http://www.w3.org/2000/09/xmldsig#' === e }, + sourceSet: { + id: 7, + check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-source-set/'), + }, + stylesheet: { id: 8, check: (e) => 'http://www.w3.org/1999/XSL/Transform' === e }, + template: { + id: 9, + check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-template/'), + }, + xdc: { id: 10, check: (e) => e.startsWith('http://www.xfa.org/schema/xdc/') }, + xdp: { id: 11, check: (e) => 'http://ns.adobe.com/xdp/' === e }, + xfdf: { id: 12, check: (e) => 'http://ns.adobe.com/xfdf/' === e }, + xhtml: { id: 13, check: (e) => 'http://www.w3.org/1999/xhtml' === e }, + xmpmeta: { id: 14, check: (e) => 'http://ns.adobe.com/xmpmeta/' === e }, + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.createDataNode = function createDataNode(e, t, a) { + const i = parseExpression(a); + if (!i) return null; + if (i.some((e) => e.operator === c.dotDot)) return null; + const s = l.get(i[0].name); + let o = 0; + if (s) { + e = s(e, t); + o = 1; + } else e = t || e; + for (let t = i.length; o < t; o++) { + const { name: t, operator: a, index: s } = i[o]; + if (!isFinite(s)) { + i[o].index = 0; + return createNodes(e, i.slice(o)); + } + let l; + switch (a) { + case c.dot: + l = e[r.$getChildrenByName](t, !1); + break; + case c.dotDot: + l = e[r.$getChildrenByName](t, !0); + break; + case c.dotHash: + l = e[r.$getChildrenByClass](t); + l = l instanceof r.XFAObjectArray ? l.children : [l]; + } + if (0 === l.length) return createNodes(e, i.slice(o)); + if (!(s < l.length)) { + i[o].index = s - l.length; + return createNodes(e, i.slice(o)); + } + { + const t = l[s]; + if (!(t instanceof r.XFAObject)) { + (0, n.warn)('XFA - Cannot create a node.'); + return null; + } + e = t; + } + } + return null; + }; + t.searchNode = function searchNode(e, t, a, i = !0, n = !0) { + const s = parseExpression(a, i); + if (!s) return null; + const o = l.get(s[0].name); + let u, + d = 0; + if (o) { + u = !0; + e = [o(e, t)]; + d = 1; + } else { + u = null === t; + e = [t || e]; + } + for (let a = s.length; d < a; d++) { + const { name: a, cacheName: i, operator: o, index: l } = s[d], + f = []; + for (const t of e) { + if (!(t instanceof r.XFAObject)) continue; + let e, s; + if (n) { + s = h.get(t); + if (!s) { + s = new Map(); + h.set(t, s); + } + e = s.get(i); + } + if (!e) { + switch (o) { + case c.dot: + e = t[r.$getChildrenByName](a, !1); + break; + case c.dotDot: + e = t[r.$getChildrenByName](a, !0); + break; + case c.dotHash: + e = t[r.$getChildrenByClass](a); + e = e instanceof r.XFAObjectArray ? e.children : [e]; + } + n && s.set(i, e); + } + e.length > 0 && f.push(e); + } + if (0 !== f.length || u || 0 !== d) + e = isFinite(l) ? f.filter((e) => l < e.length).map((e) => e[l]) : f.flat(); + else { + const a = t[r.$getParent](); + if (!(t = a)) return null; + d = -1; + e = [t]; + } + } + if (0 === e.length) return null; + return e; + }; + var r = a(77), + i = a(79), + n = a(2); + const s = /^[^.[]+/, + o = /^[^\]]+/, + c = { dot: 0, dotDot: 1, dotHash: 2, dotBracket: 3, dotParen: 4 }, + l = new Map([ + ['$data', (e, t) => (e.datasets ? e.datasets.data : e)], + ['$record', (e, t) => (e.datasets ? e.datasets.data : e)[r.$getChildren]()[0]], + ['$template', (e, t) => e.template], + ['$connectionSet', (e, t) => e.connectionSet], + ['$form', (e, t) => e.form], + ['$layout', (e, t) => e.layout], + ['$host', (e, t) => e.host], + ['$dataWindow', (e, t) => e.dataWindow], + ['$event', (e, t) => e.event], + ['!', (e, t) => e.datasets], + ['$xfa', (e, t) => e], + ['xfa', (e, t) => e], + ['$', (e, t) => t], + ]), + h = new WeakMap(), + u = i.NamespaceIds.datasets.id; + function parseExpression(e, t, a = !0) { + let r = e.match(s); + if (!r) return null; + let [i] = r; + const l = [ + { name: i, cacheName: '.' + i, index: 0, js: null, formCalc: null, operator: c.dot }, + ]; + let h = i.length; + for (; h < e.length; ) { + const d = h; + if ('[' === e.charAt(h++)) { + r = e.slice(h).match(o); + if (!r) { + (0, n.warn)('XFA - Invalid index in SOM expression'); + return null; + } + l.at(-1).index = '*' === (u = (u = r[0]).trim()) ? 1 / 0 : parseInt(u, 10) || 0; + h += r[0].length + 1; + continue; + } + let f; + switch (e.charAt(h)) { + case '.': + if (!t) return null; + h++; + f = c.dotDot; + break; + case '#': + h++; + f = c.dotHash; + break; + case '[': + if (a) { + (0, n.warn)( + 'XFA - SOM expression contains a FormCalc subexpression which is not supported for now.', + ); + return null; + } + f = c.dotBracket; + break; + case '(': + if (a) { + (0, n.warn)( + 'XFA - SOM expression contains a JavaScript subexpression which is not supported for now.', + ); + return null; + } + f = c.dotParen; + break; + default: + f = c.dot; + } + r = e.slice(h).match(s); + if (!r) break; + [i] = r; + h += i.length; + l.push({ + name: i, + cacheName: e.slice(d, h), + operator: f, + index: 0, + js: null, + formCalc: null, + }); + } + var u; + return l; + } + function createNodes(e, t) { + let a = null; + for (const { name: i, index: n } of t) { + for (let t = 0, s = isFinite(n) ? n : 0; t <= s; t++) { + const t = e[r.$namespaceId] === u ? -1 : e[r.$namespaceId]; + a = new r.XmlObject(t, i); + e[r.$appendChild](a); + } + e = a; + } + return a; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Binder = void 0; + var r = a(77), + i = a(82), + n = a(80), + s = a(79), + o = a(2); + const c = s.NamespaceIds.datasets.id; + function createText(e) { + const t = new i.Text({}); + t[r.$content] = e; + return t; + } + t.Binder = class Binder { + constructor(e) { + this.root = e; + this.datasets = e.datasets; + e.datasets && e.datasets.data + ? (this.data = e.datasets.data) + : (this.data = new r.XmlObject(s.NamespaceIds.datasets.id, 'data')); + this.emptyMerge = 0 === this.data[r.$getChildren]().length; + this.root.form = this.form = e.template[r.$clone](); + } + _isConsumeData() { + return !this.emptyMerge && this._mergeMode; + } + _isMatchTemplate() { + return !this._isConsumeData(); + } + bind() { + this._bindElement(this.form, this.data); + return this.form; + } + getData() { + return this.data; + } + _bindValue(e, t, a) { + e[r.$data] = t; + if (e[r.$hasSettableValue]()) + if (t[r.$isDataValue]()) { + const a = t[r.$getDataValue](); + e[r.$setValue](createText(a)); + } else if ( + e instanceof i.Field && + e.ui && + e.ui.choiceList && + 'multiSelect' === e.ui.choiceList.open + ) { + const a = t[r.$getChildren]() + .map((e) => e[r.$content].trim()) + .join('\n'); + e[r.$setValue](createText(a)); + } else this._isConsumeData() && (0, o.warn)("XFA - Nodes haven't the same type."); + else + !t[r.$isDataValue]() || this._isMatchTemplate() + ? this._bindElement(e, t) + : (0, o.warn)("XFA - Nodes haven't the same type."); + } + _findDataByNameToConsume(e, t, a, i) { + if (!e) return null; + let n, o; + for (let i = 0; i < 3; i++) { + n = a[r.$getRealChildrenByNameIt](e, !1, !0); + for (;;) { + o = n.next().value; + if (!o) break; + if (t === o[r.$isDataValue]()) return o; + } + if (a[r.$namespaceId] === s.NamespaceIds.datasets.id && 'data' === a[r.$nodeName]) + break; + a = a[r.$getParent](); + } + if (!i) return null; + n = this.data[r.$getRealChildrenByNameIt](e, !0, !1); + o = n.next().value; + if (o) return o; + n = this.data[r.$getAttributeIt](e, !0); + o = n.next().value; + return o && o[r.$isDataValue]() ? o : null; + } + _setProperties(e, t) { + if (e.hasOwnProperty('setProperty')) + for (const { ref: a, target: s, connection: c } of e.setProperty.children) { + if (c) continue; + if (!a) continue; + const l = (0, n.searchNode)(this.root, t, a, !1, !1); + if (!l) { + (0, o.warn)(`XFA - Invalid reference: ${a}.`); + continue; + } + const [h] = l; + if (!h[r.$isDescendent](this.data)) { + (0, o.warn)('XFA - Invalid node: must be a data node.'); + continue; + } + const u = (0, n.searchNode)(this.root, e, s, !1, !1); + if (!u) { + (0, o.warn)(`XFA - Invalid target: ${s}.`); + continue; + } + const [d] = u; + if (!d[r.$isDescendent](e)) { + (0, o.warn)('XFA - Invalid target: must be a property or subproperty.'); + continue; + } + const f = d[r.$getParent](); + if (d instanceof i.SetProperty || f instanceof i.SetProperty) { + (0, o.warn)( + 'XFA - Invalid target: cannot be a setProperty or one of its properties.', + ); + continue; + } + if (d instanceof i.BindItems || f instanceof i.BindItems) { + (0, o.warn)( + 'XFA - Invalid target: cannot be a bindItems or one of its properties.', + ); + continue; + } + const g = h[r.$text](), + p = d[r.$nodeName]; + if (d instanceof r.XFAAttribute) { + const e = Object.create(null); + e[p] = g; + const t = Reflect.construct(Object.getPrototypeOf(f).constructor, [e]); + f[p] = t[p]; + } else if (d.hasOwnProperty(r.$content)) { + d[r.$data] = h; + d[r.$content] = g; + d[r.$finalize](); + } else (0, o.warn)('XFA - Invalid node to use in setProperty'); + } + } + _bindItems(e, t) { + if ( + !e.hasOwnProperty('items') || + !e.hasOwnProperty('bindItems') || + e.bindItems.isEmpty() + ) + return; + for (const t of e.items.children) e[r.$removeChild](t); + e.items.clear(); + const a = new i.Items({}), + s = new i.Items({}); + e[r.$appendChild](a); + e.items.push(a); + e[r.$appendChild](s); + e.items.push(s); + for (const { ref: i, labelRef: c, valueRef: l, connection: h } of e.bindItems + .children) { + if (h) continue; + if (!i) continue; + const e = (0, n.searchNode)(this.root, t, i, !1, !1); + if (e) + for (const t of e) { + if (!t[r.$isDescendent](this.datasets)) { + (0, o.warn)(`XFA - Invalid ref (${i}): must be a datasets child.`); + continue; + } + const e = (0, n.searchNode)(this.root, t, c, !0, !1); + if (!e) { + (0, o.warn)(`XFA - Invalid label: ${c}.`); + continue; + } + const [h] = e; + if (!h[r.$isDescendent](this.datasets)) { + (0, o.warn)('XFA - Invalid label: must be a datasets child.'); + continue; + } + const u = (0, n.searchNode)(this.root, t, l, !0, !1); + if (!u) { + (0, o.warn)(`XFA - Invalid value: ${l}.`); + continue; + } + const [d] = u; + if (!d[r.$isDescendent](this.datasets)) { + (0, o.warn)('XFA - Invalid value: must be a datasets child.'); + continue; + } + const f = createText(h[r.$text]()), + g = createText(d[r.$text]()); + a[r.$appendChild](f); + a.text.push(f); + s[r.$appendChild](g); + s.text.push(g); + } + else (0, o.warn)(`XFA - Invalid reference: ${i}.`); + } + } + _bindOccurrences(e, t, a) { + let i; + if (t.length > 1) { + i = e[r.$clone](); + i[r.$removeChild](i.occur); + i.occur = null; + } + this._bindValue(e, t[0], a); + this._setProperties(e, t[0]); + this._bindItems(e, t[0]); + if (1 === t.length) return; + const n = e[r.$getParent](), + s = e[r.$nodeName], + o = n[r.$indexOf](e); + for (let e = 1, c = t.length; e < c; e++) { + const c = t[e], + l = i[r.$clone](); + n[s].push(l); + n[r.$insertAt](o + e, l); + this._bindValue(l, c, a); + this._setProperties(l, c); + this._bindItems(l, c); + } + } + _createOccurrences(e) { + if (!this.emptyMerge) return; + const { occur: t } = e; + if (!t || t.initial <= 1) return; + const a = e[r.$getParent](), + i = e[r.$nodeName]; + if (!(a[i] instanceof r.XFAObjectArray)) return; + let n; + n = e.name + ? a[i].children.filter((t) => t.name === e.name).length + : a[i].children.length; + const s = a[r.$indexOf](e) + 1, + o = t.initial - n; + if (o) { + const t = e[r.$clone](); + t[r.$removeChild](t.occur); + t.occur = null; + a[i].push(t); + a[r.$insertAt](s, t); + for (let e = 1; e < o; e++) { + const n = t[r.$clone](); + a[i].push(n); + a[r.$insertAt](s + e, n); + } + } + } + _getOccurInfo(e) { + const { name: t, occur: a } = e; + if (!a || !t) return [1, 1]; + const r = -1 === a.max ? 1 / 0 : a.max; + return [a.min, r]; + } + _setAndBind(e, t) { + this._setProperties(e, t); + this._bindItems(e, t); + this._bindElement(e, t); + } + _bindElement(e, t) { + const a = []; + this._createOccurrences(e); + for (const i of e[r.$getChildren]()) { + if (i[r.$data]) continue; + if (void 0 === this._mergeMode && 'subform' === i[r.$nodeName]) { + this._mergeMode = 'consumeData' === i.mergeMode; + const e = t[r.$getChildren](); + if (e.length > 0) this._bindOccurrences(i, [e[0]], null); + else if (this.emptyMerge) { + const e = t[r.$namespaceId] === c ? -1 : t[r.$namespaceId], + a = (i[r.$data] = new r.XmlObject(e, i.name || 'root')); + t[r.$appendChild](a); + this._bindElement(i, a); + } + continue; + } + if (!i[r.$isBindable]()) continue; + let e = !1, + s = null, + l = null, + h = null; + if (i.bind) { + switch (i.bind.match) { + case 'none': + this._setAndBind(i, t); + continue; + case 'global': + e = !0; + break; + case 'dataRef': + if (!i.bind.ref) { + (0, o.warn)(`XFA - ref is empty in node ${i[r.$nodeName]}.`); + this._setAndBind(i, t); + continue; + } + l = i.bind.ref; + } + i.bind.picture && (s = i.bind.picture[r.$content]); + } + const [u, d] = this._getOccurInfo(i); + if (l) { + h = (0, n.searchNode)(this.root, t, l, !0, !1); + if (null === h) { + h = (0, n.createDataNode)(this.data, t, l); + if (!h) continue; + this._isConsumeData() && (h[r.$consumed] = !0); + this._setAndBind(i, h); + continue; + } + this._isConsumeData() && (h = h.filter((e) => !e[r.$consumed])); + h.length > d ? (h = h.slice(0, d)) : 0 === h.length && (h = null); + h && + this._isConsumeData() && + h.forEach((e) => { + e[r.$consumed] = !0; + }); + } else { + if (!i.name) { + this._setAndBind(i, t); + continue; + } + if (this._isConsumeData()) { + const a = []; + for (; a.length < d; ) { + const n = this._findDataByNameToConsume( + i.name, + i[r.$hasSettableValue](), + t, + e, + ); + if (!n) break; + n[r.$consumed] = !0; + a.push(n); + } + h = a.length > 0 ? a : null; + } else { + h = t[r.$getRealChildrenByNameIt](i.name, !1, this.emptyMerge).next().value; + if (!h) { + if (0 === u) { + a.push(i); + continue; + } + const e = t[r.$namespaceId] === c ? -1 : t[r.$namespaceId]; + h = i[r.$data] = new r.XmlObject(e, i.name); + this.emptyMerge && (h[r.$consumed] = !0); + t[r.$appendChild](h); + this._setAndBind(i, h); + continue; + } + this.emptyMerge && (h[r.$consumed] = !0); + h = [h]; + } + } + h ? this._bindOccurrences(i, h, s) : u > 0 ? this._setAndBind(i, t) : a.push(i); + } + a.forEach((e) => e[r.$getParent]()[r.$removeChild](e)); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Value = + t.Text = + t.TemplateNamespace = + t.Template = + t.SetProperty = + t.Items = + t.Field = + t.BindItems = + void 0; + var r = a(77), + i = a(79), + n = a(83), + s = a(84), + o = a(78), + c = a(2), + l = a(85), + h = a(3), + u = a(80); + const d = i.NamespaceIds.template.id, + f = 'http://www.w3.org/2000/svg', + g = /^H(\d+)$/, + p = 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', + ]), + m = [ + [[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'], + ]; + function getBorderDims(e) { + if (!e || !e.border) return { w: 0, h: 0 }; + const t = e.border[r.$getExtra](); + return t + ? { + w: t.widths[0] + t.widths[2] + t.insets[0] + t.insets[2], + h: t.widths[1] + t.widths[3] + t.insets[1] + t.insets[3], + } + : { w: 0, h: 0 }; + } + function hasMargin(e) { + return ( + e.margin && + (e.margin.topInset || + e.margin.rightInset || + e.margin.bottomInset || + e.margin.leftInset) + ); + } + function _setValue(e, t) { + if (!e.value) { + const t = new Value({}); + e[r.$appendChild](t); + e.value = t; + } + e.value[r.$setValue](t); + } + function* getContainedChildren(e) { + for (const t of e[r.$getChildren]()) + t instanceof SubformSet ? yield* t[r.$getContainedChildren]() : yield t; + } + function isRequired(e) { + return e.validate && 'error' === e.validate.nullTest; + } + function setTabIndex(e) { + for (; e; ) { + if (!e.traversal) { + e[r.$tabIndex] = e[r.$getParent]()[r.$tabIndex]; + return; + } + if (e[r.$tabIndex]) return; + let t = null; + for (const a of e.traversal[r.$getChildren]()) + if ('next' === a.operation) { + t = a; + break; + } + if (!t || !t.ref) { + e[r.$tabIndex] = e[r.$getParent]()[r.$tabIndex]; + return; + } + const a = e[r.$getTemplateRoot](); + e[r.$tabIndex] = ++a[r.$tabIndex]; + const i = a[r.$searchNode](t.ref, e); + if (!i) return; + e = i[0]; + } + } + function applyAssist(e, t) { + const a = e.assist; + if (a) { + const e = a[r.$toHTML](); + e && (t.title = e); + const i = a.role.match(g); + if (i) { + const e = 'heading', + a = i[1]; + t.role = e; + t['aria-level'] = a; + } + } + if ('table' === e.layout) t.role = 'table'; + else if ('row' === e.layout) t.role = 'row'; + else { + const a = e[r.$getParent](); + 'row' === a.layout && + (a.assist && 'TH' === a.assist.role + ? (t.role = 'columnheader') + : (t.role = 'cell')); + } + } + function ariaLabel(e) { + if (!e.assist) return null; + const t = e.assist; + return t.speak && '' !== t.speak[r.$content] + ? t.speak[r.$content] + : t.toolTip + ? t.toolTip[r.$content] + : null; + } + function valueToHtml(e) { + return o.HTMLResult.success({ + name: 'div', + attributes: { class: ['xfaRich'], style: Object.create(null) }, + children: [{ name: 'span', attributes: { style: Object.create(null) }, value: e }], + }); + } + function setFirstUnsplittable(e) { + const t = e[r.$getTemplateRoot](); + if (null === t[r.$extra].firstUnsplittable) { + t[r.$extra].firstUnsplittable = e; + t[r.$extra].noLayoutFailure = !0; + } + } + function unsetFirstUnsplittable(e) { + const t = e[r.$getTemplateRoot](); + t[r.$extra].firstUnsplittable === e && (t[r.$extra].noLayoutFailure = !1); + } + function handleBreak(e) { + if (e[r.$extra]) return !1; + e[r.$extra] = Object.create(null); + if ('auto' === e.targetType) return !1; + const t = e[r.$getTemplateRoot](); + let a = null; + if (e.target) { + a = t[r.$searchNode](e.target, e[r.$getParent]()); + if (!a) return !1; + a = a[0]; + } + const { currentPageArea: i, currentContentArea: n } = t[r.$extra]; + if ('pageArea' === e.targetType) { + a instanceof PageArea || (a = null); + if (e.startNew) { + e[r.$extra].target = a || i; + return !0; + } + if (a && a !== i) { + e[r.$extra].target = a; + return !0; + } + return !1; + } + a instanceof ContentArea || (a = null); + const s = a && a[r.$getParent](); + let o, + c = s; + if (e.startNew) + if (a) { + const e = s.contentArea.children, + t = e.indexOf(n), + r = e.indexOf(a); + -1 !== t && t < r && (c = null); + o = r - 1; + } else o = i.contentArea.children.indexOf(n); + else { + if (!a || a === n) return !1; + o = s.contentArea.children.indexOf(a) - 1; + c = s === i ? null : s; + } + e[r.$extra].target = c; + e[r.$extra].index = o; + return !0; + } + function handleOverflow(e, t, a) { + const i = e[r.$getTemplateRoot](), + n = i[r.$extra].noLayoutFailure, + s = t[r.$getSubformParent]; + t[r.$getSubformParent] = () => e; + i[r.$extra].noLayoutFailure = !0; + const o = t[r.$toHTML](a); + e[r.$addHTML](o.html, o.bbox); + i[r.$extra].noLayoutFailure = n; + t[r.$getSubformParent] = s; + } + class AppearanceFilter extends r.StringObject { + constructor(e) { + super(d, 'appearanceFilter'); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Arc extends r.XFAObject { + constructor(e) { + super(d, 'arc', !0); + this.circular = (0, o.getInteger)({ + data: e.circular, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']); + this.id = e.id || ''; + this.startAngle = (0, o.getFloat)({ + data: e.startAngle, + defaultValue: 0, + validate: (e) => !0, + }); + this.sweepAngle = (0, o.getFloat)({ + data: e.sweepAngle, + defaultValue: 360, + validate: (e) => !0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.edge = null; + this.fill = null; + } + [r.$toHTML]() { + const e = this.edge || new Edge({}), + t = e[r.$toStyle](), + a = Object.create(null); + this.fill && 'visible' === this.fill.presence + ? Object.assign(a, this.fill[r.$toStyle]()) + : (a.fill = 'transparent'); + a.strokeWidth = (0, s.measureToString)('visible' === e.presence ? e.thickness : 0); + a.stroke = t.color; + let i; + const n = { xmlns: f, style: { width: '100%', height: '100%', overflow: 'visible' } }; + if (360 === this.sweepAngle) + i = { + name: 'ellipse', + attributes: { xmlns: f, cx: '50%', cy: '50%', rx: '50%', ry: '50%', style: a }, + }; + else { + const e = (this.startAngle * Math.PI) / 180, + t = (this.sweepAngle * Math.PI) / 180, + r = this.sweepAngle > 180 ? 1 : 0, + [s, o, c, l] = [ + 50 * (1 + Math.cos(e)), + 50 * (1 - Math.sin(e)), + 50 * (1 + Math.cos(e + t)), + 50 * (1 - Math.sin(e + t)), + ]; + i = { + name: 'path', + attributes: { + xmlns: f, + d: `M ${s} ${o} A 50 50 0 ${r} 0 ${c} ${l}`, + vectorEffect: 'non-scaling-stroke', + style: a, + }, + }; + Object.assign(n, { viewBox: '0 0 100 100', preserveAspectRatio: 'none' }); + } + const c = { name: 'svg', children: [i], attributes: n }; + if (hasMargin(this[r.$getParent]()[r.$getParent]())) + return o.HTMLResult.success({ + name: 'div', + attributes: { style: { display: 'inline', width: '100%', height: '100%' } }, + children: [c], + }); + c.attributes.style.position = 'absolute'; + return o.HTMLResult.success(c); + } + } + class Area extends r.XFAObject { + constructor(e) { + super(d, 'area', !0); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.id = e.id || ''; + this.name = e.name || ''; + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(e.y, '0pt'); + this.desc = null; + this.extras = null; + this.area = new r.XFAObjectArray(); + this.draw = new r.XFAObjectArray(); + this.exObject = new r.XFAObjectArray(); + this.exclGroup = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + this.subformSet = new r.XFAObjectArray(); + } + *[r.$getContainedChildren]() { + yield* getContainedChildren(this); + } + [r.$isTransparent]() { + return !0; + } + [r.$isBindable]() { + return !0; + } + [r.$addHTML](e, t) { + const [a, i, n, s] = t; + this[r.$extra].width = Math.max(this[r.$extra].width, a + n); + this[r.$extra].height = Math.max(this[r.$extra].height, i + s); + this[r.$extra].children.push(e); + } + [r.$getAvailableSpace]() { + return this[r.$extra].availableSpace; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'position'), + a = { style: t, id: this[r.$uid], class: ['xfaArea'] }; + (0, s.isPrintOnly)(this) && a.class.push('xfaPrintOnly'); + this.name && (a.xfaName = this.name); + const i = []; + this[r.$extra] = { children: i, width: 0, height: 0, availableSpace: e }; + const n = this[r.$childrenToHTML]({ + filter: new Set(['area', 'draw', 'field', 'exclGroup', 'subform', 'subformSet']), + include: !0, + }); + if (!n.success) { + if (n.isBreak()) return n; + delete this[r.$extra]; + return o.HTMLResult.FAILURE; + } + t.width = (0, s.measureToString)(this[r.$extra].width); + t.height = (0, s.measureToString)(this[r.$extra].height); + const c = { name: 'div', attributes: a, children: i }, + l = [this.x, this.y, this[r.$extra].width, this[r.$extra].height]; + delete this[r.$extra]; + return o.HTMLResult.success(c, l); + } + } + class Assist extends r.XFAObject { + constructor(e) { + super(d, 'assist', !0); + this.id = e.id || ''; + this.role = e.role || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.speak = null; + this.toolTip = null; + } + [r.$toHTML]() { + return this.toolTip && this.toolTip[r.$content] ? this.toolTip[r.$content] : null; + } + } + class Barcode extends r.XFAObject { + constructor(e) { + super(d, 'barcode', !0); + this.charEncoding = (0, o.getKeyword)({ + data: e.charEncoding ? e.charEncoding.toLowerCase() : '', + defaultValue: '', + validate: (e) => + [ + 'utf-8', + 'big-five', + 'fontspecific', + 'gbk', + 'gb-18030', + 'gb-2312', + 'ksc-5601', + 'none', + 'shift-jis', + 'ucs-2', + 'utf-16', + ].includes(e) || e.match(/iso-8859-\d{2}/), + }); + this.checksum = (0, o.getStringOption)(e.checksum, [ + 'none', + '1mod10', + '1mod10_1mod11', + '2mod10', + 'auto', + ]); + this.dataColumnCount = (0, o.getInteger)({ + data: e.dataColumnCount, + defaultValue: -1, + validate: (e) => e >= 0, + }); + this.dataLength = (0, o.getInteger)({ + data: e.dataLength, + defaultValue: -1, + validate: (e) => e >= 0, + }); + this.dataPrep = (0, o.getStringOption)(e.dataPrep, ['none', 'flateCompress']); + this.dataRowCount = (0, o.getInteger)({ + data: e.dataRowCount, + defaultValue: -1, + validate: (e) => e >= 0, + }); + this.endChar = e.endChar || ''; + this.errorCorrectionLevel = (0, o.getInteger)({ + data: e.errorCorrectionLevel, + defaultValue: -1, + validate: (e) => e >= 0 && e <= 8, + }); + this.id = e.id || ''; + this.moduleHeight = (0, o.getMeasurement)(e.moduleHeight, '5mm'); + this.moduleWidth = (0, o.getMeasurement)(e.moduleWidth, '0.25mm'); + this.printCheckDigit = (0, o.getInteger)({ + data: e.printCheckDigit, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.rowColumnRatio = (0, o.getRatio)(e.rowColumnRatio); + this.startChar = e.startChar || ''; + this.textLocation = (0, o.getStringOption)(e.textLocation, [ + 'below', + 'above', + 'aboveEmbedded', + 'belowEmbedded', + 'none', + ]); + this.truncate = (0, o.getInteger)({ + data: e.truncate, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.type = (0, o.getStringOption)(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 = (0, o.getStringOption)(e.upsMode, [ + 'usCarrier', + 'internationalCarrier', + 'secureSymbol', + 'standardSymbol', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.wideNarrowRatio = (0, o.getRatio)(e.wideNarrowRatio); + this.encrypt = null; + this.extras = null; + } + } + class Bind extends r.XFAObject { + constructor(e) { + super(d, 'bind', !0); + this.match = (0, o.getStringOption)(e.match, ['once', 'dataRef', 'global', 'none']); + this.ref = e.ref || ''; + this.picture = null; + } + } + class BindItems extends r.XFAObject { + constructor(e) { + super(d, 'bindItems'); + this.connection = e.connection || ''; + this.labelRef = e.labelRef || ''; + this.ref = e.ref || ''; + this.valueRef = e.valueRef || ''; + } + } + t.BindItems = BindItems; + class Bookend extends r.XFAObject { + constructor(e) { + super(d, 'bookend'); + this.id = e.id || ''; + this.leader = e.leader || ''; + this.trailer = e.trailer || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class BooleanElement extends r.Option01 { + constructor(e) { + super(d, 'boolean'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$toHTML](e) { + return valueToHtml(1 === this[r.$content] ? '1' : '0'); + } + } + class Border extends r.XFAObject { + constructor(e) { + super(d, 'border', !0); + this.break = (0, o.getStringOption)(e.break, ['close', 'open']); + this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']); + this.id = e.id || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.corner = new r.XFAObjectArray(4); + this.edge = new r.XFAObjectArray(4); + this.extras = null; + this.fill = null; + this.margin = null; + } + [r.$getExtra]() { + if (!this[r.$extra]) { + const e = this.edge.children.slice(); + if (e.length < 4) { + const t = e.at(-1) || new Edge({}); + for (let a = e.length; a < 4; a++) e.push(t); + } + const t = e.map((e) => e.thickness), + a = [0, 0, 0, 0]; + if (this.margin) { + a[0] = this.margin.topInset; + a[1] = this.margin.rightInset; + a[2] = this.margin.bottomInset; + a[3] = this.margin.leftInset; + } + this[r.$extra] = { widths: t, insets: a, edges: e }; + } + return this[r.$extra]; + } + [r.$toStyle]() { + const { edges: e } = this[r.$getExtra](), + t = e.map((e) => { + const t = e[r.$toStyle](); + t.color = t.color || '#000000'; + return t; + }), + a = Object.create(null); + this.margin && Object.assign(a, this.margin[r.$toStyle]()); + this.fill && + 'visible' === this.fill.presence && + Object.assign(a, this.fill[r.$toStyle]()); + if (this.corner.children.some((e) => 0 !== e.radius)) { + const e = this.corner.children.map((e) => e[r.$toStyle]()); + if (2 === e.length || 3 === e.length) { + const t = e.at(-1); + for (let a = e.length; a < 4; a++) e.push(t); + } + a.borderRadius = e.map((e) => e.radius).join(' '); + } + switch (this.presence) { + case 'invisible': + case 'hidden': + a.borderStyle = ''; + break; + case 'inactive': + a.borderStyle = 'none'; + break; + default: + a.borderStyle = t.map((e) => e.style).join(' '); + } + a.borderWidth = t.map((e) => e.width).join(' '); + a.borderColor = t.map((e) => e.color).join(' '); + return a; + } + } + class Break extends r.XFAObject { + constructor(e) { + super(d, 'break', !0); + this.after = (0, o.getStringOption)(e.after, [ + 'auto', + 'contentArea', + 'pageArea', + 'pageEven', + 'pageOdd', + ]); + this.afterTarget = e.afterTarget || ''; + this.before = (0, o.getStringOption)(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 = (0, o.getInteger)({ + data: e.startNew, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + } + class BreakAfter extends r.XFAObject { + constructor(e) { + super(d, 'breakAfter', !0); + this.id = e.id || ''; + this.leader = e.leader || ''; + this.startNew = (0, o.getInteger)({ + data: e.startNew, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.target = e.target || ''; + this.targetType = (0, o.getStringOption)(e.targetType, [ + 'auto', + 'contentArea', + 'pageArea', + ]); + this.trailer = e.trailer || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.script = null; + } + } + class BreakBefore extends r.XFAObject { + constructor(e) { + super(d, 'breakBefore', !0); + this.id = e.id || ''; + this.leader = e.leader || ''; + this.startNew = (0, o.getInteger)({ + data: e.startNew, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.target = e.target || ''; + this.targetType = (0, o.getStringOption)(e.targetType, [ + 'auto', + 'contentArea', + 'pageArea', + ]); + this.trailer = e.trailer || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.script = null; + } + [r.$toHTML](e) { + this[r.$extra] = {}; + return o.HTMLResult.FAILURE; + } + } + class Button extends r.XFAObject { + constructor(e) { + super(d, 'button', !0); + this.highlight = (0, o.getStringOption)(e.highlight, [ + 'inverted', + 'none', + 'outline', + 'push', + ]); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + [r.$toHTML](e) { + const t = this[r.$getParent]()[r.$getParent](), + a = { + name: 'button', + attributes: { id: this[r.$uid], class: ['xfaButton'], style: {} }, + children: [], + }; + for (const e of t.event.children) { + if ('click' !== e.activity || !e.script) continue; + const t = (0, h.recoverJsURL)(e.script[r.$content]); + if (!t) continue; + const i = (0, s.fixURL)(t.url); + i && + a.children.push({ + name: 'a', + attributes: { + id: 'link' + this[r.$uid], + href: i, + newWindow: t.newWindow, + class: ['xfaLink'], + style: {}, + }, + children: [], + }); + } + return o.HTMLResult.success(a); + } + } + class Calculate extends r.XFAObject { + constructor(e) { + super(d, 'calculate', !0); + this.id = e.id || ''; + this.override = (0, o.getStringOption)(e.override, [ + 'disabled', + 'error', + 'ignore', + 'warning', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + this.message = null; + this.script = null; + } + } + class Caption extends r.XFAObject { + constructor(e) { + super(d, 'caption', !0); + this.id = e.id || ''; + this.placement = (0, o.getStringOption)(e.placement, [ + 'left', + 'bottom', + 'inline', + 'right', + 'top', + ]); + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.reserve = Math.ceil((0, o.getMeasurement)(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; + } + [r.$setValue](e) { + _setValue(this, e); + } + [r.$getExtra](e) { + if (!this[r.$extra]) { + let { width: t, height: a } = e; + switch (this.placement) { + case 'left': + case 'right': + case 'inline': + t = this.reserve <= 0 ? t : this.reserve; + break; + case 'top': + case 'bottom': + a = this.reserve <= 0 ? a : this.reserve; + } + this[r.$extra] = (0, s.layoutNode)(this, { width: t, height: a }); + } + return this[r.$extra]; + } + [r.$toHTML](e) { + if (!this.value) return o.HTMLResult.EMPTY; + this[r.$pushPara](); + const t = this.value[r.$toHTML](e).html; + if (!t) { + this[r.$popPara](); + return o.HTMLResult.EMPTY; + } + const a = this.reserve; + if (this.reserve <= 0) { + const { w: t, h: a } = this[r.$getExtra](e); + switch (this.placement) { + case 'left': + case 'right': + case 'inline': + this.reserve = t; + break; + case 'top': + case 'bottom': + this.reserve = a; + } + } + const i = []; + 'string' == typeof t ? i.push({ name: '#text', value: t }) : i.push(t); + const n = (0, s.toStyle)(this, 'font', 'margin', 'visibility'); + switch (this.placement) { + case 'left': + case 'right': + this.reserve > 0 && (n.width = (0, s.measureToString)(this.reserve)); + break; + case 'top': + case 'bottom': + this.reserve > 0 && (n.height = (0, s.measureToString)(this.reserve)); + } + (0, s.setPara)(this, null, t); + this[r.$popPara](); + this.reserve = a; + return o.HTMLResult.success({ + name: 'div', + attributes: { style: n, class: ['xfaCaption'] }, + children: i, + }); + } + } + class Certificate extends r.StringObject { + constructor(e) { + super(d, 'certificate'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Certificates extends r.XFAObject { + constructor(e) { + super(d, 'certificates', !0); + this.credentialServerPolicy = (0, o.getStringOption)(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; + } + } + class CheckButton extends r.XFAObject { + constructor(e) { + super(d, 'checkButton', !0); + this.id = e.id || ''; + this.mark = (0, o.getStringOption)(e.mark, [ + 'default', + 'check', + 'circle', + 'cross', + 'diamond', + 'square', + 'star', + ]); + this.shape = (0, o.getStringOption)(e.shape, ['square', 'round']); + this.size = (0, o.getMeasurement)(e.size, '10pt'); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.border = null; + this.extras = null; + this.margin = null; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)('margin'), + a = (0, s.measureToString)(this.size); + t.width = t.height = a; + let i, n, c; + const l = this[r.$getParent]()[r.$getParent](), + h = (l.items.children.length && l.items.children[0][r.$toHTML]().html) || [], + u = { + on: (void 0 !== h[0] ? h[0] : 'on').toString(), + off: (void 0 !== h[1] ? h[1] : 'off').toString(), + }, + d = ((l.value && l.value[r.$text]()) || 'off') === u.on || void 0, + f = l[r.$getSubformParent](), + g = l[r.$uid]; + let p; + if (f instanceof ExclGroup) { + c = f[r.$uid]; + i = 'radio'; + n = 'xfaRadio'; + p = (f[r.$data] && f[r.$data][r.$uid]) || f[r.$uid]; + } else { + i = 'checkbox'; + n = 'xfaCheckbox'; + p = (l[r.$data] && l[r.$data][r.$uid]) || l[r.$uid]; + } + const m = { + name: 'input', + attributes: { + class: [n], + style: t, + fieldId: g, + dataId: p, + type: i, + checked: d, + xfaOn: u.on, + xfaOff: u.off, + 'aria-label': ariaLabel(l), + 'aria-required': !1, + }, + }; + c && (m.attributes.name = c); + if (isRequired(l)) { + m.attributes['aria-required'] = !0; + m.attributes.required = !0; + } + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [m], + }); + } + } + class ChoiceList extends r.XFAObject { + constructor(e) { + super(d, 'choiceList', !0); + this.commitOn = (0, o.getStringOption)(e.commitOn, ['select', 'exit']); + this.id = e.id || ''; + this.open = (0, o.getStringOption)(e.open, [ + 'userControl', + 'always', + 'multiSelect', + 'onEntry', + ]); + this.textEntry = (0, o.getInteger)({ + data: e.textEntry, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.border = null; + this.extras = null; + this.margin = null; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'border', 'margin'), + a = this[r.$getParent]()[r.$getParent](), + i = { fontSize: `calc(${(a.font && a.font.size) || 10}px * var(--scale-factor))` }, + n = []; + if (a.items.children.length > 0) { + const e = a.items; + let t = 0, + s = 0; + if (2 === e.children.length) { + t = e.children[0].save; + s = 1 - t; + } + const o = e.children[t][r.$toHTML]().html, + c = e.children[s][r.$toHTML]().html; + let l = !1; + const h = (a.value && a.value[r.$text]()) || ''; + for (let e = 0, t = o.length; e < t; e++) { + const t = { + name: 'option', + attributes: { value: c[e] || o[e], style: i }, + value: o[e], + }; + c[e] === h && (t.attributes.selected = l = !0); + n.push(t); + } + l || + n.splice(0, 0, { + name: 'option', + attributes: { hidden: !0, selected: !0 }, + value: ' ', + }); + } + const c = { + class: ['xfaSelect'], + fieldId: a[r.$uid], + dataId: (a[r.$data] && a[r.$data][r.$uid]) || a[r.$uid], + style: t, + 'aria-label': ariaLabel(a), + 'aria-required': !1, + }; + if (isRequired(a)) { + c['aria-required'] = !0; + c.required = !0; + } + 'multiSelect' === this.open && (c.multiple = !0); + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [{ name: 'select', children: n, attributes: c }], + }); + } + } + class Color extends r.XFAObject { + constructor(e) { + super(d, 'color', !0); + this.cSpace = (0, o.getStringOption)(e.cSpace, ['SRGB']); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.value = e.value ? (0, o.getColor)(e.value) : ''; + this.extras = null; + } + [r.$hasSettableValue]() { + return !1; + } + [r.$toStyle]() { + return this.value + ? c.Util.makeHexColor(this.value.r, this.value.g, this.value.b) + : null; + } + } + class Comb extends r.XFAObject { + constructor(e) { + super(d, 'comb'); + this.id = e.id || ''; + this.numberOfCells = (0, o.getInteger)({ + data: e.numberOfCells, + defaultValue: 0, + validate: (e) => e >= 0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Connect extends r.XFAObject { + constructor(e) { + super(d, 'connect', !0); + this.connection = e.connection || ''; + this.id = e.id || ''; + this.ref = e.ref || ''; + this.usage = (0, o.getStringOption)(e.usage, [ + 'exportAndImport', + 'exportOnly', + 'importOnly', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.picture = null; + } + } + class ContentArea extends r.XFAObject { + constructor(e) { + super(d, 'contentArea', !0); + this.h = (0, o.getMeasurement)(e.h); + this.id = e.id || ''; + this.name = e.name || ''; + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = (0, o.getMeasurement)(e.w); + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(e.y, '0pt'); + this.desc = null; + this.extras = null; + } + [r.$toHTML](e) { + const t = { + left: (0, s.measureToString)(this.x), + top: (0, s.measureToString)(this.y), + width: (0, s.measureToString)(this.w), + height: (0, s.measureToString)(this.h), + }, + a = ['xfaContentarea']; + (0, s.isPrintOnly)(this) && a.push('xfaPrintOnly'); + return o.HTMLResult.success({ + name: 'div', + children: [], + attributes: { style: t, class: a, id: this[r.$uid] }, + }); + } + } + class Corner extends r.XFAObject { + constructor(e) { + super(d, 'corner', !0); + this.id = e.id || ''; + this.inverted = (0, o.getInteger)({ + data: e.inverted, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.join = (0, o.getStringOption)(e.join, ['square', 'round']); + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.radius = (0, o.getMeasurement)(e.radius); + this.stroke = (0, o.getStringOption)(e.stroke, [ + 'solid', + 'dashDot', + 'dashDotDot', + 'dashed', + 'dotted', + 'embossed', + 'etched', + 'lowered', + 'raised', + ]); + this.thickness = (0, o.getMeasurement)(e.thickness, '0.5pt'); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle]() { + const e = (0, s.toStyle)(this, 'visibility'); + e.radius = (0, s.measureToString)('square' === this.join ? 0 : this.radius); + return e; + } + } + class DateElement extends r.ContentObject { + constructor(e) { + super(d, 'date'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = this[r.$content].trim(); + this[r.$content] = e ? new Date(e) : null; + } + [r.$toHTML](e) { + return valueToHtml(this[r.$content] ? this[r.$content].toString() : ''); + } + } + class DateTime extends r.ContentObject { + constructor(e) { + super(d, 'dateTime'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = this[r.$content].trim(); + this[r.$content] = e ? new Date(e) : null; + } + [r.$toHTML](e) { + return valueToHtml(this[r.$content] ? this[r.$content].toString() : ''); + } + } + class DateTimeEdit extends r.XFAObject { + constructor(e) { + super(d, 'dateTimeEdit', !0); + this.hScrollPolicy = (0, o.getStringOption)(e.hScrollPolicy, ['auto', 'off', 'on']); + this.id = e.id || ''; + this.picker = (0, o.getStringOption)(e.picker, ['host', 'none']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'border', 'font', 'margin'), + a = this[r.$getParent]()[r.$getParent](), + i = { + name: 'input', + attributes: { + type: 'text', + fieldId: a[r.$uid], + dataId: (a[r.$data] && a[r.$data][r.$uid]) || a[r.$uid], + class: ['xfaTextfield'], + style: t, + 'aria-label': ariaLabel(a), + 'aria-required': !1, + }, + }; + if (isRequired(a)) { + i.attributes['aria-required'] = !0; + i.attributes.required = !0; + } + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [i], + }); + } + } + class Decimal extends r.ContentObject { + constructor(e) { + super(d, 'decimal'); + this.fracDigits = (0, o.getInteger)({ + data: e.fracDigits, + defaultValue: 2, + validate: (e) => !0, + }); + this.id = e.id || ''; + this.leadDigits = (0, o.getInteger)({ + data: e.leadDigits, + defaultValue: -1, + validate: (e) => !0, + }); + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = parseFloat(this[r.$content].trim()); + this[r.$content] = isNaN(e) ? null : e; + } + [r.$toHTML](e) { + return valueToHtml(null !== this[r.$content] ? this[r.$content].toString() : ''); + } + } + class DefaultUi extends r.XFAObject { + constructor(e) { + super(d, 'defaultUi', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + } + class Desc extends r.XFAObject { + constructor(e) { + super(d, 'desc', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.boolean = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + } + class DigestMethod extends r.OptionObject { + constructor(e) { + super(d, 'digestMethod', ['', 'SHA1', 'SHA256', 'SHA512', 'RIPEMD160']); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class DigestMethods extends r.XFAObject { + constructor(e) { + super(d, 'digestMethods', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.digestMethod = new r.XFAObjectArray(); + } + } + class Draw extends r.XFAObject { + constructor(e) { + super(d, 'draw', !0); + this.anchorType = (0, o.getStringOption)(e.anchorType, [ + 'topLeft', + 'bottomCenter', + 'bottomLeft', + 'bottomRight', + 'middleCenter', + 'middleLeft', + 'middleRight', + 'topCenter', + 'topRight', + ]); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.h = e.h ? (0, o.getMeasurement)(e.h) : ''; + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.locale = e.locale || ''; + this.maxH = (0, o.getMeasurement)(e.maxH, '0pt'); + this.maxW = (0, o.getMeasurement)(e.maxW, '0pt'); + this.minH = (0, o.getMeasurement)(e.minH, '0pt'); + this.minW = (0, o.getMeasurement)(e.minW, '0pt'); + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.rotate = (0, o.getInteger)({ + data: e.rotate, + defaultValue: 0, + validate: (e) => e % 90 == 0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = e.w ? (0, o.getMeasurement)(e.w) : ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(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.XFAObjectArray(); + } + [r.$setValue](e) { + _setValue(this, e); + } + [r.$toHTML](e) { + setTabIndex(this); + if ('hidden' === this.presence || 'inactive' === this.presence) + return o.HTMLResult.EMPTY; + (0, s.fixDimensions)(this); + this[r.$pushPara](); + const t = this.w, + a = this.h, + { w: i, h: c, isBroken: l } = (0, s.layoutNode)(this, e); + if (i && '' === this.w) { + if (l && this[r.$getSubformParent]()[r.$isThereMoreWidth]()) { + this[r.$popPara](); + return o.HTMLResult.FAILURE; + } + this.w = i; + } + c && '' === this.h && (this.h = c); + setFirstUnsplittable(this); + if (!(0, n.checkDimensions)(this, e)) { + this.w = t; + this.h = a; + this[r.$popPara](); + return o.HTMLResult.FAILURE; + } + unsetFirstUnsplittable(this); + const h = (0, s.toStyle)( + this, + 'font', + 'hAlign', + 'dimensions', + 'position', + 'presence', + 'rotate', + 'anchorType', + 'border', + 'margin', + ); + (0, s.setMinMaxDimensions)(this, h); + if (h.margin) { + h.padding = h.margin; + delete h.margin; + } + const u = ['xfaDraw']; + this.font && u.push('xfaFont'); + (0, s.isPrintOnly)(this) && u.push('xfaPrintOnly'); + const d = { style: h, id: this[r.$uid], class: u }; + this.name && (d.xfaName = this.name); + const f = { name: 'div', attributes: d, children: [] }; + applyAssist(this, d); + const g = (0, s.computeBbox)(this, f, e), + p = this.value ? this.value[r.$toHTML](e).html : null; + if (null === p) { + this.w = t; + this.h = a; + this[r.$popPara](); + return o.HTMLResult.success((0, s.createWrapper)(this, f), g); + } + f.children.push(p); + (0, s.setPara)(this, h, p); + this.w = t; + this.h = a; + this[r.$popPara](); + return o.HTMLResult.success((0, s.createWrapper)(this, f), g); + } + } + class Edge extends r.XFAObject { + constructor(e) { + super(d, 'edge', !0); + this.cap = (0, o.getStringOption)(e.cap, ['square', 'butt', 'round']); + this.id = e.id || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.stroke = (0, o.getStringOption)(e.stroke, [ + 'solid', + 'dashDot', + 'dashDotDot', + 'dashed', + 'dotted', + 'embossed', + 'etched', + 'lowered', + 'raised', + ]); + this.thickness = (0, o.getMeasurement)(e.thickness, '0.5pt'); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle]() { + const e = (0, s.toStyle)(this, 'visibility'); + Object.assign(e, { + linecap: this.cap, + width: (0, s.measureToString)(this.thickness), + color: this.color ? this.color[r.$toStyle]() : '#000000', + style: '', + }); + if ('visible' !== this.presence) e.style = 'none'; + else + switch (this.stroke) { + case 'solid': + e.style = 'solid'; + break; + case 'dashDot': + case 'dashDotDot': + 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'; + } + return e; + } + } + class Encoding extends r.OptionObject { + constructor(e) { + super(d, 'encoding', [ + 'adbe.x509.rsa_sha1', + 'adbe.pkcs7.detached', + 'adbe.pkcs7.sha1', + ]); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Encodings extends r.XFAObject { + constructor(e) { + super(d, 'encodings', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.encoding = new r.XFAObjectArray(); + } + } + class Encrypt extends r.XFAObject { + constructor(e) { + super(d, 'encrypt', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.certificate = null; + } + } + class EncryptData extends r.XFAObject { + constructor(e) { + super(d, 'encryptData', !0); + this.id = e.id || ''; + this.operation = (0, o.getStringOption)(e.operation, ['encrypt', 'decrypt']); + this.target = e.target || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.filter = null; + this.manifest = null; + } + } + class Encryption extends r.XFAObject { + constructor(e) { + super(d, 'encryption', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.certificate = new r.XFAObjectArray(); + } + } + class EncryptionMethod extends r.OptionObject { + constructor(e) { + super(d, 'encryptionMethod', [ + '', + 'AES256-CBC', + 'TRIPLEDES-CBC', + 'AES128-CBC', + 'AES192-CBC', + ]); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class EncryptionMethods extends r.XFAObject { + constructor(e) { + super(d, 'encryptionMethods', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.encryptionMethod = new r.XFAObjectArray(); + } + } + class Event extends r.XFAObject { + constructor(e) { + super(d, 'event', !0); + this.activity = (0, o.getStringOption)(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 = (0, o.getStringOption)(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; + } + } + class ExData extends r.ContentObject { + constructor(e) { + super(d, 'exData'); + this.contentType = e.contentType || ''; + this.href = e.href || ''; + this.id = e.id || ''; + this.maxLength = (0, o.getInteger)({ + data: e.maxLength, + defaultValue: -1, + validate: (e) => e >= -1, + }); + this.name = e.name || ''; + this.rid = e.rid || ''; + this.transferEncoding = (0, o.getStringOption)(e.transferEncoding, [ + 'none', + 'base64', + 'package', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$isCDATAXml]() { + return 'text/html' === this.contentType; + } + [r.$onChild](e) { + if ( + 'text/html' === this.contentType && + e[r.$namespaceId] === i.NamespaceIds.xhtml.id + ) { + this[r.$content] = e; + return !0; + } + if ('text/xml' === this.contentType) { + this[r.$content] = e; + return !0; + } + return !1; + } + [r.$toHTML](e) { + return 'text/html' === this.contentType && this[r.$content] + ? this[r.$content][r.$toHTML](e) + : o.HTMLResult.EMPTY; + } + } + class ExObject extends r.XFAObject { + constructor(e) { + super(d, 'exObject', !0); + 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.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.exObject = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + } + class ExclGroup extends r.XFAObject { + constructor(e) { + super(d, 'exclGroup', !0); + this.access = (0, o.getStringOption)(e.access, [ + 'open', + 'nonInteractive', + 'protected', + 'readOnly', + ]); + this.accessKey = e.accessKey || ''; + this.anchorType = (0, o.getStringOption)(e.anchorType, [ + 'topLeft', + 'bottomCenter', + 'bottomLeft', + 'bottomRight', + 'middleCenter', + 'middleLeft', + 'middleRight', + 'topCenter', + 'topRight', + ]); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.h = e.h ? (0, o.getMeasurement)(e.h) : ''; + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.layout = (0, o.getStringOption)(e.layout, [ + 'position', + 'lr-tb', + 'rl-row', + 'rl-tb', + 'row', + 'table', + 'tb', + ]); + this.maxH = (0, o.getMeasurement)(e.maxH, '0pt'); + this.maxW = (0, o.getMeasurement)(e.maxW, '0pt'); + this.minH = (0, o.getMeasurement)(e.minH, '0pt'); + this.minW = (0, o.getMeasurement)(e.minW, '0pt'); + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = e.w ? (0, o.getMeasurement)(e.w) : ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(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.XFAObjectArray(); + this.event = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.setProperty = new r.XFAObjectArray(); + } + [r.$isBindable]() { + return !0; + } + [r.$hasSettableValue]() { + return !0; + } + [r.$setValue](e) { + for (const t of this.field.children) { + if (!t.value) { + const e = new Value({}); + t[r.$appendChild](e); + t.value = e; + } + t.value[r.$setValue](e); + } + } + [r.$isThereMoreWidth]() { + return ( + (this.layout.endsWith('-tb') && + 0 === this[r.$extra].attempt && + this[r.$extra].numberInLine > 0) || + this[r.$getParent]()[r.$isThereMoreWidth]() + ); + } + [r.$isSplittable]() { + const e = this[r.$getSubformParent](); + if (!e[r.$isSplittable]()) return !1; + if (void 0 !== this[r.$extra]._isSplittable) return this[r.$extra]._isSplittable; + if ('position' === this.layout || this.layout.includes('row')) { + this[r.$extra]._isSplittable = !1; + return !1; + } + if (e.layout && e.layout.endsWith('-tb') && 0 !== e[r.$extra].numberInLine) return !1; + this[r.$extra]._isSplittable = !0; + return !0; + } + [r.$flushHTML]() { + return (0, n.flushHTML)(this); + } + [r.$addHTML](e, t) { + (0, n.addHTML)(this, e, t); + } + [r.$getAvailableSpace]() { + return (0, n.getAvailableSpace)(this); + } + [r.$toHTML](e) { + setTabIndex(this); + if ( + 'hidden' === this.presence || + 'inactive' === this.presence || + 0 === this.h || + 0 === this.w + ) + return o.HTMLResult.EMPTY; + (0, s.fixDimensions)(this); + const t = [], + a = { id: this[r.$uid], class: [] }; + (0, s.setAccess)(this, a.class); + this[r.$extra] || (this[r.$extra] = Object.create(null)); + Object.assign(this[r.$extra], { + children: t, + attributes: a, + 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[r.$isSplittable](); + i || setFirstUnsplittable(this); + if (!(0, n.checkDimensions)(this, e)) return o.HTMLResult.FAILURE; + const c = new Set(['field']); + if (this.layout.includes('row')) { + const e = this[r.$getSubformParent]().columnWidths; + if (Array.isArray(e) && e.length > 0) { + this[r.$extra].columnWidths = e; + this[r.$extra].currentColumn = 0; + } + } + const l = (0, s.toStyle)( + this, + 'anchorType', + 'dimensions', + 'position', + 'presence', + 'border', + 'margin', + 'hAlign', + ), + h = ['xfaExclgroup'], + u = (0, s.layoutClass)(this); + u && h.push(u); + (0, s.isPrintOnly)(this) && h.push('xfaPrintOnly'); + a.style = l; + a.class = h; + this.name && (a.xfaName = this.name); + this[r.$pushPara](); + const d = 'lr-tb' === this.layout || 'rl-tb' === this.layout, + f = d ? 2 : 1; + for (; this[r.$extra].attempt < f; this[r.$extra].attempt++) { + d && 1 === this[r.$extra].attempt && (this[r.$extra].numberInLine = 0); + const e = this[r.$childrenToHTML]({ filter: c, include: !0 }); + if (e.success) break; + if (e.isBreak()) { + this[r.$popPara](); + return e; + } + if ( + d && + 0 === this[r.$extra].attempt && + 0 === this[r.$extra].numberInLine && + !this[r.$getTemplateRoot]()[r.$extra].noLayoutFailure + ) { + this[r.$extra].attempt = f; + break; + } + } + this[r.$popPara](); + i || unsetFirstUnsplittable(this); + if (this[r.$extra].attempt === f) { + i || delete this[r.$extra]; + return o.HTMLResult.FAILURE; + } + let g = 0, + p = 0; + if (this.margin) { + g = this.margin.leftInset + this.margin.rightInset; + p = this.margin.topInset + this.margin.bottomInset; + } + const m = Math.max(this[r.$extra].width + g, this.w || 0), + b = Math.max(this[r.$extra].height + p, this.h || 0), + y = [this.x, this.y, m, b]; + '' === this.w && (l.width = (0, s.measureToString)(m)); + '' === this.h && (l.height = (0, s.measureToString)(b)); + const w = { name: 'div', attributes: a, children: t }; + applyAssist(this, a); + delete this[r.$extra]; + return o.HTMLResult.success((0, s.createWrapper)(this, w), y); + } + } + class Execute extends r.XFAObject { + constructor(e) { + super(d, 'execute'); + this.connection = e.connection || ''; + this.executeType = (0, o.getStringOption)(e.executeType, ['import', 'remerge']); + this.id = e.id || ''; + this.runAt = (0, o.getStringOption)(e.runAt, ['client', 'both', 'server']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Extras extends r.XFAObject { + constructor(e) { + super(d, 'extras', !0); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.boolean = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.extras = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + } + class Field extends r.XFAObject { + constructor(e) { + super(d, 'field', !0); + this.access = (0, o.getStringOption)(e.access, [ + 'open', + 'nonInteractive', + 'protected', + 'readOnly', + ]); + this.accessKey = e.accessKey || ''; + this.anchorType = (0, o.getStringOption)(e.anchorType, [ + 'topLeft', + 'bottomCenter', + 'bottomLeft', + 'bottomRight', + 'middleCenter', + 'middleLeft', + 'middleRight', + 'topCenter', + 'topRight', + ]); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.h = e.h ? (0, o.getMeasurement)(e.h) : ''; + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.locale = e.locale || ''; + this.maxH = (0, o.getMeasurement)(e.maxH, '0pt'); + this.maxW = (0, o.getMeasurement)(e.maxW, '0pt'); + this.minH = (0, o.getMeasurement)(e.minH, '0pt'); + this.minW = (0, o.getMeasurement)(e.minW, '0pt'); + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.rotate = (0, o.getInteger)({ + data: e.rotate, + defaultValue: 0, + validate: (e) => e % 90 == 0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = e.w ? (0, o.getMeasurement)(e.w) : ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(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.XFAObjectArray(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.XFAObjectArray(); + this.connect = new r.XFAObjectArray(); + this.event = new r.XFAObjectArray(); + this.setProperty = new r.XFAObjectArray(); + } + [r.$isBindable]() { + return !0; + } + [r.$setValue](e) { + _setValue(this, e); + } + [r.$toHTML](e) { + setTabIndex(this); + if (!this.ui) { + this.ui = new Ui({}); + this.ui[r.$globalData] = this[r.$globalData]; + this[r.$appendChild](this.ui); + let e; + switch (this.items.children.length) { + case 0: + e = new TextEdit({}); + this.ui.textEdit = e; + break; + case 1: + e = new CheckButton({}); + this.ui.checkButton = e; + break; + case 2: + e = new ChoiceList({}); + this.ui.choiceList = e; + } + this.ui[r.$appendChild](e); + } + if ( + !this.ui || + 'hidden' === this.presence || + 'inactive' === this.presence || + 0 === this.h || + 0 === this.w + ) + return o.HTMLResult.EMPTY; + this.caption && delete this.caption[r.$extra]; + this[r.$pushPara](); + const t = this.caption ? this.caption[r.$toHTML](e).html : null, + a = this.w, + i = this.h; + let c = 0, + h = 0; + if (this.margin) { + c = this.margin.leftInset + this.margin.rightInset; + h = this.margin.topInset + this.margin.bottomInset; + } + let u = null; + if ('' === this.w || '' === this.h) { + let t = null, + a = null, + i = 0, + n = 0; + if (this.ui.checkButton) i = n = this.ui.checkButton.size; + else { + const { w: t, h: a } = (0, s.layoutNode)(this, e); + if (null !== t) { + i = t; + n = a; + } else n = (0, l.getMetrics)(this.font, !0).lineNoGap; + } + u = getBorderDims(this.ui[r.$getExtra]()); + i += u.w; + n += u.h; + if (this.caption) { + const { w: s, h: c, isBroken: l } = this.caption[r.$getExtra](e); + if (l && this[r.$getSubformParent]()[r.$isThereMoreWidth]()) { + this[r.$popPara](); + return o.HTMLResult.FAILURE; + } + t = s; + a = c; + switch (this.caption.placement) { + case 'left': + case 'right': + case 'inline': + t += i; + break; + case 'top': + case 'bottom': + a += n; + } + } else { + t = i; + a = n; + } + if (t && '' === this.w) { + t += c; + this.w = Math.min( + this.maxW <= 0 ? 1 / 0 : this.maxW, + this.minW + 1 < t ? t : this.minW, + ); + } + if (a && '' === this.h) { + a += h; + this.h = Math.min( + this.maxH <= 0 ? 1 / 0 : this.maxH, + this.minH + 1 < a ? a : this.minH, + ); + } + } + this[r.$popPara](); + (0, s.fixDimensions)(this); + setFirstUnsplittable(this); + if (!(0, n.checkDimensions)(this, e)) { + this.w = a; + this.h = i; + this[r.$popPara](); + return o.HTMLResult.FAILURE; + } + unsetFirstUnsplittable(this); + const d = (0, s.toStyle)( + this, + 'font', + 'dimensions', + 'position', + 'rotate', + 'anchorType', + 'presence', + 'margin', + 'hAlign', + ); + (0, s.setMinMaxDimensions)(this, d); + const f = ['xfaField']; + this.font && f.push('xfaFont'); + (0, s.isPrintOnly)(this) && f.push('xfaPrintOnly'); + const g = { style: d, id: this[r.$uid], class: f }; + if (d.margin) { + d.padding = d.margin; + delete d.margin; + } + (0, s.setAccess)(this, f); + this.name && (g.xfaName = this.name); + const p = [], + m = { name: 'div', attributes: g, children: p }; + applyAssist(this, g); + const b = this.border ? this.border[r.$toStyle]() : null, + y = (0, s.computeBbox)(this, m, e), + w = this.ui[r.$toHTML]().html; + if (!w) { + Object.assign(d, b); + return o.HTMLResult.success((0, s.createWrapper)(this, m), y); + } + this[r.$tabIndex] && + (w.children && w.children[0] + ? (w.children[0].attributes.tabindex = this[r.$tabIndex]) + : (w.attributes.tabindex = this[r.$tabIndex])); + w.attributes.style || (w.attributes.style = Object.create(null)); + let S = null; + if (this.ui.button) { + 1 === w.children.length && ([S] = w.children.splice(0, 1)); + Object.assign(w.attributes.style, b); + } else Object.assign(d, b); + p.push(w); + if (this.value) + if (this.ui.imageEdit) w.children.push(this.value[r.$toHTML]().html); + else if (!this.ui.button) { + let e = ''; + if (this.value.exData) e = this.value.exData[r.$text](); + else if (this.value.text) e = this.value.text[r.$getExtra](); + else { + const t = this.value[r.$toHTML]().html; + null !== t && (e = t.children[0].value); + } + this.ui.textEdit && + this.value.text && + this.value.text.maxChars && + (w.children[0].attributes.maxLength = this.value.text.maxChars); + if (e) { + if (this.ui.numericEdit) { + e = parseFloat(e); + e = isNaN(e) ? '' : e.toString(); + } + 'textarea' === w.children[0].name + ? (w.children[0].attributes.textContent = e) + : (w.children[0].attributes.value = e); + } + } + if (!this.ui.imageEdit && w.children && w.children[0] && this.h) { + u = u || getBorderDims(this.ui[r.$getExtra]()); + let t = 0; + if (this.caption && ['top', 'bottom'].includes(this.caption.placement)) { + t = this.caption.reserve; + t <= 0 && (t = this.caption[r.$getExtra](e).h); + const a = this.h - t - h - u.h; + w.children[0].attributes.style.height = (0, s.measureToString)(a); + } else w.children[0].attributes.style.height = '100%'; + } + S && w.children.push(S); + if (!t) { + w.attributes.class && w.attributes.class.push('xfaLeft'); + this.w = a; + this.h = i; + return o.HTMLResult.success((0, s.createWrapper)(this, m), y); + } + if (this.ui.button) { + d.padding && delete d.padding; + 'div' === t.name && (t.name = 'span'); + w.children.push(t); + return o.HTMLResult.success(m, y); + } + this.ui.checkButton && (t.attributes.class[0] = 'xfaCaptionForCheckButton'); + w.attributes.class || (w.attributes.class = []); + w.children.splice(0, 0, t); + switch (this.caption.placement) { + case 'left': + case 'inline': + w.attributes.class.push('xfaLeft'); + break; + case 'right': + w.attributes.class.push('xfaRight'); + break; + case 'top': + w.attributes.class.push('xfaTop'); + break; + case 'bottom': + w.attributes.class.push('xfaBottom'); + } + this.w = a; + this.h = i; + return o.HTMLResult.success((0, s.createWrapper)(this, m), y); + } + } + t.Field = Field; + class Fill extends r.XFAObject { + constructor(e) { + super(d, 'fill', !0); + this.id = e.id || ''; + this.presence = (0, o.getStringOption)(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; + } + [r.$toStyle]() { + const e = this[r.$getParent](), + t = e[r.$getParent]()[r.$getParent](), + a = Object.create(null); + let i = 'color', + n = i; + if (e instanceof Border) { + i = 'background-color'; + n = 'background'; + t instanceof Ui && (a.backgroundColor = 'white'); + } + if (e instanceof Rectangle || e instanceof Arc) { + i = n = 'fill'; + a.fill = 'white'; + } + for (const e of Object.getOwnPropertyNames(this)) { + if ('extras' === e || 'color' === e) continue; + const t = this[e]; + if (!(t instanceof r.XFAObject)) continue; + const s = t[r.$toStyle](this.color); + s && (a[s.startsWith('#') ? i : n] = s); + return a; + } + if (this.color && this.color.value) { + const e = this.color[r.$toStyle](); + a[e.startsWith('#') ? i : n] = e; + } + return a; + } + } + class Filter extends r.XFAObject { + constructor(e) { + super(d, 'filter', !0); + this.addRevocationInfo = (0, o.getStringOption)(e.addRevocationInfo, [ + '', + 'required', + 'optional', + 'none', + ]); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.version = (0, o.getInteger)({ + data: this.version, + defaultValue: 5, + validate: (e) => e >= 1 && e <= 5, + }); + 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; + } + } + class Float extends r.ContentObject { + constructor(e) { + super(d, 'float'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = parseFloat(this[r.$content].trim()); + this[r.$content] = isNaN(e) ? null : e; + } + [r.$toHTML](e) { + return valueToHtml(null !== this[r.$content] ? this[r.$content].toString() : ''); + } + } + class Font extends r.XFAObject { + constructor(e) { + super(d, 'font', !0); + this.baselineShift = (0, o.getMeasurement)(e.baselineShift); + this.fontHorizontalScale = (0, o.getFloat)({ + data: e.fontHorizontalScale, + defaultValue: 100, + validate: (e) => e >= 0, + }); + this.fontVerticalScale = (0, o.getFloat)({ + data: e.fontVerticalScale, + defaultValue: 100, + validate: (e) => e >= 0, + }); + this.id = e.id || ''; + this.kerningMode = (0, o.getStringOption)(e.kerningMode, ['none', 'pair']); + this.letterSpacing = (0, o.getMeasurement)(e.letterSpacing, '0'); + this.lineThrough = (0, o.getInteger)({ + data: e.lineThrough, + defaultValue: 0, + validate: (e) => 1 === e || 2 === e, + }); + this.lineThroughPeriod = (0, o.getStringOption)(e.lineThroughPeriod, ['all', 'word']); + this.overline = (0, o.getInteger)({ + data: e.overline, + defaultValue: 0, + validate: (e) => 1 === e || 2 === e, + }); + this.overlinePeriod = (0, o.getStringOption)(e.overlinePeriod, ['all', 'word']); + this.posture = (0, o.getStringOption)(e.posture, ['normal', 'italic']); + this.size = (0, o.getMeasurement)(e.size, '10pt'); + this.typeface = e.typeface || 'Courier'; + this.underline = (0, o.getInteger)({ + data: e.underline, + defaultValue: 0, + validate: (e) => 1 === e || 2 === e, + }); + this.underlinePeriod = (0, o.getStringOption)(e.underlinePeriod, ['all', 'word']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.weight = (0, o.getStringOption)(e.weight, ['normal', 'bold']); + this.extras = null; + this.fill = null; + } + [r.$clean](e) { + super[r.$clean](e); + this[r.$globalData].usedTypefaces.add(this.typeface); + } + [r.$toStyle]() { + const e = (0, s.toStyle)(this, 'fill'), + t = e.color; + if (t) + if ('#000000' === t) delete e.color; + else if (!t.startsWith('#')) { + e.background = t; + e.backgroundClip = 'text'; + e.color = 'transparent'; + } + this.baselineShift && (e.verticalAlign = (0, s.measureToString)(this.baselineShift)); + e.fontKerning = 'none' === this.kerningMode ? 'none' : 'normal'; + e.letterSpacing = (0, s.measureToString)(this.letterSpacing); + if (0 !== this.lineThrough) { + e.textDecoration = 'line-through'; + 2 === this.lineThrough && (e.textDecorationStyle = 'double'); + } + if (0 !== this.overline) { + e.textDecoration = 'overline'; + 2 === this.overline && (e.textDecorationStyle = 'double'); + } + e.fontStyle = this.posture; + e.fontSize = (0, s.measureToString)(0.99 * this.size); + (0, s.setFontFamily)(this, this, this[r.$globalData].fontFinder, e); + if (0 !== this.underline) { + e.textDecoration = 'underline'; + 2 === this.underline && (e.textDecorationStyle = 'double'); + } + e.fontWeight = this.weight; + return e; + } + } + class Format extends r.XFAObject { + constructor(e) { + super(d, 'format', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + this.picture = null; + } + } + class Handler extends r.StringObject { + constructor(e) { + super(d, 'handler'); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Hyphenation extends r.XFAObject { + constructor(e) { + super(d, 'hyphenation'); + this.excludeAllCaps = (0, o.getInteger)({ + data: e.excludeAllCaps, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.excludeInitialCap = (0, o.getInteger)({ + data: e.excludeInitialCap, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.hyphenate = (0, o.getInteger)({ + data: e.hyphenate, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.id = e.id || ''; + this.pushCharacterCount = (0, o.getInteger)({ + data: e.pushCharacterCount, + defaultValue: 3, + validate: (e) => e >= 0, + }); + this.remainCharacterCount = (0, o.getInteger)({ + data: e.remainCharacterCount, + defaultValue: 3, + validate: (e) => e >= 0, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.wordCharacterCount = (0, o.getInteger)({ + data: e.wordCharacterCount, + defaultValue: 7, + validate: (e) => e >= 0, + }); + } + } + class Image extends r.StringObject { + constructor(e) { + super(d, 'image'); + this.aspect = (0, o.getStringOption)(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 = (0, o.getStringOption)(e.transferEncoding, [ + 'base64', + 'none', + 'package', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$toHTML]() { + if (this.contentType && !p.has(this.contentType.toLowerCase())) + return o.HTMLResult.EMPTY; + let e = this[r.$globalData].images && this[r.$globalData].images.get(this.href); + if (!e && (this.href || !this[r.$content])) return o.HTMLResult.EMPTY; + e || + 'base64' !== this.transferEncoding || + (e = (0, c.stringToBytes)(atob(this[r.$content]))); + if (!e) return o.HTMLResult.EMPTY; + if (!this.contentType) { + for (const [t, a] of m) + if (e.length > t.length && t.every((t, a) => t === e[a])) { + this.contentType = a; + break; + } + if (!this.contentType) return o.HTMLResult.EMPTY; + } + const t = new Blob([e], { type: this.contentType }); + let a; + switch (this.aspect) { + case 'fit': + case 'actual': + break; + case 'height': + a = { height: '100%', objectFit: 'fill' }; + break; + case 'none': + a = { width: '100%', height: '100%', objectFit: 'fill' }; + break; + case 'width': + a = { width: '100%', objectFit: 'fill' }; + } + const i = this[r.$getParent](); + return o.HTMLResult.success({ + name: 'img', + attributes: { + class: ['xfaImage'], + style: a, + src: URL.createObjectURL(t), + alt: i ? ariaLabel(i[r.$getParent]()) : null, + }, + }); + } + } + class ImageEdit extends r.XFAObject { + constructor(e) { + super(d, 'imageEdit', !0); + this.data = (0, o.getStringOption)(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; + } + [r.$toHTML](e) { + return 'embed' === this.data + ? o.HTMLResult.success({ name: 'div', children: [], attributes: {} }) + : o.HTMLResult.EMPTY; + } + } + class Integer extends r.ContentObject { + constructor(e) { + super(d, 'integer'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = parseInt(this[r.$content].trim(), 10); + this[r.$content] = isNaN(e) ? null : e; + } + [r.$toHTML](e) { + return valueToHtml(null !== this[r.$content] ? this[r.$content].toString() : ''); + } + } + class Issuers extends r.XFAObject { + constructor(e) { + super(d, 'issuers', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.certificate = new r.XFAObjectArray(); + } + } + class Items extends r.XFAObject { + constructor(e) { + super(d, 'items', !0); + this.id = e.id || ''; + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.ref = e.ref || ''; + this.save = (0, o.getInteger)({ + data: e.save, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.boolean = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + [r.$toHTML]() { + const e = []; + for (const t of this[r.$getChildren]()) e.push(t[r.$text]()); + return o.HTMLResult.success(e); + } + } + t.Items = Items; + class Keep extends r.XFAObject { + constructor(e) { + super(d, 'keep', !0); + this.id = e.id || ''; + const t = ['none', 'contentArea', 'pageArea']; + this.intact = (0, o.getStringOption)(e.intact, t); + this.next = (0, o.getStringOption)(e.next, t); + this.previous = (0, o.getStringOption)(e.previous, t); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + } + class KeyUsage extends r.XFAObject { + constructor(e) { + super(d, 'keyUsage'); + const t = ['', 'yes', 'no']; + this.crlSign = (0, o.getStringOption)(e.crlSign, t); + this.dataEncipherment = (0, o.getStringOption)(e.dataEncipherment, t); + this.decipherOnly = (0, o.getStringOption)(e.decipherOnly, t); + this.digitalSignature = (0, o.getStringOption)(e.digitalSignature, t); + this.encipherOnly = (0, o.getStringOption)(e.encipherOnly, t); + this.id = e.id || ''; + this.keyAgreement = (0, o.getStringOption)(e.keyAgreement, t); + this.keyCertSign = (0, o.getStringOption)(e.keyCertSign, t); + this.keyEncipherment = (0, o.getStringOption)(e.keyEncipherment, t); + this.nonRepudiation = (0, o.getStringOption)(e.nonRepudiation, t); + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Line extends r.XFAObject { + constructor(e) { + super(d, 'line', !0); + this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']); + this.id = e.id || ''; + this.slope = (0, o.getStringOption)(e.slope, ['\\', '/']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.edge = null; + } + [r.$toHTML]() { + const e = this[r.$getParent]()[r.$getParent](), + t = this.edge || new Edge({}), + a = t[r.$toStyle](), + i = Object.create(null), + n = 'visible' === t.presence ? t.thickness : 0; + i.strokeWidth = (0, s.measureToString)(n); + i.stroke = a.color; + let c, + l, + h, + u, + d = '100%', + g = '100%'; + if (e.w <= n) { + [c, l, h, u] = ['50%', 0, '50%', '100%']; + d = i.strokeWidth; + } else if (e.h <= n) { + [c, l, h, u] = [0, '50%', '100%', '50%']; + g = i.strokeWidth; + } else + '\\' === this.slope + ? ([c, l, h, u] = [0, 0, '100%', '100%']) + : ([c, l, h, u] = [0, '100%', '100%', 0]); + const p = { + name: 'svg', + children: [ + { name: 'line', attributes: { xmlns: f, x1: c, y1: l, x2: h, y2: u, style: i } }, + ], + attributes: { xmlns: f, width: d, height: g, style: { overflow: 'visible' } }, + }; + if (hasMargin(e)) + return o.HTMLResult.success({ + name: 'div', + attributes: { style: { display: 'inline', width: '100%', height: '100%' } }, + children: [p], + }); + p.attributes.style.position = 'absolute'; + return o.HTMLResult.success(p); + } + } + class Linear extends r.XFAObject { + constructor(e) { + super(d, 'linear', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, [ + 'toRight', + 'toBottom', + 'toLeft', + 'toTop', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle](e) { + e = e ? e[r.$toStyle]() : '#FFFFFF'; + return `linear-gradient(${this.type + .replace(/([RBLT])/, ' $1') + .toLowerCase()}, ${e}, ${this.color ? this.color[r.$toStyle]() : '#000000'})`; + } + } + class LockDocument extends r.ContentObject { + constructor(e) { + super(d, 'lockDocument'); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + this[r.$content] = (0, o.getStringOption)(this[r.$content], ['auto', '0', '1']); + } + } + class Manifest extends r.XFAObject { + constructor(e) { + super(d, 'manifest', !0); + this.action = (0, o.getStringOption)(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.XFAObjectArray(); + } + } + class Margin extends r.XFAObject { + constructor(e) { + super(d, 'margin', !0); + this.bottomInset = (0, o.getMeasurement)(e.bottomInset, '0'); + this.id = e.id || ''; + this.leftInset = (0, o.getMeasurement)(e.leftInset, '0'); + this.rightInset = (0, o.getMeasurement)(e.rightInset, '0'); + this.topInset = (0, o.getMeasurement)(e.topInset, '0'); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + [r.$toStyle]() { + return { + margin: + (0, s.measureToString)(this.topInset) + + ' ' + + (0, s.measureToString)(this.rightInset) + + ' ' + + (0, s.measureToString)(this.bottomInset) + + ' ' + + (0, s.measureToString)(this.leftInset), + }; + } + } + class Mdp extends r.XFAObject { + constructor(e) { + super(d, 'mdp'); + this.id = e.id || ''; + this.permissions = (0, o.getInteger)({ + data: e.permissions, + defaultValue: 2, + validate: (e) => 1 === e || 3 === e, + }); + this.signatureType = (0, o.getStringOption)(e.signatureType, ['filler', 'author']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Medium extends r.XFAObject { + constructor(e) { + super(d, 'medium'); + this.id = e.id || ''; + this.imagingBBox = (0, o.getBBox)(e.imagingBBox); + this.long = (0, o.getMeasurement)(e.long); + this.orientation = (0, o.getStringOption)(e.orientation, ['portrait', 'landscape']); + this.short = (0, o.getMeasurement)(e.short); + this.stock = e.stock || ''; + this.trayIn = (0, o.getStringOption)(e.trayIn, ['auto', 'delegate', 'pageFront']); + this.trayOut = (0, o.getStringOption)(e.trayOut, ['auto', 'delegate']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Message extends r.XFAObject { + constructor(e) { + super(d, 'message', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.text = new r.XFAObjectArray(); + } + } + class NumericEdit extends r.XFAObject { + constructor(e) { + super(d, 'numericEdit', !0); + this.hScrollPolicy = (0, o.getStringOption)(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; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'border', 'font', 'margin'), + a = this[r.$getParent]()[r.$getParent](), + i = { + name: 'input', + attributes: { + type: 'text', + fieldId: a[r.$uid], + dataId: (a[r.$data] && a[r.$data][r.$uid]) || a[r.$uid], + class: ['xfaTextfield'], + style: t, + 'aria-label': ariaLabel(a), + 'aria-required': !1, + }, + }; + if (isRequired(a)) { + i.attributes['aria-required'] = !0; + i.attributes.required = !0; + } + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [i], + }); + } + } + class Occur extends r.XFAObject { + constructor(e) { + super(d, 'occur', !0); + this.id = e.id || ''; + this.initial = + '' !== e.initial + ? (0, o.getInteger)({ data: e.initial, defaultValue: '', validate: (e) => !0 }) + : ''; + this.max = + '' !== e.max + ? (0, o.getInteger)({ data: e.max, defaultValue: 1, validate: (e) => !0 }) + : ''; + this.min = + '' !== e.min + ? (0, o.getInteger)({ data: e.min, defaultValue: 1, validate: (e) => !0 }) + : ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + [r.$clean]() { + const e = this[r.$getParent](), + t = this.min; + '' === this.min && (this.min = e instanceof PageArea || e instanceof PageSet ? 0 : 1); + '' === this.max && + (this.max = + '' === t ? (e instanceof PageArea || e instanceof PageSet ? -1 : 1) : this.min); + -1 !== this.max && this.max < this.min && (this.max = this.min); + '' === this.initial && (this.initial = e instanceof Template ? 1 : this.min); + } + } + class Oid extends r.StringObject { + constructor(e) { + super(d, 'oid'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Oids extends r.XFAObject { + constructor(e) { + super(d, 'oids', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.oid = new r.XFAObjectArray(); + } + } + class Overflow extends r.XFAObject { + constructor(e) { + super(d, '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 || ''; + } + [r.$getExtra]() { + if (!this[r.$extra]) { + const e = this[r.$getParent](), + t = this[r.$getTemplateRoot](), + a = t[r.$searchNode](this.target, e), + i = t[r.$searchNode](this.leader, e), + n = t[r.$searchNode](this.trailer, e); + this[r.$extra] = { + target: (a && a[0]) || null, + leader: (i && i[0]) || null, + trailer: (n && n[0]) || null, + addLeader: !1, + addTrailer: !1, + }; + } + return this[r.$extra]; + } + } + class PageArea extends r.XFAObject { + constructor(e) { + super(d, 'pageArea', !0); + this.blankOrNotBlank = (0, o.getStringOption)(e.blankOrNotBlank, [ + 'any', + 'blank', + 'notBlank', + ]); + this.id = e.id || ''; + this.initialNumber = (0, o.getInteger)({ + data: e.initialNumber, + defaultValue: 1, + validate: (e) => !0, + }); + this.name = e.name || ''; + this.numbered = (0, o.getInteger)({ + data: e.numbered, + defaultValue: 1, + validate: (e) => !0, + }); + this.oddOrEven = (0, o.getStringOption)(e.oddOrEven, ['any', 'even', 'odd']); + this.pagePosition = (0, o.getStringOption)(e.pagePosition, [ + 'any', + 'first', + 'last', + 'only', + 'rest', + ]); + this.relevant = (0, o.getRelevant)(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.XFAObjectArray(); + this.contentArea = new r.XFAObjectArray(); + this.draw = new r.XFAObjectArray(); + this.exclGroup = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + } + [r.$isUsable]() { + if (!this[r.$extra]) { + this[r.$extra] = { numberOfUse: 0 }; + return !0; + } + return ( + !this.occur || -1 === this.occur.max || this[r.$extra].numberOfUse < this.occur.max + ); + } + [r.$cleanPage]() { + delete this[r.$extra]; + } + [r.$getNextPage]() { + this[r.$extra] || (this[r.$extra] = { numberOfUse: 0 }); + const e = this[r.$getParent](); + if ('orderedOccurrence' === e.relation && this[r.$isUsable]()) { + this[r.$extra].numberOfUse += 1; + return this; + } + return e[r.$getNextPage](); + } + [r.$getAvailableSpace]() { + return this[r.$extra].space || { width: 0, height: 0 }; + } + [r.$toHTML]() { + this[r.$extra] || (this[r.$extra] = { numberOfUse: 1 }); + const e = []; + this[r.$extra].children = e; + const t = Object.create(null); + if (this.medium && this.medium.short && this.medium.long) { + t.width = (0, s.measureToString)(this.medium.short); + t.height = (0, s.measureToString)(this.medium.long); + this[r.$extra].space = { width: this.medium.short, height: this.medium.long }; + if ('landscape' === this.medium.orientation) { + const e = t.width; + t.width = t.height; + t.height = e; + this[r.$extra].space = { width: this.medium.long, height: this.medium.short }; + } + } else (0, c.warn)('XFA - No medium specified in pageArea: please file a bug.'); + this[r.$childrenToHTML]({ + filter: new Set(['area', 'draw', 'field', 'subform']), + include: !0, + }); + this[r.$childrenToHTML]({ filter: new Set(['contentArea']), include: !0 }); + return o.HTMLResult.success({ + name: 'div', + children: e, + attributes: { class: ['xfaPage'], id: this[r.$uid], style: t, xfaName: this.name }, + }); + } + } + class PageSet extends r.XFAObject { + constructor(e) { + super(d, 'pageSet', !0); + this.duplexImposition = (0, o.getStringOption)(e.duplexImposition, [ + 'longEdge', + 'shortEdge', + ]); + this.id = e.id || ''; + this.name = e.name || ''; + this.relation = (0, o.getStringOption)(e.relation, [ + 'orderedOccurrence', + 'duplexPaginated', + 'simplexPaginated', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + this.occur = null; + this.pageArea = new r.XFAObjectArray(); + this.pageSet = new r.XFAObjectArray(); + } + [r.$cleanPage]() { + for (const e of this.pageArea.children) e[r.$cleanPage](); + for (const e of this.pageSet.children) e[r.$cleanPage](); + } + [r.$isUsable]() { + return ( + !this.occur || -1 === this.occur.max || this[r.$extra].numberOfUse < this.occur.max + ); + } + [r.$getNextPage]() { + this[r.$extra] || + (this[r.$extra] = { numberOfUse: 1, pageIndex: -1, pageSetIndex: -1 }); + if ('orderedOccurrence' === this.relation) { + if (this[r.$extra].pageIndex + 1 < this.pageArea.children.length) { + this[r.$extra].pageIndex += 1; + return this.pageArea.children[this[r.$extra].pageIndex][r.$getNextPage](); + } + if (this[r.$extra].pageSetIndex + 1 < this.pageSet.children.length) { + this[r.$extra].pageSetIndex += 1; + return this.pageSet.children[this[r.$extra].pageSetIndex][r.$getNextPage](); + } + if (this[r.$isUsable]()) { + this[r.$extra].numberOfUse += 1; + this[r.$extra].pageIndex = -1; + this[r.$extra].pageSetIndex = -1; + return this[r.$getNextPage](); + } + const e = this[r.$getParent](); + if (e instanceof PageSet) return e[r.$getNextPage](); + this[r.$cleanPage](); + return this[r.$getNextPage](); + } + const e = this[r.$getTemplateRoot]()[r.$extra].pageNumber, + t = e % 2 == 0 ? 'even' : 'odd', + a = 0 === e ? 'first' : 'rest'; + let i = this.pageArea.children.find((e) => e.oddOrEven === t && e.pagePosition === a); + if (i) return i; + i = this.pageArea.children.find((e) => 'any' === e.oddOrEven && e.pagePosition === a); + if (i) return i; + i = this.pageArea.children.find( + (e) => 'any' === e.oddOrEven && 'any' === e.pagePosition, + ); + return i || this.pageArea.children[0]; + } + } + class Para extends r.XFAObject { + constructor(e) { + super(d, 'para', !0); + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.lineHeight = e.lineHeight ? (0, o.getMeasurement)(e.lineHeight, '0pt') : ''; + this.marginLeft = e.marginLeft ? (0, o.getMeasurement)(e.marginLeft, '0pt') : ''; + this.marginRight = e.marginRight ? (0, o.getMeasurement)(e.marginRight, '0pt') : ''; + this.orphans = (0, o.getInteger)({ + data: e.orphans, + defaultValue: 0, + validate: (e) => e >= 0, + }); + this.preserve = e.preserve || ''; + this.radixOffset = e.radixOffset ? (0, o.getMeasurement)(e.radixOffset, '0pt') : ''; + this.spaceAbove = e.spaceAbove ? (0, o.getMeasurement)(e.spaceAbove, '0pt') : ''; + this.spaceBelow = e.spaceBelow ? (0, o.getMeasurement)(e.spaceBelow, '0pt') : ''; + this.tabDefault = e.tabDefault ? (0, o.getMeasurement)(this.tabDefault) : ''; + this.tabStops = (e.tabStops || '') + .trim() + .split(/\s+/) + .map((e, t) => (t % 2 == 1 ? (0, o.getMeasurement)(e) : e)); + this.textIndent = e.textIndent ? (0, o.getMeasurement)(e.textIndent, '0pt') : ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.vAlign = (0, o.getStringOption)(e.vAlign, ['top', 'bottom', 'middle']); + this.widows = (0, o.getInteger)({ + data: e.widows, + defaultValue: 0, + validate: (e) => e >= 0, + }); + this.hyphenation = null; + } + [r.$toStyle]() { + const e = (0, s.toStyle)(this, 'hAlign'); + '' !== this.marginLeft && (e.paddingLeft = (0, s.measureToString)(this.marginLeft)); + '' !== this.marginRight && (e.paddingight = (0, s.measureToString)(this.marginRight)); + '' !== this.spaceAbove && (e.paddingTop = (0, s.measureToString)(this.spaceAbove)); + '' !== this.spaceBelow && (e.paddingBottom = (0, s.measureToString)(this.spaceBelow)); + if ('' !== this.textIndent) { + e.textIndent = (0, s.measureToString)(this.textIndent); + (0, s.fixTextIndent)(e); + } + this.lineHeight > 0 && (e.lineHeight = (0, s.measureToString)(this.lineHeight)); + '' !== this.tabDefault && (e.tabSize = (0, s.measureToString)(this.tabDefault)); + this.tabStops.length; + this.hyphenatation && Object.assign(e, this.hyphenatation[r.$toStyle]()); + return e; + } + } + class PasswordEdit extends r.XFAObject { + constructor(e) { + super(d, 'passwordEdit', !0); + this.hScrollPolicy = (0, o.getStringOption)(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; + } + } + class Pattern extends r.XFAObject { + constructor(e) { + super(d, 'pattern', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, [ + 'crossHatch', + 'crossDiagonal', + 'diagonalLeft', + 'diagonalRight', + 'horizontal', + 'vertical', + ]); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle](e) { + e = e ? e[r.$toStyle]() : '#FFFFFF'; + const t = this.color ? this.color[r.$toStyle]() : '#000000', + a = 'repeating-linear-gradient', + i = `${e},${e} 5px,${t} 5px,${t} 10px`; + switch (this.type) { + case 'crossHatch': + return `${a}(to top,${i}) ${a}(to right,${i})`; + case 'crossDiagonal': + return `${a}(45deg,${i}) ${a}(-45deg,${i})`; + case 'diagonalLeft': + return `${a}(45deg,${i})`; + case 'diagonalRight': + return `${a}(-45deg,${i})`; + case 'horizontal': + return `${a}(to top,${i})`; + case 'vertical': + return `${a}(to right,${i})`; + } + return ''; + } + } + class Picture extends r.StringObject { + constructor(e) { + super(d, 'picture'); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Proto extends r.XFAObject { + constructor(e) { + super(d, 'proto', !0); + this.appearanceFilter = new r.XFAObjectArray(); + this.arc = new r.XFAObjectArray(); + this.area = new r.XFAObjectArray(); + this.assist = new r.XFAObjectArray(); + this.barcode = new r.XFAObjectArray(); + this.bindItems = new r.XFAObjectArray(); + this.bookend = new r.XFAObjectArray(); + this.boolean = new r.XFAObjectArray(); + this.border = new r.XFAObjectArray(); + this.break = new r.XFAObjectArray(); + this.breakAfter = new r.XFAObjectArray(); + this.breakBefore = new r.XFAObjectArray(); + this.button = new r.XFAObjectArray(); + this.calculate = new r.XFAObjectArray(); + this.caption = new r.XFAObjectArray(); + this.certificate = new r.XFAObjectArray(); + this.certificates = new r.XFAObjectArray(); + this.checkButton = new r.XFAObjectArray(); + this.choiceList = new r.XFAObjectArray(); + this.color = new r.XFAObjectArray(); + this.comb = new r.XFAObjectArray(); + this.connect = new r.XFAObjectArray(); + this.contentArea = new r.XFAObjectArray(); + this.corner = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.dateTimeEdit = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.defaultUi = new r.XFAObjectArray(); + this.desc = new r.XFAObjectArray(); + this.digestMethod = new r.XFAObjectArray(); + this.digestMethods = new r.XFAObjectArray(); + this.draw = new r.XFAObjectArray(); + this.edge = new r.XFAObjectArray(); + this.encoding = new r.XFAObjectArray(); + this.encodings = new r.XFAObjectArray(); + this.encrypt = new r.XFAObjectArray(); + this.encryptData = new r.XFAObjectArray(); + this.encryption = new r.XFAObjectArray(); + this.encryptionMethod = new r.XFAObjectArray(); + this.encryptionMethods = new r.XFAObjectArray(); + this.event = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.exObject = new r.XFAObjectArray(); + this.exclGroup = new r.XFAObjectArray(); + this.execute = new r.XFAObjectArray(); + this.extras = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.fill = new r.XFAObjectArray(); + this.filter = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.font = new r.XFAObjectArray(); + this.format = new r.XFAObjectArray(); + this.handler = new r.XFAObjectArray(); + this.hyphenation = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.imageEdit = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.issuers = new r.XFAObjectArray(); + this.items = new r.XFAObjectArray(); + this.keep = new r.XFAObjectArray(); + this.keyUsage = new r.XFAObjectArray(); + this.line = new r.XFAObjectArray(); + this.linear = new r.XFAObjectArray(); + this.lockDocument = new r.XFAObjectArray(); + this.manifest = new r.XFAObjectArray(); + this.margin = new r.XFAObjectArray(); + this.mdp = new r.XFAObjectArray(); + this.medium = new r.XFAObjectArray(); + this.message = new r.XFAObjectArray(); + this.numericEdit = new r.XFAObjectArray(); + this.occur = new r.XFAObjectArray(); + this.oid = new r.XFAObjectArray(); + this.oids = new r.XFAObjectArray(); + this.overflow = new r.XFAObjectArray(); + this.pageArea = new r.XFAObjectArray(); + this.pageSet = new r.XFAObjectArray(); + this.para = new r.XFAObjectArray(); + this.passwordEdit = new r.XFAObjectArray(); + this.pattern = new r.XFAObjectArray(); + this.picture = new r.XFAObjectArray(); + this.radial = new r.XFAObjectArray(); + this.reason = new r.XFAObjectArray(); + this.reasons = new r.XFAObjectArray(); + this.rectangle = new r.XFAObjectArray(); + this.ref = new r.XFAObjectArray(); + this.script = new r.XFAObjectArray(); + this.setProperty = new r.XFAObjectArray(); + this.signData = new r.XFAObjectArray(); + this.signature = new r.XFAObjectArray(); + this.signing = new r.XFAObjectArray(); + this.solid = new r.XFAObjectArray(); + this.speak = new r.XFAObjectArray(); + this.stipple = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + this.subformSet = new r.XFAObjectArray(); + this.subjectDN = new r.XFAObjectArray(); + this.subjectDNs = new r.XFAObjectArray(); + this.submit = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.textEdit = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + this.timeStamp = new r.XFAObjectArray(); + this.toolTip = new r.XFAObjectArray(); + this.traversal = new r.XFAObjectArray(); + this.traverse = new r.XFAObjectArray(); + this.ui = new r.XFAObjectArray(); + this.validate = new r.XFAObjectArray(); + this.value = new r.XFAObjectArray(); + this.variables = new r.XFAObjectArray(); + } + } + class Radial extends r.XFAObject { + constructor(e) { + super(d, 'radial', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['toEdge', 'toCenter']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle](e) { + e = e ? e[r.$toStyle]() : '#FFFFFF'; + const t = this.color ? this.color[r.$toStyle]() : '#000000'; + return `radial-gradient(circle at center, ${ + 'toEdge' === this.type ? `${e},${t}` : `${t},${e}` + })`; + } + } + class Reason extends r.StringObject { + constructor(e) { + super(d, 'reason'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Reasons extends r.XFAObject { + constructor(e) { + super(d, 'reasons', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.reason = new r.XFAObjectArray(); + } + } + class Rectangle extends r.XFAObject { + constructor(e) { + super(d, 'rectangle', !0); + this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.corner = new r.XFAObjectArray(4); + this.edge = new r.XFAObjectArray(4); + this.fill = null; + } + [r.$toHTML]() { + const e = this.edge.children.length ? this.edge.children[0] : new Edge({}), + t = e[r.$toStyle](), + a = Object.create(null); + this.fill && 'visible' === this.fill.presence + ? Object.assign(a, this.fill[r.$toStyle]()) + : (a.fill = 'transparent'); + a.strokeWidth = (0, s.measureToString)('visible' === e.presence ? e.thickness : 0); + a.stroke = t.color; + const i = (this.corner.children.length ? this.corner.children[0] : new Corner({}))[ + r.$toStyle + ](), + n = { + name: 'svg', + children: [ + { + name: 'rect', + attributes: { + xmlns: f, + width: '100%', + height: '100%', + x: 0, + y: 0, + rx: i.radius, + ry: i.radius, + style: a, + }, + }, + ], + attributes: { + xmlns: f, + style: { overflow: 'visible' }, + width: '100%', + height: '100%', + }, + }; + if (hasMargin(this[r.$getParent]()[r.$getParent]())) + return o.HTMLResult.success({ + name: 'div', + attributes: { style: { display: 'inline', width: '100%', height: '100%' } }, + children: [n], + }); + n.attributes.style.position = 'absolute'; + return o.HTMLResult.success(n); + } + } + class RefElement extends r.StringObject { + constructor(e) { + super(d, 'ref'); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Script extends r.StringObject { + constructor(e) { + super(d, 'script'); + this.binding = e.binding || ''; + this.contentType = e.contentType || ''; + this.id = e.id || ''; + this.name = e.name || ''; + this.runAt = (0, o.getStringOption)(e.runAt, ['client', 'both', 'server']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class SetProperty extends r.XFAObject { + constructor(e) { + super(d, 'setProperty'); + this.connection = e.connection || ''; + this.ref = e.ref || ''; + this.target = e.target || ''; + } + } + t.SetProperty = SetProperty; + class SignData extends r.XFAObject { + constructor(e) { + super(d, 'signData', !0); + this.id = e.id || ''; + this.operation = (0, o.getStringOption)(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; + } + } + class Signature extends r.XFAObject { + constructor(e) { + super(d, 'signature', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(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; + } + } + class Signing extends r.XFAObject { + constructor(e) { + super(d, 'signing', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.certificate = new r.XFAObjectArray(); + } + } + class Solid extends r.XFAObject { + constructor(e) { + super(d, 'solid', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + } + [r.$toStyle](e) { + return e ? e[r.$toStyle]() : '#FFFFFF'; + } + } + class Speak extends r.StringObject { + constructor(e) { + super(d, 'speak'); + this.disable = (0, o.getInteger)({ + data: e.disable, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.id = e.id || ''; + this.priority = (0, o.getStringOption)(e.priority, [ + 'custom', + 'caption', + 'name', + 'toolTip', + ]); + this.rid = e.rid || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Stipple extends r.XFAObject { + constructor(e) { + super(d, 'stipple', !0); + this.id = e.id || ''; + this.rate = (0, o.getInteger)({ + data: e.rate, + defaultValue: 50, + validate: (e) => e >= 0 && e <= 100, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.color = null; + this.extras = null; + } + [r.$toStyle](e) { + const t = this.rate / 100; + return c.Util.makeHexColor( + Math.round(e.value.r * (1 - t) + this.value.r * t), + Math.round(e.value.g * (1 - t) + this.value.g * t), + Math.round(e.value.b * (1 - t) + this.value.b * t), + ); + } + } + class Subform extends r.XFAObject { + constructor(e) { + super(d, 'subform', !0); + this.access = (0, o.getStringOption)(e.access, [ + 'open', + 'nonInteractive', + 'protected', + 'readOnly', + ]); + this.allowMacro = (0, o.getInteger)({ + data: e.allowMacro, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.anchorType = (0, o.getStringOption)(e.anchorType, [ + 'topLeft', + 'bottomCenter', + 'bottomLeft', + 'bottomRight', + 'middleCenter', + 'middleLeft', + 'middleRight', + 'topCenter', + 'topRight', + ]); + this.colSpan = (0, o.getInteger)({ + data: e.colSpan, + defaultValue: 1, + validate: (e) => e >= 1 || -1 === e, + }); + this.columnWidths = (e.columnWidths || '') + .trim() + .split(/\s+/) + .map((e) => ('-1' === e ? -1 : (0, o.getMeasurement)(e))); + this.h = e.h ? (0, o.getMeasurement)(e.h) : ''; + this.hAlign = (0, o.getStringOption)(e.hAlign, [ + 'left', + 'center', + 'justify', + 'justifyAll', + 'radix', + 'right', + ]); + this.id = e.id || ''; + this.layout = (0, o.getStringOption)(e.layout, [ + 'position', + 'lr-tb', + 'rl-row', + 'rl-tb', + 'row', + 'table', + 'tb', + ]); + this.locale = e.locale || ''; + this.maxH = (0, o.getMeasurement)(e.maxH, '0pt'); + this.maxW = (0, o.getMeasurement)(e.maxW, '0pt'); + this.mergeMode = (0, o.getStringOption)(e.mergeMode, [ + 'consumeData', + 'matchTemplate', + ]); + this.minH = (0, o.getMeasurement)(e.minH, '0pt'); + this.minW = (0, o.getMeasurement)(e.minW, '0pt'); + this.name = e.name || ''; + this.presence = (0, o.getStringOption)(e.presence, [ + 'visible', + 'hidden', + 'inactive', + 'invisible', + ]); + this.relevant = (0, o.getRelevant)(e.relevant); + this.restoreState = (0, o.getStringOption)(e.restoreState, ['manual', 'auto']); + this.scope = (0, o.getStringOption)(e.scope, ['name', 'none']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.w = e.w ? (0, o.getMeasurement)(e.w) : ''; + this.x = (0, o.getMeasurement)(e.x, '0pt'); + this.y = (0, o.getMeasurement)(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.XFAObjectArray(); + this.breakAfter = new r.XFAObjectArray(); + this.breakBefore = new r.XFAObjectArray(); + this.connect = new r.XFAObjectArray(); + this.draw = new r.XFAObjectArray(); + this.event = new r.XFAObjectArray(); + this.exObject = new r.XFAObjectArray(); + this.exclGroup = new r.XFAObjectArray(); + this.field = new r.XFAObjectArray(); + this.proto = new r.XFAObjectArray(); + this.setProperty = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + this.subformSet = new r.XFAObjectArray(); + } + [r.$getSubformParent]() { + const e = this[r.$getParent](); + return e instanceof SubformSet ? e[r.$getSubformParent]() : e; + } + [r.$isBindable]() { + return !0; + } + [r.$isThereMoreWidth]() { + return ( + (this.layout.endsWith('-tb') && + 0 === this[r.$extra].attempt && + this[r.$extra].numberInLine > 0) || + this[r.$getParent]()[r.$isThereMoreWidth]() + ); + } + *[r.$getContainedChildren]() { + yield* getContainedChildren(this); + } + [r.$flushHTML]() { + return (0, n.flushHTML)(this); + } + [r.$addHTML](e, t) { + (0, n.addHTML)(this, e, t); + } + [r.$getAvailableSpace]() { + return (0, n.getAvailableSpace)(this); + } + [r.$isSplittable]() { + const e = this[r.$getSubformParent](); + if (!e[r.$isSplittable]()) return !1; + if (void 0 !== this[r.$extra]._isSplittable) return this[r.$extra]._isSplittable; + if ('position' === this.layout || this.layout.includes('row')) { + this[r.$extra]._isSplittable = !1; + return !1; + } + if (this.keep && 'none' !== this.keep.intact) { + this[r.$extra]._isSplittable = !1; + return !1; + } + if (e.layout && e.layout.endsWith('-tb') && 0 !== e[r.$extra].numberInLine) return !1; + this[r.$extra]._isSplittable = !0; + return !0; + } + [r.$toHTML](e) { + setTabIndex(this); + if (this.break) { + if ('auto' !== this.break.after || '' !== this.break.afterTarget) { + const e = new BreakAfter({ + targetType: this.break.after, + target: this.break.afterTarget, + startNew: this.break.startNew.toString(), + }); + e[r.$globalData] = this[r.$globalData]; + this[r.$appendChild](e); + this.breakAfter.push(e); + } + if ('auto' !== this.break.before || '' !== this.break.beforeTarget) { + const e = new BreakBefore({ + targetType: this.break.before, + target: this.break.beforeTarget, + startNew: this.break.startNew.toString(), + }); + e[r.$globalData] = this[r.$globalData]; + this[r.$appendChild](e); + this.breakBefore.push(e); + } + if ('' !== this.break.overflowTarget) { + const e = new Overflow({ + target: this.break.overflowTarget, + leader: this.break.overflowLeader, + trailer: this.break.overflowTrailer, + }); + e[r.$globalData] = this[r.$globalData]; + this[r.$appendChild](e); + this.overflow.push(e); + } + this[r.$removeChild](this.break); + this.break = null; + } + if ('hidden' === this.presence || 'inactive' === this.presence) + return o.HTMLResult.EMPTY; + (this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) && + (0, c.warn)( + 'XFA - Several breakBefore or breakAfter in subforms: please file a bug.', + ); + if (this.breakBefore.children.length >= 1) { + const e = this.breakBefore.children[0]; + if (handleBreak(e)) return o.HTMLResult.breakNode(e); + } + if (this[r.$extra] && this[r.$extra].afterBreakAfter) return o.HTMLResult.EMPTY; + (0, s.fixDimensions)(this); + const t = [], + a = { id: this[r.$uid], class: [] }; + (0, s.setAccess)(this, a.class); + this[r.$extra] || (this[r.$extra] = Object.create(null)); + Object.assign(this[r.$extra], { + children: t, + line: null, + attributes: a, + 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[r.$getTemplateRoot](), + l = i[r.$extra].noLayoutFailure, + h = this[r.$isSplittable](); + h || setFirstUnsplittable(this); + if (!(0, n.checkDimensions)(this, e)) return o.HTMLResult.FAILURE; + const u = new Set(['area', 'draw', 'exclGroup', 'field', 'subform', 'subformSet']); + if (this.layout.includes('row')) { + const e = this[r.$getSubformParent]().columnWidths; + if (Array.isArray(e) && e.length > 0) { + this[r.$extra].columnWidths = e; + this[r.$extra].currentColumn = 0; + } + } + const d = (0, s.toStyle)( + this, + 'anchorType', + 'dimensions', + 'position', + 'presence', + 'border', + 'margin', + 'hAlign', + ), + f = ['xfaSubform'], + g = (0, s.layoutClass)(this); + g && f.push(g); + a.style = d; + a.class = f; + this.name && (a.xfaName = this.name); + if (this.overflow) { + const t = this.overflow[r.$getExtra](); + if (t.addLeader) { + t.addLeader = !1; + handleOverflow(this, t.leader, e); + } + } + this[r.$pushPara](); + const p = 'lr-tb' === this.layout || 'rl-tb' === this.layout, + m = p ? 2 : 1; + for (; this[r.$extra].attempt < m; this[r.$extra].attempt++) { + p && 1 === this[r.$extra].attempt && (this[r.$extra].numberInLine = 0); + const e = this[r.$childrenToHTML]({ filter: u, include: !0 }); + if (e.success) break; + if (e.isBreak()) { + this[r.$popPara](); + return e; + } + if ( + p && + 0 === this[r.$extra].attempt && + 0 === this[r.$extra].numberInLine && + !i[r.$extra].noLayoutFailure + ) { + this[r.$extra].attempt = m; + break; + } + } + this[r.$popPara](); + h || unsetFirstUnsplittable(this); + i[r.$extra].noLayoutFailure = l; + if (this[r.$extra].attempt === m) { + this.overflow && + (this[r.$getTemplateRoot]()[r.$extra].overflowNode = this.overflow); + h || delete this[r.$extra]; + return o.HTMLResult.FAILURE; + } + if (this.overflow) { + const t = this.overflow[r.$getExtra](); + if (t.addTrailer) { + t.addTrailer = !1; + handleOverflow(this, t.trailer, e); + } + } + let b = 0, + y = 0; + if (this.margin) { + b = this.margin.leftInset + this.margin.rightInset; + y = this.margin.topInset + this.margin.bottomInset; + } + const w = Math.max(this[r.$extra].width + b, this.w || 0), + S = Math.max(this[r.$extra].height + y, this.h || 0), + x = [this.x, this.y, w, S]; + '' === this.w && (d.width = (0, s.measureToString)(w)); + '' === this.h && (d.height = (0, s.measureToString)(S)); + if (('0px' === d.width || '0px' === d.height) && 0 === t.length) + return o.HTMLResult.EMPTY; + const C = { name: 'div', attributes: a, children: t }; + applyAssist(this, a); + const k = o.HTMLResult.success((0, s.createWrapper)(this, C), x); + if (this.breakAfter.children.length >= 1) { + const e = this.breakAfter.children[0]; + if (handleBreak(e)) { + this[r.$extra].afterBreakAfter = k; + return o.HTMLResult.breakNode(e); + } + } + delete this[r.$extra]; + return k; + } + } + class SubformSet extends r.XFAObject { + constructor(e) { + super(d, 'subformSet', !0); + this.id = e.id || ''; + this.name = e.name || ''; + this.relation = (0, o.getStringOption)(e.relation, [ + 'ordered', + 'choice', + 'unordered', + ]); + this.relevant = (0, o.getRelevant)(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.XFAObjectArray(); + this.breakBefore = new r.XFAObjectArray(); + this.subform = new r.XFAObjectArray(); + this.subformSet = new r.XFAObjectArray(); + } + *[r.$getContainedChildren]() { + yield* getContainedChildren(this); + } + [r.$getSubformParent]() { + let e = this[r.$getParent](); + for (; !(e instanceof Subform); ) e = e[r.$getParent](); + return e; + } + [r.$isBindable]() { + return !0; + } + } + class SubjectDN extends r.ContentObject { + constructor(e) { + super(d, 'subjectDN'); + this.delimiter = e.delimiter || ','; + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + this[r.$content] = new Map( + this[r.$content].split(this.delimiter).map((e) => { + (e = e.split('=', 2))[0] = e[0].trim(); + return e; + }), + ); + } + } + class SubjectDNs extends r.XFAObject { + constructor(e) { + super(d, 'subjectDNs', !0); + this.id = e.id || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.subjectDN = new r.XFAObjectArray(); + } + } + class Submit extends r.XFAObject { + constructor(e) { + super(d, 'submit', !0); + this.embedPDF = (0, o.getInteger)({ + data: e.embedPDF, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.format = (0, o.getStringOption)(e.format, [ + 'xdp', + 'formdata', + 'pdf', + 'urlencoded', + 'xfd', + 'xml', + ]); + this.id = e.id || ''; + this.target = e.target || ''; + this.textEncoding = (0, o.getKeyword)({ + data: e.textEncoding ? e.textEncoding.toLowerCase() : '', + defaultValue: '', + validate: (e) => + [ + 'utf-8', + 'big-five', + 'fontspecific', + 'gbk', + 'gb-18030', + 'gb-2312', + 'ksc-5601', + 'none', + 'shift-jis', + 'ucs-2', + 'utf-16', + ].includes(e) || e.match(/iso-8859-\d{2}/), + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.xdpContent = e.xdpContent || ''; + this.encrypt = null; + this.encryptData = new r.XFAObjectArray(); + this.signData = new r.XFAObjectArray(); + } + } + class Template extends r.XFAObject { + constructor(e) { + super(d, 'template', !0); + this.baseProfile = (0, o.getStringOption)(e.baseProfile, [ + 'full', + 'interactiveForms', + ]); + this.extras = null; + this.subform = new r.XFAObjectArray(); + } + [r.$finalize]() { + 0 === this.subform.children.length && + (0, c.warn)('XFA - No subforms in template node.'); + this.subform.children.length >= 2 && + (0, c.warn)('XFA - Several subforms in template node: please file a bug.'); + this[r.$tabIndex] = 5e3; + } + [r.$isSplittable]() { + return !0; + } + [r.$searchNode](e, t) { + return e.startsWith('#') + ? [this[r.$ids].get(e.slice(1))] + : (0, u.searchNode)(this, t, e, !0, !0); + } + *[r.$toPages]() { + if (!this.subform.children.length) + return o.HTMLResult.success({ name: 'div', children: [] }); + this[r.$extra] = { + overflowNode: null, + firstUnsplittable: null, + currentContentArea: null, + currentPageArea: null, + noLayoutFailure: !1, + pageNumber: 1, + pagePosition: 'first', + oddOrEven: 'odd', + blankOrNotBlank: 'nonBlank', + paraStack: [], + }; + const e = this.subform.children[0]; + e.pageSet[r.$cleanPage](); + const t = e.pageSet.pageArea.children, + a = { name: 'div', children: [] }; + let i = null, + n = null, + s = null; + if (e.breakBefore.children.length >= 1) { + n = e.breakBefore.children[0]; + s = n.target; + } else if ( + e.subform.children.length >= 1 && + e.subform.children[0].breakBefore.children.length >= 1 + ) { + n = e.subform.children[0].breakBefore.children[0]; + s = n.target; + } else if (e.break && e.break.beforeTarget) { + n = e.break; + s = n.beforeTarget; + } else if ( + e.subform.children.length >= 1 && + e.subform.children[0].break && + e.subform.children[0].break.beforeTarget + ) { + n = e.subform.children[0].break; + s = n.beforeTarget; + } + if (n) { + const e = this[r.$searchNode](s, n[r.$getParent]()); + if (e instanceof PageArea) { + i = e; + n[r.$extra] = {}; + } + } + i || (i = t[0]); + i[r.$extra] = { numberOfUse: 1 }; + const l = i[r.$getParent](); + l[r.$extra] = { + numberOfUse: 1, + pageIndex: l.pageArea.children.indexOf(i), + pageSetIndex: 0, + }; + let h, + u = null, + d = null, + f = !0, + g = 0, + p = 0; + for (;;) { + if (f) g = 0; + else { + a.children.pop(); + if (3 == ++g) { + (0, c.warn)('XFA - Something goes wrong: please file a bug.'); + return a; + } + } + h = null; + this[r.$extra].currentPageArea = i; + const t = i[r.$toHTML]().html; + a.children.push(t); + if (u) { + this[r.$extra].noLayoutFailure = !0; + t.children.push(u[r.$toHTML](i[r.$extra].space).html); + u = null; + } + if (d) { + this[r.$extra].noLayoutFailure = !0; + t.children.push(d[r.$toHTML](i[r.$extra].space).html); + d = null; + } + const n = i.contentArea.children, + s = t.children.filter((e) => e.attributes.class.includes('xfaContentarea')); + f = !1; + this[r.$extra].firstUnsplittable = null; + this[r.$extra].noLayoutFailure = !1; + const flush = (t) => { + const a = e[r.$flushHTML](); + if (a) { + f ||= !!a.children && 0 !== a.children.length; + s[t].children.push(a); + } + }; + for (let t = p, i = n.length; t < i; t++) { + const i = (this[r.$extra].currentContentArea = n[t]), + o = { width: i.w, height: i.h }; + p = 0; + if (u) { + s[t].children.push(u[r.$toHTML](o).html); + u = null; + } + if (d) { + s[t].children.push(d[r.$toHTML](o).html); + d = null; + } + const c = e[r.$toHTML](o); + if (c.success) { + if (c.html) { + f ||= !!c.html.children && 0 !== c.html.children.length; + s[t].children.push(c.html); + } else !f && a.children.length > 1 && a.children.pop(); + return a; + } + if (c.isBreak()) { + const e = c.breakNode; + flush(t); + if ('auto' === e.targetType) continue; + if (e.leader) { + u = this[r.$searchNode](e.leader, e[r.$getParent]()); + u = u ? u[0] : null; + } + if (e.trailer) { + d = this[r.$searchNode](e.trailer, e[r.$getParent]()); + d = d ? d[0] : null; + } + if ('pageArea' === e.targetType) { + h = e[r.$extra].target; + t = 1 / 0; + } else if (e[r.$extra].target) { + h = e[r.$extra].target; + p = e[r.$extra].index + 1; + t = 1 / 0; + } else t = e[r.$extra].index; + } else if (this[r.$extra].overflowNode) { + const e = this[r.$extra].overflowNode; + this[r.$extra].overflowNode = null; + const a = e[r.$getExtra](), + i = a.target; + a.addLeader = null !== a.leader; + a.addTrailer = null !== a.trailer; + flush(t); + const s = t; + t = 1 / 0; + if (i instanceof PageArea) h = i; + else if (i instanceof ContentArea) { + const e = n.indexOf(i); + if (-1 !== e) e > s ? (t = e - 1) : (p = e); + else { + h = i[r.$getParent](); + p = h.contentArea.children.indexOf(i); + } + } + } else flush(t); + } + this[r.$extra].pageNumber += 1; + h && (h[r.$isUsable]() ? (h[r.$extra].numberOfUse += 1) : (h = null)); + i = h || i[r.$getNextPage](); + yield null; + } + } + } + t.Template = Template; + class Text extends r.ContentObject { + constructor(e) { + super(d, 'text'); + this.id = e.id || ''; + this.maxChars = (0, o.getInteger)({ + data: e.maxChars, + defaultValue: 0, + validate: (e) => e >= 0, + }); + this.name = e.name || ''; + this.rid = e.rid || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$acceptWhitespace]() { + return !0; + } + [r.$onChild](e) { + if (e[r.$namespaceId] === i.NamespaceIds.xhtml.id) { + this[r.$content] = e; + return !0; + } + (0, c.warn)(`XFA - Invalid content in Text: ${e[r.$nodeName]}.`); + return !1; + } + [r.$onText](e) { + this[r.$content] instanceof r.XFAObject || super[r.$onText](e); + } + [r.$finalize]() { + 'string' == typeof this[r.$content] && + (this[r.$content] = this[r.$content].replaceAll('\r\n', '\n')); + } + [r.$getExtra]() { + return 'string' == typeof this[r.$content] + ? this[r.$content] + .split(/[\u2029\u2028\n]/) + .reduce((e, t) => { + t && e.push(t); + return e; + }, []) + .join('\n') + : this[r.$content][r.$text](); + } + [r.$toHTML](e) { + if ('string' == typeof this[r.$content]) { + const e = valueToHtml(this[r.$content]).html; + if (this[r.$content].includes('\u2029')) { + e.name = 'div'; + e.children = []; + this[r.$content] + .split('\u2029') + .map((e) => + e.split(/[\u2028\n]/).reduce((e, t) => { + e.push({ name: 'span', value: t }, { name: 'br' }); + return e; + }, []), + ) + .forEach((t) => { + e.children.push({ name: 'p', children: t }); + }); + } else if (/[\u2028\n]/.test(this[r.$content])) { + e.name = 'div'; + e.children = []; + this[r.$content].split(/[\u2028\n]/).forEach((t) => { + e.children.push({ name: 'span', value: t }, { name: 'br' }); + }); + } + return o.HTMLResult.success(e); + } + return this[r.$content][r.$toHTML](e); + } + } + t.Text = Text; + class TextEdit extends r.XFAObject { + constructor(e) { + super(d, 'textEdit', !0); + this.allowRichText = (0, o.getInteger)({ + data: e.allowRichText, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.hScrollPolicy = (0, o.getStringOption)(e.hScrollPolicy, ['auto', 'off', 'on']); + this.id = e.id || ''; + this.multiLine = (0, o.getInteger)({ + data: e.multiLine, + defaultValue: '', + validate: (e) => 0 === e || 1 === e, + }); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.vScrollPolicy = (0, o.getStringOption)(e.vScrollPolicy, ['auto', 'off', 'on']); + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [r.$toHTML](e) { + const t = (0, s.toStyle)(this, 'border', 'font', 'margin'); + let a; + const i = this[r.$getParent]()[r.$getParent](); + '' === this.multiLine && (this.multiLine = i instanceof Draw ? 1 : 0); + a = + 1 === this.multiLine + ? { + name: 'textarea', + attributes: { + dataId: (i[r.$data] && i[r.$data][r.$uid]) || i[r.$uid], + fieldId: i[r.$uid], + class: ['xfaTextfield'], + style: t, + 'aria-label': ariaLabel(i), + 'aria-required': !1, + }, + } + : { + name: 'input', + attributes: { + type: 'text', + dataId: (i[r.$data] && i[r.$data][r.$uid]) || i[r.$uid], + fieldId: i[r.$uid], + class: ['xfaTextfield'], + style: t, + 'aria-label': ariaLabel(i), + 'aria-required': !1, + }, + }; + if (isRequired(i)) { + a.attributes['aria-required'] = !0; + a.attributes.required = !0; + } + return o.HTMLResult.success({ + name: 'label', + attributes: { class: ['xfaLabel'] }, + children: [a], + }); + } + } + class Time extends r.StringObject { + constructor(e) { + super(d, 'time'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + [r.$finalize]() { + const e = this[r.$content].trim(); + this[r.$content] = e ? new Date(e) : null; + } + [r.$toHTML](e) { + return valueToHtml(this[r.$content] ? this[r.$content].toString() : ''); + } + } + class TimeStamp extends r.XFAObject { + constructor(e) { + super(d, 'timeStamp'); + this.id = e.id || ''; + this.server = e.server || ''; + this.type = (0, o.getStringOption)(e.type, ['optional', 'required']); + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class ToolTip extends r.StringObject { + constructor(e) { + super(d, 'toolTip'); + this.id = e.id || ''; + this.rid = e.rid || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Traversal extends r.XFAObject { + constructor(e) { + super(d, 'traversal', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.extras = null; + this.traverse = new r.XFAObjectArray(); + } + } + class Traverse extends r.XFAObject { + constructor(e) { + super(d, 'traverse', !0); + this.id = e.id || ''; + this.operation = (0, o.getStringOption)(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; + } + [r.$isTransparent]() { + return !1; + } + } + class Ui extends r.XFAObject { + constructor(e) { + super(d, 'ui', !0); + 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; + } + [r.$getExtra]() { + if (void 0 === this[r.$extra]) { + for (const e of Object.getOwnPropertyNames(this)) { + if ('extras' === e || 'picture' === e) continue; + const t = this[e]; + if (t instanceof r.XFAObject) { + this[r.$extra] = t; + return t; + } + } + this[r.$extra] = null; + } + return this[r.$extra]; + } + [r.$toHTML](e) { + const t = this[r.$getExtra](); + return t ? t[r.$toHTML](e) : o.HTMLResult.EMPTY; + } + } + class Validate extends r.XFAObject { + constructor(e) { + super(d, 'validate', !0); + this.formatTest = (0, o.getStringOption)(e.formatTest, [ + 'warning', + 'disabled', + 'error', + ]); + this.id = e.id || ''; + this.nullTest = (0, o.getStringOption)(e.nullTest, ['disabled', 'error', 'warning']); + this.scriptTest = (0, o.getStringOption)(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; + } + } + class Value extends r.XFAObject { + constructor(e) { + super(d, 'value', !0); + this.id = e.id || ''; + this.override = (0, o.getInteger)({ + data: e.override, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.relevant = (0, o.getRelevant)(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; + } + [r.$setValue](e) { + const t = this[r.$getParent](); + if (t instanceof Field && t.ui && t.ui.imageEdit) { + if (!this.image) { + this.image = new Image({}); + this[r.$appendChild](this.image); + } + this.image[r.$content] = e[r.$content]; + return; + } + const a = e[r.$nodeName]; + if (null === this[a]) { + for (const e of Object.getOwnPropertyNames(this)) { + const t = this[e]; + if (t instanceof r.XFAObject) { + this[e] = null; + this[r.$removeChild](t); + } + } + this[e[r.$nodeName]] = e; + this[r.$appendChild](e); + } else this[a][r.$content] = e[r.$content]; + } + [r.$text]() { + if (this.exData) + return 'string' == typeof this.exData[r.$content] + ? this.exData[r.$content].trim() + : this.exData[r.$content][r.$text]().trim(); + for (const e of Object.getOwnPropertyNames(this)) { + if ('image' === e) continue; + const t = this[e]; + if (t instanceof r.XFAObject) return (t[r.$content] || '').toString().trim(); + } + return null; + } + [r.$toHTML](e) { + for (const t of Object.getOwnPropertyNames(this)) { + const a = this[t]; + if (a instanceof r.XFAObject) return a[r.$toHTML](e); + } + return o.HTMLResult.EMPTY; + } + } + t.Value = Value; + class Variables extends r.XFAObject { + constructor(e) { + super(d, 'variables', !0); + this.id = e.id || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + this.boolean = new r.XFAObjectArray(); + this.date = new r.XFAObjectArray(); + this.dateTime = new r.XFAObjectArray(); + this.decimal = new r.XFAObjectArray(); + this.exData = new r.XFAObjectArray(); + this.float = new r.XFAObjectArray(); + this.image = new r.XFAObjectArray(); + this.integer = new r.XFAObjectArray(); + this.manifest = new r.XFAObjectArray(); + this.script = new r.XFAObjectArray(); + this.text = new r.XFAObjectArray(); + this.time = new r.XFAObjectArray(); + } + [r.$isTransparent]() { + return !0; + } + } + class TemplateNamespace { + static [i.$buildXFAObject](e, t) { + if (TemplateNamespace.hasOwnProperty(e)) { + const a = TemplateNamespace[e](t); + a[r.$setSetAttributes](t); + return a; + } + } + static appearanceFilter(e) { + return new AppearanceFilter(e); + } + static arc(e) { + return new Arc(e); + } + static area(e) { + return new Area(e); + } + static assist(e) { + return new Assist(e); + } + static barcode(e) { + return new Barcode(e); + } + static bind(e) { + return new Bind(e); + } + static bindItems(e) { + return new BindItems(e); + } + static bookend(e) { + return new Bookend(e); + } + static boolean(e) { + return new BooleanElement(e); + } + static border(e) { + return new Border(e); + } + static break(e) { + return new Break(e); + } + static breakAfter(e) { + return new BreakAfter(e); + } + static breakBefore(e) { + return new BreakBefore(e); + } + static button(e) { + return new Button(e); + } + static calculate(e) { + return new Calculate(e); + } + static caption(e) { + return new Caption(e); + } + static certificate(e) { + return new Certificate(e); + } + static certificates(e) { + return new Certificates(e); + } + static checkButton(e) { + return new CheckButton(e); + } + static choiceList(e) { + return new ChoiceList(e); + } + static color(e) { + return new Color(e); + } + static comb(e) { + return new Comb(e); + } + static connect(e) { + return new Connect(e); + } + static contentArea(e) { + return new ContentArea(e); + } + static corner(e) { + return new Corner(e); + } + static date(e) { + return new DateElement(e); + } + static dateTime(e) { + return new DateTime(e); + } + static dateTimeEdit(e) { + return new DateTimeEdit(e); + } + static decimal(e) { + return new Decimal(e); + } + static defaultUi(e) { + return new DefaultUi(e); + } + static desc(e) { + return new Desc(e); + } + static digestMethod(e) { + return new DigestMethod(e); + } + static digestMethods(e) { + return new DigestMethods(e); + } + static draw(e) { + return new Draw(e); + } + static edge(e) { + return new Edge(e); + } + static encoding(e) { + return new Encoding(e); + } + static encodings(e) { + return new Encodings(e); + } + static encrypt(e) { + return new Encrypt(e); + } + static encryptData(e) { + return new EncryptData(e); + } + static encryption(e) { + return new Encryption(e); + } + static encryptionMethod(e) { + return new EncryptionMethod(e); + } + static encryptionMethods(e) { + return new EncryptionMethods(e); + } + static event(e) { + return new Event(e); + } + static exData(e) { + return new ExData(e); + } + static exObject(e) { + return new ExObject(e); + } + static exclGroup(e) { + return new ExclGroup(e); + } + static execute(e) { + return new Execute(e); + } + static extras(e) { + return new Extras(e); + } + static field(e) { + return new Field(e); + } + static fill(e) { + return new Fill(e); + } + static filter(e) { + return new Filter(e); + } + static float(e) { + return new Float(e); + } + static font(e) { + return new Font(e); + } + static format(e) { + return new Format(e); + } + static handler(e) { + return new Handler(e); + } + static hyphenation(e) { + return new Hyphenation(e); + } + static image(e) { + return new Image(e); + } + static imageEdit(e) { + return new ImageEdit(e); + } + static integer(e) { + return new Integer(e); + } + static issuers(e) { + return new Issuers(e); + } + static items(e) { + return new Items(e); + } + static keep(e) { + return new Keep(e); + } + static keyUsage(e) { + return new KeyUsage(e); + } + static line(e) { + return new Line(e); + } + static linear(e) { + return new Linear(e); + } + static lockDocument(e) { + return new LockDocument(e); + } + static manifest(e) { + return new Manifest(e); + } + static margin(e) { + return new Margin(e); + } + static mdp(e) { + return new Mdp(e); + } + static medium(e) { + return new Medium(e); + } + static message(e) { + return new Message(e); + } + static numericEdit(e) { + return new NumericEdit(e); + } + static occur(e) { + return new Occur(e); + } + static oid(e) { + return new Oid(e); + } + static oids(e) { + return new Oids(e); + } + static overflow(e) { + return new Overflow(e); + } + static pageArea(e) { + return new PageArea(e); + } + static pageSet(e) { + return new PageSet(e); + } + static para(e) { + return new Para(e); + } + static passwordEdit(e) { + return new PasswordEdit(e); + } + static pattern(e) { + return new Pattern(e); + } + static picture(e) { + return new Picture(e); + } + static proto(e) { + return new Proto(e); + } + static radial(e) { + return new Radial(e); + } + static reason(e) { + return new Reason(e); + } + static reasons(e) { + return new Reasons(e); + } + static rectangle(e) { + return new Rectangle(e); + } + static ref(e) { + return new RefElement(e); + } + static script(e) { + return new Script(e); + } + static setProperty(e) { + return new SetProperty(e); + } + static signData(e) { + return new SignData(e); + } + static signature(e) { + return new Signature(e); + } + static signing(e) { + return new Signing(e); + } + static solid(e) { + return new Solid(e); + } + static speak(e) { + return new Speak(e); + } + static stipple(e) { + return new Stipple(e); + } + static subform(e) { + return new Subform(e); + } + static subformSet(e) { + return new SubformSet(e); + } + static subjectDN(e) { + return new SubjectDN(e); + } + static subjectDNs(e) { + return new SubjectDNs(e); + } + static submit(e) { + return new Submit(e); + } + static template(e) { + return new Template(e); + } + static text(e) { + return new Text(e); + } + static textEdit(e) { + return new TextEdit(e); + } + static time(e) { + return new Time(e); + } + static timeStamp(e) { + return new TimeStamp(e); + } + static toolTip(e) { + return new ToolTip(e); + } + static traversal(e) { + return new Traversal(e); + } + static traverse(e) { + return new Traverse(e); + } + static ui(e) { + return new Ui(e); + } + static validate(e) { + return new Validate(e); + } + static value(e) { + return new Value(e); + } + static variables(e) { + return new Variables(e); + } + } + t.TemplateNamespace = TemplateNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.addHTML = function addHTML(e, t, a) { + const n = e[r.$extra], + s = n.availableSpace, + [o, c, l, h] = a; + switch (e.layout) { + case 'position': + n.width = Math.max(n.width, o + l); + n.height = Math.max(n.height, c + h); + n.children.push(t); + break; + case 'lr-tb': + case 'rl-tb': + if (!n.line || 1 === n.attempt) { + n.line = createLine(e, []); + n.children.push(n.line); + n.numberInLine = 0; + } + n.numberInLine += 1; + n.line.children.push(t); + if (0 === n.attempt) { + n.currentWidth += l; + n.height = Math.max(n.height, n.prevHeight + h); + } else { + n.currentWidth = l; + n.prevHeight = n.height; + n.height += h; + n.attempt = 0; + } + n.width = Math.max(n.width, n.currentWidth); + break; + case 'rl-row': + case 'row': { + n.children.push(t); + n.width += l; + n.height = Math.max(n.height, h); + const e = (0, i.measureToString)(n.height); + for (const t of n.children) t.attributes.style.height = e; + break; + } + case 'table': + case 'tb': + n.width = Math.min(s.width, Math.max(n.width, l)); + n.height += h; + n.children.push(t); + } + }; + t.checkDimensions = function checkDimensions(e, t) { + if (null === e[r.$getTemplateRoot]()[r.$extra].firstUnsplittable) return !0; + if (0 === e.w || 0 === e.h) return !0; + const a = e[r.$getSubformParent](), + i = (a[r.$extra] && a[r.$extra].attempt) || 0, + [, n, s, o] = (function getTransformedBBox(e) { + let t, + a, + r = '' === e.w ? NaN : e.w, + i = '' === e.h ? NaN : e.h, + [n, s] = [0, 0]; + switch (e.anchorType || '') { + case 'bottomCenter': + [n, s] = [r / 2, i]; + break; + case 'bottomLeft': + [n, s] = [0, i]; + break; + case 'bottomRight': + [n, s] = [r, i]; + break; + case 'middleCenter': + [n, s] = [r / 2, i / 2]; + break; + case 'middleLeft': + [n, s] = [0, i / 2]; + break; + case 'middleRight': + [n, s] = [r, i / 2]; + break; + case 'topCenter': + [n, s] = [r / 2, 0]; + break; + case 'topRight': + [n, s] = [r, 0]; + } + switch (e.rotate || 0) { + case 0: + [t, a] = [-n, -s]; + break; + case 90: + [t, a] = [-s, n]; + [r, i] = [i, -r]; + break; + case 180: + [t, a] = [n, s]; + [r, i] = [-r, -i]; + break; + case 270: + [t, a] = [s, -n]; + [r, i] = [-i, r]; + } + return [ + e.x + t + Math.min(0, r), + e.y + a + Math.min(0, i), + Math.abs(r), + Math.abs(i), + ]; + })(e); + switch (a.layout) { + case 'lr-tb': + case 'rl-tb': + return 0 === i + ? e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure + ? '' !== e.w + ? Math.round(s - t.width) <= 2 + : t.width > 2 + : !('' !== e.h && Math.round(o - t.height) > 2) && + ('' !== e.w + ? Math.round(s - t.width) <= 2 || + (0 === a[r.$extra].numberInLine && t.height > 2) + : t.width > 2) + : !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure || + (!('' !== e.h && Math.round(o - t.height) > 2) && + ('' === e.w || Math.round(s - t.width) <= 2 || !a[r.$isThereMoreWidth]()) && + t.height > 2); + case 'table': + case 'tb': + return ( + !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure || + ('' === e.h || e[r.$isSplittable]() + ? ('' === e.w || Math.round(s - t.width) <= 2 || !a[r.$isThereMoreWidth]()) && + t.height > 2 + : Math.round(o - t.height) <= 2) + ); + case 'position': + if (e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure) return !0; + if ('' === e.h || Math.round(o + n - t.height) <= 2) return !0; + return o + n > e[r.$getTemplateRoot]()[r.$extra].currentContentArea.h; + case 'rl-row': + case 'row': + return ( + !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure || + '' === e.h || + Math.round(o - t.height) <= 2 + ); + default: + return !0; + } + }; + t.flushHTML = function flushHTML(e) { + if (!e[r.$extra]) return null; + const t = { + name: 'div', + attributes: e[r.$extra].attributes, + children: e[r.$extra].children, + }; + if (e[r.$extra].failingNode) { + const a = e[r.$extra].failingNode[r.$flushHTML](); + a && + (e.layout.endsWith('-tb') + ? t.children.push(createLine(e, [a])) + : t.children.push(a)); + } + if (0 === t.children.length) return null; + return t; + }; + t.getAvailableSpace = function getAvailableSpace(e) { + const t = e[r.$extra].availableSpace, + a = e.margin ? e.margin.topInset + e.margin.bottomInset : 0, + i = e.margin ? e.margin.leftInset + e.margin.rightInset : 0; + switch (e.layout) { + case 'lr-tb': + case 'rl-tb': + return 0 === e[r.$extra].attempt + ? { + width: t.width - i - e[r.$extra].currentWidth, + height: t.height - a - e[r.$extra].prevHeight, + } + : { width: t.width - i, height: t.height - a - e[r.$extra].height }; + case 'rl-row': + case 'row': + return { + width: e[r.$extra].columnWidths + .slice(e[r.$extra].currentColumn) + .reduce((e, t) => e + t), + height: t.height - i, + }; + case 'table': + case 'tb': + return { width: t.width - i, height: t.height - a - e[r.$extra].height }; + default: + return t; + } + }; + var r = a(77), + i = a(84); + function createLine(e, t) { + return { + name: 'div', + attributes: { class: ['lr-tb' === e.layout ? 'xfaLr' : 'xfaRl'] }, + children: t, + }; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.computeBbox = function computeBbox(e, t, a) { + let i; + if ('' !== e.w && '' !== e.h) i = [e.x, e.y, e.w, e.h]; + else { + if (!a) return null; + let n = e.w; + if ('' === n) { + if (0 === e.maxW) { + const t = e[r.$getSubformParent](); + n = 'position' === t.layout && '' !== t.w ? 0 : e.minW; + } else n = Math.min(e.maxW, a.width); + t.attributes.style.width = measureToString(n); + } + let s = e.h; + if ('' === s) { + if (0 === e.maxH) { + const t = e[r.$getSubformParent](); + s = 'position' === t.layout && '' !== t.h ? 0 : e.minH; + } else s = Math.min(e.maxH, a.height); + t.attributes.style.height = measureToString(s); + } + i = [e.x, e.y, n, s]; + } + return i; + }; + t.createWrapper = function createWrapper(e, t) { + const { attributes: a } = t, + { style: i } = a, + n = { + name: 'div', + attributes: { class: ['xfaWrapper'], style: Object.create(null) }, + children: [], + }; + a.class.push('xfaWrapped'); + if (e.border) { + const { widths: a, insets: s } = e.border[r.$extra]; + let o, + c, + l = s[0], + h = s[3]; + const u = s[0] + s[2], + d = s[1] + s[3]; + switch (e.border.hand) { + case 'even': + l -= a[0] / 2; + h -= a[3] / 2; + o = `calc(100% + ${(a[1] + a[3]) / 2 - d}px)`; + c = `calc(100% + ${(a[0] + a[2]) / 2 - u}px)`; + break; + case 'left': + l -= a[0]; + h -= a[3]; + o = `calc(100% + ${a[1] + a[3] - d}px)`; + c = `calc(100% + ${a[0] + a[2] - u}px)`; + break; + case 'right': + o = d ? `calc(100% - ${d}px)` : '100%'; + c = u ? `calc(100% - ${u}px)` : '100%'; + } + const f = ['xfaBorder']; + isPrintOnly(e.border) && f.push('xfaPrintOnly'); + const g = { + name: 'div', + attributes: { + class: f, + style: { top: `${l}px`, left: `${h}px`, width: o, height: c }, + }, + children: [], + }; + for (const e of [ + 'border', + 'borderWidth', + 'borderColor', + 'borderRadius', + 'borderStyle', + ]) + if (void 0 !== i[e]) { + g.attributes.style[e] = i[e]; + delete i[e]; + } + n.children.push(g, t); + } else n.children.push(t); + for (const e of [ + 'background', + 'backgroundClip', + 'top', + 'left', + 'width', + 'height', + 'minWidth', + 'minHeight', + 'maxWidth', + 'maxHeight', + 'transform', + 'transformOrigin', + 'visibility', + ]) + if (void 0 !== i[e]) { + n.attributes.style[e] = i[e]; + delete i[e]; + } + 'absolute' === i.position + ? (n.attributes.style.position = 'absolute') + : (n.attributes.style.position = 'relative'); + delete i.position; + if (i.alignSelf) { + n.attributes.style.alignSelf = i.alignSelf; + delete i.alignSelf; + } + return n; + }; + t.fixDimensions = function fixDimensions(e) { + const t = e[r.$getSubformParent](); + if (t.layout && t.layout.includes('row')) { + const a = t[r.$extra], + i = e.colSpan; + let n; + n = + -1 === i + ? a.columnWidths.slice(a.currentColumn).reduce((e, t) => e + t, 0) + : a.columnWidths + .slice(a.currentColumn, a.currentColumn + i) + .reduce((e, t) => e + t, 0); + isNaN(n) || (e.w = n); + } + t.layout && 'position' !== t.layout && (e.x = e.y = 0); + 'table' === e.layout && + '' === e.w && + Array.isArray(e.columnWidths) && + (e.w = e.columnWidths.reduce((e, t) => e + t, 0)); + }; + t.fixTextIndent = function fixTextIndent(e) { + const t = (0, n.getMeasurement)(e.textIndent, '0px'); + if (t >= 0) return; + const a = + 'padding' + + ('left' == ('right' === e.textAlign ? 'right' : 'left') ? 'Left' : 'Right'), + r = (0, n.getMeasurement)(e[a], '0px'); + e[a] = r - t + 'px'; + }; + t.fixURL = function fixURL(e) { + const t = (0, i.createValidAbsoluteUrl)(e, null, { + addDefaultProtocol: !0, + tryConvertEncoding: !0, + }); + return t ? t.href : null; + }; + t.isPrintOnly = isPrintOnly; + t.layoutClass = function layoutClass(e) { + switch (e.layout) { + case 'position': + default: + 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'; + } + }; + t.layoutNode = function layoutNode(e, t) { + let a = null, + i = null, + n = !1; + if ((!e.w || !e.h) && e.value) { + let s = 0, + o = 0; + if (e.margin) { + s = e.margin.leftInset + e.margin.rightInset; + o = e.margin.topInset + e.margin.bottomInset; + } + let c = null, + l = null; + if (e.para) { + l = Object.create(null); + c = '' === e.para.lineHeight ? null : e.para.lineHeight; + l.top = '' === e.para.spaceAbove ? 0 : e.para.spaceAbove; + l.bottom = '' === e.para.spaceBelow ? 0 : e.para.spaceBelow; + l.left = '' === e.para.marginLeft ? 0 : e.para.marginLeft; + l.right = '' === e.para.marginRight ? 0 : e.para.marginRight; + } + let h = e.font; + if (!h) { + const t = e[r.$getTemplateRoot](); + let a = e[r.$getParent](); + for (; a && a !== t; ) { + if (a.font) { + h = a.font; + break; + } + a = a[r.$getParent](); + } + } + const u = (e.w || t.width) - s, + d = e[r.$globalData].fontFinder; + if ( + e.value.exData && + e.value.exData[r.$content] && + 'text/html' === e.value.exData.contentType + ) { + const t = layoutText(e.value.exData[r.$content], h, l, c, d, u); + i = t.width; + a = t.height; + n = t.isBroken; + } else { + const t = e.value[r.$text](); + if (t) { + const e = layoutText(t, h, l, c, d, u); + i = e.width; + a = e.height; + n = e.isBroken; + } + } + null === i || e.w || (i += s); + null === a || e.h || (a += o); + } + return { w: i, h: a, isBroken: n }; + }; + t.measureToString = measureToString; + t.setAccess = function setAccess(e, t) { + switch (e.access) { + case 'nonInteractive': + t.push('xfaNonInteractive'); + break; + case 'readOnly': + t.push('xfaReadOnly'); + break; + case 'protected': + t.push('xfaDisabled'); + } + }; + t.setFontFamily = function setFontFamily(e, t, a, r) { + if (!a) { + delete r.fontFamily; + return; + } + const i = (0, n.stripQuotes)(e.typeface); + r.fontFamily = `"${i}"`; + const o = a.find(i); + if (o) { + const { fontFamily: a } = o.regular.cssFontInfo; + a !== i && (r.fontFamily = `"${a}"`); + const n = getCurrentPara(t); + if (n && '' !== n.lineHeight) return; + if (r.lineHeight) return; + const c = (0, s.selectFont)(e, o); + c && (r.lineHeight = Math.max(1.2, c.lineHeight)); + } + }; + t.setMinMaxDimensions = function setMinMaxDimensions(e, t) { + if ('position' === e[r.$getSubformParent]().layout) { + e.minW > 0 && (t.minWidth = measureToString(e.minW)); + e.maxW > 0 && (t.maxWidth = measureToString(e.maxW)); + e.minH > 0 && (t.minHeight = measureToString(e.minH)); + e.maxH > 0 && (t.maxHeight = measureToString(e.maxH)); + } + }; + t.setPara = function setPara(e, t, a) { + if (a.attributes.class && a.attributes.class.includes('xfaRich')) { + if (t) { + '' === e.h && (t.height = 'auto'); + '' === e.w && (t.width = 'auto'); + } + const i = getCurrentPara(e); + if (i) { + const e = a.attributes.style; + e.display = 'flex'; + e.flexDirection = 'column'; + switch (i.vAlign) { + case 'top': + e.justifyContent = 'start'; + break; + case 'bottom': + e.justifyContent = 'end'; + break; + case 'middle': + e.justifyContent = 'center'; + } + const t = i[r.$toStyle](); + for (const [a, r] of Object.entries(t)) a in e || (e[a] = r); + } + } + }; + t.toStyle = function toStyle(e, ...t) { + const a = Object.create(null); + for (const n of t) { + const t = e[n]; + if (null !== t) + if (c.hasOwnProperty(n)) c[n](e, a); + else if (t instanceof r.XFAObject) { + const e = t[r.$toStyle](); + e + ? Object.assign(a, e) + : (0, i.warn)(`(DEBUG) - XFA - style for ${n} not implemented yet`); + } + } + return a; + }; + var r = a(77), + i = a(2), + n = a(78), + s = a(85), + o = a(86); + function measureToString(e) { + return 'string' == typeof e + ? '0px' + : Number.isInteger(e) + ? `${e}px` + : `${e.toFixed(2)}px`; + } + const c = { + anchorType(e, t) { + const a = e[r.$getSubformParent](); + if (a && (!a.layout || 'position' === a.layout)) { + 'transform' in t || (t.transform = ''); + switch (e.anchorType) { + case 'bottomCenter': + t.transform += 'translate(-50%, -100%)'; + break; + case 'bottomLeft': + t.transform += 'translate(0,-100%)'; + break; + case 'bottomRight': + t.transform += 'translate(-100%,-100%)'; + break; + case 'middleCenter': + t.transform += 'translate(-50%,-50%)'; + break; + case 'middleLeft': + t.transform += 'translate(0,-50%)'; + break; + case 'middleRight': + t.transform += 'translate(-100%,-50%)'; + break; + case 'topCenter': + t.transform += 'translate(-50%,0)'; + break; + case 'topRight': + t.transform += 'translate(-100%,0)'; + } + } + }, + dimensions(e, t) { + const a = e[r.$getSubformParent](); + let i = e.w; + const n = e.h; + if (a.layout && a.layout.includes('row')) { + const t = a[r.$extra], + n = e.colSpan; + let s; + if (-1 === n) { + s = t.columnWidths.slice(t.currentColumn).reduce((e, t) => e + t, 0); + t.currentColumn = 0; + } else { + s = t.columnWidths + .slice(t.currentColumn, t.currentColumn + n) + .reduce((e, t) => e + t, 0); + t.currentColumn = (t.currentColumn + e.colSpan) % t.columnWidths.length; + } + isNaN(s) || (i = e.w = s); + } + t.width = '' !== i ? measureToString(i) : 'auto'; + t.height = '' !== n ? measureToString(n) : 'auto'; + }, + position(e, t) { + const a = e[r.$getSubformParent](); + if (!a || !a.layout || 'position' === a.layout) { + t.position = 'absolute'; + t.left = measureToString(e.x); + t.top = measureToString(e.y); + } + }, + rotate(e, t) { + if (e.rotate) { + 'transform' in t || (t.transform = ''); + t.transform += `rotate(-${e.rotate}deg)`; + t.transformOrigin = 'top left'; + } + }, + presence(e, t) { + switch (e.presence) { + case 'invisible': + t.visibility = 'hidden'; + break; + case 'hidden': + case 'inactive': + t.display = 'none'; + } + }, + hAlign(e, t) { + if ('para' === e[r.$nodeName]) + switch (e.hAlign) { + case 'justifyAll': + t.textAlign = 'justify-all'; + break; + case 'radix': + t.textAlign = 'left'; + break; + default: + t.textAlign = e.hAlign; + } + else + switch (e.hAlign) { + case 'left': + t.alignSelf = 'start'; + break; + case 'center': + t.alignSelf = 'center'; + break; + case 'right': + t.alignSelf = 'end'; + } + }, + margin(e, t) { + e.margin && (t.margin = e.margin[r.$toStyle]().margin); + }, + }; + function layoutText(e, t, a, i, n, s) { + const c = new o.TextMeasure(t, a, i, n); + 'string' == typeof e ? c.addString(e) : e[r.$pushGlyphs](c); + return c.compute(s); + } + function isPrintOnly(e) { + return ( + e.relevant.length > 0 && !e.relevant[0].excluded && 'print' === e.relevant[0].viewname + ); + } + function getCurrentPara(e) { + const t = e[r.$getTemplateRoot]()[r.$extra].paraStack; + return t.length ? t.at(-1) : null; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.FontFinder = void 0; + t.getMetrics = function getMetrics(e, t = !1) { + let a = null; + if (e) { + const t = (0, i.stripQuotes)(e.typeface), + n = e[r.$globalData].fontFinder.find(t); + a = selectFont(e, n); + } + if (!a) return { lineHeight: 12, lineGap: 2, lineNoGap: 10 }; + const n = e.size || 10, + s = a.lineHeight ? Math.max(t ? 0 : 1.2, a.lineHeight) : 1.2, + o = void 0 === a.lineGap ? 0.2 : a.lineGap; + return { lineHeight: s * n, lineGap: o * n, lineNoGap: Math.max(1, s - o) * n }; + }; + t.selectFont = selectFont; + var r = a(77), + i = a(78), + n = a(2); + t.FontFinder = class FontFinder { + constructor(e) { + this.fonts = new Map(); + this.cache = new Map(); + this.warned = new Set(); + this.defaultFont = null; + this.add(e); + } + add(e, t = null) { + for (const t of e) this.addPdfFont(t); + for (const e of this.fonts.values()) + e.regular || (e.regular = e.italic || e.bold || e.bolditalic); + if (!t || 0 === t.size) return; + const a = this.fonts.get('PdfJS-Fallback-PdfJS-XFA'); + for (const e of t) this.fonts.set(e, a); + } + addPdfFont(e) { + const t = e.cssFontInfo, + a = t.fontFamily; + let r = this.fonts.get(a); + if (!r) { + r = Object.create(null); + this.fonts.set(a, r); + this.defaultFont || (this.defaultFont = r); + } + let i = ''; + const n = parseFloat(t.fontWeight); + 0 !== parseFloat(t.italicAngle) + ? (i = n >= 700 ? 'bolditalic' : 'italic') + : n >= 700 && (i = 'bold'); + if (!i) { + (e.name.includes('Bold') || (e.psName && e.psName.includes('Bold'))) && + (i = 'bold'); + (e.name.includes('Italic') || + e.name.endsWith('It') || + (e.psName && (e.psName.includes('Italic') || e.psName.endsWith('It')))) && + (i += 'italic'); + } + i || (i = 'regular'); + r[i] = e; + } + getDefault() { + return this.defaultFont; + } + find(e, t = !0) { + let a = this.fonts.get(e) || this.cache.get(e); + if (a) return a; + const r = /,|-|_| |bolditalic|bold|italic|regular|it/gi; + let i = e.replaceAll(r, ''); + a = this.fonts.get(i); + if (a) { + this.cache.set(e, a); + return a; + } + i = i.toLowerCase(); + const s = []; + for (const [e, t] of this.fonts.entries()) + e.replaceAll(r, '').toLowerCase().startsWith(i) && s.push(t); + if (0 === s.length) + for (const [, e] of this.fonts.entries()) + e.regular.name && + e.regular.name.replaceAll(r, '').toLowerCase().startsWith(i) && + s.push(e); + if (0 === s.length) { + i = i.replaceAll(/psmt|mt/gi, ''); + for (const [e, t] of this.fonts.entries()) + e.replaceAll(r, '').toLowerCase().startsWith(i) && s.push(t); + } + if (0 === s.length) + for (const e of this.fonts.values()) + e.regular.name && + e.regular.name.replaceAll(r, '').toLowerCase().startsWith(i) && + s.push(e); + if (s.length >= 1) { + 1 !== s.length && + t && + (0, n.warn)(`XFA - Too many choices to guess the correct font: ${e}`); + this.cache.set(e, s[0]); + return s[0]; + } + if (t && !this.warned.has(e)) { + this.warned.add(e); + (0, n.warn)(`XFA - Cannot find the font: ${e}`); + } + return null; + } + }; + function selectFont(e, t) { + return 'italic' === e.posture + ? 'bold' === e.weight + ? t.bolditalic + : t.italic + : 'bold' === e.weight + ? t.bold + : t.regular; + } + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.TextMeasure = void 0; + var r = a(85); + class FontInfo { + constructor(e, t, a, i) { + this.lineHeight = a; + this.paraMargin = t || { top: 0, bottom: 0, left: 0, right: 0 }; + if (!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 n = i.find(e.typeface); + if (n) { + this.pdfFont = (0, r.selectFont)(e, n); + this.pdfFont || ([this.pdfFont, this.xfaFont] = this.defaultFont(i)); + } else [this.pdfFont, this.xfaFont] = this.defaultFont(i); + } + defaultFont(e) { + const t = + e.find('Helvetica', !1) || + e.find('Myriad Pro', !1) || + e.find('Arial', !1) || + e.getDefault(); + if (t && t.regular) { + const e = t.regular; + return [ + e, + { + typeface: e.cssFontInfo.fontFamily, + posture: 'normal', + weight: 'normal', + size: 10, + letterSpacing: 0, + }, + ]; + } + return [ + null, + { + typeface: 'Courier', + posture: 'normal', + weight: 'normal', + size: 10, + letterSpacing: 0, + }, + ]; + } + } + class FontSelector { + constructor(e, t, a, r) { + this.fontFinder = r; + this.stack = [new FontInfo(e, t, a, r)]; + } + pushData(e, t, a) { + const r = this.stack.at(-1); + for (const t of ['typeface', 'posture', 'weight', 'size', 'letterSpacing']) + e[t] || (e[t] = r.xfaFont[t]); + for (const e of ['top', 'bottom', 'left', 'right']) + isNaN(t[e]) && (t[e] = r.paraMargin[e]); + const i = new FontInfo(e, t, a || r.lineHeight, this.fontFinder); + i.pdfFont || (i.pdfFont = r.pdfFont); + this.stack.push(i); + } + popFont() { + this.stack.pop(); + } + topFont() { + return this.stack.at(-1); + } + } + t.TextMeasure = class TextMeasure { + constructor(e, t, a, r) { + this.glyphs = []; + this.fontSelector = new FontSelector(e, t, a, r); + this.extraHeight = 0; + } + pushData(e, t, a) { + this.fontSelector.pushData(e, t, a); + } + 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 t = this.fontSelector.topFont(), + a = t.xfaFont.size; + if (t.pdfFont) { + const r = t.xfaFont.letterSpacing, + i = t.pdfFont, + n = i.lineHeight || 1.2, + s = t.lineHeight || Math.max(1.2, n) * a, + o = n - (void 0 === i.lineGap ? 0.2 : i.lineGap), + c = Math.max(1, o) * a, + l = a / 1e3, + h = i.defaultWidth || i.charsToGlyphs(' ')[0].width; + for (const t of e.split(/[\u2029\n]/)) { + const e = i.encodeString(t).join(''), + a = i.charsToGlyphs(e); + for (const e of a) { + const t = e.width || h; + this.glyphs.push([t * l + r, s, c, e.unicode, !1]); + } + this.glyphs.push([0, 0, 0, '\n', !0]); + } + this.glyphs.pop(); + } else { + for (const t of e.split(/[\u2029\n]/)) { + for (const e of t.split('')) this.glyphs.push([a, 1.2 * a, a, e, !1]); + this.glyphs.push([0, 0, 0, '\n', !0]); + } + this.glyphs.pop(); + } + } + compute(e) { + let t = -1, + a = 0, + r = 0, + i = 0, + n = 0, + s = 0, + o = !1, + c = !0; + for (let l = 0, h = this.glyphs.length; l < h; l++) { + const [h, u, d, f, g] = this.glyphs[l], + p = ' ' === f, + m = c ? d : u; + if (g) { + r = Math.max(r, n); + n = 0; + i += s; + s = m; + t = -1; + a = 0; + c = !1; + } else if (p) + if (n + h > e) { + r = Math.max(r, n); + n = 0; + i += s; + s = m; + t = -1; + a = 0; + o = !0; + c = !1; + } else { + s = Math.max(m, s); + a = n; + n += h; + t = l; + } + else if (n + h > e) { + i += s; + s = m; + if (-1 !== t) { + l = t; + r = Math.max(r, a); + n = 0; + t = -1; + a = 0; + } else { + r = Math.max(r, n); + n = h; + } + o = !0; + c = !1; + } else { + n += h; + s = Math.max(m, s); + } + } + r = Math.max(r, n); + i += s + this.extraHeight; + return { width: 1.02 * r, height: i, isBroken: o }; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.DataHandler = void 0; + var r = a(77); + t.DataHandler = class DataHandler { + constructor(e, t) { + this.data = t; + this.dataset = e.datasets || null; + } + serialize(e) { + const t = [[-1, this.data[r.$getChildren]()]]; + for (; t.length > 0; ) { + const a = t.at(-1), + [i, n] = a; + if (i + 1 === n.length) { + t.pop(); + continue; + } + const s = n[++a[0]], + o = e.get(s[r.$uid]); + if (o) s[r.$setValue](o); + else { + const t = s[r.$getAttributes](); + for (const a of t.values()) { + const t = e.get(a[r.$uid]); + if (t) { + a[r.$setValue](t); + break; + } + } + } + const c = s[r.$getChildren](); + c.length > 0 && t.push([-1, c]); + } + const a = ['']; + if (this.dataset) + for (const e of this.dataset[r.$getChildren]()) + 'data' !== e[r.$nodeName] && e[r.$toString](a); + this.data[r.$toString](a); + a.push(''); + return a.join(''); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XFAParser = void 0; + var r = a(77), + i = a(66), + n = a(89), + s = a(2); + class XFAParser extends i.XMLParserBase { + constructor(e = null, t = !1) { + super(); + this._builder = new n.Builder(e); + this._stack = []; + this._globalData = { usedTypefaces: new Set() }; + this._ids = new Map(); + this._current = this._builder.buildRoot(this._ids); + this._errorCode = i.XMLParserErrorCode.NoError; + this._whiteRegex = /^\s+$/; + this._nbsps = /\xa0+/g; + this._richText = t; + } + parse(e) { + this.parseXml(e); + if (this._errorCode === i.XMLParserErrorCode.NoError) { + this._current[r.$finalize](); + return this._current.element; + } + } + onText(e) { + e = e.replace(this._nbsps, (e) => e.slice(1) + ' '); + this._richText || this._current[r.$acceptWhitespace]() + ? this._current[r.$onText](e, this._richText) + : this._whiteRegex.test(e) || this._current[r.$onText](e.trim()); + } + onCdata(e) { + this._current[r.$onText](e); + } + _mkAttributes(e, t) { + let a = null, + i = null; + const n = Object.create({}); + for (const { name: o, value: c } of e) + if ('xmlns' === o) + a ? (0, s.warn)(`XFA - multiple namespace definition in <${t}>`) : (a = c); + else if (o.startsWith('xmlns:')) { + const e = o.substring(6); + i || (i = []); + i.push({ prefix: e, value: c }); + } else { + const e = o.indexOf(':'); + if (-1 === e) n[o] = c; + else { + let t = n[r.$nsAttributes]; + t || (t = n[r.$nsAttributes] = Object.create(null)); + const [a, i] = [o.slice(0, e), o.slice(e + 1)]; + (t[a] ||= Object.create(null))[i] = c; + } + } + return [a, i, n]; + } + _getNameAndPrefix(e, t) { + const a = e.indexOf(':'); + return -1 === a ? [e, null] : [e.substring(a + 1), t ? '' : e.substring(0, a)]; + } + onBeginElement(e, t, a) { + const [i, n, s] = this._mkAttributes(t, e), + [o, c] = this._getNameAndPrefix(e, this._builder.isNsAgnostic()), + l = this._builder.build({ + nsPrefix: c, + name: o, + attributes: s, + namespace: i, + prefixes: n, + }); + l[r.$globalData] = this._globalData; + if (a) { + l[r.$finalize](); + this._current[r.$onChild](l) && l[r.$setId](this._ids); + l[r.$clean](this._builder); + } else { + this._stack.push(this._current); + this._current = l; + } + } + onEndElement(e) { + const t = this._current; + if (t[r.$isCDATAXml]() && 'string' == typeof t[r.$content]) { + const e = new XFAParser(); + e._globalData = this._globalData; + const a = e.parse(t[r.$content]); + t[r.$content] = null; + t[r.$onChild](a); + } + t[r.$finalize](); + this._current = this._stack.pop(); + this._current[r.$onChild](t) && t[r.$setId](this._ids); + t[r.$clean](this._builder); + } + onError(e) { + this._errorCode = e; + } + } + t.XFAParser = XFAParser; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.Builder = void 0; + var r = a(79), + i = a(77), + n = a(90), + s = a(82), + o = a(99), + c = a(2); + class Root extends i.XFAObject { + constructor(e) { + super(-1, 'root', Object.create(null)); + this.element = null; + this[i.$ids] = e; + } + [i.$onChild](e) { + this.element = e; + return !0; + } + [i.$finalize]() { + super[i.$finalize](); + if (this.element.template instanceof s.Template) { + this[i.$ids].set(i.$root, this.element); + this.element.template[i.$resolvePrototypes](this[i.$ids]); + this.element.template[i.$ids] = this[i.$ids]; + } + } + } + class Empty extends i.XFAObject { + constructor() { + super(-1, '', Object.create(null)); + } + [i.$onChild](e) { + return !1; + } + } + t.Builder = class Builder { + constructor(e = null) { + this._namespaceStack = []; + this._nsAgnosticLevel = 0; + this._namespacePrefixes = new Map(); + this._namespaces = new Map(); + this._nextNsId = Math.max(...Object.values(r.NamespaceIds).map(({ id: e }) => e)); + this._currentNamespace = e || new o.UnknownNamespace(++this._nextNsId); + } + buildRoot(e) { + return new Root(e); + } + build({ nsPrefix: e, name: t, attributes: a, namespace: s, prefixes: o }) { + const c = null !== s; + if (c) { + this._namespaceStack.push(this._currentNamespace); + this._currentNamespace = this._searchNamespace(s); + } + o && this._addNamespacePrefix(o); + if (a.hasOwnProperty(i.$nsAttributes)) { + const e = n.NamespaceSetUp.datasets, + t = a[i.$nsAttributes]; + let r = null; + for (const [a, i] of Object.entries(t)) { + if (this._getNamespaceToUse(a) === e) { + r = { xfa: i }; + break; + } + } + r ? (a[i.$nsAttributes] = r) : delete a[i.$nsAttributes]; + } + const l = this._getNamespaceToUse(e), + h = (l && l[r.$buildXFAObject](t, a)) || new Empty(); + h[i.$isNsAgnostic]() && this._nsAgnosticLevel++; + (c || o || h[i.$isNsAgnostic]()) && + (h[i.$cleanup] = { + hasNamespace: c, + prefixes: o, + nsAgnostic: h[i.$isNsAgnostic](), + }); + return h; + } + isNsAgnostic() { + return this._nsAgnosticLevel > 0; + } + _searchNamespace(e) { + let t = this._namespaces.get(e); + if (t) return t; + for (const [a, { check: i }] of Object.entries(r.NamespaceIds)) + if (i(e)) { + t = n.NamespaceSetUp[a]; + if (t) { + this._namespaces.set(e, t); + return t; + } + break; + } + t = new o.UnknownNamespace(++this._nextNsId); + this._namespaces.set(e, t); + return t; + } + _addNamespacePrefix(e) { + for (const { prefix: t, value: a } of e) { + const e = this._searchNamespace(a); + let r = this._namespacePrefixes.get(t); + if (!r) { + r = []; + this._namespacePrefixes.set(t, r); + } + r.push(e); + } + } + _getNamespaceToUse(e) { + if (!e) return this._currentNamespace; + const t = this._namespacePrefixes.get(e); + if (t && t.length > 0) return t.at(-1); + (0, c.warn)(`Unknown namespace prefix: ${e}.`); + return null; + } + clean(e) { + const { hasNamespace: t, prefixes: a, nsAgnostic: r } = e; + t && (this._currentNamespace = this._namespaceStack.pop()); + a && + a.forEach(({ prefix: e }) => { + this._namespacePrefixes.get(e).pop(); + }); + r && this._nsAgnosticLevel--; + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.NamespaceSetUp = void 0; + var r = a(91), + i = a(92), + n = a(93), + s = a(94), + o = a(95), + c = a(96), + l = a(82), + h = a(97), + u = a(98); + const d = { + config: r.ConfigNamespace, + connection: i.ConnectionSetNamespace, + datasets: n.DatasetsNamespace, + localeSet: s.LocaleSetNamespace, + signature: o.SignatureNamespace, + stylesheet: c.StylesheetNamespace, + template: l.TemplateNamespace, + xdp: h.XdpNamespace, + xhtml: u.XhtmlNamespace, + }; + t.NamespaceSetUp = d; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ConfigNamespace = void 0; + var r = a(79), + i = a(77), + n = a(78), + s = a(2); + const o = r.NamespaceIds.config.id; + class Acrobat extends i.XFAObject { + constructor(e) { + super(o, 'acrobat', !0); + this.acrobat7 = null; + this.autoSave = null; + this.common = null; + this.validate = null; + this.validateApprovalSignatures = null; + this.submitUrl = new i.XFAObjectArray(); + } + } + class Acrobat7 extends i.XFAObject { + constructor(e) { + super(o, 'acrobat7', !0); + this.dynamicRender = null; + } + } + class ADBE_JSConsole extends i.OptionObject { + constructor(e) { + super(o, 'ADBE_JSConsole', ['delegate', 'Enable', 'Disable']); + } + } + class ADBE_JSDebugger extends i.OptionObject { + constructor(e) { + super(o, 'ADBE_JSDebugger', ['delegate', 'Enable', 'Disable']); + } + } + class AddSilentPrint extends i.Option01 { + constructor(e) { + super(o, 'addSilentPrint'); + } + } + class AddViewerPreferences extends i.Option01 { + constructor(e) { + super(o, 'addViewerPreferences'); + } + } + class AdjustData extends i.Option10 { + constructor(e) { + super(o, 'adjustData'); + } + } + class AdobeExtensionLevel extends i.IntegerObject { + constructor(e) { + super(o, 'adobeExtensionLevel', 0, (e) => e >= 1 && e <= 8); + } + } + class Agent extends i.XFAObject { + constructor(e) { + super(o, 'agent', !0); + this.name = e.name ? e.name.trim() : ''; + this.common = new i.XFAObjectArray(); + } + } + class AlwaysEmbed extends i.ContentObject { + constructor(e) { + super(o, 'alwaysEmbed'); + } + } + class Amd extends i.StringObject { + constructor(e) { + super(o, 'amd'); + } + } + class Area extends i.XFAObject { + constructor(e) { + super(o, 'area'); + this.level = (0, n.getInteger)({ + data: e.level, + defaultValue: 0, + validate: (e) => e >= 1 && e <= 3, + }); + this.name = (0, n.getStringOption)(e.name, [ + '', + 'barcode', + 'coreinit', + 'deviceDriver', + 'font', + 'general', + 'layout', + 'merge', + 'script', + 'signature', + 'sourceSet', + 'templateCache', + ]); + } + } + class Attributes extends i.OptionObject { + constructor(e) { + super(o, 'attributes', ['preserve', 'delegate', 'ignore']); + } + } + class AutoSave extends i.OptionObject { + constructor(e) { + super(o, 'autoSave', ['disabled', 'enabled']); + } + } + class Base extends i.StringObject { + constructor(e) { + super(o, 'base'); + } + } + class BatchOutput extends i.XFAObject { + constructor(e) { + super(o, 'batchOutput'); + this.format = (0, n.getStringOption)(e.format, [ + 'none', + 'concat', + 'zip', + 'zipCompress', + ]); + } + } + class BehaviorOverride extends i.ContentObject { + constructor(e) { + super(o, 'behaviorOverride'); + } + [i.$finalize]() { + this[i.$content] = new Map( + this[i.$content] + .trim() + .split(/\s+/) + .filter((e) => e.includes(':')) + .map((e) => e.split(':', 2)), + ); + } + } + class Cache extends i.XFAObject { + constructor(e) { + super(o, 'cache', !0); + this.templateCache = null; + } + } + class Change extends i.Option01 { + constructor(e) { + super(o, 'change'); + } + } + class Common extends i.XFAObject { + constructor(e) { + super(o, 'common', !0); + 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 i.XFAObjectArray(); + } + } + class Compress extends i.XFAObject { + constructor(e) { + super(o, 'compress'); + this.scope = (0, n.getStringOption)(e.scope, ['imageOnly', 'document']); + } + } + class CompressLogicalStructure extends i.Option01 { + constructor(e) { + super(o, 'compressLogicalStructure'); + } + } + class CompressObjectStream extends i.Option10 { + constructor(e) { + super(o, 'compressObjectStream'); + } + } + class Compression extends i.XFAObject { + constructor(e) { + super(o, 'compression', !0); + this.compressLogicalStructure = null; + this.compressObjectStream = null; + this.level = null; + this.type = null; + } + } + class Config extends i.XFAObject { + constructor(e) { + super(o, 'config', !0); + this.acrobat = null; + this.present = null; + this.trace = null; + this.agent = new i.XFAObjectArray(); + } + } + class Conformance extends i.OptionObject { + constructor(e) { + super(o, 'conformance', ['A', 'B']); + } + } + class ContentCopy extends i.Option01 { + constructor(e) { + super(o, 'contentCopy'); + } + } + class Copies extends i.IntegerObject { + constructor(e) { + super(o, 'copies', 1, (e) => e >= 1); + } + } + class Creator extends i.StringObject { + constructor(e) { + super(o, 'creator'); + } + } + class CurrentPage extends i.IntegerObject { + constructor(e) { + super(o, 'currentPage', 0, (e) => e >= 0); + } + } + class Data extends i.XFAObject { + constructor(e) { + super(o, 'data', !0); + 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 i.XFAObjectArray(); + this.transform = new i.XFAObjectArray(); + } + } + class Debug extends i.XFAObject { + constructor(e) { + super(o, 'debug', !0); + this.uri = null; + } + } + class DefaultTypeface extends i.ContentObject { + constructor(e) { + super(o, 'defaultTypeface'); + this.writingScript = (0, n.getStringOption)(e.writingScript, [ + '*', + 'Arabic', + 'Cyrillic', + 'EastEuropeanRoman', + 'Greek', + 'Hebrew', + 'Japanese', + 'Korean', + 'Roman', + 'SimplifiedChinese', + 'Thai', + 'TraditionalChinese', + 'Vietnamese', + ]); + } + } + class Destination extends i.OptionObject { + constructor(e) { + super(o, 'destination', ['pdf', 'pcl', 'ps', 'webClient', 'zpl']); + } + } + class DocumentAssembly extends i.Option01 { + constructor(e) { + super(o, 'documentAssembly'); + } + } + class Driver extends i.XFAObject { + constructor(e) { + super(o, 'driver', !0); + this.name = e.name ? e.name.trim() : ''; + this.fontInfo = null; + this.xdc = null; + } + } + class DuplexOption extends i.OptionObject { + constructor(e) { + super(o, 'duplexOption', ['simplex', 'duplexFlipLongEdge', 'duplexFlipShortEdge']); + } + } + class DynamicRender extends i.OptionObject { + constructor(e) { + super(o, 'dynamicRender', ['forbidden', 'required']); + } + } + class Embed extends i.Option01 { + constructor(e) { + super(o, 'embed'); + } + } + class Encrypt extends i.Option01 { + constructor(e) { + super(o, 'encrypt'); + } + } + class Encryption extends i.XFAObject { + constructor(e) { + super(o, 'encryption', !0); + this.encrypt = null; + this.encryptionLevel = null; + this.permissions = null; + } + } + class EncryptionLevel extends i.OptionObject { + constructor(e) { + super(o, 'encryptionLevel', ['40bit', '128bit']); + } + } + class Enforce extends i.StringObject { + constructor(e) { + super(o, 'enforce'); + } + } + class Equate extends i.XFAObject { + constructor(e) { + super(o, 'equate'); + this.force = (0, n.getInteger)({ + data: e.force, + defaultValue: 1, + validate: (e) => 0 === e, + }); + this.from = e.from || ''; + this.to = e.to || ''; + } + } + class EquateRange extends i.XFAObject { + constructor(e) { + super(o, 'equateRange'); + this.from = e.from || ''; + this.to = e.to || ''; + this._unicodeRange = e.unicodeRange || ''; + } + get unicodeRange() { + const e = [], + t = /U\+([0-9a-fA-F]+)/, + a = this._unicodeRange; + for (let r of a + .split(',') + .map((e) => e.trim()) + .filter((e) => !!e)) { + r = r.split('-', 2).map((e) => { + const a = e.match(t); + return a ? parseInt(a[1], 16) : 0; + }); + 1 === r.length && r.push(r[0]); + e.push(r); + } + return (0, s.shadow)(this, 'unicodeRange', e); + } + } + class Exclude extends i.ContentObject { + constructor(e) { + super(o, 'exclude'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content] + .trim() + .split(/\s+/) + .filter( + (e) => + e && + [ + 'calculate', + 'close', + 'enter', + 'exit', + 'initialize', + 'ready', + 'validate', + ].includes(e), + ); + } + } + class ExcludeNS extends i.StringObject { + constructor(e) { + super(o, 'excludeNS'); + } + } + class FlipLabel extends i.OptionObject { + constructor(e) { + super(o, 'flipLabel', ['usePrinterSetting', 'on', 'off']); + } + } + class FontInfo extends i.XFAObject { + constructor(e) { + super(o, 'fontInfo', !0); + this.embed = null; + this.map = null; + this.subsetBelow = null; + this.alwaysEmbed = new i.XFAObjectArray(); + this.defaultTypeface = new i.XFAObjectArray(); + this.neverEmbed = new i.XFAObjectArray(); + } + } + class FormFieldFilling extends i.Option01 { + constructor(e) { + super(o, 'formFieldFilling'); + } + } + class GroupParent extends i.StringObject { + constructor(e) { + super(o, 'groupParent'); + } + } + class IfEmpty extends i.OptionObject { + constructor(e) { + super(o, 'ifEmpty', ['dataValue', 'dataGroup', 'ignore', 'remove']); + } + } + class IncludeXDPContent extends i.StringObject { + constructor(e) { + super(o, 'includeXDPContent'); + } + } + class IncrementalLoad extends i.OptionObject { + constructor(e) { + super(o, 'incrementalLoad', ['none', 'forwardOnly']); + } + } + class IncrementalMerge extends i.Option01 { + constructor(e) { + super(o, 'incrementalMerge'); + } + } + class Interactive extends i.Option01 { + constructor(e) { + super(o, 'interactive'); + } + } + class Jog extends i.OptionObject { + constructor(e) { + super(o, 'jog', ['usePrinterSetting', 'none', 'pageSet']); + } + } + class LabelPrinter extends i.XFAObject { + constructor(e) { + super(o, 'labelPrinter', !0); + this.name = (0, n.getStringOption)(e.name, ['zpl', 'dpl', 'ipl', 'tcpl']); + this.batchOutput = null; + this.flipLabel = null; + this.fontInfo = null; + this.xdc = null; + } + } + class Layout extends i.OptionObject { + constructor(e) { + super(o, 'layout', ['paginate', 'panel']); + } + } + class Level extends i.IntegerObject { + constructor(e) { + super(o, 'level', 0, (e) => e > 0); + } + } + class Linearized extends i.Option01 { + constructor(e) { + super(o, 'linearized'); + } + } + class Locale extends i.StringObject { + constructor(e) { + super(o, 'locale'); + } + } + class LocaleSet extends i.StringObject { + constructor(e) { + super(o, 'localeSet'); + } + } + class Log extends i.XFAObject { + constructor(e) { + super(o, 'log', !0); + this.mode = null; + this.threshold = null; + this.to = null; + this.uri = null; + } + } + class MapElement extends i.XFAObject { + constructor(e) { + super(o, 'map', !0); + this.equate = new i.XFAObjectArray(); + this.equateRange = new i.XFAObjectArray(); + } + } + class MediumInfo extends i.XFAObject { + constructor(e) { + super(o, 'mediumInfo', !0); + this.map = null; + } + } + class Message extends i.XFAObject { + constructor(e) { + super(o, 'message', !0); + this.msgId = null; + this.severity = null; + } + } + class Messaging extends i.XFAObject { + constructor(e) { + super(o, 'messaging', !0); + this.message = new i.XFAObjectArray(); + } + } + class Mode extends i.OptionObject { + constructor(e) { + super(o, 'mode', ['append', 'overwrite']); + } + } + class ModifyAnnots extends i.Option01 { + constructor(e) { + super(o, 'modifyAnnots'); + } + } + class MsgId extends i.IntegerObject { + constructor(e) { + super(o, 'msgId', 1, (e) => e >= 1); + } + } + class NameAttr extends i.StringObject { + constructor(e) { + super(o, 'nameAttr'); + } + } + class NeverEmbed extends i.ContentObject { + constructor(e) { + super(o, 'neverEmbed'); + } + } + class NumberOfCopies extends i.IntegerObject { + constructor(e) { + super(o, 'numberOfCopies', null, (e) => e >= 2 && e <= 5); + } + } + class OpenAction extends i.XFAObject { + constructor(e) { + super(o, 'openAction', !0); + this.destination = null; + } + } + class Output extends i.XFAObject { + constructor(e) { + super(o, 'output', !0); + this.to = null; + this.type = null; + this.uri = null; + } + } + class OutputBin extends i.StringObject { + constructor(e) { + super(o, 'outputBin'); + } + } + class OutputXSL extends i.XFAObject { + constructor(e) { + super(o, 'outputXSL', !0); + this.uri = null; + } + } + class Overprint extends i.OptionObject { + constructor(e) { + super(o, 'overprint', ['none', 'both', 'draw', 'field']); + } + } + class Packets extends i.StringObject { + constructor(e) { + super(o, 'packets'); + } + [i.$finalize]() { + '*' !== this[i.$content] && + (this[i.$content] = this[i.$content] + .trim() + .split(/\s+/) + .filter((e) => ['config', 'datasets', 'template', 'xfdf', 'xslt'].includes(e))); + } + } + class PageOffset extends i.XFAObject { + constructor(e) { + super(o, 'pageOffset'); + this.x = (0, n.getInteger)({ + data: e.x, + defaultValue: 'useXDCSetting', + validate: (e) => !0, + }); + this.y = (0, n.getInteger)({ + data: e.y, + defaultValue: 'useXDCSetting', + validate: (e) => !0, + }); + } + } + class PageRange extends i.StringObject { + constructor(e) { + super(o, 'pageRange'); + } + [i.$finalize]() { + const e = this[i.$content] + .trim() + .split(/\s+/) + .map((e) => parseInt(e, 10)), + t = []; + for (let a = 0, r = e.length; a < r; a += 2) t.push(e.slice(a, a + 2)); + this[i.$content] = t; + } + } + class Pagination extends i.OptionObject { + constructor(e) { + super(o, 'pagination', ['simplex', 'duplexShortEdge', 'duplexLongEdge']); + } + } + class PaginationOverride extends i.OptionObject { + constructor(e) { + super(o, 'paginationOverride', [ + 'none', + 'forceDuplex', + 'forceDuplexLongEdge', + 'forceDuplexShortEdge', + 'forceSimplex', + ]); + } + } + class Part extends i.IntegerObject { + constructor(e) { + super(o, 'part', 1, (e) => !1); + } + } + class Pcl extends i.XFAObject { + constructor(e) { + super(o, 'pcl', !0); + 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; + } + } + class Pdf extends i.XFAObject { + constructor(e) { + super(o, 'pdf', !0); + 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; + } + } + class Pdfa extends i.XFAObject { + constructor(e) { + super(o, 'pdfa', !0); + this.amd = null; + this.conformance = null; + this.includeXDPContent = null; + this.part = null; + } + } + class Permissions extends i.XFAObject { + constructor(e) { + super(o, 'permissions', !0); + 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; + } + } + class PickTrayByPDFSize extends i.Option01 { + constructor(e) { + super(o, 'pickTrayByPDFSize'); + } + } + class Picture extends i.StringObject { + constructor(e) { + super(o, 'picture'); + } + } + class PlaintextMetadata extends i.Option01 { + constructor(e) { + super(o, 'plaintextMetadata'); + } + } + class Presence extends i.OptionObject { + constructor(e) { + super(o, 'presence', [ + 'preserve', + 'dissolve', + 'dissolveStructure', + 'ignore', + 'remove', + ]); + } + } + class Present extends i.XFAObject { + constructor(e) { + super(o, 'present', !0); + 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 i.XFAObjectArray(); + this.labelPrinter = new i.XFAObjectArray(); + this.pcl = new i.XFAObjectArray(); + this.pdf = new i.XFAObjectArray(); + this.ps = new i.XFAObjectArray(); + this.submitUrl = new i.XFAObjectArray(); + this.webClient = new i.XFAObjectArray(); + this.zpl = new i.XFAObjectArray(); + } + } + class Print extends i.Option01 { + constructor(e) { + super(o, 'print'); + } + } + class PrintHighQuality extends i.Option01 { + constructor(e) { + super(o, 'printHighQuality'); + } + } + class PrintScaling extends i.OptionObject { + constructor(e) { + super(o, 'printScaling', ['appdefault', 'noScaling']); + } + } + class PrinterName extends i.StringObject { + constructor(e) { + super(o, 'printerName'); + } + } + class Producer extends i.StringObject { + constructor(e) { + super(o, 'producer'); + } + } + class Ps extends i.XFAObject { + constructor(e) { + super(o, 'ps', !0); + 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; + } + } + class Range extends i.ContentObject { + constructor(e) { + super(o, 'range'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content] + .trim() + .split(/\s*,\s*/, 2) + .map((e) => e.split('-').map((e) => parseInt(e.trim(), 10))) + .filter((e) => e.every((e) => !isNaN(e))) + .map((e) => { + 1 === e.length && e.push(e[0]); + return e; + }); + } + } + class Record extends i.ContentObject { + constructor(e) { + super(o, 'record'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content].trim(); + const e = parseInt(this[i.$content], 10); + !isNaN(e) && e >= 0 && (this[i.$content] = e); + } + } + class Relevant extends i.ContentObject { + constructor(e) { + super(o, 'relevant'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content].trim().split(/\s+/); + } + } + class Rename extends i.ContentObject { + constructor(e) { + super(o, 'rename'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content].trim(); + (this[i.$content].toLowerCase().startsWith('xml') || + new RegExp('[\\p{L}_][\\p{L}\\d._\\p{M}-]*', 'u').test(this[i.$content])) && + (0, s.warn)('XFA - Rename: invalid XFA name'); + } + } + class RenderPolicy extends i.OptionObject { + constructor(e) { + super(o, 'renderPolicy', ['server', 'client']); + } + } + class RunScripts extends i.OptionObject { + constructor(e) { + super(o, 'runScripts', ['both', 'client', 'none', 'server']); + } + } + class Script extends i.XFAObject { + constructor(e) { + super(o, 'script', !0); + this.currentPage = null; + this.exclude = null; + this.runScripts = null; + } + } + class ScriptModel extends i.OptionObject { + constructor(e) { + super(o, 'scriptModel', ['XFA', 'none']); + } + } + class Severity extends i.OptionObject { + constructor(e) { + super(o, 'severity', ['ignore', 'error', 'information', 'trace', 'warning']); + } + } + class SilentPrint extends i.XFAObject { + constructor(e) { + super(o, 'silentPrint', !0); + this.addSilentPrint = null; + this.printerName = null; + } + } + class Staple extends i.XFAObject { + constructor(e) { + super(o, 'staple'); + this.mode = (0, n.getStringOption)(e.mode, ['usePrinterSetting', 'on', 'off']); + } + } + class StartNode extends i.StringObject { + constructor(e) { + super(o, 'startNode'); + } + } + class StartPage extends i.IntegerObject { + constructor(e) { + super(o, 'startPage', 0, (e) => !0); + } + } + class SubmitFormat extends i.OptionObject { + constructor(e) { + super(o, 'submitFormat', ['html', 'delegate', 'fdf', 'xml', 'pdf']); + } + } + class SubmitUrl extends i.StringObject { + constructor(e) { + super(o, 'submitUrl'); + } + } + class SubsetBelow extends i.IntegerObject { + constructor(e) { + super(o, 'subsetBelow', 100, (e) => e >= 0 && e <= 100); + } + } + class SuppressBanner extends i.Option01 { + constructor(e) { + super(o, 'suppressBanner'); + } + } + class Tagged extends i.Option01 { + constructor(e) { + super(o, 'tagged'); + } + } + class Template extends i.XFAObject { + constructor(e) { + super(o, 'template', !0); + this.base = null; + this.relevant = null; + this.startPage = null; + this.uri = null; + this.xsl = null; + } + } + class Threshold extends i.OptionObject { + constructor(e) { + super(o, 'threshold', ['trace', 'error', 'information', 'warning']); + } + } + class To extends i.OptionObject { + constructor(e) { + super(o, 'to', ['null', 'memory', 'stderr', 'stdout', 'system', 'uri']); + } + } + class TemplateCache extends i.XFAObject { + constructor(e) { + super(o, 'templateCache'); + this.maxEntries = (0, n.getInteger)({ + data: e.maxEntries, + defaultValue: 5, + validate: (e) => e >= 0, + }); + } + } + class Trace extends i.XFAObject { + constructor(e) { + super(o, 'trace', !0); + this.area = new i.XFAObjectArray(); + } + } + class Transform extends i.XFAObject { + constructor(e) { + super(o, 'transform', !0); + this.groupParent = null; + this.ifEmpty = null; + this.nameAttr = null; + this.picture = null; + this.presence = null; + this.rename = null; + this.whitespace = null; + } + } + class Type extends i.OptionObject { + constructor(e) { + super(o, 'type', [ + 'none', + 'ascii85', + 'asciiHex', + 'ccittfax', + 'flate', + 'lzw', + 'runLength', + 'native', + 'xdp', + 'mergedXDP', + ]); + } + } + class Uri extends i.StringObject { + constructor(e) { + super(o, 'uri'); + } + } + class Validate extends i.OptionObject { + constructor(e) { + super(o, 'validate', ['preSubmit', 'prePrint', 'preExecute', 'preSave']); + } + } + class ValidateApprovalSignatures extends i.ContentObject { + constructor(e) { + super(o, 'validateApprovalSignatures'); + } + [i.$finalize]() { + this[i.$content] = this[i.$content] + .trim() + .split(/\s+/) + .filter((e) => ['docReady', 'postSign'].includes(e)); + } + } + class ValidationMessaging extends i.OptionObject { + constructor(e) { + super(o, 'validationMessaging', [ + 'allMessagesIndividually', + 'allMessagesTogether', + 'firstMessageOnly', + 'noMessages', + ]); + } + } + class Version extends i.OptionObject { + constructor(e) { + super(o, 'version', ['1.7', '1.6', '1.5', '1.4', '1.3', '1.2']); + } + } + class VersionControl extends i.XFAObject { + constructor(e) { + super(o, 'VersionControl'); + this.outputBelow = (0, n.getStringOption)(e.outputBelow, ['warn', 'error', 'update']); + this.sourceAbove = (0, n.getStringOption)(e.sourceAbove, ['warn', 'error']); + this.sourceBelow = (0, n.getStringOption)(e.sourceBelow, ['update', 'maintain']); + } + } + class ViewerPreferences extends i.XFAObject { + constructor(e) { + super(o, 'viewerPreferences', !0); + 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; + } + } + class WebClient extends i.XFAObject { + constructor(e) { + super(o, 'webClient', !0); + this.name = e.name ? e.name.trim() : ''; + this.fontInfo = null; + this.xdc = null; + } + } + class Whitespace extends i.OptionObject { + constructor(e) { + super(o, 'whitespace', ['preserve', 'ltrim', 'normalize', 'rtrim', 'trim']); + } + } + class Window extends i.ContentObject { + constructor(e) { + super(o, 'window'); + } + [i.$finalize]() { + const e = this[i.$content] + .trim() + .split(/\s*,\s*/, 2) + .map((e) => parseInt(e, 10)); + if (e.some((e) => isNaN(e))) this[i.$content] = [0, 0]; + else { + 1 === e.length && e.push(e[0]); + this[i.$content] = e; + } + } + } + class Xdc extends i.XFAObject { + constructor(e) { + super(o, 'xdc', !0); + this.uri = new i.XFAObjectArray(); + this.xsl = new i.XFAObjectArray(); + } + } + class Xdp extends i.XFAObject { + constructor(e) { + super(o, 'xdp', !0); + this.packets = null; + } + } + class Xsl extends i.XFAObject { + constructor(e) { + super(o, 'xsl', !0); + this.debug = null; + this.uri = null; + } + } + class Zpl extends i.XFAObject { + constructor(e) { + super(o, 'zpl', !0); + this.name = e.name ? e.name.trim() : ''; + this.batchOutput = null; + this.flipLabel = null; + this.fontInfo = null; + this.xdc = null; + } + } + class ConfigNamespace { + static [r.$buildXFAObject](e, t) { + if (ConfigNamespace.hasOwnProperty(e)) return ConfigNamespace[e](t); + } + static acrobat(e) { + return new Acrobat(e); + } + static acrobat7(e) { + return new Acrobat7(e); + } + static ADBE_JSConsole(e) { + return new ADBE_JSConsole(e); + } + static ADBE_JSDebugger(e) { + return new ADBE_JSDebugger(e); + } + static addSilentPrint(e) { + return new AddSilentPrint(e); + } + static addViewerPreferences(e) { + return new AddViewerPreferences(e); + } + static adjustData(e) { + return new AdjustData(e); + } + static adobeExtensionLevel(e) { + return new AdobeExtensionLevel(e); + } + static agent(e) { + return new Agent(e); + } + static alwaysEmbed(e) { + return new AlwaysEmbed(e); + } + static amd(e) { + return new Amd(e); + } + static area(e) { + return new Area(e); + } + static attributes(e) { + return new Attributes(e); + } + static autoSave(e) { + return new AutoSave(e); + } + static base(e) { + return new Base(e); + } + static batchOutput(e) { + return new BatchOutput(e); + } + static behaviorOverride(e) { + return new BehaviorOverride(e); + } + static cache(e) { + return new Cache(e); + } + static change(e) { + return new Change(e); + } + static common(e) { + return new Common(e); + } + static compress(e) { + return new Compress(e); + } + static compressLogicalStructure(e) { + return new CompressLogicalStructure(e); + } + static compressObjectStream(e) { + return new CompressObjectStream(e); + } + static compression(e) { + return new Compression(e); + } + static config(e) { + return new Config(e); + } + static conformance(e) { + return new Conformance(e); + } + static contentCopy(e) { + return new ContentCopy(e); + } + static copies(e) { + return new Copies(e); + } + static creator(e) { + return new Creator(e); + } + static currentPage(e) { + return new CurrentPage(e); + } + static data(e) { + return new Data(e); + } + static debug(e) { + return new Debug(e); + } + static defaultTypeface(e) { + return new DefaultTypeface(e); + } + static destination(e) { + return new Destination(e); + } + static documentAssembly(e) { + return new DocumentAssembly(e); + } + static driver(e) { + return new Driver(e); + } + static duplexOption(e) { + return new DuplexOption(e); + } + static dynamicRender(e) { + return new DynamicRender(e); + } + static embed(e) { + return new Embed(e); + } + static encrypt(e) { + return new Encrypt(e); + } + static encryption(e) { + return new Encryption(e); + } + static encryptionLevel(e) { + return new EncryptionLevel(e); + } + static enforce(e) { + return new Enforce(e); + } + static equate(e) { + return new Equate(e); + } + static equateRange(e) { + return new EquateRange(e); + } + static exclude(e) { + return new Exclude(e); + } + static excludeNS(e) { + return new ExcludeNS(e); + } + static flipLabel(e) { + return new FlipLabel(e); + } + static fontInfo(e) { + return new FontInfo(e); + } + static formFieldFilling(e) { + return new FormFieldFilling(e); + } + static groupParent(e) { + return new GroupParent(e); + } + static ifEmpty(e) { + return new IfEmpty(e); + } + static includeXDPContent(e) { + return new IncludeXDPContent(e); + } + static incrementalLoad(e) { + return new IncrementalLoad(e); + } + static incrementalMerge(e) { + return new IncrementalMerge(e); + } + static interactive(e) { + return new Interactive(e); + } + static jog(e) { + return new Jog(e); + } + static labelPrinter(e) { + return new LabelPrinter(e); + } + static layout(e) { + return new Layout(e); + } + static level(e) { + return new Level(e); + } + static linearized(e) { + return new Linearized(e); + } + static locale(e) { + return new Locale(e); + } + static localeSet(e) { + return new LocaleSet(e); + } + static log(e) { + return new Log(e); + } + static map(e) { + return new MapElement(e); + } + static mediumInfo(e) { + return new MediumInfo(e); + } + static message(e) { + return new Message(e); + } + static messaging(e) { + return new Messaging(e); + } + static mode(e) { + return new Mode(e); + } + static modifyAnnots(e) { + return new ModifyAnnots(e); + } + static msgId(e) { + return new MsgId(e); + } + static nameAttr(e) { + return new NameAttr(e); + } + static neverEmbed(e) { + return new NeverEmbed(e); + } + static numberOfCopies(e) { + return new NumberOfCopies(e); + } + static openAction(e) { + return new OpenAction(e); + } + static output(e) { + return new Output(e); + } + static outputBin(e) { + return new OutputBin(e); + } + static outputXSL(e) { + return new OutputXSL(e); + } + static overprint(e) { + return new Overprint(e); + } + static packets(e) { + return new Packets(e); + } + static pageOffset(e) { + return new PageOffset(e); + } + static pageRange(e) { + return new PageRange(e); + } + static pagination(e) { + return new Pagination(e); + } + static paginationOverride(e) { + return new PaginationOverride(e); + } + static part(e) { + return new Part(e); + } + static pcl(e) { + return new Pcl(e); + } + static pdf(e) { + return new Pdf(e); + } + static pdfa(e) { + return new Pdfa(e); + } + static permissions(e) { + return new Permissions(e); + } + static pickTrayByPDFSize(e) { + return new PickTrayByPDFSize(e); + } + static picture(e) { + return new Picture(e); + } + static plaintextMetadata(e) { + return new PlaintextMetadata(e); + } + static presence(e) { + return new Presence(e); + } + static present(e) { + return new Present(e); + } + static print(e) { + return new Print(e); + } + static printHighQuality(e) { + return new PrintHighQuality(e); + } + static printScaling(e) { + return new PrintScaling(e); + } + static printerName(e) { + return new PrinterName(e); + } + static producer(e) { + return new Producer(e); + } + static ps(e) { + return new Ps(e); + } + static range(e) { + return new Range(e); + } + static record(e) { + return new Record(e); + } + static relevant(e) { + return new Relevant(e); + } + static rename(e) { + return new Rename(e); + } + static renderPolicy(e) { + return new RenderPolicy(e); + } + static runScripts(e) { + return new RunScripts(e); + } + static script(e) { + return new Script(e); + } + static scriptModel(e) { + return new ScriptModel(e); + } + static severity(e) { + return new Severity(e); + } + static silentPrint(e) { + return new SilentPrint(e); + } + static staple(e) { + return new Staple(e); + } + static startNode(e) { + return new StartNode(e); + } + static startPage(e) { + return new StartPage(e); + } + static submitFormat(e) { + return new SubmitFormat(e); + } + static submitUrl(e) { + return new SubmitUrl(e); + } + static subsetBelow(e) { + return new SubsetBelow(e); + } + static suppressBanner(e) { + return new SuppressBanner(e); + } + static tagged(e) { + return new Tagged(e); + } + static template(e) { + return new Template(e); + } + static templateCache(e) { + return new TemplateCache(e); + } + static threshold(e) { + return new Threshold(e); + } + static to(e) { + return new To(e); + } + static trace(e) { + return new Trace(e); + } + static transform(e) { + return new Transform(e); + } + static type(e) { + return new Type(e); + } + static uri(e) { + return new Uri(e); + } + static validate(e) { + return new Validate(e); + } + static validateApprovalSignatures(e) { + return new ValidateApprovalSignatures(e); + } + static validationMessaging(e) { + return new ValidationMessaging(e); + } + static version(e) { + return new Version(e); + } + static versionControl(e) { + return new VersionControl(e); + } + static viewerPreferences(e) { + return new ViewerPreferences(e); + } + static webClient(e) { + return new WebClient(e); + } + static whitespace(e) { + return new Whitespace(e); + } + static window(e) { + return new Window(e); + } + static xdc(e) { + return new Xdc(e); + } + static xdp(e) { + return new Xdp(e); + } + static xsl(e) { + return new Xsl(e); + } + static zpl(e) { + return new Zpl(e); + } + } + t.ConfigNamespace = ConfigNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.ConnectionSetNamespace = void 0; + var r = a(79), + i = a(77); + const n = r.NamespaceIds.connectionSet.id; + class ConnectionSet extends i.XFAObject { + constructor(e) { + super(n, 'connectionSet', !0); + this.wsdlConnection = new i.XFAObjectArray(); + this.xmlConnection = new i.XFAObjectArray(); + this.xsdConnection = new i.XFAObjectArray(); + } + } + class EffectiveInputPolicy extends i.XFAObject { + constructor(e) { + super(n, 'effectiveInputPolicy'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class EffectiveOutputPolicy extends i.XFAObject { + constructor(e) { + super(n, 'effectiveOutputPolicy'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Operation extends i.StringObject { + constructor(e) { + super(n, '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 || ''; + } + } + class RootElement extends i.StringObject { + constructor(e) { + super(n, 'rootElement'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class SoapAction extends i.StringObject { + constructor(e) { + super(n, 'soapAction'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class SoapAddress extends i.StringObject { + constructor(e) { + super(n, 'soapAddress'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class Uri extends i.StringObject { + constructor(e) { + super(n, 'uri'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class WsdlAddress extends i.StringObject { + constructor(e) { + super(n, 'wsdlAddress'); + this.id = e.id || ''; + this.name = e.name || ''; + this.use = e.use || ''; + this.usehref = e.usehref || ''; + } + } + class WsdlConnection extends i.XFAObject { + constructor(e) { + super(n, 'wsdlConnection', !0); + 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; + } + } + class XmlConnection extends i.XFAObject { + constructor(e) { + super(n, 'xmlConnection', !0); + this.dataDescription = e.dataDescription || ''; + this.name = e.name || ''; + this.uri = null; + } + } + class XsdConnection extends i.XFAObject { + constructor(e) { + super(n, 'xsdConnection', !0); + this.dataDescription = e.dataDescription || ''; + this.name = e.name || ''; + this.rootElement = null; + this.uri = null; + } + } + class ConnectionSetNamespace { + static [r.$buildXFAObject](e, t) { + if (ConnectionSetNamespace.hasOwnProperty(e)) return ConnectionSetNamespace[e](t); + } + static connectionSet(e) { + return new ConnectionSet(e); + } + static effectiveInputPolicy(e) { + return new EffectiveInputPolicy(e); + } + static effectiveOutputPolicy(e) { + return new EffectiveOutputPolicy(e); + } + static operation(e) { + return new Operation(e); + } + static rootElement(e) { + return new RootElement(e); + } + static soapAction(e) { + return new SoapAction(e); + } + static soapAddress(e) { + return new SoapAddress(e); + } + static uri(e) { + return new Uri(e); + } + static wsdlAddress(e) { + return new WsdlAddress(e); + } + static wsdlConnection(e) { + return new WsdlConnection(e); + } + static xmlConnection(e) { + return new XmlConnection(e); + } + static xsdConnection(e) { + return new XsdConnection(e); + } + } + t.ConnectionSetNamespace = ConnectionSetNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.DatasetsNamespace = void 0; + var r = a(77), + i = a(79); + const n = i.NamespaceIds.datasets.id; + class Data extends r.XmlObject { + constructor(e) { + super(n, 'data', e); + } + [r.$isNsAgnostic]() { + return !0; + } + } + class Datasets extends r.XFAObject { + constructor(e) { + super(n, 'datasets', !0); + this.data = null; + this.Signature = null; + } + [r.$onChild](e) { + const t = e[r.$nodeName]; + (('data' === t && e[r.$namespaceId] === n) || + ('Signature' === t && e[r.$namespaceId] === i.NamespaceIds.signature.id)) && + (this[t] = e); + this[r.$appendChild](e); + } + } + class DatasetsNamespace { + static [i.$buildXFAObject](e, t) { + if (DatasetsNamespace.hasOwnProperty(e)) return DatasetsNamespace[e](t); + } + static datasets(e) { + return new Datasets(e); + } + static data(e) { + return new Data(e); + } + } + t.DatasetsNamespace = DatasetsNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.LocaleSetNamespace = void 0; + var r = a(79), + i = a(77), + n = a(78); + const s = r.NamespaceIds.localeSet.id; + class CalendarSymbols extends i.XFAObject { + constructor(e) { + super(s, 'calendarSymbols', !0); + this.name = 'gregorian'; + this.dayNames = new i.XFAObjectArray(2); + this.eraNames = null; + this.meridiemNames = null; + this.monthNames = new i.XFAObjectArray(2); + } + } + class CurrencySymbol extends i.StringObject { + constructor(e) { + super(s, 'currencySymbol'); + this.name = (0, n.getStringOption)(e.name, ['symbol', 'isoname', 'decimal']); + } + } + class CurrencySymbols extends i.XFAObject { + constructor(e) { + super(s, 'currencySymbols', !0); + this.currencySymbol = new i.XFAObjectArray(3); + } + } + class DatePattern extends i.StringObject { + constructor(e) { + super(s, 'datePattern'); + this.name = (0, n.getStringOption)(e.name, ['full', 'long', 'med', 'short']); + } + } + class DatePatterns extends i.XFAObject { + constructor(e) { + super(s, 'datePatterns', !0); + this.datePattern = new i.XFAObjectArray(4); + } + } + class DateTimeSymbols extends i.ContentObject { + constructor(e) { + super(s, 'dateTimeSymbols'); + } + } + class Day extends i.StringObject { + constructor(e) { + super(s, 'day'); + } + } + class DayNames extends i.XFAObject { + constructor(e) { + super(s, 'dayNames', !0); + this.abbr = (0, n.getInteger)({ + data: e.abbr, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.day = new i.XFAObjectArray(7); + } + } + class Era extends i.StringObject { + constructor(e) { + super(s, 'era'); + } + } + class EraNames extends i.XFAObject { + constructor(e) { + super(s, 'eraNames', !0); + this.era = new i.XFAObjectArray(2); + } + } + class Locale extends i.XFAObject { + constructor(e) { + super(s, 'locale', !0); + 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; + } + } + class LocaleSet extends i.XFAObject { + constructor(e) { + super(s, 'localeSet', !0); + this.locale = new i.XFAObjectArray(); + } + } + class Meridiem extends i.StringObject { + constructor(e) { + super(s, 'meridiem'); + } + } + class MeridiemNames extends i.XFAObject { + constructor(e) { + super(s, 'meridiemNames', !0); + this.meridiem = new i.XFAObjectArray(2); + } + } + class Month extends i.StringObject { + constructor(e) { + super(s, 'month'); + } + } + class MonthNames extends i.XFAObject { + constructor(e) { + super(s, 'monthNames', !0); + this.abbr = (0, n.getInteger)({ + data: e.abbr, + defaultValue: 0, + validate: (e) => 1 === e, + }); + this.month = new i.XFAObjectArray(12); + } + } + class NumberPattern extends i.StringObject { + constructor(e) { + super(s, 'numberPattern'); + this.name = (0, n.getStringOption)(e.name, ['full', 'long', 'med', 'short']); + } + } + class NumberPatterns extends i.XFAObject { + constructor(e) { + super(s, 'numberPatterns', !0); + this.numberPattern = new i.XFAObjectArray(4); + } + } + class NumberSymbol extends i.StringObject { + constructor(e) { + super(s, 'numberSymbol'); + this.name = (0, n.getStringOption)(e.name, [ + 'decimal', + 'grouping', + 'percent', + 'minus', + 'zero', + ]); + } + } + class NumberSymbols extends i.XFAObject { + constructor(e) { + super(s, 'numberSymbols', !0); + this.numberSymbol = new i.XFAObjectArray(5); + } + } + class TimePattern extends i.StringObject { + constructor(e) { + super(s, 'timePattern'); + this.name = (0, n.getStringOption)(e.name, ['full', 'long', 'med', 'short']); + } + } + class TimePatterns extends i.XFAObject { + constructor(e) { + super(s, 'timePatterns', !0); + this.timePattern = new i.XFAObjectArray(4); + } + } + class TypeFace extends i.XFAObject { + constructor(e) { + super(s, 'typeFace', !0); + this.name = '' | e.name; + } + } + class TypeFaces extends i.XFAObject { + constructor(e) { + super(s, 'typeFaces', !0); + this.typeFace = new i.XFAObjectArray(); + } + } + class LocaleSetNamespace { + static [r.$buildXFAObject](e, t) { + if (LocaleSetNamespace.hasOwnProperty(e)) return LocaleSetNamespace[e](t); + } + static calendarSymbols(e) { + return new CalendarSymbols(e); + } + static currencySymbol(e) { + return new CurrencySymbol(e); + } + static currencySymbols(e) { + return new CurrencySymbols(e); + } + static datePattern(e) { + return new DatePattern(e); + } + static datePatterns(e) { + return new DatePatterns(e); + } + static dateTimeSymbols(e) { + return new DateTimeSymbols(e); + } + static day(e) { + return new Day(e); + } + static dayNames(e) { + return new DayNames(e); + } + static era(e) { + return new Era(e); + } + static eraNames(e) { + return new EraNames(e); + } + static locale(e) { + return new Locale(e); + } + static localeSet(e) { + return new LocaleSet(e); + } + static meridiem(e) { + return new Meridiem(e); + } + static meridiemNames(e) { + return new MeridiemNames(e); + } + static month(e) { + return new Month(e); + } + static monthNames(e) { + return new MonthNames(e); + } + static numberPattern(e) { + return new NumberPattern(e); + } + static numberPatterns(e) { + return new NumberPatterns(e); + } + static numberSymbol(e) { + return new NumberSymbol(e); + } + static numberSymbols(e) { + return new NumberSymbols(e); + } + static timePattern(e) { + return new TimePattern(e); + } + static timePatterns(e) { + return new TimePatterns(e); + } + static typeFace(e) { + return new TypeFace(e); + } + static typeFaces(e) { + return new TypeFaces(e); + } + } + t.LocaleSetNamespace = LocaleSetNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.SignatureNamespace = void 0; + var r = a(79), + i = a(77); + const n = r.NamespaceIds.signature.id; + class Signature extends i.XFAObject { + constructor(e) { + super(n, 'signature', !0); + } + } + class SignatureNamespace { + static [r.$buildXFAObject](e, t) { + if (SignatureNamespace.hasOwnProperty(e)) return SignatureNamespace[e](t); + } + static signature(e) { + return new Signature(e); + } + } + t.SignatureNamespace = SignatureNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.StylesheetNamespace = void 0; + var r = a(79), + i = a(77); + const n = r.NamespaceIds.stylesheet.id; + class Stylesheet extends i.XFAObject { + constructor(e) { + super(n, 'stylesheet', !0); + } + } + class StylesheetNamespace { + static [r.$buildXFAObject](e, t) { + if (StylesheetNamespace.hasOwnProperty(e)) return StylesheetNamespace[e](t); + } + static stylesheet(e) { + return new Stylesheet(e); + } + } + t.StylesheetNamespace = StylesheetNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XdpNamespace = void 0; + var r = a(79), + i = a(77); + const n = r.NamespaceIds.xdp.id; + class Xdp extends i.XFAObject { + constructor(e) { + super(n, 'xdp', !0); + this.uuid = e.uuid || ''; + this.timeStamp = e.timeStamp || ''; + this.config = null; + this.connectionSet = null; + this.datasets = null; + this.localeSet = null; + this.stylesheet = new i.XFAObjectArray(); + this.template = null; + } + [i.$onChildCheck](e) { + const t = r.NamespaceIds[e[i.$nodeName]]; + return t && e[i.$namespaceId] === t.id; + } + } + class XdpNamespace { + static [r.$buildXFAObject](e, t) { + if (XdpNamespace.hasOwnProperty(e)) return XdpNamespace[e](t); + } + static xdp(e) { + return new Xdp(e); + } + } + t.XdpNamespace = XdpNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XhtmlNamespace = void 0; + var r = a(77), + i = a(79), + n = a(84), + s = a(78); + const o = i.NamespaceIds.xhtml.id, + c = Symbol(), + l = 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', + ]), + h = new Map([ + ['page-break-after', 'breakAfter'], + ['page-break-before', 'breakBefore'], + ['page-break-inside', 'breakInside'], + ['kerning-mode', (e) => ('none' === e ? 'none' : 'normal')], + [ + 'xfa-font-horizontal-scale', + (e) => `scaleX(${Math.max(0, Math.min(parseInt(e) / 100)).toFixed(2)})`, + ], + [ + 'xfa-font-vertical-scale', + (e) => `scaleY(${Math.max(0, Math.min(parseInt(e) / 100)).toFixed(2)})`, + ], + ['xfa-spacerun', ''], + ['xfa-tab-stops', ''], + [ + 'font-size', + (e, t) => { + e = t.fontSize = (0, s.getMeasurement)(e); + return (0, n.measureToString)(0.99 * e); + }, + ], + ['letter-spacing', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['line-height', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin-bottom', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin-left', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin-right', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['margin-top', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['text-indent', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ['font-family', (e) => e], + ['vertical-align', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))], + ]), + u = /\s+/g, + d = /[\r\n]+/g, + f = /\r\n?/g; + function mapStyle(e, t, a) { + const i = Object.create(null); + if (!e) return i; + const o = Object.create(null); + for (const [t, a] of e.split(';').map((e) => e.split(':', 2))) { + const e = h.get(t); + if ('' === e) continue; + let r = a; + e && (r = 'string' == typeof e ? e : e(a, o)); + t.endsWith('scale') + ? i.transform + ? (i.transform = `${i[t]} ${r}`) + : (i.transform = r) + : (i[t.replaceAll(/-([a-zA-Z])/g, (e, t) => t.toUpperCase())] = r); + } + i.fontFamily && + (0, n.setFontFamily)( + { + typeface: i.fontFamily, + weight: i.fontWeight || 'normal', + posture: i.fontStyle || 'normal', + size: o.fontSize || 0, + }, + t, + t[r.$globalData].fontFinder, + i, + ); + if (a && i.verticalAlign && '0px' !== i.verticalAlign && i.fontSize) { + const e = 0.583, + t = 0.333, + a = (0, s.getMeasurement)(i.fontSize); + i.fontSize = (0, n.measureToString)(a * e); + i.verticalAlign = (0, n.measureToString)( + Math.sign((0, s.getMeasurement)(i.verticalAlign)) * a * t, + ); + } + a && i.fontSize && (i.fontSize = `calc(${i.fontSize} * var(--scale-factor))`); + (0, n.fixTextIndent)(i); + return i; + } + const g = new Set(['body', 'html']); + class XhtmlObject extends r.XmlObject { + constructor(e, t) { + super(o, t); + this[c] = !1; + this.style = e.style || ''; + } + [r.$clean](e) { + super[r.$clean](e); + this.style = (function checkStyle(e) { + return e.style + ? e.style + .trim() + .split(/\s*;\s*/) + .filter((e) => !!e) + .map((e) => e.split(/\s*:\s*/, 2)) + .filter(([t, a]) => { + 'font-family' === t && e[r.$globalData].usedTypefaces.add(a); + return l.has(t); + }) + .map((e) => e.join(':')) + .join(';') + : ''; + })(this); + } + [r.$acceptWhitespace]() { + return !g.has(this[r.$nodeName]); + } + [r.$onText](e, t = !1) { + if (t) this[c] = !0; + else { + e = e.replaceAll(d, ''); + this.style.includes('xfa-spacerun:yes') || (e = e.replaceAll(u, ' ')); + } + e && (this[r.$content] += e); + } + [r.$pushGlyphs](e, t = !0) { + const a = Object.create(null), + i = { top: NaN, bottom: NaN, left: NaN, right: NaN }; + let n = null; + for (const [e, t] of this.style.split(';').map((e) => e.split(':', 2))) + switch (e) { + case 'font-family': + a.typeface = (0, s.stripQuotes)(t); + break; + case 'font-size': + a.size = (0, s.getMeasurement)(t); + break; + case 'font-weight': + a.weight = t; + break; + case 'font-style': + a.posture = t; + break; + case 'letter-spacing': + a.letterSpacing = (0, s.getMeasurement)(t); + break; + case 'margin': + const e = t.split(/ \t/).map((e) => (0, s.getMeasurement)(e)); + switch (e.length) { + case 1: + i.top = i.bottom = i.left = i.right = e[0]; + break; + case 2: + i.top = i.bottom = e[0]; + i.left = i.right = e[1]; + break; + case 3: + i.top = e[0]; + i.bottom = e[2]; + i.left = i.right = e[1]; + break; + case 4: + i.top = e[0]; + i.left = e[1]; + i.bottom = e[2]; + i.right = e[3]; + } + break; + case 'margin-top': + i.top = (0, s.getMeasurement)(t); + break; + case 'margin-bottom': + i.bottom = (0, s.getMeasurement)(t); + break; + case 'margin-left': + i.left = (0, s.getMeasurement)(t); + break; + case 'margin-right': + i.right = (0, s.getMeasurement)(t); + break; + case 'line-height': + n = (0, s.getMeasurement)(t); + } + e.pushData(a, i, n); + if (this[r.$content]) e.addString(this[r.$content]); + else + for (const t of this[r.$getChildren]()) + '#text' !== t[r.$nodeName] ? t[r.$pushGlyphs](e) : e.addString(t[r.$content]); + t && e.popFont(); + } + [r.$toHTML](e) { + const t = []; + this[r.$extra] = { children: t }; + this[r.$childrenToHTML]({}); + if (0 === t.length && !this[r.$content]) return s.HTMLResult.EMPTY; + let a; + a = this[c] + ? this[r.$content] + ? this[r.$content].replaceAll(f, '\n') + : void 0 + : this[r.$content] || void 0; + return s.HTMLResult.success({ + name: this[r.$nodeName], + attributes: { href: this.href, style: mapStyle(this.style, this, this[c]) }, + children: t, + value: a, + }); + } + } + class A extends XhtmlObject { + constructor(e) { + super(e, 'a'); + this.href = (0, n.fixURL)(e.href) || ''; + } + } + class B extends XhtmlObject { + constructor(e) { + super(e, 'b'); + } + [r.$pushGlyphs](e) { + e.pushFont({ weight: 'bold' }); + super[r.$pushGlyphs](e); + e.popFont(); + } + } + class Body extends XhtmlObject { + constructor(e) { + super(e, 'body'); + } + [r.$toHTML](e) { + const t = super[r.$toHTML](e), + { html: a } = t; + if (!a) return s.HTMLResult.EMPTY; + a.name = 'div'; + a.attributes.class = ['xfaRich']; + return t; + } + } + class Br extends XhtmlObject { + constructor(e) { + super(e, 'br'); + } + [r.$text]() { + return '\n'; + } + [r.$pushGlyphs](e) { + e.addString('\n'); + } + [r.$toHTML](e) { + return s.HTMLResult.success({ name: 'br' }); + } + } + class Html extends XhtmlObject { + constructor(e) { + super(e, 'html'); + } + [r.$toHTML](e) { + const t = []; + this[r.$extra] = { children: t }; + this[r.$childrenToHTML]({}); + if (0 === t.length) + return s.HTMLResult.success({ + name: 'div', + attributes: { class: ['xfaRich'], style: {} }, + value: this[r.$content] || '', + }); + if (1 === t.length) { + const e = t[0]; + if (e.attributes && e.attributes.class.includes('xfaRich')) + return s.HTMLResult.success(e); + } + return s.HTMLResult.success({ + name: 'div', + attributes: { class: ['xfaRich'], style: {} }, + children: t, + }); + } + } + class I extends XhtmlObject { + constructor(e) { + super(e, 'i'); + } + [r.$pushGlyphs](e) { + e.pushFont({ posture: 'italic' }); + super[r.$pushGlyphs](e); + e.popFont(); + } + } + class Li extends XhtmlObject { + constructor(e) { + super(e, 'li'); + } + } + class Ol extends XhtmlObject { + constructor(e) { + super(e, 'ol'); + } + } + class P extends XhtmlObject { + constructor(e) { + super(e, 'p'); + } + [r.$pushGlyphs](e) { + super[r.$pushGlyphs](e, !1); + e.addString('\n'); + e.addPara(); + e.popFont(); + } + [r.$text]() { + return this[r.$getParent]()[r.$getChildren]().at(-1) === this + ? super[r.$text]() + : super[r.$text]() + '\n'; + } + } + class Span extends XhtmlObject { + constructor(e) { + super(e, 'span'); + } + } + class Sub extends XhtmlObject { + constructor(e) { + super(e, 'sub'); + } + } + class Sup extends XhtmlObject { + constructor(e) { + super(e, 'sup'); + } + } + class Ul extends XhtmlObject { + constructor(e) { + super(e, 'ul'); + } + } + class XhtmlNamespace { + static [i.$buildXFAObject](e, t) { + if (XhtmlNamespace.hasOwnProperty(e)) return XhtmlNamespace[e](t); + } + static a(e) { + return new A(e); + } + static b(e) { + return new B(e); + } + static body(e) { + return new Body(e); + } + static br(e) { + return new Br(e); + } + static html(e) { + return new Html(e); + } + static i(e) { + return new I(e); + } + static li(e) { + return new Li(e); + } + static ol(e) { + return new Ol(e); + } + static p(e) { + return new P(e); + } + static span(e) { + return new Span(e); + } + static sub(e) { + return new Sub(e); + } + static sup(e) { + return new Sup(e); + } + static ul(e) { + return new Ul(e); + } + } + t.XhtmlNamespace = XhtmlNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.UnknownNamespace = void 0; + var r = a(79), + i = a(77); + class UnknownNamespace { + constructor(e) { + this.namespaceId = e; + } + [r.$buildXFAObject](e, t) { + return new i.XmlObject(this.namespaceId, e, t); + } + } + t.UnknownNamespace = UnknownNamespace; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.DatasetReader = void 0; + var r = a(2), + i = a(3), + n = a(66); + function decodeString(e) { + try { + return (0, r.stringToUTF8String)(e); + } catch (t) { + (0, r.warn)(`UTF-8 decoding failed: "${t}".`); + return e; + } + } + class DatasetXMLParser extends n.SimpleXMLParser { + constructor(e) { + super(e); + this.node = null; + } + onEndElement(e) { + const t = super.onEndElement(e); + if (t && 'xfa:datasets' === e) { + this.node = t; + throw new Error('Aborting DatasetXMLParser.'); + } + } + } + t.DatasetReader = class DatasetReader { + constructor(e) { + if (e.datasets) + this.node = new n.SimpleXMLParser({ hasAttributes: !0 }).parseFromString( + e.datasets, + ).documentElement; + else { + const t = new DatasetXMLParser({ hasAttributes: !0 }); + try { + t.parseFromString(e['xdp:xdp']); + } catch (e) {} + this.node = t.node; + } + } + getValue(e) { + if (!this.node || !e) return ''; + const t = this.node.searchNode((0, i.parseXFAPath)(e), 0); + if (!t) return ''; + const a = t.firstChild; + return a && 'value' === a.nodeName + ? t.children.map((e) => decodeString(e.textContent)) + : decodeString(t.textContent); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.XRef = void 0; + var r = a(2), + i = a(4), + n = a(16), + s = a(3), + o = a(5), + c = a(67); + t.XRef = class XRef { + constructor(e, t) { + this.stream = e; + this.pdfManager = t; + this.entries = []; + this._xrefStms = new Set(); + this._cacheMap = new Map(); + this._pendingRefs = new i.RefSet(); + this._newPersistentRefNum = null; + this._newTemporaryRefNum = null; + } + getNewPersistentRef(e) { + null === this._newPersistentRefNum && + (this._newPersistentRefNum = this.entries.length || 1); + const t = this._newPersistentRefNum++; + this._cacheMap.set(t, e); + return i.Ref.get(t, 0); + } + getNewTemporaryRef() { + null === this._newTemporaryRefNum && + (this._newTemporaryRefNum = this.entries.length || 1); + return i.Ref.get(this._newTemporaryRefNum++, 0); + } + resetNewTemporaryRef() { + this._newTemporaryRefNum = null; + } + setStartXRef(e) { + this.startXRefQueue = [e]; + } + parse(e = !1) { + let t, a, n; + if (e) { + (0, r.warn)('Indexing all PDF objects'); + t = this.indexObjects(); + } else t = this.readXRef(); + t.assignXref(this); + this.trailer = t; + try { + a = t.get('Encrypt'); + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.warn)(`XRef.parse - Invalid "Encrypt" reference: "${e}".`); + } + if (a instanceof i.Dict) { + const e = t.get('ID'), + r = e && e.length ? e[0] : ''; + a.suppressEncryption = !0; + this.encrypt = new c.CipherTransformFactory(a, r, this.pdfManager.password); + } + try { + n = t.get('Root'); + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.warn)(`XRef.parse - Invalid "Root" reference: "${e}".`); + } + if (n instanceof i.Dict) + try { + if (n.get('Pages') instanceof i.Dict) { + this.root = n; + return; + } + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.warn)(`XRef.parse - Invalid "Pages" reference: "${e}".`); + } + if (!e) throw new s.XRefParseException(); + throw new r.InvalidPDFException('Invalid Root reference.'); + } + processXRefTable(e) { + 'tableState' in this || + (this.tableState = { + entryNum: 0, + streamPos: e.lexer.stream.pos, + parserBuf1: e.buf1, + parserBuf2: e.buf2, + }); + const t = this.readXRefTable(e); + if (!(0, i.isCmd)(t, 'trailer')) + throw new r.FormatError('Invalid XRef table: could not find trailer dictionary'); + let a = e.getObj(); + a instanceof i.Dict || !a.dict || (a = a.dict); + if (!(a instanceof i.Dict)) + throw new r.FormatError('Invalid XRef table: could not parse trailer dictionary'); + delete this.tableState; + return a; + } + readXRefTable(e) { + const t = e.lexer.stream, + a = this.tableState; + t.pos = a.streamPos; + e.buf1 = a.parserBuf1; + e.buf2 = a.parserBuf2; + let n; + for (;;) { + if (!('firstEntryNum' in a) || !('entryCount' in a)) { + if ((0, i.isCmd)((n = e.getObj()), 'trailer')) break; + a.firstEntryNum = n; + a.entryCount = e.getObj(); + } + let s = a.firstEntryNum; + const o = a.entryCount; + if (!Number.isInteger(s) || !Number.isInteger(o)) + throw new r.FormatError('Invalid XRef table: wrong types in subsection header'); + for (let n = a.entryNum; n < o; n++) { + a.streamPos = t.pos; + a.entryNum = n; + a.parserBuf1 = e.buf1; + a.parserBuf2 = e.buf2; + const c = {}; + c.offset = e.getObj(); + c.gen = e.getObj(); + const l = e.getObj(); + if (l instanceof i.Cmd) + switch (l.cmd) { + case 'f': + c.free = !0; + break; + case 'n': + c.uncompressed = !0; + } + if ( + !Number.isInteger(c.offset) || + !Number.isInteger(c.gen) || + (!c.free && !c.uncompressed) + ) + throw new r.FormatError(`Invalid entry in XRef subsection: ${s}, ${o}`); + 0 === n && c.free && 1 === s && (s = 0); + this.entries[n + s] || (this.entries[n + s] = c); + } + a.entryNum = 0; + a.streamPos = t.pos; + a.parserBuf1 = e.buf1; + a.parserBuf2 = e.buf2; + delete a.firstEntryNum; + delete a.entryCount; + } + if (this.entries[0] && !this.entries[0].free) + throw new r.FormatError('Invalid XRef table: unexpected first object'); + return n; + } + processXRefStream(e) { + if (!('streamState' in this)) { + const t = e.dict, + a = t.get('W'); + let r = t.get('Index'); + r || (r = [0, t.get('Size')]); + this.streamState = { entryRanges: r, byteWidths: a, entryNum: 0, streamPos: e.pos }; + } + this.readXRefStream(e); + delete this.streamState; + return e.dict; + } + readXRefStream(e) { + const t = this.streamState; + e.pos = t.streamPos; + const [a, i, n] = t.byteWidths, + s = t.entryRanges; + for (; s.length > 0; ) { + const [o, c] = s; + if (!Number.isInteger(o) || !Number.isInteger(c)) + throw new r.FormatError(`Invalid XRef range fields: ${o}, ${c}`); + if (!Number.isInteger(a) || !Number.isInteger(i) || !Number.isInteger(n)) + throw new r.FormatError(`Invalid XRef entry fields length: ${o}, ${c}`); + for (let s = t.entryNum; s < c; ++s) { + t.entryNum = s; + t.streamPos = e.pos; + let c = 0, + l = 0, + h = 0; + for (let t = 0; t < a; ++t) { + const t = e.getByte(); + if (-1 === t) throw new r.FormatError("Invalid XRef byteWidths 'type'."); + c = (c << 8) | t; + } + 0 === a && (c = 1); + for (let t = 0; t < i; ++t) { + const t = e.getByte(); + if (-1 === t) throw new r.FormatError("Invalid XRef byteWidths 'offset'."); + l = (l << 8) | t; + } + for (let t = 0; t < n; ++t) { + const t = e.getByte(); + if (-1 === t) throw new r.FormatError("Invalid XRef byteWidths 'generation'."); + h = (h << 8) | t; + } + const u = {}; + u.offset = l; + u.gen = h; + switch (c) { + case 0: + u.free = !0; + break; + case 1: + u.uncompressed = !0; + break; + case 2: + break; + default: + throw new r.FormatError(`Invalid XRef entry type: ${c}`); + } + this.entries[o + s] || (this.entries[o + s] = u); + } + t.entryNum = 0; + t.streamPos = e.pos; + s.splice(0, 2); + } + } + indexObjects() { + function readToken(e, t) { + let a = '', + r = e[t]; + for (; 10 !== r && 13 !== r && 60 !== r && !(++t >= e.length); ) { + a += String.fromCharCode(r); + r = e[t]; + } + return a; + } + function skipUntil(e, t, a) { + const r = a.length, + i = e.length; + let n = 0; + for (; t < i; ) { + let i = 0; + for (; i < r && e[t + i] === a[i]; ) ++i; + if (i >= r) break; + t++; + n++; + } + return n; + } + const e = /\b(endobj|\d+\s+\d+\s+obj|xref|trailer)\b/g, + t = /\b(startxref|\d+\s+\d+\s+obj)\b/g, + a = /^(\d+)\s+(\d+)\s+obj\b/, + o = new Uint8Array([116, 114, 97, 105, 108, 101, 114]), + c = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]), + l = new Uint8Array([47, 88, 82, 101, 102]); + this.entries.length = 0; + this._cacheMap.clear(); + const h = this.stream; + h.pos = 0; + const u = h.getBytes(), + d = (0, r.bytesToString)(u), + f = u.length; + let g = h.start; + const p = [], + m = []; + for (; g < f; ) { + let i = u[g]; + if (9 === i || 10 === i || 13 === i || 32 === i) { + ++g; + continue; + } + if (37 === i) { + do { + ++g; + if (g >= f) break; + i = u[g]; + } while (10 !== i && 13 !== i); + continue; + } + const b = readToken(u, g); + let y; + if (b.startsWith('xref') && (4 === b.length || /\s/.test(b[4]))) { + g += skipUntil(u, g, o); + p.push(g); + g += skipUntil(u, g, c); + } else if ((y = a.exec(b))) { + const t = 0 | y[1], + a = 0 | y[2], + i = g + b.length; + let o, + c = !1; + if (this.entries[t]) { + if (this.entries[t].gen === a) + try { + new n.Parser({ lexer: new n.Lexer(h.makeSubStream(i)) }).getObj(); + c = !0; + } catch (e) { + e instanceof s.ParserEOFException + ? (0, r.warn)(`indexObjects -- checking object (${b}): "${e}".`) + : (c = !0); + } + } else c = !0; + c && (this.entries[t] = { offset: g - h.start, gen: a, uncompressed: !0 }); + e.lastIndex = i; + const p = e.exec(d); + if (p) { + o = e.lastIndex + 1 - g; + if ('endobj' !== p[1]) { + (0, r.warn)( + `indexObjects: Found "${p[1]}" inside of another "obj", caused by missing "endobj" -- trying to recover.`, + ); + o -= p[1].length + 1; + } + } else o = f - g; + const w = u.subarray(g, g + o), + S = skipUntil(w, 0, l); + if (S < o && w[S + 5] < 64) { + m.push(g - h.start); + this._xrefStms.add(g - h.start); + } + g += o; + } else if (b.startsWith('trailer') && (7 === b.length || /\s/.test(b[7]))) { + p.push(g); + const e = g + b.length; + let a; + t.lastIndex = e; + const i = t.exec(d); + if (i) { + a = t.lastIndex + 1 - g; + if ('startxref' !== i[1]) { + (0, r.warn)( + `indexObjects: Found "${i[1]}" after "trailer", caused by missing "startxref" -- trying to recover.`, + ); + a -= i[1].length + 1; + } + } else a = f - g; + g += a; + } else g += b.length + 1; + } + for (const e of m) { + this.startXRefQueue.push(e); + this.readXRef(!0); + } + const b = []; + let y, + w, + S = !1; + for (const e of p) { + h.pos = e; + const t = new n.Parser({ + lexer: new n.Lexer(h), + xref: this, + allowStreams: !0, + recoveryMode: !0, + }), + a = t.getObj(); + if (!(0, i.isCmd)(a, 'trailer')) continue; + const r = t.getObj(); + if (r instanceof i.Dict) { + b.push(r); + r.has('Encrypt') && (S = !0); + } + } + for (const e of [...b, 'genFallback', ...b]) { + if ('genFallback' === e) { + if (!w) break; + this._generationFallback = !0; + continue; + } + let t = !1; + try { + const a = e.get('Root'); + if (!(a instanceof i.Dict)) continue; + const r = a.get('Pages'); + if (!(r instanceof i.Dict)) continue; + const n = r.get('Count'); + Number.isInteger(n) && (t = !0); + } catch (e) { + w = e; + continue; + } + if (t && (!S || e.has('Encrypt')) && e.has('ID')) return e; + y = e; + } + if (y) return y; + if (this.topDict) return this.topDict; + throw new r.InvalidPDFException('Invalid PDF structure.'); + } + readXRef(e = !1) { + const t = this.stream, + a = new Set(); + for (; this.startXRefQueue.length; ) { + try { + const e = this.startXRefQueue[0]; + if (a.has(e)) { + (0, r.warn)('readXRef - skipping XRef table since it was already parsed.'); + this.startXRefQueue.shift(); + continue; + } + a.add(e); + t.pos = e + t.start; + const s = new n.Parser({ lexer: new n.Lexer(t), xref: this, allowStreams: !0 }); + let c, + l = s.getObj(); + if ((0, i.isCmd)(l, 'xref')) { + c = this.processXRefTable(s); + this.topDict || (this.topDict = c); + l = c.get('XRefStm'); + if (Number.isInteger(l) && !this._xrefStms.has(l)) { + this._xrefStms.add(l); + this.startXRefQueue.push(l); + } + } else { + if (!Number.isInteger(l)) throw new r.FormatError('Invalid XRef stream header'); + if ( + !( + Number.isInteger(s.getObj()) && + (0, i.isCmd)(s.getObj(), 'obj') && + (l = s.getObj()) instanceof o.BaseStream + ) + ) + throw new r.FormatError('Invalid XRef stream'); + c = this.processXRefStream(l); + this.topDict || (this.topDict = c); + if (!c) throw new r.FormatError('Failed to read XRef stream'); + } + l = c.get('Prev'); + Number.isInteger(l) + ? this.startXRefQueue.push(l) + : l instanceof i.Ref && this.startXRefQueue.push(l.num); + } catch (e) { + if (e instanceof s.MissingDataException) throw e; + (0, r.info)('(while reading XRef): ' + e); + } + this.startXRefQueue.shift(); + } + if (this.topDict) return this.topDict; + if (!e) throw new s.XRefParseException(); + } + get lastXRefStreamPos() { + return this._xrefStms.size > 0 ? Math.max(...this._xrefStms) : null; + } + getEntry(e) { + const t = this.entries[e]; + return t && !t.free && t.offset ? t : null; + } + fetchIfRef(e, t = !1) { + return e instanceof i.Ref ? this.fetch(e, t) : e; + } + fetch(e, t = !1) { + if (!(e instanceof i.Ref)) throw new Error('ref object is not a reference'); + const a = e.num, + n = this._cacheMap.get(a); + if (void 0 !== n) { + n instanceof i.Dict && !n.objId && (n.objId = e.toString()); + return n; + } + let s = this.getEntry(a); + if (null === s) { + this._cacheMap.set(a, s); + return s; + } + if (this._pendingRefs.has(e)) { + this._pendingRefs.remove(e); + (0, r.warn)(`Ignoring circular reference: ${e}.`); + return i.CIRCULAR_REF; + } + this._pendingRefs.put(e); + try { + s = s.uncompressed + ? this.fetchUncompressed(e, s, t) + : this.fetchCompressed(e, s, t); + this._pendingRefs.remove(e); + } catch (t) { + this._pendingRefs.remove(e); + throw t; + } + s instanceof i.Dict + ? (s.objId = e.toString()) + : s instanceof o.BaseStream && (s.dict.objId = e.toString()); + return s; + } + fetchUncompressed(e, t, a = !1) { + const c = e.gen; + let l = e.num; + if (t.gen !== c) { + const n = `Inconsistent generation in XRef: ${e}`; + if (this._generationFallback && t.gen < c) { + (0, r.warn)(n); + return this.fetchUncompressed(i.Ref.get(l, t.gen), t, a); + } + throw new s.XRefEntryException(n); + } + const h = this.stream.makeSubStream(t.offset + this.stream.start), + u = new n.Parser({ lexer: new n.Lexer(h), xref: this, allowStreams: !0 }), + d = u.getObj(), + f = u.getObj(), + g = u.getObj(); + if (d !== l || f !== c || !(g instanceof i.Cmd)) + throw new s.XRefEntryException(`Bad (uncompressed) XRef entry: ${e}`); + if ('obj' !== g.cmd) { + if (g.cmd.startsWith('obj')) { + l = parseInt(g.cmd.substring(3), 10); + if (!Number.isNaN(l)) return l; + } + throw new s.XRefEntryException(`Bad (uncompressed) XRef entry: ${e}`); + } + (t = + this.encrypt && !a + ? u.getObj(this.encrypt.createCipherTransform(l, c)) + : u.getObj()) instanceof o.BaseStream || this._cacheMap.set(l, t); + return t; + } + fetchCompressed(e, t, a = !1) { + const c = t.offset, + l = this.fetch(i.Ref.get(c, 0)); + if (!(l instanceof o.BaseStream)) throw new r.FormatError('bad ObjStm stream'); + const h = l.dict.get('First'), + u = l.dict.get('N'); + if (!Number.isInteger(h) || !Number.isInteger(u)) + throw new r.FormatError('invalid first and n parameters for ObjStm stream'); + let d = new n.Parser({ lexer: new n.Lexer(l), xref: this, allowStreams: !0 }); + const f = new Array(u), + g = new Array(u); + for (let e = 0; e < u; ++e) { + const t = d.getObj(); + if (!Number.isInteger(t)) + throw new r.FormatError(`invalid object number in the ObjStm stream: ${t}`); + const a = d.getObj(); + if (!Number.isInteger(a)) + throw new r.FormatError(`invalid object offset in the ObjStm stream: ${a}`); + f[e] = t; + g[e] = a; + } + const p = (l.start || 0) + h, + m = new Array(u); + for (let e = 0; e < u; ++e) { + const t = e < u - 1 ? g[e + 1] - g[e] : void 0; + if (t < 0) throw new r.FormatError('Invalid offset in the ObjStm stream.'); + d = new n.Parser({ + lexer: new n.Lexer(l.makeSubStream(p + g[e], t, l.dict)), + xref: this, + allowStreams: !0, + }); + const a = d.getObj(); + m[e] = a; + if (a instanceof o.BaseStream) continue; + const i = f[e], + s = this.entries[i]; + s && s.offset === c && s.gen === e && this._cacheMap.set(i, a); + } + if (void 0 === (t = m[t.gen])) + throw new s.XRefEntryException(`Bad (compressed) XRef entry: ${e}`); + return t; + } + async fetchIfRefAsync(e, t) { + return e instanceof i.Ref ? this.fetchAsync(e, t) : e; + } + async fetchAsync(e, t) { + try { + return this.fetch(e, t); + } catch (a) { + if (!(a instanceof s.MissingDataException)) throw a; + await this.pdfManager.requestRange(a.begin, a.end); + return this.fetchAsync(e, t); + } + } + getCatalogObj() { + return this.root; + } + }; + }, + (e, t) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.isNodeJS = void 0; + const a = !( + 'object' != typeof process || + process + '' != '[object process]' || + process.versions.nw || + (process.versions.electron && process.type && 'browser' !== process.type) + ); + t.isNodeJS = a; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.MessageHandler = void 0; + var r = a(2); + const i = 1, + n = 2, + s = 1, + o = 2, + c = 3, + l = 4, + h = 5, + u = 6, + d = 7, + f = 8; + function wrapReason(e) { + e instanceof Error || + ('object' == typeof e && null !== e) || + (0, r.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.'); + switch (e.name) { + case 'AbortException': + return new r.AbortException(e.message); + case 'MissingPDFException': + return new r.MissingPDFException(e.message); + case 'PasswordException': + return new r.PasswordException(e.message, e.code); + case 'UnexpectedResponseException': + return new r.UnexpectedResponseException(e.message, e.status); + case 'UnknownErrorException': + return new r.UnknownErrorException(e.message, e.details); + default: + return new r.UnknownErrorException(e.message, e.toString()); + } + } + t.MessageHandler = class MessageHandler { + constructor(e, t, a) { + this.sourceName = e; + this.targetName = t; + this.comObj = a; + this.callbackId = 1; + this.streamId = 1; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + this.callbackCapabilities = Object.create(null); + this.actionHandler = Object.create(null); + this._onComObjOnMessage = (e) => { + const t = e.data; + if (t.targetName !== this.sourceName) return; + if (t.stream) { + this.#t(t); + return; + } + if (t.callback) { + const e = t.callbackId, + a = this.callbackCapabilities[e]; + if (!a) throw new Error(`Cannot resolve callback ${e}`); + delete this.callbackCapabilities[e]; + if (t.callback === i) a.resolve(t.data); + else { + if (t.callback !== n) throw new Error('Unexpected callback case'); + a.reject(wrapReason(t.reason)); + } + return; + } + const r = this.actionHandler[t.action]; + if (!r) throw new Error(`Unknown action from worker: ${t.action}`); + if (t.callbackId) { + const e = this.sourceName, + s = t.sourceName; + new Promise(function (e) { + e(r(t.data)); + }).then( + function (r) { + a.postMessage({ + sourceName: e, + targetName: s, + callback: i, + callbackId: t.callbackId, + data: r, + }); + }, + function (r) { + a.postMessage({ + sourceName: e, + targetName: s, + callback: n, + callbackId: t.callbackId, + reason: wrapReason(r), + }); + }, + ); + } else t.streamId ? this.#a(t) : r(t.data); + }; + a.addEventListener('message', this._onComObjOnMessage); + } + on(e, t) { + const a = this.actionHandler; + if (a[e]) throw new Error(`There is already an actionName called "${e}"`); + a[e] = t; + } + send(e, t, a) { + this.comObj.postMessage( + { sourceName: this.sourceName, targetName: this.targetName, action: e, data: t }, + a, + ); + } + sendWithPromise(e, t, a) { + const i = this.callbackId++, + n = new r.PromiseCapability(); + this.callbackCapabilities[i] = n; + try { + this.comObj.postMessage( + { + sourceName: this.sourceName, + targetName: this.targetName, + action: e, + callbackId: i, + data: t, + }, + a, + ); + } catch (e) { + n.reject(e); + } + return n.promise; + } + sendWithStream(e, t, a, i) { + const n = this.streamId++, + o = this.sourceName, + c = this.targetName, + l = this.comObj; + return new ReadableStream( + { + start: (a) => { + const s = new r.PromiseCapability(); + this.streamControllers[n] = { + controller: a, + startCall: s, + pullCall: null, + cancelCall: null, + isClosed: !1, + }; + l.postMessage( + { + sourceName: o, + targetName: c, + action: e, + streamId: n, + data: t, + desiredSize: a.desiredSize, + }, + i, + ); + return s.promise; + }, + pull: (e) => { + const t = new r.PromiseCapability(); + this.streamControllers[n].pullCall = t; + l.postMessage({ + sourceName: o, + targetName: c, + stream: u, + streamId: n, + desiredSize: e.desiredSize, + }); + return t.promise; + }, + cancel: (e) => { + (0, r.assert)(e instanceof Error, 'cancel must have a valid reason'); + const t = new r.PromiseCapability(); + this.streamControllers[n].cancelCall = t; + this.streamControllers[n].isClosed = !0; + l.postMessage({ + sourceName: o, + targetName: c, + stream: s, + streamId: n, + reason: wrapReason(e), + }); + return t.promise; + }, + }, + a, + ); + } + #a(e) { + const t = e.streamId, + a = this.sourceName, + i = e.sourceName, + n = this.comObj, + s = this, + o = this.actionHandler[e.action], + u = { + enqueue(e, s = 1, o) { + if (this.isCancelled) return; + const c = this.desiredSize; + this.desiredSize -= s; + if (c > 0 && this.desiredSize <= 0) { + this.sinkCapability = new r.PromiseCapability(); + this.ready = this.sinkCapability.promise; + } + n.postMessage( + { sourceName: a, targetName: i, stream: l, streamId: t, chunk: e }, + o, + ); + }, + close() { + if (!this.isCancelled) { + this.isCancelled = !0; + n.postMessage({ sourceName: a, targetName: i, stream: c, streamId: t }); + delete s.streamSinks[t]; + } + }, + error(e) { + (0, r.assert)(e instanceof Error, 'error must have a valid reason'); + if (!this.isCancelled) { + this.isCancelled = !0; + n.postMessage({ + sourceName: a, + targetName: i, + stream: h, + streamId: t, + reason: wrapReason(e), + }); + } + }, + sinkCapability: new r.PromiseCapability(), + onPull: null, + onCancel: null, + isCancelled: !1, + desiredSize: e.desiredSize, + ready: null, + }; + u.sinkCapability.resolve(); + u.ready = u.sinkCapability.promise; + this.streamSinks[t] = u; + new Promise(function (t) { + t(o(e.data, u)); + }).then( + function () { + n.postMessage({ + sourceName: a, + targetName: i, + stream: f, + streamId: t, + success: !0, + }); + }, + function (e) { + n.postMessage({ + sourceName: a, + targetName: i, + stream: f, + streamId: t, + reason: wrapReason(e), + }); + }, + ); + } + #t(e) { + const t = e.streamId, + a = this.sourceName, + i = e.sourceName, + n = this.comObj, + g = this.streamControllers[t], + p = this.streamSinks[t]; + switch (e.stream) { + case f: + e.success ? g.startCall.resolve() : g.startCall.reject(wrapReason(e.reason)); + break; + case d: + e.success ? g.pullCall.resolve() : g.pullCall.reject(wrapReason(e.reason)); + break; + case u: + if (!p) { + n.postMessage({ + sourceName: a, + targetName: i, + stream: d, + streamId: t, + success: !0, + }); + break; + } + p.desiredSize <= 0 && e.desiredSize > 0 && p.sinkCapability.resolve(); + p.desiredSize = e.desiredSize; + new Promise(function (e) { + e(p.onPull?.()); + }).then( + function () { + n.postMessage({ + sourceName: a, + targetName: i, + stream: d, + streamId: t, + success: !0, + }); + }, + function (e) { + n.postMessage({ + sourceName: a, + targetName: i, + stream: d, + streamId: t, + reason: wrapReason(e), + }); + }, + ); + break; + case l: + (0, r.assert)(g, 'enqueue should have stream controller'); + if (g.isClosed) break; + g.controller.enqueue(e.chunk); + break; + case c: + (0, r.assert)(g, 'close should have stream controller'); + if (g.isClosed) break; + g.isClosed = !0; + g.controller.close(); + this.#r(g, t); + break; + case h: + (0, r.assert)(g, 'error should have stream controller'); + g.controller.error(wrapReason(e.reason)); + this.#r(g, t); + break; + case o: + e.success ? g.cancelCall.resolve() : g.cancelCall.reject(wrapReason(e.reason)); + this.#r(g, t); + break; + case s: + if (!p) break; + new Promise(function (t) { + t(p.onCancel?.(wrapReason(e.reason))); + }).then( + function () { + n.postMessage({ + sourceName: a, + targetName: i, + stream: o, + streamId: t, + success: !0, + }); + }, + function (e) { + n.postMessage({ + sourceName: a, + targetName: i, + stream: o, + streamId: t, + reason: wrapReason(e), + }); + }, + ); + p.sinkCapability.reject(wrapReason(e.reason)); + p.isCancelled = !0; + delete this.streamSinks[t]; + break; + default: + throw new Error('Unexpected stream case'); + } + } + async #r(e, t) { + await Promise.allSettled([ + e.startCall?.promise, + e.pullCall?.promise, + e.cancelCall?.promise, + ]); + delete this.streamControllers[t]; + } + destroy() { + this.comObj.removeEventListener('message', this._onComObjOnMessage); + } + }; + }, + (e, t, a) => { + Object.defineProperty(t, '__esModule', { value: !0 }); + t.PDFWorkerStream = void 0; + var r = a(2); + t.PDFWorkerStream = class PDFWorkerStream { + constructor(e) { + this._msgHandler = e; + this._contentLength = null; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + getFullReader() { + (0, r.assert)( + !this._fullRequestReader, + 'PDFWorkerStream.getFullReader can only be called once.', + ); + this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler); + return this._fullRequestReader; + } + getRangeReader(e, t) { + const a = new PDFWorkerStreamRangeReader(e, t, this._msgHandler); + this._rangeRequestReaders.push(a); + return a; + } + cancelAllRequests(e) { + this._fullRequestReader && this._fullRequestReader.cancel(e); + for (const t of this._rangeRequestReaders.slice(0)) t.cancel(e); + } + }; + class PDFWorkerStreamReader { + constructor(e) { + this._msgHandler = e; + this.onProgress = null; + this._contentLength = null; + this._isRangeSupported = !1; + this._isStreamingSupported = !1; + const t = this._msgHandler.sendWithStream('GetReader'); + this._reader = t.getReader(); + this._headersReady = this._msgHandler + .sendWithPromise('ReaderHeadersReady') + .then((e) => { + this._isStreamingSupported = e.isStreamingSupported; + this._isRangeSupported = e.isRangeSupported; + this._contentLength = e.contentLength; + }); + } + get headersReady() { + return this._headersReady; + } + get contentLength() { + return this._contentLength; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + get isRangeSupported() { + return this._isRangeSupported; + } + async read() { + const { value: e, done: t } = await this._reader.read(); + return t ? { value: void 0, done: !0 } : { value: e.buffer, done: !1 }; + } + cancel(e) { + this._reader.cancel(e); + } + } + class PDFWorkerStreamRangeReader { + constructor(e, t, a) { + this._msgHandler = a; + this.onProgress = null; + const r = this._msgHandler.sendWithStream('GetRangeReader', { begin: e, end: t }); + this._reader = r.getReader(); + } + get isStreamingSupported() { + return !1; + } + async read() { + const { value: e, done: t } = await this._reader.read(); + return t ? { value: void 0, done: !0 } : { value: e.buffer, done: !1 }; + } + cancel(e) { + this._reader.cancel(e); + } + } + }, + ], + t = {}; + function __w_pdfjs_require__(a) { + var r = t[a]; + if (void 0 !== r) return r.exports; + var i = (t[a] = { exports: {} }); + e[a](i, i.exports, __w_pdfjs_require__); + return i.exports; + } + __w_pdfjs_require__.d = (e, t) => { + for (var a in t) + __w_pdfjs_require__.o(t, a) && + !__w_pdfjs_require__.o(e, a) && + Object.defineProperty(e, a, { enumerable: !0, get: t[a] }); + }; + __w_pdfjs_require__.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t); + __w_pdfjs_require__.r = (e) => { + 'undefined' != typeof Symbol && + Symbol.toStringTag && + Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }); + Object.defineProperty(e, '__esModule', { value: !0 }); + }; + var a = {}; + (() => { + var e = a; + Object.defineProperty(e, '__esModule', { value: !0 }); + Object.defineProperty(e, 'WorkerMessageHandler', { + enumerable: !0, + get: function () { + return t.WorkerMessageHandler; + }, + }); + var t = __w_pdfjs_require__(1); + })(); + return a; + })(), +); diff --git a/apps/web/src/app/(dashboard)/dashboard/upload-document.tsx b/apps/web/src/app/(dashboard)/dashboard/upload-document.tsx index 36ea4df72..ee8a69ae6 100644 --- a/apps/web/src/app/(dashboard)/dashboard/upload-document.tsx +++ b/apps/web/src/app/(dashboard)/dashboard/upload-document.tsx @@ -5,10 +5,10 @@ import { useRouter } from 'next/navigation'; import { Loader } from 'lucide-react'; import { cn } from '@documenso/ui/lib/utils'; +import { DocumentDropzone } from '@documenso/ui/primitives/document-dropzone'; import { useToast } from '@documenso/ui/primitives/use-toast'; import { useCreateDocument } from '~/api/document/create/fetcher'; -import { DocumentDropzone } from '~/components/(dashboard)/document-dropzone/document-dropzone'; export type UploadDocumentProps = { className?: string; diff --git a/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx b/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx index 6e10fb45d..a434987a6 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx @@ -2,14 +2,23 @@ import { useState } from 'react'; +import { useRouter } from 'next/navigation'; + import { Document, Field, Recipient, User } from '@documenso/prisma/client'; import { cn } from '@documenso/ui/lib/utils'; import { Card, CardContent } from '@documenso/ui/primitives/card'; +import { AddFieldsFormPartial } from '@documenso/ui/primitives/document-flow/add-fields'; +import { TAddFieldsFormSchema } from '@documenso/ui/primitives/document-flow/add-fields.types'; +import { AddSignersFormPartial } from '@documenso/ui/primitives/document-flow/add-signers'; +import { TAddSignersFormSchema } from '@documenso/ui/primitives/document-flow/add-signers.types'; +import { AddSubjectFormPartial } from '@documenso/ui/primitives/document-flow/add-subject'; +import { TAddSubjectFormSchema } from '@documenso/ui/primitives/document-flow/add-subject.types'; +import { LazyPDFViewer } from '@documenso/ui/primitives/lazy-pdf-viewer'; +import { useToast } from '@documenso/ui/primitives/use-toast'; -import { LazyPDFViewer } from '~/components/(dashboard)/pdf-viewer/lazy-pdf-viewer'; -import { AddFieldsFormPartial } from '~/components/forms/edit-document/add-fields'; -import { AddSignersFormPartial } from '~/components/forms/edit-document/add-signers'; -import { AddSubjectFormPartial } from '~/components/forms/edit-document/add-subject'; +import { addFields } from '~/components/forms/edit-document/add-fields.action'; +import { addSigners } from '~/components/forms/edit-document/add-signers.action'; +import { completeDocument } from '~/components/forms/edit-document/add-subject.action'; export type EditDocumentFormProps = { className?: string; @@ -26,6 +35,9 @@ export const EditDocumentForm = ({ fields, user: _user, }: EditDocumentFormProps) => { + const { toast } = useToast(); + const router = useRouter(); + const [step, setStep] = useState<'signers' | 'fields' | 'subject'>('signers'); const documentUrl = `data:application/pdf;base64,${document.document}`; @@ -50,6 +62,76 @@ export const EditDocumentForm = ({ } }; + const onAddSignersFormSubmit = async (data: TAddSignersFormSchema) => { + try { + // Custom invocation server action + await addSigners({ + documentId: document.id, + signers: data.signers, + }); + + router.refresh(); + + onNextStep(); + } catch (err) { + console.error(err); + + toast({ + title: 'Error', + description: 'An error occurred while adding signers.', + variant: 'destructive', + }); + } + }; + + const onAddFieldsFormSubmit = async (data: TAddFieldsFormSchema) => { + try { + // Custom invocation server action + await addFields({ + documentId: document.id, + fields: data.fields, + }); + + router.refresh(); + + onNextStep(); + } catch (err) { + console.error(err); + + toast({ + title: 'Error', + description: 'An error occurred while adding signers.', + variant: 'destructive', + }); + } + }; + + const onAddSubjectFormSubmit = async (data: TAddSubjectFormSchema) => { + const { subject, message } = data.email; + + try { + await completeDocument({ + documentId: document.id, + email: { + subject, + message, + }, + }); + + router.refresh(); + + onNextStep(); + } catch (err) { + console.error(err); + + toast({ + title: 'Error', + description: 'An error occurred while sending the document.', + variant: 'destructive', + }); + } + }; + return (
)} @@ -79,6 +162,7 @@ export const EditDocumentForm = ({ document={document} onContinue={onNextStep} onGoBack={onPreviousStep} + onSubmit={onAddFieldsFormSubmit} /> )} @@ -89,6 +173,7 @@ export const EditDocumentForm = ({ document={document} onContinue={onNextStep} onGoBack={onPreviousStep} + onSubmit={onAddSubjectFormSubmit} /> )}
diff --git a/apps/web/src/app/(dashboard)/documents/[id]/loadable-pdf-card.tsx b/apps/web/src/app/(dashboard)/documents/[id]/loadable-pdf-card.tsx index b2008c921..5f01ec107 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/loadable-pdf-card.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/loadable-pdf-card.tsx @@ -1,34 +1,19 @@ 'use client'; -import dynamic from 'next/dynamic'; - -import { Loader } from 'lucide-react'; - import { Card, CardContent } from '@documenso/ui/primitives/card'; - -import { PDFViewerProps } from '~/components/(dashboard)/pdf-viewer/pdf-viewer'; +import { LazyPDFViewer } from '@documenso/ui/primitives/lazy-pdf-viewer'; +import { PDFViewerProps } from '@documenso/ui/primitives/pdf-viewer'; export type LoadablePDFCard = PDFViewerProps & { className?: string; pdfClassName?: string; }; -const PDFViewer = dynamic(async () => import('~/components/(dashboard)/pdf-viewer/pdf-viewer'), { - ssr: false, - loading: () => ( -
- - -

Loading document...

-
- ), -}); - export const LoadablePDFCard = ({ className, pdfClassName, ...props }: LoadablePDFCard) => { return ( - + ); diff --git a/apps/web/src/app/(signing)/sign/[token]/form.tsx b/apps/web/src/app/(signing)/sign/[token]/form.tsx index eab0ff2b2..c725d6ec4 100644 --- a/apps/web/src/app/(signing)/sign/[token]/form.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/form.tsx @@ -12,8 +12,7 @@ import { Button } from '@documenso/ui/primitives/button'; import { Card, CardContent } from '@documenso/ui/primitives/card'; import { Input } from '@documenso/ui/primitives/input'; import { Label } from '@documenso/ui/primitives/label'; - -import { SignaturePad } from '~/components/signature-pad'; +import { SignaturePad } from '@documenso/ui/primitives/signature-pad'; import { useRequiredSigningContext } from './provider'; diff --git a/apps/web/src/app/(signing)/sign/[token]/page.tsx b/apps/web/src/app/(signing)/sign/[token]/page.tsx index c5bee1cf7..9bebfb00e 100644 --- a/apps/web/src/app/(signing)/sign/[token]/page.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/page.tsx @@ -2,6 +2,7 @@ import { notFound } from 'next/navigation'; import { match } from 'ts-pattern'; +import { PDF_VIEWER_PAGE_SELECTOR } from '@documenso/lib/constants/pdf-viewer'; import { getDocumentAndSenderByToken } from '@documenso/lib/server-only/document/get-document-by-token'; import { viewedDocument } from '@documenso/lib/server-only/document/viewed-document'; import { getFieldsForToken } from '@documenso/lib/server-only/field/get-fields-for-token'; @@ -9,9 +10,7 @@ import { getRecipientByToken } from '@documenso/lib/server-only/recipient/get-re import { FieldType } from '@documenso/prisma/client'; import { Card, CardContent } from '@documenso/ui/primitives/card'; import { ElementVisible } from '@documenso/ui/primitives/element-visible'; - -import { LazyPDFViewer } from '~/components/(dashboard)/pdf-viewer/lazy-pdf-viewer'; -import { PDF_VIEWER_PAGE_SELECTOR } from '~/components/(dashboard)/pdf-viewer/types'; +import { LazyPDFViewer } from '@documenso/ui/primitives/lazy-pdf-viewer'; import { DateField } from './date-field'; import { SigningForm } from './form'; diff --git a/apps/web/src/app/(signing)/sign/[token]/signature-field.tsx b/apps/web/src/app/(signing)/sign/[token]/signature-field.tsx index 1c00c5eaa..bbc58b5e8 100644 --- a/apps/web/src/app/(signing)/sign/[token]/signature-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/signature-field.tsx @@ -12,10 +12,9 @@ import { trpc } from '@documenso/trpc/react'; import { Button } from '@documenso/ui/primitives/button'; import { Dialog, DialogContent, DialogFooter, DialogTitle } from '@documenso/ui/primitives/dialog'; import { Label } from '@documenso/ui/primitives/label'; +import { SignaturePad } from '@documenso/ui/primitives/signature-pad'; import { useToast } from '@documenso/ui/primitives/use-toast'; -import { SignaturePad } from '~/components/signature-pad'; - import { useRequiredSigningContext } from './provider'; import { SigningFieldContainer } from './signing-field-container'; diff --git a/apps/web/src/components/(dashboard)/pdf-viewer/lazy-pdf-viewer.tsx b/apps/web/src/components/(dashboard)/pdf-viewer/lazy-pdf-viewer.tsx deleted file mode 100644 index f75920ade..000000000 --- a/apps/web/src/components/(dashboard)/pdf-viewer/lazy-pdf-viewer.tsx +++ /dev/null @@ -1,19 +0,0 @@ -'use client'; - -import dynamic from 'next/dynamic'; - -import { Loader } from 'lucide-react'; - -export const LazyPDFViewer = dynamic( - async () => import('~/components/(dashboard)/pdf-viewer/pdf-viewer'), - { - ssr: false, - loading: () => ( -
- - -

Loading document...

-
- ), - }, -); diff --git a/apps/web/src/components/(marketing)/widget.tsx b/apps/web/src/components/(marketing)/widget.tsx index 8603ef576..1a15069e9 100644 --- a/apps/web/src/components/(marketing)/widget.tsx +++ b/apps/web/src/components/(marketing)/widget.tsx @@ -21,12 +21,12 @@ import { DialogTitle, } from '@documenso/ui/primitives/dialog'; import { Input } from '@documenso/ui/primitives/input'; +import { SignaturePad } from '@documenso/ui/primitives/signature-pad'; import { useToast } from '@documenso/ui/primitives/use-toast'; import { claimPlan } from '~/api/claim-plan/fetcher'; import { FormErrorMessage } from '../form/form-error-message'; -import { SignaturePad } from '../signature-pad'; const ZWidgetFormSchema = z .object({ diff --git a/apps/web/src/components/forms/edit-document/add-fields.action.ts b/apps/web/src/components/forms/edit-document/add-fields.action.ts index 022c593de..d5f2f5fcc 100644 --- a/apps/web/src/components/forms/edit-document/add-fields.action.ts +++ b/apps/web/src/components/forms/edit-document/add-fields.action.ts @@ -2,8 +2,7 @@ import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-session'; import { setFieldsForDocument } from '@documenso/lib/server-only/field/set-fields-for-document'; - -import { TAddFieldsFormSchema } from './add-fields.types'; +import { TAddFieldsFormSchema } from '@documenso/ui/primitives/document-flow/add-fields.types'; export type AddFieldsActionInput = TAddFieldsFormSchema & { documentId: number; diff --git a/apps/web/src/components/forms/edit-document/add-signers.action.ts b/apps/web/src/components/forms/edit-document/add-signers.action.ts index a37c12af8..4e6739bd6 100644 --- a/apps/web/src/components/forms/edit-document/add-signers.action.ts +++ b/apps/web/src/components/forms/edit-document/add-signers.action.ts @@ -2,8 +2,7 @@ import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-session'; import { setRecipientsForDocument } from '@documenso/lib/server-only/recipient/set-recipients-for-document'; - -import { TAddSignersFormSchema } from './add-signers.types'; +import { TAddSignersFormSchema } from '@documenso/ui/primitives/document-flow/add-signers.types'; export type AddSignersActionInput = TAddSignersFormSchema & { documentId: number; diff --git a/apps/web/src/components/forms/edit-document/add-subject.action.ts b/apps/web/src/components/forms/edit-document/add-subject.action.ts index 3beb166ca..b6ff1c320 100644 --- a/apps/web/src/components/forms/edit-document/add-subject.action.ts +++ b/apps/web/src/components/forms/edit-document/add-subject.action.ts @@ -2,8 +2,7 @@ import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-session'; import { sendDocument } from '@documenso/lib/server-only/document/send-document'; - -import { TAddSubjectFormSchema } from './add-subject.types'; +import { TAddSubjectFormSchema } from '@documenso/ui/primitives/document-flow/add-subject.types'; export type CompleteDocumentActionInput = TAddSubjectFormSchema & { documentId: number; diff --git a/apps/web/src/components/forms/profile.tsx b/apps/web/src/components/forms/profile.tsx index 3b6941a44..d65a0ce27 100644 --- a/apps/web/src/components/forms/profile.tsx +++ b/apps/web/src/components/forms/profile.tsx @@ -14,10 +14,10 @@ import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; import { Input } from '@documenso/ui/primitives/input'; import { Label } from '@documenso/ui/primitives/label'; +import { SignaturePad } from '@documenso/ui/primitives/signature-pad'; import { useToast } from '@documenso/ui/primitives/use-toast'; import { FormErrorMessage } from '../form/form-error-message'; -import { SignaturePad } from '../signature-pad'; export const ZProfileFormSchema = z.object({ name: z.string().min(1), diff --git a/apps/web/src/components/forms/signup.tsx b/apps/web/src/components/forms/signup.tsx index 773d90f1a..ce449f850 100644 --- a/apps/web/src/components/forms/signup.tsx +++ b/apps/web/src/components/forms/signup.tsx @@ -12,10 +12,9 @@ import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; import { Input } from '@documenso/ui/primitives/input'; import { Label } from '@documenso/ui/primitives/label'; +import { SignaturePad } from '@documenso/ui/primitives/signature-pad'; import { useToast } from '@documenso/ui/primitives/use-toast'; -import { SignaturePad } from '../signature-pad'; - export const ZSignUpFormSchema = z.object({ name: z.string().min(1), email: z.string().email().min(1), diff --git a/apps/web/src/components/signature-pad/canvas.ts b/apps/web/src/components/signature-pad/canvas.ts deleted file mode 100644 index ef573152a..000000000 --- a/apps/web/src/components/signature-pad/canvas.ts +++ /dev/null @@ -1,321 +0,0 @@ -import { Point } from './point'; - -export class Canvas { - private readonly $canvas: HTMLCanvasElement; - private readonly $offscreenCanvas: HTMLCanvasElement; - - private currentCanvasWidth = 0; - private currentCanvasHeight = 0; - - private points: Point[] = []; - private onChangeHandlers: Array<(_canvas: Canvas, _cleared: boolean) => void> = []; - - private isPressed = false; - private lastVelocity = 0; - - private readonly VELOCITY_FILTER_WEIGHT = 0.5; - private readonly DPI = 2; - - constructor(canvas: HTMLCanvasElement) { - this.$canvas = canvas; - this.$offscreenCanvas = document.createElement('canvas'); - - const { width, height } = this.$canvas.getBoundingClientRect(); - - this.currentCanvasWidth = width * this.DPI; - this.currentCanvasHeight = height * this.DPI; - - this.$canvas.width = this.currentCanvasWidth; - this.$canvas.height = this.currentCanvasHeight; - - Object.assign(this.$canvas.style, { - touchAction: 'none', - msTouchAction: 'none', - userSelect: 'none', - }); - - window.addEventListener('resize', this.onResize.bind(this)); - - this.$canvas.addEventListener('mousedown', this.onMouseDown.bind(this)); - this.$canvas.addEventListener('mousemove', this.onMouseMove.bind(this)); - this.$canvas.addEventListener('mouseup', this.onMouseUp.bind(this)); - this.$canvas.addEventListener('mouseenter', this.onMouseEnter.bind(this)); - this.$canvas.addEventListener('mouseleave', this.onMouseLeave.bind(this)); - this.$canvas.addEventListener('pointerdown', this.onMouseDown.bind(this)); - this.$canvas.addEventListener('pointermove', this.onMouseMove.bind(this)); - this.$canvas.addEventListener('pointerup', this.onMouseUp.bind(this)); - } - - /** - * Calculates the minimum stroke width as a percentage of the current canvas suitable for a signature. - */ - private minStrokeWidth(): number { - return Math.min(this.currentCanvasWidth, this.currentCanvasHeight) * 0.005; - } - - /** - * Calculates the maximum stroke width as a percentage of the current canvas suitable for a signature. - */ - private maxStrokeWidth(): number { - return Math.min(this.currentCanvasWidth, this.currentCanvasHeight) * 0.035; - } - - /** - * Retrieves the HTML canvas element. - */ - public getCanvas(): HTMLCanvasElement { - return this.$canvas; - } - - /** - * Retrieves the 2D rendering context of the canvas. - * Throws an error if the context is not available. - */ - public getContext(): CanvasRenderingContext2D { - const ctx = this.$canvas.getContext('2d'); - - if (!ctx) { - throw new Error('Canvas context is not available.'); - } - - ctx.imageSmoothingEnabled = true; - ctx.imageSmoothingQuality = 'high'; - - return ctx; - } - - /** - * Handles the resize event of the canvas. - * Adjusts the canvas size and preserves the content using image data. - */ - private onResize(): void { - const { width, height } = this.$canvas.getBoundingClientRect(); - - const oldWidth = this.currentCanvasWidth; - const oldHeight = this.currentCanvasHeight; - - const ctx = this.getContext(); - - const imageData = ctx.getImageData(0, 0, oldWidth, oldHeight); - - this.$canvas.width = width * this.DPI; - this.$canvas.height = height * this.DPI; - - this.currentCanvasWidth = width * this.DPI; - this.currentCanvasHeight = height * this.DPI; - - ctx.putImageData(imageData, 0, 0, 0, 0, width * this.DPI, height * this.DPI); - } - - /** - * Handles the mouse down event on the canvas. - * Adds the starting point for the signature. - */ - private onMouseDown(event: MouseEvent | PointerEvent | TouchEvent): void { - if (event.cancelable) { - event.preventDefault(); - } - - this.isPressed = true; - - const point = Point.fromEvent(event, this.DPI); - - this.addPoint(point); - } - - /** - * Handles the mouse move event on the canvas. - * Adds a point to the signature if the mouse is pressed, based on the sample rate. - */ - private onMouseMove(event: MouseEvent | PointerEvent | TouchEvent): void { - if (event.cancelable) { - event.preventDefault(); - } - - if (!this.isPressed) { - return; - } - - const point = Point.fromEvent(event, this.DPI); - - if (point.distanceTo(this.points[this.points.length - 1]) > 10) { - this.addPoint(point); - } - } - - /** - * Handles the mouse up event on the canvas. - * Adds the final point for the signature and resets the points array. - */ - private onMouseUp(event: MouseEvent | PointerEvent | TouchEvent, addPoint = true): void { - if (event.cancelable) { - event.preventDefault(); - } - - this.isPressed = false; - - const point = Point.fromEvent(event, this.DPI); - - if (addPoint) { - this.addPoint(point); - } - - this.onChangeHandlers.forEach((handler) => handler(this, false)); - - this.points = []; - } - - private onMouseEnter(event: MouseEvent): void { - if (event.cancelable) { - event.preventDefault(); - } - - event.buttons === 1 && this.onMouseDown(event); - } - - private onMouseLeave(event: MouseEvent): void { - if (event.cancelable) { - event.preventDefault(); - } - - this.onMouseUp(event, false); - } - - /** - * Adds a point to the signature and performs smoothing and drawing. - */ - private addPoint(point: Point): void { - const lastPoint = this.points[this.points.length - 1] ?? point; - - this.points.push(point); - - const smoothedPoints = this.smoothSignature(this.points); - - let velocity = point.velocityFrom(lastPoint); - velocity = - this.VELOCITY_FILTER_WEIGHT * velocity + - (1 - this.VELOCITY_FILTER_WEIGHT) * this.lastVelocity; - - const newWidth = - velocity > 0 && this.lastVelocity > 0 ? this.strokeWidth(velocity) : this.minStrokeWidth(); - - this.drawSmoothSignature(smoothedPoints, newWidth); - - this.lastVelocity = velocity; - } - - /** - * Applies a smoothing algorithm to the signature points. - */ - private smoothSignature(points: Point[]): Point[] { - const smoothedPoints: Point[] = []; - - const startPoint = points[0]; - const endPoint = points[points.length - 1]; - - smoothedPoints.push(startPoint); - - for (let i = 0; i < points.length - 1; i++) { - const p0 = i > 0 ? points[i - 1] : startPoint; - const p1 = points[i]; - const p2 = points[i + 1]; - const p3 = i < points.length - 2 ? points[i + 2] : endPoint; - - const cp1x = p1.x + (p2.x - p0.x) / 6; - const cp1y = p1.y + (p2.y - p0.y) / 6; - - const cp2x = p2.x - (p3.x - p1.x) / 6; - const cp2y = p2.y - (p3.y - p1.y) / 6; - - smoothedPoints.push(new Point(cp1x, cp1y)); - smoothedPoints.push(new Point(cp2x, cp2y)); - smoothedPoints.push(p2); - } - - return smoothedPoints; - } - - /** - * Draws the smoothed signature on the canvas. - */ - private drawSmoothSignature(points: Point[], width: number): void { - const ctx = this.getContext(); - - ctx.lineCap = 'round'; - ctx.lineJoin = 'round'; - - ctx.beginPath(); - - const startPoint = points[0]; - - ctx.moveTo(startPoint.x, startPoint.y); - - ctx.lineWidth = width; - - for (let i = 1; i < points.length; i += 3) { - const cp1 = points[i]; - const cp2 = points[i + 1]; - const endPoint = points[i + 2]; - - ctx.bezierCurveTo(cp1.x, cp1.y, cp2.x, cp2.y, endPoint.x, endPoint.y); - } - - ctx.stroke(); - ctx.closePath(); - } - - /** - * Calculates the stroke width based on the velocity. - */ - private strokeWidth(velocity: number): number { - return Math.max(this.maxStrokeWidth() / (velocity + 1), this.minStrokeWidth()); - } - - public registerOnChangeHandler(handler: (_canvas: Canvas, _cleared: boolean) => void): void { - this.onChangeHandlers.push(handler); - } - - public unregisterOnChangeHandler(handler: (_canvas: Canvas, _cleared: boolean) => void): void { - this.onChangeHandlers = this.onChangeHandlers.filter((l) => l !== handler); - } - - /** - * Retrieves the signature as a data URL. - */ - public toDataURL(type?: string, quality?: number): string { - return this.$canvas.toDataURL(type, quality); - } - - /** - * Clears the signature from the canvas. - */ - public clear(): void { - const ctx = this.getContext(); - - ctx.clearRect(0, 0, this.currentCanvasWidth, this.currentCanvasHeight); - - this.onChangeHandlers.forEach((handler) => handler(this, true)); - - this.points = []; - } - - /** - * Retrieves the signature as an image blob. - */ - public toBlob(type?: string, quality?: number): Promise { - return new Promise((resolve, reject) => { - this.$canvas.toBlob( - (blob) => { - if (!blob) { - reject(new Error('Could not convert canvas to blob.')); - return; - } - - resolve(blob); - }, - type, - quality, - ); - }); - } -} diff --git a/apps/web/src/components/signature-pad/helper.ts b/apps/web/src/components/signature-pad/helper.ts deleted file mode 100644 index ec4c19a8e..000000000 --- a/apps/web/src/components/signature-pad/helper.ts +++ /dev/null @@ -1,29 +0,0 @@ -export const average = (a: number, b: number) => (a + b) / 2; - -export const getSvgPathFromStroke = (points: number[][], closed = true) => { - const len = points.length; - - if (len < 4) { - return ``; - } - - let a = points[0]; - let b = points[1]; - const c = points[2]; - - let result = `M${a[0].toFixed(2)},${a[1].toFixed(2)} Q${b[0].toFixed(2)},${b[1].toFixed( - 2, - )} ${average(b[0], c[0]).toFixed(2)},${average(b[1], c[1]).toFixed(2)} T`; - - for (let i = 2, max = len - 1; i < max; i++) { - a = points[i]; - b = points[i + 1]; - result += `${average(a[0], b[0]).toFixed(2)},${average(a[1], b[1]).toFixed(2)} `; - } - - if (closed) { - result += 'Z'; - } - - return result; -}; diff --git a/apps/web/src/components/signature-pad/index.ts b/apps/web/src/components/signature-pad/index.ts deleted file mode 100644 index bfd777f1e..000000000 --- a/apps/web/src/components/signature-pad/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './signature-pad'; diff --git a/apps/web/src/components/signature-pad/point.ts b/apps/web/src/components/signature-pad/point.ts deleted file mode 100644 index 54322f2fb..000000000 --- a/apps/web/src/components/signature-pad/point.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { - MouseEvent as ReactMouseEvent, - PointerEvent as ReactPointerEvent, - TouchEvent as ReactTouchEvent, -} from 'react'; - -export type PointLike = { - x: number; - y: number; - timestamp: number; -}; - -const isTouchEvent = ( - event: - | ReactMouseEvent - | ReactPointerEvent - | ReactTouchEvent - | MouseEvent - | PointerEvent - | TouchEvent, -): event is TouchEvent | ReactTouchEvent => { - return 'touches' in event; -}; - -export class Point implements PointLike { - public x: number; - public y: number; - public timestamp: number; - - constructor(x: number, y: number, timestamp?: number) { - this.x = x; - this.y = y; - this.timestamp = timestamp ?? Date.now(); - } - - public distanceTo(point: PointLike): number { - return Math.sqrt(Math.pow(point.x - this.x, 2) + Math.pow(point.y - this.y, 2)); - } - - public equals(point: PointLike): boolean { - return this.x === point.x && this.y === point.y && this.timestamp === point.timestamp; - } - - public velocityFrom(start: PointLike): number { - const timeDifference = this.timestamp - start.timestamp; - - if (timeDifference !== 0) { - return this.distanceTo(start) / timeDifference; - } - - return 0; - } - - public static fromPointLike({ x, y, timestamp }: PointLike): Point { - return new Point(x, y, timestamp); - } - - public static fromEvent( - event: - | ReactMouseEvent - | ReactPointerEvent - | ReactTouchEvent - | MouseEvent - | PointerEvent - | TouchEvent, - dpi = 1, - el?: HTMLElement | null, - ): Point { - const target = el ?? event.target; - - if (!(target instanceof HTMLElement)) { - throw new Error('Event target is not an HTMLElement.'); - } - - const { top, bottom, left, right } = target.getBoundingClientRect(); - - let clientX, clientY; - - if (isTouchEvent(event)) { - clientX = event.touches[0].clientX; - clientY = event.touches[0].clientY; - } else { - clientX = event.clientX; - clientY = event.clientY; - } - - // create a new point snapping to the edge of the current target element if it exceeds - // the bounding box of the target element - let x = Math.min(Math.max(left, clientX), right) - left; - let y = Math.min(Math.max(top, clientY), bottom) - top; - - // adjust for DPI - x *= dpi; - y *= dpi; - - return new Point(x, y); - } -} diff --git a/apps/web/src/hooks/use-field-page-coords.ts b/apps/web/src/hooks/use-field-page-coords.ts index 9ad0c569f..518e8b84a 100644 --- a/apps/web/src/hooks/use-field-page-coords.ts +++ b/apps/web/src/hooks/use-field-page-coords.ts @@ -1,10 +1,9 @@ import { useCallback, useEffect, useState } from 'react'; +import { getBoundingClientRect } from '@documenso/lib/client-only/get-bounding-client-rect'; +import { PDF_VIEWER_PAGE_SELECTOR } from '@documenso/lib/constants/pdf-viewer'; import { Field } from '@documenso/prisma/client'; -import { PDF_VIEWER_PAGE_SELECTOR } from '~/components/(dashboard)/pdf-viewer/types'; -import { getBoundingClientRect } from '~/helpers/get-bounding-client-rect'; - export const useFieldPageCoords = (field: Field) => { const [coords, setCoords] = useState({ x: 0, diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index fc1f9b13c..6f65e8951 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -9,16 +9,10 @@ } ], "paths": { - "~/*": [ - "./src/*" - ], - "contentlayer/generated": [ - "./.contentlayer/generated" - ] + "~/*": ["./src/*"], + "contentlayer/generated": ["./.contentlayer/generated"] }, - "types": [ - "@documenso/lib/types/next-auth.d.ts" - ], + "types": ["@documenso/lib/types/next-auth.d.ts"], "strictNullChecks": true, "incremental": false }, @@ -30,7 +24,5 @@ ".next/types/**/*.ts", ".contentlayer/generated" ], - "exclude": [ - "node_modules" - ] + "exclude": ["node_modules"] } diff --git a/package-lock.json b/package-lock.json index 3b66c1d92..d1cc0ea04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,10 @@ "lint-staged": "^14.0.0", "prettier": "^2.5.1", "turbo": "^1.9.3" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" } }, "apps/marketing": { @@ -87,7 +91,6 @@ "react-dropzone": "^14.2.3", "react-hook-form": "^7.43.9", "react-icons": "^4.8.0", - "react-pdf": "^7.1.1", "react-rnd": "^10.4.1", "ts-pattern": "^5.0.5", "typescript": "5.1.6", @@ -13039,9 +13042,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-pdf": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.3.0.tgz", - "integrity": "sha512-FRUqxGqh/l9TfND7T9ooW5ulZZt1tPYVwSEonFv3ImQFp3OkPM09BljchwEGHszP7P6h/Tt8js6v6d/T7GTC3A==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.3.3.tgz", + "integrity": "sha512-d7WAxcsjOogJfJ+I+zX/mdip3VjR1yq/yDa4hax4XbQVjbbbup6rqs4c8MGx0MLSnzob17TKp1t4CsNbDZ6GeQ==", "dependencies": { "clsx": "^2.0.0", "make-cancellable-promise": "^1.3.1", @@ -16446,7 +16449,10 @@ "date-fns": "^2.30.0", "framer-motion": "^10.12.8", "lucide-react": "^0.214.0", + "next": "13.4.12", + "pdfjs-dist": "3.6.172", "react-day-picker": "^8.7.1", + "react-pdf": "^7.3.3", "tailwind-merge": "^1.12.0", "tailwindcss-animate": "^1.0.5" }, diff --git a/apps/web/src/helpers/get-bounding-client-rect.ts b/packages/lib/client-only/get-bounding-client-rect.ts similarity index 100% rename from apps/web/src/helpers/get-bounding-client-rect.ts rename to packages/lib/client-only/get-bounding-client-rect.ts diff --git a/apps/web/src/components/(dashboard)/pdf-viewer/types.ts b/packages/lib/constants/pdf-viewer.ts similarity index 100% rename from apps/web/src/components/(dashboard)/pdf-viewer/types.ts rename to packages/lib/constants/pdf-viewer.ts diff --git a/packages/ui/package.json b/packages/ui/package.json index 413e5dd1b..039687491 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -54,8 +54,11 @@ "date-fns": "^2.30.0", "framer-motion": "^10.12.8", "lucide-react": "^0.214.0", + "next": "13.4.12", + "pdfjs-dist": "3.6.172", "react-day-picker": "^8.7.1", + "react-pdf": "^7.3.3", "tailwind-merge": "^1.12.0", "tailwindcss-animate": "^1.0.5" } -} +} \ No newline at end of file diff --git a/apps/web/src/components/(dashboard)/document-dropzone/document-dropzone.tsx b/packages/ui/primitives/document-dropzone.tsx similarity index 100% rename from apps/web/src/components/(dashboard)/document-dropzone/document-dropzone.tsx rename to packages/ui/primitives/document-dropzone.tsx diff --git a/apps/web/src/components/forms/edit-document/add-fields.tsx b/packages/ui/primitives/document-flow/add-fields.tsx similarity index 92% rename from apps/web/src/components/forms/edit-document/add-fields.tsx rename to packages/ui/primitives/document-flow/add-fields.tsx index 34b5723de..890591efd 100644 --- a/apps/web/src/components/forms/edit-document/add-fields.tsx +++ b/packages/ui/primitives/document-flow/add-fields.tsx @@ -3,12 +3,13 @@ import { useCallback, useEffect, useRef, useState } from 'react'; import { Caveat } from 'next/font/google'; -import { useRouter } from 'next/navigation'; import { Check, ChevronsUpDown, Info } from 'lucide-react'; import { nanoid } from 'nanoid'; import { useFieldArray, useForm } from 'react-hook-form'; +import { getBoundingClientRect } from '@documenso/lib/client-only/get-bounding-client-rect'; +import { PDF_VIEWER_PAGE_SELECTOR } from '@documenso/lib/constants/pdf-viewer'; import { Document, Field, FieldType, Recipient, SendStatus } from '@documenso/prisma/client'; import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; @@ -22,20 +23,15 @@ import { } from '@documenso/ui/primitives/command'; import { Popover, PopoverContent, PopoverTrigger } from '@documenso/ui/primitives/popover'; import { Tooltip, TooltipContent, TooltipTrigger } from '@documenso/ui/primitives/tooltip'; -import { useToast } from '@documenso/ui/primitives/use-toast'; -import { PDF_VIEWER_PAGE_SELECTOR } from '~/components/(dashboard)/pdf-viewer/types'; -import { getBoundingClientRect } from '~/helpers/get-bounding-client-rect'; - -import { addFields } from './add-fields.action'; import { TAddFieldsFormSchema } from './add-fields.types'; import { - EditDocumentFormContainer, - EditDocumentFormContainerActions, - EditDocumentFormContainerContent, - EditDocumentFormContainerFooter, - EditDocumentFormContainerStep, -} from './container'; + DocumentFlowFormContainer, + DocumentFlowFormContainerActions, + DocumentFlowFormContainerContent, + DocumentFlowFormContainerFooter, + DocumentFlowFormContainerStep, +} from './document-flow-root'; import { FieldItem } from './field-item'; import { FRIENDLY_FIELD_TYPE } from './types'; @@ -58,18 +54,15 @@ export type AddFieldsFormProps = { document: Document; onContinue?: () => void; onGoBack?: () => void; + onSubmit: (_data: TAddFieldsFormSchema) => void; }; export const AddFieldsFormPartial = ({ recipients, fields, - document, - onContinue, onGoBack, + onSubmit, }: AddFieldsFormProps) => { - const { toast } = useToast(); - const router = useRouter(); - const { control, handleSubmit, @@ -303,28 +296,6 @@ export const AddFieldsFormPartial = ({ [localFields, update], ); - const onFormSubmit = handleSubmit(async (data: TAddFieldsFormSchema) => { - try { - // Custom invocation server action - await addFields({ - documentId: document.id, - fields: data.fields, - }); - - router.refresh(); - - onContinue?.(); - } catch (err) { - console.error(err); - - toast({ - title: 'Error', - description: 'An error occurred while adding signers.', - variant: 'destructive', - }); - } - }); - useEffect(() => { if (selectedField) { window.addEventListener('mousemove', onMouseMove); @@ -357,8 +328,8 @@ export const AddFieldsFormPartial = ({ }, [recipients]); return ( - - + @@ -560,18 +531,18 @@ export const AddFieldsFormPartial = ({ - + - - + + - onFormSubmit()} + onGoNextClick={() => handleSubmit(onSubmit)()} onGoBackClick={onGoBack} /> - - + + ); }; diff --git a/apps/web/src/components/forms/edit-document/add-fields.types.ts b/packages/ui/primitives/document-flow/add-fields.types.ts similarity index 100% rename from apps/web/src/components/forms/edit-document/add-fields.types.ts rename to packages/ui/primitives/document-flow/add-fields.types.ts diff --git a/apps/web/src/components/forms/edit-document/add-signers.tsx b/packages/ui/primitives/document-flow/add-signers.tsx similarity index 82% rename from apps/web/src/components/forms/edit-document/add-signers.tsx rename to packages/ui/primitives/document-flow/add-signers.tsx index 09156a342..75701df11 100644 --- a/apps/web/src/components/forms/edit-document/add-signers.tsx +++ b/packages/ui/primitives/document-flow/add-signers.tsx @@ -2,8 +2,6 @@ import React, { useId } from 'react'; -import { useRouter } from 'next/navigation'; - import { AnimatePresence, motion } from 'framer-motion'; import { Plus, Trash } from 'lucide-react'; import { nanoid } from 'nanoid'; @@ -11,21 +9,19 @@ import { Controller, useFieldArray, useForm } from 'react-hook-form'; import { Document, Field, Recipient, SendStatus } from '@documenso/prisma/client'; import { Button } from '@documenso/ui/primitives/button'; +import { FormErrorMessage } from '@documenso/ui/primitives/form/form-error-message'; import { Input } from '@documenso/ui/primitives/input'; import { Label } from '@documenso/ui/primitives/label'; import { useToast } from '@documenso/ui/primitives/use-toast'; -import { FormErrorMessage } from '~/components/form/form-error-message'; - -import { addSigners } from './add-signers.action'; import { TAddSignersFormSchema } from './add-signers.types'; import { - EditDocumentFormContainer, - EditDocumentFormContainerActions, - EditDocumentFormContainerContent, - EditDocumentFormContainerFooter, - EditDocumentFormContainerStep, -} from './container'; + DocumentFlowFormContainer, + DocumentFlowFormContainerActions, + DocumentFlowFormContainerContent, + DocumentFlowFormContainerFooter, + DocumentFlowFormContainerStep, +} from './document-flow-root'; export type AddSignersFormProps = { recipients: Recipient[]; @@ -33,17 +29,16 @@ export type AddSignersFormProps = { document: Document; onContinue?: () => void; onGoBack?: () => void; + onSubmit: (_data: TAddSignersFormSchema) => void; }; export const AddSignersFormPartial = ({ recipients, fields: _fields, - document: document, - onContinue, onGoBack, + onSubmit, }: AddSignersFormProps) => { const { toast } = useToast(); - const router = useRouter(); const initialId = useId(); @@ -120,31 +115,9 @@ export const AddSignersFormPartial = ({ } }; - const onFormSubmit = handleSubmit(async (data: TAddSignersFormSchema) => { - try { - // Custom invocation server action - await addSigners({ - documentId: document.id, - signers: data.signers, - }); - - router.refresh(); - - onContinue?.(); - } catch (err) { - console.error(err); - - toast({ - title: 'Error', - description: 'An error occurred while adding signers.', - variant: 'destructive', - }); - } - }); - return ( - - + @@ -229,18 +202,18 @@ export const AddSignersFormPartial = ({ Add Signer - + - - + + - onFormSubmit()} + onGoNextClick={() => handleSubmit(onSubmit)()} onGoBackClick={onGoBack} /> - - + + ); }; diff --git a/apps/web/src/components/forms/edit-document/add-signers.types.ts b/packages/ui/primitives/document-flow/add-signers.types.ts similarity index 100% rename from apps/web/src/components/forms/edit-document/add-signers.types.ts rename to packages/ui/primitives/document-flow/add-signers.types.ts diff --git a/apps/web/src/components/forms/edit-document/add-subject.tsx b/packages/ui/primitives/document-flow/add-subject.tsx similarity index 73% rename from apps/web/src/components/forms/edit-document/add-subject.tsx rename to packages/ui/primitives/document-flow/add-subject.tsx index 220f17ea2..04c624070 100644 --- a/apps/web/src/components/forms/edit-document/add-subject.tsx +++ b/packages/ui/primitives/document-flow/add-subject.tsx @@ -1,26 +1,22 @@ 'use client'; -import { useRouter } from 'next/navigation'; - import { useForm } from 'react-hook-form'; import { Document, DocumentStatus, Field, Recipient } from '@documenso/prisma/client'; import { Input } from '@documenso/ui/primitives/input'; import { Label } from '@documenso/ui/primitives/label'; import { Textarea } from '@documenso/ui/primitives/textarea'; -import { useToast } from '@documenso/ui/primitives/use-toast'; import { FormErrorMessage } from '~/components/form/form-error-message'; -import { completeDocument } from './add-subject.action'; import { TAddSubjectFormSchema } from './add-subject.types'; import { - EditDocumentFormContainer, - EditDocumentFormContainerActions, - EditDocumentFormContainerContent, - EditDocumentFormContainerFooter, - EditDocumentFormContainerStep, -} from './container'; + DocumentFlowFormContainer, + DocumentFlowFormContainerActions, + DocumentFlowFormContainerContent, + DocumentFlowFormContainerFooter, + DocumentFlowFormContainerStep, +} from './document-flow-root'; export type AddSubjectFormProps = { recipients: Recipient[]; @@ -28,18 +24,16 @@ export type AddSubjectFormProps = { document: Document; onContinue?: () => void; onGoBack?: () => void; + onSubmit: (_data: TAddSubjectFormSchema) => void; }; export const AddSubjectFormPartial = ({ recipients: _recipients, fields: _fields, document, - onContinue, onGoBack, + onSubmit, }: AddSubjectFormProps) => { - const { toast } = useToast(); - const router = useRouter(); - const { register, handleSubmit, @@ -53,35 +47,9 @@ export const AddSubjectFormPartial = ({ }, }); - const onFormSubmit = handleSubmit(async (data: TAddSubjectFormSchema) => { - const { subject, message } = data.email; - - try { - await completeDocument({ - documentId: document.id, - email: { - subject, - message, - }, - }); - - router.refresh(); - - onContinue?.(); - } catch (err) { - console.error(err); - - toast({ - title: 'Error', - description: 'An error occurred while sending the document.', - variant: 'destructive', - }); - } - }); - return ( - - + @@ -151,19 +119,19 @@ export const AddSubjectFormPartial = ({ - + - - + + - onFormSubmit()} + onGoNextClick={() => handleSubmit(onSubmit)()} onGoBackClick={onGoBack} /> - - + + ); }; diff --git a/apps/web/src/components/forms/edit-document/add-subject.types.ts b/packages/ui/primitives/document-flow/add-subject.types.ts similarity index 100% rename from apps/web/src/components/forms/edit-document/add-subject.types.ts rename to packages/ui/primitives/document-flow/add-subject.types.ts diff --git a/apps/web/src/components/forms/edit-document/container.tsx b/packages/ui/primitives/document-flow/document-flow-root.tsx similarity index 79% rename from apps/web/src/components/forms/edit-document/container.tsx rename to packages/ui/primitives/document-flow/document-flow-root.tsx index 04e998719..8c38bb811 100644 --- a/apps/web/src/components/forms/edit-document/container.tsx +++ b/packages/ui/primitives/document-flow/document-flow-root.tsx @@ -7,16 +7,16 @@ import { Loader } from 'lucide-react'; import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; -export type EditDocumentFormContainerProps = HTMLAttributes & { +export type DocumentFlowFormContainerProps = HTMLAttributes & { children?: React.ReactNode; }; -export const EditDocumentFormContainer = ({ +export const DocumentFlowFormContainer = ({ children, id = 'edit-document-form', className, ...props -}: EditDocumentFormContainerProps) => { +}: DocumentFlowFormContainerProps) => { return (
& { +export type DocumentFlowFormContainerContentProps = HTMLAttributes & { title: string; description: string; children?: React.ReactNode; }; -export const EditDocumentFormContainerContent = ({ +export const DocumentFlowFormContainerContent = ({ children, title, description, className, ...props -}: EditDocumentFormContainerContentProps) => { +}: DocumentFlowFormContainerContentProps) => { return (

{title}

@@ -57,15 +57,15 @@ export const EditDocumentFormContainerContent = ({ ); }; -export type EditDocumentFormContainerFooterProps = HTMLAttributes & { +export type DocumentFlowFormContainerFooterProps = HTMLAttributes & { children?: React.ReactNode; }; -export const EditDocumentFormContainerFooter = ({ +export const DocumentFlowFormContainerFooter = ({ children, className, ...props -}: EditDocumentFormContainerFooterProps) => { +}: DocumentFlowFormContainerFooterProps) => { return (
{children} @@ -73,17 +73,17 @@ export const EditDocumentFormContainerFooter = ({ ); }; -export type EditDocumentFormContainerStepProps = { +export type DocumentFlowFormContainerStepProps = { title: string; step: number; maxStep: number; }; -export const EditDocumentFormContainerStep = ({ +export const DocumentFlowFormContainerStep = ({ title, step, maxStep, -}: EditDocumentFormContainerStepProps) => { +}: DocumentFlowFormContainerStepProps) => { return (

@@ -105,7 +105,7 @@ export const EditDocumentFormContainerStep = ({ ); }; -export type EditDocumentFormContainerActionsProps = { +export type DocumentFlowFormContainerActionsProps = { canGoBack?: boolean; canGoNext?: boolean; goNextLabel?: string; @@ -116,7 +116,7 @@ export type EditDocumentFormContainerActionsProps = { disabled?: boolean; }; -export const EditDocumentFormContainerActions = ({ +export const DocumentFlowFormContainerActions = ({ canGoBack = true, canGoNext = true, goNextLabel = 'Continue', @@ -125,7 +125,7 @@ export const EditDocumentFormContainerActions = ({ onGoNextClick, loading, disabled, -}: EditDocumentFormContainerActionsProps) => { +}: DocumentFlowFormContainerActionsProps) => { return (