{"version":3,"file":"static/chunks/2b7b2d2a-4c3ab083ea6e45b3.js","mappings":"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","sources":["webpack://_N_E/./node_modules/pdfjs-dist/build/pdf.js"],"sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(this, function() {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addLinkAttributes = addLinkAttributes;\nexports.deprecated = deprecated;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.isDataScheme = isDataScheme;\nexports.isFetchSupported = isFetchSupported;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.StatTimer = exports.RenderingCancelledException = exports.PDFDateString = exports.PageViewport = exports.LinkTarget = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.BaseCMapReaderFactory = exports.BaseCanvasFactory = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nexports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n (0, _util.unreachable)(\"Abstract method `create` called.\");\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n}\n\nexports.BaseCanvasFactory = BaseCanvasFactory;\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = this._document.createElement(\"canvas\");\n\n const context = canvas.getContext(\"2d\");\n canvas.width = width;\n canvas.height = height;\n return {\n canvas,\n context\n };\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = false\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) {\n return fetch(url).then(async response => {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n let cMapData;\n\n if (this.isCompressed) {\n cMapData = new Uint8Array(await response.arrayBuffer());\n } else {\n cMapData = (0, _util.stringToBytes)(await response.text());\n }\n\n return {\n cMapData,\n compressionType\n };\n });\n }\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (this.isCompressed) {\n request.responseType = \"arraybuffer\";\n }\n\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n let cMapData;\n\n if (this.isCompressed && request.response) {\n cMapData = new Uint8Array(request.response);\n } else if (!this.isCompressed && request.responseText) {\n cMapData = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (cMapData) {\n resolve({\n cMapData,\n compressionType\n });\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMSVGFactory {\n create(width, height) {\n (0, _util.assert)(width > 0 && height > 0, \"Invalid SVG dimensions\");\n const svg = document.createElementNS(SVG_NS, \"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n svg.setAttribute(\"width\", width + \"px\");\n svg.setAttribute(\"height\", height + \"px\");\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n return svg;\n }\n\n createElement(type) {\n (0, _util.assert)(typeof type === \"string\", \"Invalid SVG element type\");\n return document.createElementNS(SVG_NS, type);\n }\n\n}\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n\n if (rotation < 0) {\n rotation += 360;\n }\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n\n}\n\nexports.PageViewport = PageViewport;\n\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, type) {\n super(msg);\n this.type = type;\n }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\nconst LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\n\nfunction addLinkAttributes(link, {\n url,\n target,\n rel,\n enabled = true\n} = {}) {\n (0, _util.assert)(url && typeof url === \"string\", 'addLinkAttributes: A valid \"url\" parameter must provided.');\n const urlNullRemoved = (0, _util.removeNullCharacters)(url);\n\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${urlNullRemoved}`;\n\n link.onclick = () => {\n return false;\n };\n }\n\n let targetStr = \"\";\n\n switch (target) {\n case LinkTarget.NONE:\n break;\n\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf(\"#\");\n const query = url.indexOf(\"?\");\n const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nclass StatTimer {\n constructor() {\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n\n toString() {\n const outBuf = [];\n let longest = 0;\n\n for (const time of this.times) {\n const name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n\n for (const time of this.times) {\n const duration = time.end - time.start;\n outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n }\n\n return outBuf.join(\"\");\n }\n\n}\n\nexports.StatTimer = StatTimer;\n\nfunction isFetchSupported() {\n return typeof fetch !== \"undefined\" && typeof Response !== \"undefined\" && \"body\" in Response.prototype && typeof ReadableStream !== \"undefined\";\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n\n resolve(evt);\n };\n\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || !(0, _util.isString)(input)) {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n const matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n\n}\n\nexports.PDFDateString = PDFDateString;\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createObjectURL = createObjectURL;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isAscii = isAscii;\nexports.isBool = isBool;\nexports.isNum = isNum;\nexports.isSameOrigin = isSameOrigin;\nexports.isString = isString;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.removeNullCharacters = removeNullCharacters;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF16BEString = stringToUTF16BEString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.VerbosityLevel = exports.Util = exports.UNSUPPORTED_FEATURES = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.IsLittleEndianCached = exports.IsEvalSupportedCached = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\n\n__w_pdfjs_require__(3);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\n\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = this.constructor.name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg);\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {}\n\nexports.AbortException = AbortException;\nconst NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined, \"Invalid argument for bytesToString\");\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n const length = str.length;\n const bytes = new Uint8Array(length);\n\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n\n for (const [key, value] of map) {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n }\n\n};\nexports.IsLittleEndianCached = IsLittleEndianCached;\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n }\n\n};\nexports.IsEvalSupportedCached = IsEvalSupportedCached;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n\n static apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n const result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i)));\n }\n } else {\n for (let i = 0; i < length; ++i) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));\n }\n\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nfunction createObjectURL(data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let buffer = `data:${contentType};base64,`;\n\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n\n return buffer;\n}\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\n;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.version = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultCMapReaderFactory = exports.DefaultCanvasFactory = exports.build = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _font_loader = __w_pdfjs_require__(6);\n\nvar _node_utils = __w_pdfjs_require__(7);\n\nvar _annotation_storage = __w_pdfjs_require__(8);\n\nvar _api_compatibility = __w_pdfjs_require__(9);\n\nvar _canvas = __w_pdfjs_require__(10);\n\nvar _worker_options = __w_pdfjs_require__(12);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(13);\n\nvar _metadata = __w_pdfjs_require__(14);\n\nvar _optional_content_config = __w_pdfjs_require__(15);\n\nvar _transport_stream = __w_pdfjs_require__(16);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DefaultCanvasFactory = _is_node.isNodeJS ? _node_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nconst DefaultCMapReaderFactory = _is_node.isNodeJS ? _node_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nlet createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n let source;\n\n if (typeof src === \"string\" || src instanceof URL) {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either string, URL, Uint8Array, or parameter object.\");\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n\n source = src;\n }\n\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n const value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n (0, _util.warn)(`Cannot create valid URL: \"${ex}\".`);\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString();\n continue;\n }\n\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n\n case \"range\":\n rangeTransport = value;\n continue;\n\n case \"worker\":\n worker = value;\n continue;\n\n case \"data\":\n if (_is_node.isNodeJS && typeof Buffer !== \"undefined\" && value instanceof Buffer) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break;\n } else if (typeof value === \"string\") {\n params[key] = (0, _util.stringToBytes)(value);\n } else if (typeof value === \"object\" && value !== null && !isNaN(value.length)) {\n params[key] = new Uint8Array(value);\n } else if ((0, _util.isArrayBuffer)(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\"Invalid PDF binary data: either typed array, \" + \"string, or array-like object is expected in the data property.\");\n }\n\n continue;\n }\n\n params[key] = value;\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (typeof params.docBaseUrl !== \"string\" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) {\n params.docBaseUrl = null;\n }\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.ownerDocument === \"undefined\") {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n const docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\n\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed\"));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename;\n }\n\n return worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion: '2.9.359',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n enableXfa: source.enableXfa\n }).then(function (workerId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n });\n}\n\nconst PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = \"d\" + nextDocumentId++;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n destroy() {\n this.destroyed = true;\n const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n });\n }\n\n }\n\n return PDFDocumentLoadingTask;\n}();\n\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n\n}\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n get fingerprint() {\n return this._pdfInfo.fingerprint;\n }\n\n get isPureXfa() {\n return this._pdfInfo.isPureXfa;\n }\n\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n getOutline() {\n return this._transport.getOutline();\n }\n\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n getData() {\n return this._transport.getData();\n }\n\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n getStats() {\n return this._transport.getStats();\n }\n\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n\n destroy() {\n return this.loadingTask.destroy();\n }\n\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n saveDocument() {\n if (arguments.length > 0) {\n (0, _display_utils.deprecated)(\"saveDocument no longer accepts any options.\");\n }\n\n if (this._transport.annotationStorage.size <= 0) {\n (0, _display_utils.deprecated)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n\n return this._transport.saveDocument();\n }\n\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n get ref() {\n return this._pageInfo.ref;\n }\n\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n get view() {\n return this._pageInfo.view;\n }\n\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n getAnnotations({\n intent = null\n } = {}) {\n if (!this._annotationsPromise || this._annotationsIntent !== intent) {\n this._annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);\n this._annotationsIntent = intent;\n }\n\n return this._annotationsPromise;\n }\n\n getJSActions() {\n return this._jsActionsPromise || (this._jsActionsPromise = this._transport.getPageJSActions(this._pageIndex));\n }\n\n getXfa() {\n return this._xfaPromise || (this._xfaPromise = this._transport.getPageXfa(this._pageIndex));\n }\n\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n renderInteractiveForms = false,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n includeAnnotationStorage = false,\n optionalContentConfigPromise = null\n }) {\n var _intentState;\n\n if (arguments[0]?.annotationStorage !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts an `annotationStorage` option, \" + \"please use the `includeAnnotationStorage`-boolean instead.\");\n includeAnnotationStorage || (includeAnnotationStorage = !!arguments[0].annotationStorage);\n }\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const renderingIntent = intent === \"print\" ? \"print\" : \"display\";\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(renderingIntent);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(renderingIntent, intentState);\n }\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n ownerDocument: this._ownerDocument\n });\n const annotationStorage = includeAnnotationStorage ? this._transport.annotationStorage.serializable : null;\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true,\n annotationStorage\n });\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n if (this.cleanupAfterRender || renderingIntent === \"print\") {\n this.pendingCleanup = true;\n }\n\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: renderingIntent !== \"print\",\n pdfBug: this._pdfBug\n });\n ((_intentState = intentState).renderTasks || (_intentState.renderTasks = new Set())).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const renderingIntent = \"oplist\";\n\n let intentState = this._intentStates.get(renderingIntent);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(renderingIntent, intentState);\n }\n\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n var _intentState2;\n\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n ((_intentState2 = intentState).renderTasks || (_intentState2.renderTasks = new Set())).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent\n });\n }\n\n return intentState.opListReadCapability.promise;\n }\n\n streamTextContent({\n normalizeWhitespace = false,\n disableCombineTextItems = false,\n includeMarkedContent = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n\n size(textContent) {\n return textContent.items.length;\n }\n\n });\n }\n\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n\n getStructTree() {\n return this._structTreePromise || (this._structTreePromise = this._transport.getStructTree(this._pageIndex));\n }\n\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this._pageIndex] = null;\n const waitOn = [];\n\n for (const [intent, intentState] of this._intentStates) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intent === \"oplist\") {\n continue;\n }\n\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n\n this.objs.clear();\n this._annotationsPromise = null;\n this._jsActionsPromise = null;\n this._xfaPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n\n this.objs.clear();\n this._annotationsPromise = null;\n this._jsActionsPromise = null;\n this._xfaPromise = null;\n this._structTreePromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n this.pendingCleanup = false;\n return true;\n }\n\n _startRenderPage(transparency, intent) {\n const intentState = this._intentStates.get(intent);\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n _pumpOperatorList(args) {\n (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.');\n\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", args);\n\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(args.intent);\n\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (this._transport.destroyed) {\n return;\n }\n\n this._renderPageChunk(value, intentState);\n\n pump();\n }, reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n\n pump();\n }\n\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n (0, _util.assert)(reason instanceof Error || typeof reason === \"object\" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.');\n\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n\n if (reason instanceof _display_utils.RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n\n intentState.streamReader.cancel(new _util.AbortException(reason?.message));\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n for (const [intent, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(intent);\n\n break;\n }\n }\n\n this.cleanup();\n }\n\n get stats() {\n return this._stats;\n }\n\n}\n\nexports.PDFPageProxy = PDFPageProxy;\n\nclass LoopbackPort {\n constructor() {\n this._listeners = [];\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n\n let buffer, result;\n\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n if (transfers?.includes(buffer)) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n\n cloned.set(value, result);\n return result;\n }\n\n if (value instanceof Map) {\n result = new Map();\n cloned.set(value, result);\n\n for (const [key, val] of value) {\n result.set(key, cloneValue(val));\n }\n\n return result;\n }\n\n if (value instanceof Set) {\n result = new Set();\n cloned.set(value, result);\n\n for (const val of value) {\n result.add(cloneValue(val));\n }\n\n return result;\n }\n\n if (value instanceof URL) {\n throw new Error(`LoopbackPort.postMessage - cannot clone: ${value}`);\n }\n\n result = Array.isArray(value) ? [] : Object.create(null);\n cloned.set(value, result);\n\n for (const i in value) {\n let desc,\n p = value;\n\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n\n if (typeof desc.value === \"function\") {\n if (value.hasOwnProperty?.(i)) {\n throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`);\n }\n\n continue;\n }\n\n result[i] = cloneValue(desc.value);\n }\n\n return result;\n }\n\n const cloned = new WeakMap();\n const event = {\n data: cloneValue(obj)\n };\n\n this._deferred.then(() => {\n for (const listener of this._listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n\n}\n\nexports.LoopbackPort = LoopbackPort;\n\nconst PDFWorker = function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let isWorkerDisabled = false;\n let fallbackWorkerSrc;\n let nextFakeWorkerId = 0;\n let fakeWorkerCapability;\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n isWorkerDisabled = true;\n fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\" && \"currentScript\" in document) {\n const pdfjsFilePath = document.currentScript?.src;\n\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n function getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (typeof fallbackWorkerSrc !== \"undefined\") {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n let mainWorkerMessageHandler;\n\n try {\n mainWorkerMessageHandler = globalThis.pdfjsWorker?.WorkerMessageHandler;\n } catch (ex) {}\n\n return mainWorkerMessageHandler || null;\n }\n\n function setupFakeWorkerGlobal() {\n if (fakeWorkerCapability) {\n return fakeWorkerCapability.promise;\n }\n\n fakeWorkerCapability = (0, _util.createPromiseCapability)();\n\n const loader = async function () {\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(getWorkerSrc());\n return worker.WorkerMessageHandler;\n }\n\n await (0, _display_utils.loadScript)(getWorkerSrc());\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);\n return fakeWorkerCapability.promise;\n }\n\n function createCDNWrapper(url) {\n const wrapper = \"importScripts('\" + url + \"');\";\n return URL.createObjectURL(new Blob([wrapper]));\n }\n\n class PDFWorker {\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n if (port && pdfWorkerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.postMessageTransfers = true;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n get promise() {\n return this._readyCapability.promise;\n }\n\n get port() {\n return this._port;\n }\n\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n\n _initialize() {\n if (typeof Worker !== \"undefined\" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n let workerSrc = getWorkerSrc();\n\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n if (!data.supportTransfers) {\n this.postMessageTransfers = false;\n }\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);\n\n try {\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.warn)(\"Cannot use postMessage transfers.\");\n testObj[0] = 0;\n messageHandler.send(\"test\", testObj);\n }\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n isWorkerDisabled = true;\n }\n\n setupFakeWorkerGlobal().then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n const port = new LoopbackPort();\n this._port = port;\n const id = \"fake\" + nextFakeWorkerId++;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n\n static fromPort(params) {\n if (!params || !params.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n\n static getWorkerSrc() {\n return getWorkerSrc();\n }\n\n }\n\n return PDFWorker;\n}();\n\nexports.PDFWorker = PDFWorker;\n\nclass WorkerTransport {\n constructor(messageHandler, loadingTask, networkStream, params) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument\n });\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n\n const waitOn = [];\n\n for (const page of this.pageCache) {\n if (page) {\n waitOn.push(page._destroy());\n }\n }\n\n this.pageCache.length = 0;\n this.pagePromises.length = 0;\n\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this._hasJSActionsPromise = null;\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = (0, _util.createPromiseCapability)();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(this._lastProgress);\n }\n\n fullReader.onProgress = evt => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n }\n\n if (!(reason instanceof Error)) {\n const msg = \"DocException - expected a valid Error.\";\n (0, _util.warn)(msg);\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n this._passwordCapability.resolve({\n password\n });\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length\n });\n }\n\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n\n const page = this.pageCache[data.pageIndex];\n\n page._startRenderPage(data.transparency, data.intent);\n });\n messageHandler.on(\"commonobj\", data => {\n if (this.destroyed) {\n return;\n }\n\n const [id, type, exportedData] = data;\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n\n if (params.pdfBug && globalThis.FontInspector?.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n\n };\n }\n\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n\n this.commonObjs.resolve(id, font);\n });\n break;\n\n case \"FontPath\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", data => {\n if (this.destroyed) {\n return undefined;\n }\n\n const [id, pageIndex, type, imageData] = data;\n const pageProxy = this.pageCache[pageIndex];\n\n if (pageProxy.objs.has(id)) {\n return undefined;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData?.data?.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n\n break;\n\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n\n return undefined;\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total\n });\n }\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", (data, sink) => {\n if (this.destroyed) {\n sink.error(new Error(\"Worker was destroyed\"));\n return;\n }\n\n let fetched = false;\n\n sink.onPull = () => {\n if (fetched) {\n sink.close();\n return;\n }\n\n fetched = true;\n this.CMapReaderFactory.fetch(data).then(function (builtInCMap) {\n sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);\n }).catch(function (reason) {\n sink.error(reason);\n });\n };\n });\n }\n\n _onUnsupportedFeature({\n featureId\n }) {\n if (this.destroyed) {\n return;\n }\n\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\n }\n\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request\"));\n }\n\n const pageIndex = pageNumber - 1;\n\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug);\n this.pageCache[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n\n getPageIndex(ref) {\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n ref\n }).catch(function (reason) {\n return Promise.reject(new Error(reason));\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n\n saveDocument() {\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n numPages: this._numPages,\n annotationStorage: this.annotationStorage.serializable,\n filename: this._fullReader?.filename ?? null\n }).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n\n getFieldObjects() {\n return this.messageHandler.sendWithPromise(\"GetFieldObjects\", null);\n }\n\n hasJSActions() {\n return this._hasJSActionsPromise || (this._hasJSActionsPromise = this.messageHandler.sendWithPromise(\"HasJSActions\", null));\n }\n\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n\n getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n\n getDocJSActions() {\n return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n }\n\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n\n getPageXfa(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageXfa\", {\n pageIndex\n });\n }\n\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n };\n });\n }\n\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n\n getStats() {\n return this.messageHandler.sendWithPromise(\"GetStats\", null);\n }\n\n async startCleanup(keepLoadedFonts = false) {\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n if (this.destroyed) {\n return;\n }\n\n for (let i = 0, ii = this.pageCache.length; i < ii; i++) {\n const page = this.pageCache[i];\n\n if (!page) {\n continue;\n }\n\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`);\n }\n }\n\n this.commonObjs.clear();\n\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n\n this._hasJSActionsPromise = null;\n }\n\n get loadingParams() {\n const params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n disableFontFace: params.disableFontFace\n });\n }\n\n}\n\nclass PDFObjects {\n constructor() {\n this._objs = Object.create(null);\n }\n\n _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n\n return this._objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n }\n\n get(objId, callback = null) {\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n\n return null;\n }\n\n const obj = this._objs[objId];\n\n if (!obj || !obj.resolved) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n\n return obj.data;\n }\n\n has(objId) {\n const obj = this._objs[objId];\n return obj?.resolved || false;\n }\n\n resolve(objId, data) {\n const obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n }\n\n clear() {\n this._objs = Object.create(null);\n }\n\n}\n\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n cancel() {\n this._internalRenderTask.cancel();\n }\n\n}\n\nconst InternalRenderTask = function InternalRenderTaskClosure() {\n const canvasInRendering = new WeakSet();\n\n class InternalRenderTask {\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n operatorList,\n pageIndex,\n canvasFactory,\n useRequestAnimationFrame = false,\n pdfBug = false\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this._pdfBug = pdfBug;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n canvasInRendering.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n const {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, imageLayer, optionalContentConfig);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\"));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n }\n\n _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback();\n }\n }\n }\n\n }\n\n return InternalRenderTask;\n}();\n\nconst version = '2.9.359';\nexports.version = version;\nconst build = 'e667c8cbc';\nexports.build = build;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature,\n ownerDocument = globalThis.document\n }) {\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n\n this._document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n\n this._document.documentElement.getElementsByTagName(\"head\")[0].appendChild(styleElement);\n }\n\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n if (font.attached || font.missingFile) {\n return;\n }\n\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n });\n\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n\n return;\n }\n\n const rule = font.createFontFaceRule();\n\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n\n this._prepareFontLoadEvent([rule], [font], request);\n });\n }\n }\n\n _queueLoadingCallback(callback) {\n (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n }\n\n get isFontLoadingAPISupported() {\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", !!this._document?.fonts);\n }\n\n get isSyncFontLoadingSupported() {\n (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n\n get _loadTestFont() {\n (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n\n}\n\nlet FontLoader;\nexports.FontLoader = FontLoader;\n{\n exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(params) {\n super(params);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n\n if (typeof navigator === \"undefined\") {\n supported = true;\n } else {\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m?.[1] >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n const otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n const context = this.loadingContext;\n const request = {\n id: `pdfjs-font-loading-${context.nextRequestId++}`,\n done: false,\n complete: completeRequest,\n callback\n };\n context.requests.push(request);\n return request;\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function () {\n return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n };\n\n return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n let i, ii;\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const names = [];\n\n for (const font of fonts) {\n names.push(font.loadedName);\n }\n\n names.push(loadTestFontId);\n\n const div = this._document.createElement(\"div\");\n\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (const name of names) {\n const span = this._document.createElement(\"span\");\n\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.appendChild(span);\n }\n\n this._document.body.appendChild(div);\n\n isFontReady(loadTestFontId, () => {\n this._document.body.removeChild(div);\n\n request.complete();\n });\n }\n\n };\n}\n\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature,\n fontRegistry = null\n }) {\n this.compiledGlyphs = Object.create(null);\n\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n let nativeFontFace;\n\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n const data = (0, _util.bytesToString)(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n let cmds;\n\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {\n const jsBuf = [];\n\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n\n}\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeCMapReaderFactory = exports.NodeCanvasFactory = void 0;\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _util = __w_pdfjs_require__(2);\n\nlet NodeCanvasFactory = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: NodeCanvasFactory\");\n }\n\n};\nexports.NodeCanvasFactory = NodeCanvasFactory;\nlet NodeCMapReaderFactory = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: NodeCMapReaderFactory\");\n }\n\n};\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nif (_is_node.isNodeJS) {\n exports.NodeCanvasFactory = NodeCanvasFactory = class extends _display_utils.BaseCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const Canvas = require(\"canvas\");\n\n const canvas = Canvas.createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n\n };\n exports.NodeCMapReaderFactory = NodeCMapReaderFactory = class extends _display_utils.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n\n resolve({\n cMapData: new Uint8Array(data),\n compressionType\n });\n });\n });\n }\n\n };\n}\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationStorage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass AnnotationStorage {\n constructor() {\n this._storage = new Map();\n this._modified = false;\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n getValue(key, defaultValue) {\n const obj = this._storage.get(key);\n\n return obj !== undefined ? obj : defaultValue;\n }\n\n setValue(key, value) {\n const obj = this._storage.get(key);\n\n let modified = false;\n\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n this._storage.set(key, value);\n\n modified = true;\n }\n\n if (modified) {\n this._setModified();\n }\n }\n\n getAll() {\n return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null;\n }\n\n get size() {\n return this._storage.size;\n }\n\n _setModified() {\n if (!this._modified) {\n this._modified = true;\n\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n\n resetModified() {\n if (this._modified) {\n this._modified = false;\n\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n\n get serializable() {\n return this._storage.size > 0 ? this._storage : null;\n }\n\n}\n\nexports.AnnotationStorage = AnnotationStorage;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.apiCompatibilityParams = void 0;\n\nvar _is_node = __w_pdfjs_require__(4);\n\nconst compatibilityParams = Object.create(null);\n{\n (function checkFontFace() {\n if (_is_node.isNodeJS) {\n compatibilityParams.disableFontFace = true;\n }\n })();\n}\nconst apiCompatibilityParams = Object.freeze(compatibilityParams);\nexports.apiCompatibilityParams = apiCompatibilityParams;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _pattern_helper = __w_pdfjs_require__(11);\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst COMPILE_TYPE3_GLYPHS = true;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nconst LINEWIDTH_SCALE_FACTOR = 1.000001;\n\nfunction addContextCurrentTransform(ctx) {\n if (ctx.mozCurrentTransform) {\n return;\n }\n\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._originalResetTransform = ctx.resetTransform;\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n\n try {\n const desc = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(ctx), \"lineWidth\");\n ctx._setLineWidth = desc.set;\n ctx._getLineWidth = desc.get;\n Object.defineProperty(ctx, \"lineWidth\", {\n set: function setLineWidth(width) {\n this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR);\n },\n get: function getLineWidth() {\n return this._getLineWidth();\n }\n });\n } catch (_) {}\n\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n const [a, b, c, d, e, f] = this._transformMatrix;\n const ad_bc = a * d - b * c;\n const bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n const old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n const prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n const m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n const m = this._transformMatrix;\n m[0] = m[0] * x;\n m[1] = m[1] * x;\n m[2] = m[2] * y;\n m[3] = m[3] * y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n const m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n this._transformMatrix = [1, 0, 0, 1, 0, 0];\n\n ctx._originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n const cosValue = Math.cos(angle);\n const sinValue = Math.sin(angle);\n const m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n\n this._originalRotate(angle);\n };\n}\n\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n getCanvas(id, width, height, trackTransform) {\n let canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n }\n\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n\n}\n\nfunction compileType3Glyph(imgData) {\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width = imgData.width,\n height = imgData.height,\n width1 = width + 1;\n let i, ii, j, j0;\n const points = new Uint8Array(width1 * (height + 1));\n const lineSize = width + 7 & ~7,\n data0 = imgData.data;\n const data = new Uint8Array(lineSize * height);\n let pos = 0;\n\n for (i = 0, ii = data0.length; i < ii; i++) {\n const elem = data0[i];\n let mask = 128;\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n let count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const outlines = [];\n\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n const coords = [p % width1, i];\n const p0 = p;\n let type = points[p];\n\n do {\n const step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n const pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n coords.push(p % width1, p / width1 | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n outlines.push(coords);\n --i;\n }\n\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n\n for (let k = 0, kk = outlines.length; k < kk; k++) {\n const o = outlines[k];\n c.moveTo(o[0], o[1]);\n\n for (let l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nclass CanvasExtraState {\n constructor() {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null;\n this.transferMaps = null;\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n}\n\nconst CanvasGraphics = function CanvasGraphicsClosure() {\n const EXECUTION_TIME = 15;\n const EXECUTION_STEPS = 10;\n\n function putBinaryImageData(ctx, imgData, transferMaps = null) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n let white = 0xffffffff;\n let black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n }\n\n function putBinaryImageMask(ctx, imgData) {\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n let destPos = 3;\n\n for (let j = 0; j < thisChunkHeight; j++) {\n let elem,\n mask = 0;\n\n for (let k = 0; k < width; k++) {\n if (!mask) {\n elem = src[srcPos++];\n mask = 128;\n }\n\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n\n function copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (let i = 0, ii = properties.length; i < ii; i++) {\n const property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n }\n\n function resetCtxToDefault(ctx) {\n ctx.strokeStyle = \"#000000\";\n ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n }\n\n function composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n }\n\n function composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n\n for (let i = 3; i < length; i += 4) {\n const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n let composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n const layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n\n function composeSMask(ctx, smask, layerCtx) {\n const mask = smask.canvas;\n const maskCtx = smask.context;\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, smask.backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\n }\n\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n const NORMAL_CLIP = {};\n const EO_CLIP = {};\n\n class CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState();\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedGetSinglePixelWidth = null;\n }\n\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n this.ctx.save();\n this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n this._combinedScaleFactor = Math.hypot(this.baseTransform[0], this.baseTransform[2]);\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n }\n\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n }\n\n endDrawing() {\n while (this.stateStack.length || this.current.activeSMask !== null) {\n this.restore();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n }\n\n setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (let i = 0, ii = states.length; i < ii; i++) {\n const state = states[i];\n const key = state[0];\n const value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n if (this.current.activeSMask) {\n if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n\n this.current.activeSMask = value ? this.tempSMask : null;\n\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n\n this.tempSMask = null;\n break;\n\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n }\n\n beginSMaskGroup() {\n const activeSMask = this.current.activeSMask;\n const drawnWidth = activeSMask.canvas.width;\n const drawnHeight = activeSMask.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n const currentCtx = this.ctx;\n const currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n\n suspendSMaskGroup() {\n const groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx);\n this.ctx.restore();\n this.ctx.save();\n copyCtxState(groupCtx, this.ctx);\n this.current.resumeSMaskCtx = groupCtx;\n\n const deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n groupCtx.restore();\n }\n\n resumeSMaskGroup() {\n const groupCtx = this.current.resumeSMaskCtx;\n const currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n\n endSMaskGroup() {\n const groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n\n const deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n }\n\n save() {\n this.ctx.save();\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n }\n\n restore() {\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {\n this.endSMaskGroup();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.pendingClip = null;\n this._cachedGetSinglePixelWidth = null;\n } else {\n this.current.activeSMask = null;\n }\n }\n\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedGetSinglePixelWidth = null;\n }\n\n constructPath(ops, args) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n\n ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n current.setCurrentPoint(x, y);\n }\n\n closePath() {\n this.ctx.closePath();\n }\n\n stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n const lineWidth = this.getSinglePixelWidth();\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth);\n ctx.stroke();\n ctx.restore();\n } else {\n const lineWidth = this.getSinglePixelWidth();\n\n if (lineWidth < 0 && -lineWidth >= this.current.lineWidth) {\n ctx.save();\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth);\n ctx.stroke();\n }\n }\n }\n\n if (consumePath) {\n this.consumePath();\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n\n if (this.contentVisible) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n }\n\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n\n endPath() {\n this.consumePath();\n }\n\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n\n beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return;\n }\n\n const name = fontObj.loadedName || \"sans-serif\";\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n const typeface = `\"${name}\", ${fontObj.fallbackName}`;\n let browserFontSize = size;\n\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n paintChar(character, x, y, patternTransform, resetLineWidthToOne) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (resetLineWidthToOne) {\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n }\n\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (resetLineWidthToOne) {\n ctx.save();\n ctx.moveTo(x, y);\n ctx.resetTransform();\n ctx.lineWidth = Math.round(this._combinedScaleFactor);\n ctx.strokeText(character, 0, 0);\n ctx.restore();\n } else {\n ctx.strokeText(character, x, y);\n }\n }\n }\n\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n let patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n let lineWidth = current.lineWidth;\n let resetLineWidthToOne = false;\n const scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth();\n resetLineWidthToOne = lineWidth < 0;\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n let x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform, resetLineWidthToOne);\n\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform, resetLineWidthToOne);\n }\n }\n }\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n return undefined;\n }\n\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n }\n\n setCharWidth(xWidth, yWidth) {}\n\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n }\n\n getColorN_Pattern(IR) {\n let pattern;\n\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(IR);\n }\n\n return pattern;\n }\n\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n\n setStrokeRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n\n setFillRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n\n shadingFill(patternIR) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n this.save();\n const pattern = (0, _pattern_helper.getShadingPattern)(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n const inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n const canvas = ctx.canvas;\n const width = canvas.width;\n const height = canvas.height;\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n }\n\n beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n\n beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.clip();\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n const currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n\n const currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n let cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n this.current.activeSMask = null;\n }\n\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.groupLevel--;\n const groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n\n this.restore();\n }\n\n beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n }\n\n endAnnotations() {\n this.restore();\n }\n\n beginAnnotation(rect, transform, matrix) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n }\n\n endAnnotation() {\n this.restore();\n }\n\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n const width = img.width,\n height = img.height;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({\n data: img.data,\n width,\n height\n });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph?.compiled) {\n glyph.compiled(ctx);\n return;\n }\n\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n this.paintInlineImageXObject(maskCanvas.canvas);\n }\n\n paintImageMaskXObjectRepeat(imgData, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, imgData);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n const ctx = this.ctx;\n\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n }\n\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n\n for (let i = 0, ii = images.length; i < ii; i++) {\n const image = images[i];\n const width = image.width,\n height = image.height;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n }\n\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n const currentTransform = ctx.mozCurrentTransformInverse;\n let widthScale = Math.max(Math.hypot(currentTransform[0], currentTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(currentTransform[2], currentTransform[3]), 1);\n let imgToPaint, tmpCanvas, tmpCtx;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n const position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3]\n });\n }\n\n this.restore();\n }\n\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n for (let i = 0, ii = map.length; i < ii; i++) {\n const entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n const position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n }\n\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n\n this.ctx.fillRect(0, 0, 1, 1);\n }\n\n markPoint(tag) {}\n\n markPointProps(tag, properties) {}\n\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n this.contentVisible = this.isContentVisible();\n }\n\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n\n beginCompat() {}\n\n endCompat() {}\n\n consumePath() {\n const ctx = this.ctx;\n\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n\n this.pendingClip = null;\n }\n\n ctx.beginPath();\n }\n\n getSinglePixelWidth() {\n if (this._cachedGetSinglePixelWidth === null) {\n const m = this.ctx.mozCurrentTransform;\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const sqNorm1 = m[0] ** 2 + m[2] ** 2;\n const sqNorm2 = m[1] ** 2 + m[3] ** 2;\n const pixelHeight = Math.sqrt(Math.max(sqNorm1, sqNorm2)) / absDet;\n\n if (sqNorm1 !== sqNorm2 && this._combinedScaleFactor * pixelHeight > 1) {\n this._cachedGetSinglePixelWidth = -(this._combinedScaleFactor * pixelHeight);\n } else if (absDet > Number.EPSILON) {\n this._cachedGetSinglePixelWidth = pixelHeight;\n } else {\n this._cachedGetSinglePixelWidth = 1;\n }\n }\n\n return this._cachedGetSinglePixelWidth;\n }\n\n getCanvasPosition(x, y) {\n const transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n\n return true;\n }\n\n }\n\n for (const op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n}();\n\nexports.CanvasGraphics = CanvasGraphics;\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getShadingPattern = getShadingPattern;\nexports.TilingPattern = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nlet svgElement;\n\nfunction createMatrix(matrix) {\n if (typeof DOMMatrix !== \"undefined\") {\n return new DOMMatrix(matrix);\n }\n\n if (!svgElement) {\n svgElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n }\n\n return svgElement.createSVGMatrix(matrix);\n}\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === \"undefined\") {\n return;\n }\n\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n\n getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n\n}\n\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this._matrix = IR[8];\n }\n\n getPattern(ctx, owner, shadingFill) {\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", ctx.canvas.width, ctx.canvas.height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n\n if (!shadingFill) {\n tmpCtx.setTransform.apply(tmpCtx, owner.baseTransform);\n\n if (this._matrix) {\n tmpCtx.transform.apply(tmpCtx, this._matrix);\n }\n } else {\n tmpCtx.setTransform.apply(tmpCtx, ctx.mozCurrentTransform);\n }\n\n applyBoundingBox(tmpCtx, this._bbox);\n let grad;\n\n if (this._type === \"axial\") {\n grad = tmpCtx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = tmpCtx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n\n tmpCtx.fillStyle = grad;\n tmpCtx.fill();\n const pattern = ctx.createPattern(tmpCanvas.canvas, \"repeat\");\n pattern.setTransform(createMatrix(ctx.mozCurrentTransformInverse));\n return pattern;\n }\n\n}\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y1 === y2) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\n\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error(\"illegal figure\");\n }\n}\n\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._matrix = IR[6];\n this._bbox = IR[7];\n this._background = IR[8];\n }\n\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n const bytes = data.data;\n\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n\n getPattern(ctx, owner, shadingFill) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n\n if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (this._matrix) {\n const matrixScale = _util.Util.singularValueDecompose2dScale(this._matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n const temporaryPatternCanvas = this._createMeshCanvas(scale, shadingFill ? null : this._background, owner.cachedCanvases);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (this._matrix) {\n ctx.transform.apply(ctx, this._matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n\n}\n\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n\n}\n\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\n\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\n\nclass TilingPattern {\n static get MAX_PATTERN_SIZE() {\n return (0, _util.shadow)(this, \"MAX_PATTERN_SIZE\", 3000);\n }\n\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice();\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale\n };\n }\n\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale,\n size\n };\n }\n\n clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n }\n\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n\n case PaintType.UNCOLORED:\n const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n\n getPattern(ctx, owner, shadingFill) {\n ctx = this.ctx;\n let matrix = ctx.mozCurrentTransformInverse;\n\n if (!shadingFill) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = createMatrix(matrix);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n pattern.setTransform(domMatrix);\n return pattern;\n }\n\n}\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n if (typeof reason !== \"object\" || reason === null) {\n return reason;\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.postMessageTransfers = true;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\n\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++;\n const sourceName = this.sourceName;\n const targetName = this.targetName;\n const comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n\n this._postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n\n _createStreamSink(data) {\n const self = this;\n const action = this.actionHandler[data.action];\n const streamId = data.streamId;\n const sourceName = this.sourceName;\n const targetName = data.sourceName;\n const comObj = this.comObj;\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n self._postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n\n sinkCapability: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n\n _processStreamMessage(data) {\n const streamId = data.streamId;\n const sourceName = this.sourceName;\n const targetName = data.sourceName;\n const comObj = this.comObj;\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].startCall.resolve();\n } else {\n this.streamControllers[streamId].startCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\n if (!this.streamSinks[streamId]) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n\n if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n const {\n onPull\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onPull && onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(this.streamControllers[streamId], \"enqueue should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(this.streamControllers[streamId], \"close should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(this.streamControllers[streamId], \"error should have stream controller\");\n this.streamControllers[streamId].controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n\n const {\n onCancel\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[streamId].isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamId) {\n await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) {\n return capability && capability.promise;\n }));\n delete this.streamControllers[streamId];\n }\n\n _postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass Metadata {\n constructor({\n parsedData,\n rawData\n }) {\n this._metadataMap = parsedData;\n this._data = rawData;\n }\n\n getRaw() {\n return this._data;\n }\n\n get(name) {\n return this._metadataMap.get(name) ?? null;\n }\n\n getAll() {\n return (0, _util.objectFromMap)(this._metadataMap);\n }\n\n has(name) {\n return this._metadataMap.has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass OptionalContentGroup {\n constructor(name, intent) {\n this.visible = true;\n this.name = name;\n this.intent = intent;\n }\n\n}\n\nclass OptionalContentConfig {\n constructor(data) {\n this.name = null;\n this.creator = null;\n this._order = null;\n this._groups = new Map();\n\n if (data === null) {\n return;\n }\n\n this.name = data.name;\n this.creator = data.creator;\n this._order = data.order;\n\n for (const group of data.groups) {\n this._groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n\n if (data.baseState === \"OFF\") {\n for (const group of this._groups) {\n group.visible = false;\n }\n }\n\n for (const on of data.on) {\n this._groups.get(on).visible = true;\n }\n\n for (const off of data.off) {\n this._groups.get(off).visible = false;\n }\n }\n\n _evaluateVisibilityExpression(array) {\n const length = array.length;\n\n if (length < 2) {\n return true;\n }\n\n const operator = array[0];\n\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n\n if (Array.isArray(element)) {\n state = this._evaluateVisibilityExpression(element);\n } else if (this._groups.has(element)) {\n state = this._groups.get(element).visible;\n } else {\n (0, _util.warn)(`Optional content group not found: ${element}`);\n return true;\n }\n\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n\n break;\n\n case \"Or\":\n if (state) {\n return true;\n }\n\n break;\n\n case \"Not\":\n return !state;\n\n default:\n return true;\n }\n }\n\n return operator === \"And\";\n }\n\n isVisible(group) {\n if (group.type === \"OCG\") {\n if (!this._groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n\n return this._groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this._evaluateVisibilityExpression(group.expression);\n }\n\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n }\n\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n\n setVisibility(id, visible = true) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n\n this._groups.get(id).visible = !!visible;\n }\n\n getOrder() {\n if (!this._groups.size) {\n return null;\n }\n\n if (this._order) {\n return this._order.slice();\n }\n\n return Array.from(this._groups.keys());\n }\n\n getGroups() {\n return this._groups.size > 0 ? (0, _util.objectFromMap)(this._groups) : null;\n }\n\n getGroup(id) {\n return this._groups.get(id) || null;\n }\n\n}\n\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n this._contentDispositionFilename = params.contentDispositionFilename || null;\n const initialData = params.initialData;\n\n if (initialData?.length > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _onReceiveData(args) {\n const buffer = new Uint8Array(args.chunk).buffer;\n\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n const firstReader = this._rangeReaders[0];\n\n if (firstReader?.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n const fullReader = this._fullRequestReader;\n\n if (fullReader?.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n\n this._pdfDataRangeTransport.abort();\n }\n\n}\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n\n this._loaded += chunk.byteLength;\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n\n get contentLength() {\n return this._stream._contentLength;\n }\n\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n\n}\n\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n this._stream._removeRangeReader(this);\n }\n\n}\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationLayer = void 0;\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _annotation_storage = __w_pdfjs_require__(8);\n\nvar _scripting_utils = __w_pdfjs_require__(18);\n\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n\n}\n\nclass AnnotationElement {\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderInteractiveForms = parameters.renderInteractiveForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._mouseState = parameters.mouseState;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n\n if (createQuadrilaterals) {\n this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n }\n }\n\n _createContainer(ignoreBorder = false) {\n const data = this.data,\n page = this.page,\n viewport = this.viewport;\n const container = document.createElement(\"section\");\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n container.setAttribute(\"data-annotation-id\", data.id);\n\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\n container.style.transformOrigin = `${-rect[0]}px ${-rect[1]}px`;\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n if (data.color) {\n container.style.borderColor = _util.Util.makeHexColor(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${rect[0]}px`;\n container.style.top = `${rect[1]}px`;\n container.style.width = `${width}px`;\n container.style.height = `${height}px`;\n return container;\n }\n\n _createQuadrilaterals(ignoreBorder = false) {\n if (!this.data.quadPoints) {\n return null;\n }\n\n const quadrilaterals = [];\n const savedRect = this.data.rect;\n\n for (const quadPoint of this.data.quadPoints) {\n this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y];\n quadrilaterals.push(this._createContainer(ignoreBorder));\n }\n\n this.data.rect = savedRect;\n return quadrilaterals;\n }\n\n _createPopup(trigger, data) {\n let container = this.container;\n\n if (this.quadrilaterals) {\n trigger = trigger || this.quadrilaterals;\n container = this.quadrilaterals[0];\n }\n\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n title: data.title,\n modificationDate: data.modificationDate,\n contents: data.contents,\n hideWrapper: true\n });\n const popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n\n _renderQuadrilaterals(className) {\n for (const quadrilateral of this.quadrilaterals) {\n quadrilateral.className = className;\n }\n\n return this.quadrilaterals;\n }\n\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action || parameters.data.isTooltipOnly || parameters.data.actions && (parameters.data.actions.Action || parameters.data.actions[\"Mouse Up\"] || parameters.data.actions[\"Mouse Down\"]));\n super(parameters, {\n isRenderable,\n createQuadrilaterals: true\n });\n }\n\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n\n if (data.url) {\n (0, _display_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel,\n enabled: linkService.externalLinkEnabled\n });\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n } else if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n } else {\n this._bindLink(link, \"\");\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"linkAnnotation\").map((quadrilateral, index) => {\n const linkElement = index === 0 ? link : link.cloneNode();\n quadrilateral.appendChild(linkElement);\n return quadrilateral;\n });\n }\n\n this.container.className = \"linkAnnotation\";\n this.container.appendChild(link);\n return this.container;\n }\n\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n\n return false;\n };\n\n if (destination || destination === \"\") {\n link.className = \"internalLink\";\n }\n }\n\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n\n link.className = \"internalLink\";\n }\n\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n\n if (!jsName) {\n continue;\n }\n\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n\n link.className = \"internalLink\";\n }\n\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable\n });\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n const image = document.createElement(\"img\");\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n\n return this.container;\n }\n\n _getKeyModifier(event) {\n return navigator.platform.includes(\"Win\") && event.ctrlKey || navigator.platform.includes(\"Mac\") && event.metaKey;\n }\n\n _setEventListener(element, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: event.target.checked\n }\n });\n });\n }\n }\n\n _setEventListeners(element, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n this._setEventListener(element, baseName, eventName, getter);\n }\n }\n }\n\n _dispatchEventFromSandbox(actions, jsEvent) {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1));\n };\n\n const commonActions = {\n display: event => {\n const hidden = event.detail.display % 2 === 1;\n event.target.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden,\n print: event.detail.display === 0 || event.detail.display === 3\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n print: event.detail.print\n });\n },\n hidden: event => {\n event.target.style.visibility = event.detail.hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden: event.detail.hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n if (event.detail.readonly) {\n event.target.setAttribute(\"readonly\", \"\");\n } else {\n event.target.removeAttribute(\"readonly\");\n }\n },\n required: event => {\n if (event.detail.required) {\n event.target.setAttribute(\"required\", \"\");\n } else {\n event.target.removeAttribute(\"required\");\n }\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n }\n };\n\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n\n if (action) {\n action(jsEvent);\n }\n }\n }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n\n for (const element of document.getElementsByName(base.name)) {\n if (element !== base) {\n element[key] = value;\n const data = Object.create(null);\n data[keyInStorage] = value;\n storage.setValue(element.getAttribute(\"id\"), data);\n }\n }\n }\n\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderInteractiveForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue,\n valueAsString: this.data.fieldValue\n });\n const textContent = storedData.valueAsString || storedData.value || \"\";\n const elementData = {\n userValue: null,\n formattedValue: null,\n beforeInputSelectionRange: null,\n beforeInputValue: null\n };\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n }\n\n elementData.userValue = textContent;\n element.setAttribute(\"id\", id);\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n });\n\n let blurListener = event => {\n if (elementData.formattedValue) {\n event.target.value = elementData.formattedValue;\n }\n\n event.target.scrollLeft = 0;\n elementData.beforeInputSelectionRange = null;\n };\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.userValue) {\n event.target.value = elementData.userValue;\n }\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value || \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n\n if (!elementData.formattedValue) {\n event.target.value = elementData.userValue;\n }\n },\n\n valueAsString(event) {\n elementData.formattedValue = event.detail.valueAsString || \"\";\n\n if (event.target !== document.activeElement) {\n event.target.value = elementData.formattedValue;\n }\n\n storage.setValue(id, {\n formattedValue: elementData.formattedValue\n });\n },\n\n selRange(event) {\n const [selStart, selEnd] = event.detail.selRange;\n\n if (selStart >= 0 && selEnd < event.target.value.length) {\n event.target.setSelectionRange(selStart, selEnd);\n }\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n elementData.beforeInputValue = event.target.value;\n let commitKey = -1;\n\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\") {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n commitKey = 3;\n }\n\n if (commitKey === -1) {\n return;\n }\n\n elementData.userValue = event.target.value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: event.target.value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (this._mouseState.isDown) {\n elementData.userValue = event.target.value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: event.target.value,\n willCommit: true,\n commitKey: 1,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n\n _blurListener(event);\n });\n element.addEventListener(\"mousedown\", event => {\n elementData.beforeInputValue = event.target.value;\n elementData.beforeInputSelectionRange = null;\n });\n element.addEventListener(\"keyup\", event => {\n if (event.target.selectionStart === event.target.selectionEnd) {\n elementData.beforeInputSelectionRange = null;\n }\n });\n element.addEventListener(\"select\", event => {\n elementData.beforeInputSelectionRange = [event.target.selectionStart, event.target.selectionEnd];\n });\n\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"input\", event => {\n let selStart = -1;\n let selEnd = -1;\n\n if (elementData.beforeInputSelectionRange) {\n [selStart, selEnd] = elementData.beforeInputSelectionRange;\n }\n\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: elementData.beforeInputValue,\n change: event.data,\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n\n this._setEventListeners(element, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n\n this._setTextStyle(element);\n\n this.container.appendChild(element);\n return this.container;\n }\n\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontSize,\n fontColor\n } = this.data.defaultAppearanceData;\n const style = element.style;\n\n if (fontSize) {\n style.fontSize = `${fontSize}px`;\n }\n\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderInteractiveForms\n });\n }\n\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue && (data.exportValue && data.exportValue === data.fieldValue || !data.exportValue && data.fieldValue !== \"Off\")\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n element.disabled = data.readOnly;\n element.type = \"checkbox\";\n element.name = this.data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.setAttribute(\"id\", id);\n element.addEventListener(\"change\", function (event) {\n const name = event.target.name;\n\n for (const checkbox of document.getElementsByName(name)) {\n if (checkbox !== event.target) {\n checkbox.checked = false;\n storage.setValue(checkbox.parentNode.getAttribute(\"data-annotation-id\"), {\n value: false\n });\n }\n }\n\n storage.setValue(id, {\n value: event.target.checked\n });\n });\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderInteractiveForms\n });\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n\n const element = document.createElement(\"input\");\n element.disabled = data.readOnly;\n element.type = \"radio\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.setAttribute(\"id\", id);\n element.addEventListener(\"change\", function (event) {\n const {\n target\n } = event;\n\n for (const radio of document.getElementsByName(target.name)) {\n if (radio !== target) {\n storage.setValue(radio.getAttribute(\"id\"), {\n value: false\n });\n }\n }\n\n storage.setValue(id, {\n value: target.checked\n });\n });\n\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n const checked = pdfButtonValue === event.detail.value;\n\n for (const radio of document.getElementsByName(event.target.name)) {\n const radioId = radio.getAttribute(\"id\");\n radio.checked = radioId === id && checked;\n storage.setValue(radioId, {\n value: radio.checked\n });\n }\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n\n return container;\n }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderInteractiveForms\n });\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n storage.getValue(id, {\n value: this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : undefined\n });\n const selectElement = document.createElement(\"select\");\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n selectElement.setAttribute(\"id\", id);\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.fieldValue.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n const getValue = (event, isExport) => {\n const name = isExport ? \"value\" : \"textContent\";\n const options = event.target.options;\n\n if (!event.target.multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n const options = selectElement.options;\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n Array.prototype.forEach.call(options, option => {\n option.selected = values.has(option.value);\n });\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n\n if (i === -1) {\n options[0].selected = true;\n }\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n storage.setValue(id, {\n value: null,\n items: []\n });\n },\n\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.insertBefore(optionElement, selectElement.children[index]);\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n items(event) {\n const {\n items\n } = event.detail;\n\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.appendChild(optionElement);\n }\n\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n indices(event) {\n const indices = new Set(event.detail.indices);\n const options = event.target.options;\n Array.prototype.forEach.call(options, (option, i) => {\n option.selected = indices.has(i);\n });\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(event, true);\n const value = getValue(event, false);\n storage.setValue(id, {\n value: exportValue\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n changeEx: exportValue,\n willCommit: true,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n\n this._setEventListeners(selectElement, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"]], event => event.target.checked);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(event)\n });\n });\n }\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable\n });\n }\n\n render() {\n const IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n const parentElements = this.layer.querySelectorAll(selector);\n\n if (parentElements.length === 0) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: Array.from(parentElements),\n color: this.data.color,\n title: this.data.title,\n modificationDate: this.data.modificationDate,\n contents: this.data.contents\n });\n const page = this.page;\n\n const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]);\n\n const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n const popupTop = rect[1];\n this.container.style.transformOrigin = `${-popupLeft}px ${-popupTop}px`;\n this.container.style.left = `${popupLeft}px`;\n this.container.style.top = `${popupTop}px`;\n this.container.appendChild(popup.render());\n return this.container;\n }\n\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.title = parameters.title;\n this.modificationDate = parameters.modificationDate;\n this.contents = parameters.contents;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.hidden = true;\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n const color = this.color;\n\n if (color) {\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement(\"h1\");\n title.textContent = this.title;\n popup.appendChild(title);\n\n const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.appendChild(modificationDate);\n }\n\n const contents = this._formatContents(this.contents);\n\n popup.appendChild(contents);\n\n if (!Array.isArray(this.trigger)) {\n this.trigger = [this.trigger];\n }\n\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this._toggle.bind(this));\n element.addEventListener(\"mouseover\", this._show.bind(this, false));\n element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n }\n\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n _formatContents(contents) {\n const p = document.createElement(\"p\");\n const lines = contents.split(/(?:\\r\\n?|\\n)/);\n\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.appendChild(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hidden) {\n this.hideElement.hidden = false;\n this.container.style.zIndex += 1;\n }\n }\n\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hidden && !this.pinned) {\n this.hideElement.hidden = true;\n this.container.style.zIndex -= 1;\n }\n }\n\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(line, data);\n\n return this.container;\n }\n\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"none\");\n svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(square, data);\n\n return this.container;\n }\n\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"none\");\n svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(circle, data);\n\n return this.container;\n }\n\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n let points = [];\n\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(polyline, data);\n\n return this.container;\n }\n\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n for (const inkList of data.inkLists) {\n let points = [];\n\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n\n this._createPopup(polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"highlightAnnotation\");\n }\n\n this.container.className = \"highlightAnnotation\";\n return this.container;\n }\n\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"underlineAnnotation\");\n }\n\n this.container.className = \"underlineAnnotation\";\n return this.container;\n }\n\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"squigglyAnnotation\");\n }\n\n this.container.className = \"squigglyAnnotation\";\n return this.container;\n }\n\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n }\n\n this.container.className = \"strikeoutAnnotation\";\n return this.container;\n }\n\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n this.content = content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n id: (0, _util.stringToPDFString)(filename),\n filename,\n content\n });\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n const trigger = document.createElement(\"div\");\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n this._createPopup(trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n\n _download() {\n this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename);\n }\n\n}\n\nclass AnnotationLayer {\n static render(parameters) {\n const sortedAnnotations = [],\n popupAnnotations = [];\n\n for (const data of parameters.annotations) {\n if (!data) {\n continue;\n }\n\n if (data.annotationType === _util.AnnotationType.POPUP) {\n popupAnnotations.push(data);\n continue;\n }\n\n sortedAnnotations.push(data);\n }\n\n if (popupAnnotations.length) {\n sortedAnnotations.push(...popupAnnotations);\n }\n\n for (const data of sortedAnnotations) {\n const element = AnnotationElementFactory.create({\n data,\n layer: parameters.div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderInteractiveForms: parameters.renderInteractiveForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: parameters.enableScripting,\n hasJSActions: parameters.hasJSActions,\n mouseState: parameters.mouseState || {\n isDown: false\n }\n });\n\n if (element.isRenderable) {\n const rendered = element.render();\n\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n\n if (Array.isArray(rendered)) {\n for (const renderedElement of rendered) {\n parameters.div.appendChild(renderedElement);\n }\n } else {\n if (element instanceof PopupAnnotationElement) {\n parameters.div.prepend(rendered);\n } else {\n parameters.div.appendChild(rendered);\n }\n }\n }\n }\n }\n\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n\n for (const data of parameters.annotations) {\n const elements = parameters.div.querySelectorAll(`[data-annotation-id=\"${data.id}\"]`);\n\n if (elements) {\n for (const element of elements) {\n element.style.transform = transform;\n }\n }\n }\n\n parameters.div.hidden = false;\n }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\n\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\n\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n\n static RGB_HTML([r, g, b]) {\n const R = makeColorComp(r);\n const G = makeColorComp(g);\n const B = makeColorComp(b);\n return `#${R}${G}${B}`;\n }\n\n static T_HTML() {\n return \"#00000000\";\n }\n\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n\n static CMYK_HTML(components) {\n return this.RGB_HTML(this.CMYK_RGB(components));\n }\n\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n\n}\n\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.renderTextLayer = renderTextLayer;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nconst AllWhitespaceRegexp = /^\\s+$/g;\n\nfunction getAscent(fontFamily, ctx) {\n const cachedAscent = ascentCache.get(fontFamily);\n\n if (cachedAscent) {\n return cachedAscent;\n }\n\n ctx.save();\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n\n if (ascent) {\n ctx.restore();\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.restore();\n\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles, ctx) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1\n };\n\n task._textDivs.push(textDiv);\n\n const tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, ctx);\n let left, top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight}px`;\n textDiv.style.fontFamily = style.fontFamily;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n let shouldScaleText = false;\n\n if (geom.str.length > 1 || task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str)) {\n shouldScaleText = true;\n } else if (geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection && textDivProperties.hasText) {\n let angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n const divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n const divHeight = fontHeight;\n let m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m\n });\n }\n}\n\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (let i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n}\n\nfunction findPositiveMin(ts, offset, count) {\n let result = 0;\n\n for (let i = 0; i < count; i++) {\n const t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n}\n\nfunction expand(task) {\n const bounds = task._bounds;\n const viewport = task._viewport;\n const expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (let i = 0; i < expanded.length; i++) {\n const div = bounds[i].div;\n\n const divProperties = task._textDivProperties.get(div);\n\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n const e = expanded[i],\n b = bounds[i];\n const m = b.m,\n c = m[0],\n s = m[1];\n const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n const ts = new Float64Array(64);\n\n for (let j = 0, jj = points.length; j < jj; j++) {\n const t = _util.Util.applyTransform(points[j], m);\n\n ts[j + 0] = c && (e.left - t[0]) / c;\n ts[j + 4] = s && (e.top - t[1]) / s;\n ts[j + 8] = c && (e.right - t[0]) / c;\n ts[j + 12] = s && (e.bottom - t[1]) / s;\n ts[j + 16] = s && (e.left - t[0]) / -s;\n ts[j + 20] = c && (e.top - t[1]) / c;\n ts[j + 24] = s && (e.right - t[0]) / -s;\n ts[j + 28] = c && (e.bottom - t[1]) / c;\n ts[j + 32] = c && (e.left - t[0]) / -c;\n ts[j + 36] = s && (e.top - t[1]) / -s;\n ts[j + 40] = c && (e.right - t[0]) / -c;\n ts[j + 44] = s && (e.bottom - t[1]) / -s;\n ts[j + 48] = s && (e.left - t[0]) / s;\n ts[j + 52] = c && (e.top - t[1]) / -c;\n ts[j + 56] = s && (e.right - t[0]) / s;\n ts[j + 60] = c && (e.bottom - t[1]) / -c;\n }\n\n const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n task._textDivProperties.set(div, divProperties);\n }\n}\n\nfunction expandBounds(width, height, boxes) {\n const bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n const expanded = new Array(boxes.length);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n }\n\n boxes.map(function (box, i) {\n const e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n }\n\n return expanded;\n}\n\nfunction expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n const fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n const horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n\n for (const boundary of bounds) {\n let i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n let j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n let horizonPart, affectedBoundary;\n let q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n let xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n const changedHorizon = [];\n let lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n const useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n let used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n }\n\n for (const horizonPart of horizon) {\n const affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n }\n}\n\nclass TextLayerRenderTask {\n constructor({\n textContent,\n textContentStream,\n container,\n viewport,\n textDivs,\n textContentItemsStr,\n enhanceTextSelection\n }) {\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._document = container.ownerDocument;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n\n this._capability.promise.finally(() => {\n if (this._layoutTextCtx) {\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n }).catch(() => {});\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\"));\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n }\n\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n if (items[i].str === undefined) {\n if (items[i].type === \"beginMarkedContentProps\" || items[i].type === \"beginMarkedContent\") {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n\n this._container.classList.add(\"markedContent\");\n\n if (items[i].id !== null) {\n this._container.setAttribute(\"id\", `${items[i].id}`);\n }\n\n parent.appendChild(this._container);\n } else if (items[i].type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n\n continue;\n }\n\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache, this._layoutTextCtx);\n }\n }\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n let transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) {\n const {\n fontSize,\n fontFamily\n } = textDiv.style;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n const {\n width\n } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = `scaleX(${textDivProperties.scale})`;\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n if (textDivProperties.hasText) {\n this._container.appendChild(textDiv);\n }\n\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n\n this._container.appendChild(br);\n }\n }\n\n _render(timeout = 0) {\n const capability = (0, _util.createPromiseCapability)();\n let styleCache = Object.create(null);\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.height = canvas.width = DEFAULT_FONT_SIZE;\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n this._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' + \" parameters specified.\");\n }\n\n capability.promise.then(() => {\n styleCache = null;\n\n if (!timeout) {\n render(this);\n } else {\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n }\n\n expandTextDivs(expandDivs = false) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n const transformBuf = [],\n paddingBuf = [];\n\n for (let i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n\n const divProps = this._textDivProperties.get(div);\n\n if (!divProps.hasText) {\n continue;\n }\n\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n\n if (divProps.paddingTop > 0) {\n paddingBuf.push(`${divProps.paddingTop}px`);\n transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n\n}\n\nfunction renderTextLayer(renderParameters) {\n const task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n\n task._render(renderParameters.timeout);\n\n return task;\n}\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nlet SVGGraphics = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: SVGGraphics\");\n }\n\n};\nexports.SVGGraphics = SVGGraphics;\n{\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n\n for (let i = 0; i < 256; i++) {\n let c = i;\n\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n let input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return (0, _util.createObjectURL)(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n }\n\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n\n return opTree;\n }\n\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const s = value.toFixed(10);\n let i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n }\n\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n exports.SVGGraphics = SVGGraphics = class {\n constructor(commonObjs, objs, forceDataSchema = false) {\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.appendChild(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n\n current.tspan.textContent += character;\n } else {}\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n let textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.appendChild(this.cssStyle);\n }\n\n const url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n\n endText() {\n const current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n\n const [tx0, ty0] = _util.Util.applyTransform([x0, y0], matrix);\n\n const [tx1, ty1] = _util.Util.applyTransform([x1, y1], matrix);\n\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n const cssColor = _util.Util.makeHexColor(...color);\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return `url(#${tilingId})`;\n }\n\n _makeShadingPattern(args) {\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.appendChild(stop);\n }\n\n this.defs.appendChild(gradient);\n return `url(#${shadingId})`;\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n\n fillStroke() {\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.appendChild(mask);\n\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n }\n\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n\n };\n}\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\n\nclass XfaLayer {\n static setupStorage(html, fieldId, element, storage) {\n const storedData = storage.getValue(fieldId, {\n value: null\n });\n\n switch (element.name) {\n case \"textarea\":\n html.textContent = storedData.value !== null ? storedData.value : \"\";\n html.addEventListener(\"input\", event => {\n storage.setValue(fieldId, {\n value: event.target.value\n });\n });\n break;\n\n case \"input\":\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n\n if (element.attributes.type === \"radio\") {\n html.addEventListener(\"change\", event => {\n const {\n target\n } = event;\n\n for (const radio of document.getElementsByName(target.name)) {\n if (radio !== target) {\n const id = radio.id;\n storage.setValue(id.split(\"-\")[0], {\n value: false\n });\n }\n }\n\n storage.setValue(fieldId, {\n value: target.checked\n });\n });\n } else {\n html.addEventListener(\"input\", event => {\n storage.setValue(fieldId, {\n value: event.target.value\n });\n });\n }\n\n break;\n\n case \"select\":\n if (storedData.value !== null) {\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n }\n }\n }\n\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? null : options[options.selectedIndex].value;\n storage.setValue(fieldId, {\n value\n });\n });\n break;\n }\n }\n\n static setAttributes(html, element, storage) {\n const {\n attributes\n } = element;\n\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined || key === \"fieldId\") {\n continue;\n }\n\n if (key !== \"style\") {\n if (key === \"textContent\") {\n html.textContent = value;\n } else {\n html.setAttribute(key, value);\n }\n } else {\n Object.assign(html.style, value);\n }\n }\n\n if (storage && attributes.fieldId !== undefined) {\n this.setupStorage(html, attributes.fieldId, element, storage);\n }\n }\n\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const root = parameters.xfa;\n const rootHtml = document.createElement(root.name);\n\n if (root.attributes) {\n this.setAttributes(rootHtml, root);\n }\n\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.appendChild(rootHtml);\n const coeffs = parameters.viewport.transform.join(\",\");\n rootDiv.style.transform = `matrix(${coeffs})`;\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n\n while (stack.length > 0) {\n const [parent, i, html] = stack[stack.length - 1];\n\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n\n const child = parent.children[++stack[stack.length - 1][1]];\n\n if (child === null) {\n continue;\n }\n\n const {\n name\n } = child;\n\n if (name === \"#text\") {\n html.appendChild(document.createTextNode(child.value));\n continue;\n }\n\n const childHtml = document.createElement(name);\n html.appendChild(childHtml);\n\n if (child.attributes) {\n this.setAttributes(childHtml, child, storage);\n }\n\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n childHtml.appendChild(document.createTextNode(child.value));\n }\n }\n }\n\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n\n}\n\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(23);\n\n;\n\nconst fs = require(\"fs\");\n\nconst http = require(\"http\");\n\nconst https = require(\"https\");\n\nconst url = require(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFNodeStream = PDFNodeStream;\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._headersCapability.resolve();\n\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n\n this._headersCapability.reject(reason);\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n this._httpHeaders[property] = value;\n }\n\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n\n this._setReadableStream(response);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n\n this._headersCapability.resolve();\n });\n }\n\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n\n}\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _content_disposition = __w_pdfjs_require__(24);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n (0, _util.assert)(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch (e) {\n if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n const parts = [];\n\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n\n if (quot) {\n part = unescape(part);\n\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n\n parts.push(part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n}\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(23);\n\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url, args) {\n this.url = url;\n args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || {};\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n if (pendingRequest.onProgress) {\n pendingRequest.onProgress(evt);\n }\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n const xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n\n}\n\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(args) {\n if (args) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: args.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(args.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n _onError(status) {\n const url = this._url;\n const exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n\n this._headersReceivedCapability.reject(exception);\n\n for (const requestCapability of this._requests) {\n requestCapability.reject(exception);\n }\n\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n\n _onProgress(data) {\n if (this.onProgress) {\n this.onProgress({\n loaded: data.loaded,\n total: data.lengthComputable ? data.total : this._contentLength\n });\n }\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n\n}\n\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n this._close();\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({\n loaded: evt.loaded\n });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n\n}\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(23);\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController?.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\n\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n headers.append(property, value);\n }\n\n return headers;\n}\n\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFFetchStream = PDFFetchStream;\n\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._reader = response.body.getReader();\n\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._readCapability.resolve();\n\n this._reader = response.body.getReader();\n }).catch(reason => {\n if (reason?.name === \"AbortError\") {\n return;\n }\n\n throw reason;\n });\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLinkAttributes\", ({\n enumerable: true,\n get: function () {\n return _display_utils.addLinkAttributes;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"LinkTarget\", ({\n enumerable: true,\n get: function () {\n return _display_utils.LinkTarget;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"LoopbackPort\", ({\n enumerable: true,\n get: function () {\n return _api.LoopbackPort;\n }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"createObjectURL\", ({\n enumerable: true,\n get: function () {\n return _util.createObjectURL;\n }\n}));\nObject.defineProperty(exports, \"createPromiseCapability\", ({\n enumerable: true,\n get: function () {\n return _util.createPromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n}));\nObject.defineProperty(exports, \"removeNullCharacters\", ({\n enumerable: true,\n get: function () {\n return _util.removeNullCharacters;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n}));\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", ({\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n}));\nObject.defineProperty(exports, \"Util\", ({\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"apiCompatibilityParams\", ({\n enumerable: true,\n get: function () {\n return _api_compatibility.apiCompatibilityParams;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _api = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _annotation_layer = __w_pdfjs_require__(17);\n\nvar _api_compatibility = __w_pdfjs_require__(9);\n\nvar _worker_options = __w_pdfjs_require__(12);\n\nvar _text_layer = __w_pdfjs_require__(19);\n\nvar _svg = __w_pdfjs_require__(20);\n\nvar _xfa_layer = __w_pdfjs_require__(21);\n\nconst pdfjsVersion = '2.9.359';\nconst pdfjsBuild = 'e667c8cbc';\n{\n const {\n isNodeJS\n } = __w_pdfjs_require__(4);\n\n if (isNodeJS) {\n const PDFNodeStream = __w_pdfjs_require__(22).PDFNodeStream;\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const PDFNetworkStream = __w_pdfjs_require__(25).PDFNetworkStream;\n\n let PDFFetchStream;\n\n if ((0, _display_utils.isFetchSupported)()) {\n PDFFetchStream = __w_pdfjs_require__(26).PDFFetchStream;\n }\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n if (PDFFetchStream && (0, _display_utils.isValidFetchUrl)(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n}\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.js.map"],"names":["factory","__webpack_modules__","__unused_webpack_module","exports","__w_pdfjs_require__","Object","defineProperty","value","addLinkAttributes","link","url","target","rel","enabled","_util","assert","urlNullRemoved","removeNullCharacters","href","title","onclick","targetStr","LinkTarget","NONE","SELF","BLANK","PARENT","TOP","DEFAULT_LINK_REL","deprecated","details","console","log","getFilenameFromUrl","anchor","indexOf","query","end","Math","min","length","substring","lastIndexOf","getPdfFilenameFromUrl","defaultFilename","isDataScheme","warn","reFilename","splitURI","exec","suggestedFilename","includes","decodeURIComponent","ex","isFetchSupported","isPdfFile","filename","test","isValidFetchUrl","loadScript","src","removeScriptElement","Promise","resolve","reject","script","document","createElement","onload","evt","remove","onerror","Error","head","documentElement","appendChild","StatTimer","RenderingCancelledException","PDFDateString","PageViewport","DOMSVGFactory","DOMCMapReaderFactory","DOMCanvasFactory","BaseCMapReaderFactory","BaseCanvasFactory","SVG_NS","constructor","this","unreachable","create","width","height","reset","canvasAndContext","canvas","destroy","context","ownerDocument","globalThis","super","_document","getContext","baseUrl","isCompressed","async","name","compressionType","CMapCompressionType","BINARY","_fetchData","catch","reason","baseURI","fetch","then","response","ok","statusText","cMapData","Uint8Array","arrayBuffer","stringToBytes","text","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","status","responseText","send","svg","createElementNS","setAttribute","type","viewBox","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","abs","transform","clone","slice","convertToViewportPoint","x","y","Util","applyTransform","convertToViewportRectangle","rect","topLeft","bottomRight","convertToPdfPoint","applyInverseTransform","BaseException","msg","ii","i","trim","toLowerCase","Response","prototype","ReadableStream","protocol","URL","pdfDateStringRegex","started","times","time","Date","now","timeEnd","push","start","toString","outBuf","longest","duration","padEnd","join","static","input","isString","RegExp","matches","year","parseInt","month","day","hour","minute","second","universalTimeRelation","offsetHour","offsetMinute","UTC","arrayByteLength","arraysToBytes","arr","resultLength","pos","data","item","itemLength","byteLength","set","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","chunk","subarray","createObjectURL","contentType","forceDataSchema","Blob","digits","buffer","b1","b2","b3","createPromiseCapability","capability","isSettled","get","promise","createValidAbsoluteUrl","absoluteUrl","_isValidProtocol","escapeString","str","replace","match","getModificationDate","date","getUTCFullYear","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getVerbosityLevel","verbosity","info","VerbosityLevel","INFOS","isArrayBuffer","v","isArrayEqual","arr1","arr2","isAscii","isBool","isNum","isSameOrigin","otherUrl","base","origin","e","other","objectFromMap","map","obj","key","objectSize","keys","NullCharactersRegExp","setVerbosityLevel","level","Number","isInteger","shadow","string32","stringToPDFString","charCodeAt","code","PDFStringTranslateTable","charAt","stringToUTF16BEString","buf","char","stringToUTF8String","escape","utf8StringToString","unescape","encodeURIComponent","UNSUPPORTED_FEATURES","UnknownErrorException","UnexpectedResponseException","TextRenderingMode","StreamType","PermissionFlag","PasswordResponses","PasswordException","PageActionEventType","OPS","MissingPDFException","IsLittleEndianCached","IsEvalSupportedCached","InvalidPDFException","ImageKind","IDENTITY_MATRIX","FormatError","FontType","FONT_IDENTITY_MATRIX","DocumentActionEventType","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","AnnotationActionEventType","AbortException","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","WC","WS","DS","WP","DP","O","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","NEED_PASSWORD","INCORRECT_PASSWORD","cond","prop","enumerable","configurable","writable","message","buffer8","Uint32Array","isLittleEndian","Function","isEvalSupported","hexNumbers","Array","n","r","g","b","m1","m2","p","m","d","p1","p2","p3","p4","max","transpose","a","c","first","sqrt","sx","sy","rect1","rect2","compare","orderedX","sort","orderedY","result","normalizeRect","__unused_webpack_exports","isNodeJS","process","versions","nw","electron","getDocument","setPDFNetworkStreamFactory","version","PDFWorker","PDFPageProxy","PDFDocumentProxy","PDFDataRangeTransport","LoopbackPort","DefaultCMapReaderFactory","DefaultCanvasFactory","build","_display_utils","_font_loader","_node_utils","_annotation_storage","_api_compatibility","_canvas","_worker_options","_is_node","_message_handler","_metadata","_optional_content_config","_transport_stream","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","NodeCanvasFactory","NodeCMapReaderFactory","createPDFNetworkStream","pdfNetworkStreamFactory","task","PDFDocumentLoadingTask","source","range","params","rangeTransport","worker","window","location","Buffer","isNaN","rangeChunkSize","CMapReaderFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","enableXfa","docBaseUrl","maxImageSize","disableFontFace","apiCompatibilityParams","disableRange","disableStream","disableAutoFetch","workerParams","port","GlobalWorkerOptions","workerPort","fromPort","_worker","docId","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","httpHeaders","withCredentials","all","workerId","messageHandler","MessageHandler","postMessageTransfers","transport","WorkerTransport","_transport","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","password","nextDocumentId","onPassword","onProgress","onUnsupportedFeature","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","listener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","abort","pdfInfo","_pdfInfo","annotationStorage","numPages","fingerprint","isPureXfa","getPage","pageNumber","getPageIndex","ref","getDestinations","getDestination","id","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getJSActions","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","getDownloadInfo","downloadInfoCapability","getStats","cleanup","keepLoadedFonts","startCleanup","loadingTask","loadingParams","saveDocument","arguments","size","getFieldObjects","hasJSActions","getCalculationOrderIds","pageIndex","pageInfo","_pageIndex","_pageInfo","_ownerDocument","_stats","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","_intentStates","Map","rotate","userUnit","view","getViewport","getAnnotations","intent","_annotationsPromise","_annotationsIntent","_jsActionsPromise","getPageJSActions","getXfa","_xfaPromise","getPageXfa","render","canvasContext","viewport","renderInteractiveForms","imageLayer","canvasFactory","background","includeAnnotationStorage","optionalContentConfigPromise","_intentState","renderingIntent","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","serializable","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","_pumpOperatorList","complete","error","renderTasks","delete","internalRenderTask","_tryCleanup","_abortOperatorList","InternalRenderTask","callback","useRequestAnimationFrame","Set","add","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","getOperatorList","opListTask","_intentState2","opListReadCapability","streamTextContent","normalizeWhitespace","disableCombineTextItems","includeMarkedContent","sendWithStream","combineTextItems","highWaterMark","textContent","items","getTextContent","readableStream","reader","getReader","styles","pump","read","done","assign","getStructTree","_structTreePromise","_destroy","pageCache","waitOn","force","completed","cancel","clear","resetStats","values","_startRenderPage","_renderPageChunk","operatorListChunk","args","streamReader","setTimeout","curIntentState","stats","_listeners","_deferred","postMessage","transfers","cloned","WeakMap","event","cloneValue","has","byteOffset","val","isArray","desc","getOwnPropertyDescriptor","getPrototypeOf","hasOwnProperty","call","addEventListener","removeEventListener","splice","terminate","PDFWorkerClosure","pdfWorkerPorts","isWorkerDisabled","fallbackWorkerSrc","nextFakeWorkerId","fakeWorkerCapability","pdfjsFilePath","currentScript","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","mainWorkerMessageHandler","pdfjsWorker","WorkerMessageHandler","setupFakeWorkerGlobal","loader","eval","createCDNWrapper","wrapper","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","Worker","terminateEarly","onWorkerError","_setupFakeWorker","supportTransfers","sendTest","testObj","workerHandler","setup","fontLoader","FontLoader","_onUnsupportedFeature","bind","_params","cMapUrl","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","AnnotationStorage","page","resetModified","terminated","_hasJSActionsPromise","cancelAllRequests","sink","getFullReader","onPull","close","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","exception","updatePassword","exportedData","exportedError","fontRegistry","FontInspector","registerFont","fontAdded","FontFaceObject","finally","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","fetched","builtInCMap","featureId","results","OptionalContentConfig","metadata","Metadata","_objs","_ensureObj","objId","resolved","RenderTask","_internalRenderTask","onContinue","canvasInRendering","WeakSet","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","BaseFontLoader","nativeFontFaces","styleElement","addNativeFontFace","nativeFontFace","fonts","insertRule","rule","getElementsByTagName","styleSheet","sheet","cssRules","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","_loadTestFont","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","supported","navigator","userAgent","otherRequest","shift","atob","int32","offset","spliceString","s","insert","ctx","called","XXXX_VALUE","checksum","btoa","names","loadedName","div","style","visibility","position","top","left","span","fontFamily","body","isFontReady","fillText","getImageData","removeChild","translatedData","compiledGlyphs","cssFontInfo","css","weight","fontWeight","italicAngle","FontFace","mimetype","getPathGenerator","character","cmds","jsBuf","current","cmd","createCanvas","readFile","_storage","_modified","onSetModified","onResetModified","getValue","defaultValue","setValue","modified","entry","entries","_setModified","getAll","compatibilityParams","freeze","_pattern_helper","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_originalResetTransform","resetTransform","_transformMatrix","_transformStack","_setLineWidth","_getLineWidth","_","f","ad_bc","bc_ad","old","prev","pop","angle","cosValue","cos","sinValue","sin","CachedCanvases","cache","getCanvas","trackTransform","canvasEntry","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","transferMaps","setCurrentPoint","putBinaryImageData","imgData","ImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","destPos","srcPos","dest","j","thisChunkHeight","elemsInThisChunk","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","k","kEnd","kEndUnrolled","mask","srcByte","hasTransferMaps","putBinaryImageMask","elem","copyCtxState","sourceCtx","destCtx","properties","property","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","composeSMask","layerCtx","maskCtx","scaleX","scaleY","subtype","backdrop","hasBackdrop","composeFn","chunkSize","ceil","row","chunkHeight","genericComposeSMask","drawImage","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","canvasCtx","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","contentVisible","markedContentStack","cachedCanvases","_cachedGetSinglePixelWidth","fillRect","transparentCanvas","compositeCtx","_combinedScaleFactor","hypot","beginLayout","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","steps","fnId","breakIt","depObjId","objsPool","startsWith","endLayout","limit","dashArray","dashPhase","flatness","states","state","suspendSMaskGroup","endSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","xw","yh","bezierCurveTo","consumePath","getPattern","getSinglePixelWidth","round","needRestore","paths","pendingTextPaths","beginPath","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","mode","rise","paintChar","patternTransform","resetLineWidthToOne","fillStrokeMode","isAddToPathSet","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","glyph","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","charWidth","vmetric","vx","vy","remeasure","measuredWidth","measureText","characterScaleX","isInFont","scaledAccentX","scaledAccentY","spacingLength","charProcOperatorList","operatorListId","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","color","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPattern","makeHexColor","patternIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","isolated","knockout","bounds","getAxialAlignedBoundingBox","canvasBounds","intersect","floor","imageSmoothingEnabled","mozImageSmoothingEnabled","img","isPatternFill","compiled","POINT_TYPES","width1","j0","points","lineSize","data0","count","sum","Int32Array","outlines","coords","p0","step","pp","kk","o","l","ll","compileType3Glyph","maskCanvas","skewX","skewY","positions","images","image","w","h","imgToPaint","tmpCanvas","tmpCtx","widthScale","heightScale","HTMLElement","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getCanvasPosition","appendImage","tag","visible","isVisible","isContentVisible","absDet","sqNorm1","sqNorm2","pixelHeight","EPSILON","op","RadialAxialShadingPattern","MeshShadingPattern","DummyShadingPattern","svgElement","createMatrix","DOMMatrix","createSVGMatrix","applyBoundingBox","Path2D","region","BaseShadingPattern","_type","_bbox","_colorStops","_p0","_p1","_r0","_r1","_matrix","owner","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","createPattern","drawTriangle","c1","c2","c3","colors","rowSize","tmp","x2","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","_coords","_colors","_figures","_bounds","_background","_createMeshCanvas","combinedScale","backgroundColor","boundsWidth","boundsHeight","paddedWidth","BORDER_SIZE","paddedHeight","singularValueDecompose2dScale","matrixScale","temporaryPatternCanvas","PaintType","MAX_PATTERN_SIZE","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","clipBbox","realOutputSize","maxSize","bboxWidth","bboxHeight","cssColor","domMatrix","CallbackKind","StreamKind","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","stream","_processStreamMessage","action","cbSourceName","cbTargetName","_createStreamSink","actionName","handler","ah","_postMessage","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","self","streamSink","isCancelled","lastDesiredSize","sinkCapability","success","_deleteStreamController","allSettled","parsedData","rawData","_metadataMap","_data","getRaw","OptionalContentGroup","creator","_order","_groups","order","groups","baseState","off","_evaluateVisibilityExpression","array","operator","element","expression","policy","ids","setVisibility","getOrder","from","getGroups","getGroup","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_enqueue","found","some","_begin","_progressiveDataLength","_loaded","firstReader","_removeRangeReader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","_stream","_done","_filename","_requests","_headersReady","requestCapability","_end","_queuedChunk","AnnotationLayer","_scripting_utils","AnnotationElementFactory","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","layer","linkService","downloadManager","imageResourcesPath","svgFactory","enableScripting","_mouseState","mouseState","container","_createContainer","quadrilaterals","_createQuadrilaterals","transformOrigin","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","quadPoints","savedRect","quadPoint","_createPopup","trigger","popup","PopupElement","modificationDate","contents","hideWrapper","_renderQuadrilaterals","className","quadrilateral","isTooltipOnly","actions","Action","newWindow","externalLinkTarget","externalLinkRel","externalLinkEnabled","_bindNamedAction","_bindLink","_bindJSAction","index","linkElement","cloneNode","destination","getDestinationHash","goToDestination","getAnchorUrl","executeNamedAction","jsName","eventBus","dispatch","detail","hasPopup","alt","dataset","l10nId","l10nArgs","JSON","stringify","alternativeText","_getKeyModifier","platform","ctrlKey","metaKey","_setEventListener","baseName","eventName","valueGetter","shiftKey","modifier","checked","_setEventListeners","getter","_dispatchEventFromSandbox","jsEvent","setColor","styleName","ColorConverters","commonActions","display","hidden","print","focus","preventScroll","userName","readonly","removeAttribute","required","bgColor","fgColor","textColor","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","storage","getElementsByName","getAttribute","storedData","valueAsString","elementData","userValue","formattedValue","beforeInputSelectionRange","beforeInputValue","multiLine","blurListener","scrollLeft","activeElement","selRange","selStart","selEnd","setSelectionRange","commitKey","willCommit","selectionStart","selectionEnd","_blurListener","isDown","Keystroke","change","disabled","readOnly","fieldName","maxLen","maxLength","comb","combWidth","classList","letterSpacing","verticalAlign","_setTextStyle","TEXT_ALIGNMENT","fontColor","defaultAppearanceData","textAlignment","textAlign","exportValue","checkbox","parentNode","buttonValue","radio","pdfButtonValue","radioId","selectElement","combo","options","multiSelect","multiple","option","optionElement","displayValue","isExport","filter","selected","selectedIndex","getItems","forEach","multipleSelection","findIndex","insertBefore","children","indices","editable","changeEx","keyDown","parentType","selector","parentId","parentElements","querySelectorAll","parentRect","popupLeft","popupTop","pinned","hideElement","dateObject","toDateObject","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","lines","split","line","createTextNode","pin","zIndex","unpin","lineCoordinates","append","square","circle","containerClassName","svgElementName","coordinate","vertices","polyline","inkList","inkLists","content","file","_download","openOrDownloadData","sortedAnnotations","popupAnnotations","annotations","rendered","renderedElement","prepend","elements","makeColorComp","G","components","RGB_HTML","CMYK_RGB","renderTextLayer","renderParameters","TextLayerRenderTask","textContentStream","textDivs","textContentItemsStr","enhanceTextSelection","_render","timeout","DEFAULT_FONT_SIZE","ascentCache","AllWhitespaceRegexp","appendText","geom","textDiv","textDivProperties","canvasWidth","hasText","hasEOL","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","tx","_viewport","atan2","fontName","fontHeight","fontAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","getAscent","dir","_fontInspectorEnabled","shouldScaleText","_enhanceTextSelection","absScaleX","absScaleY","_textDivProperties","_textContentStream","_layoutText","angleCos","angleSin","divWidth","divHeight","right","bottom","_canceled","textDivsLength","_renderingDone","findPositiveMin","ts","t","expand","expanded","boxes","box","x1New","x2New","expandBoundsLTR","expandBounds","divProperties","Float64Array","jj","boxScale","horizon","Infinity","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","concat","_textContent","_container","_textContentItemsStr","_reader","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","_processItems","styleCache","len","parent","mozOpaque","textItems","textStyles","expandTextDivs","expandDivs","transformBuf","paddingBuf","divProps","padding","SVGGraphics","SVG_DEFAULTS","fontStyle","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","crcTable","writePngChunk","crc","crc32","deflateSyncUncompressed","literals","maxBlockLength","deflateBlocks","idat","pi","adler","adler32","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","node","output","deflateSync","pngLength","CHUNK_WRAPPER_SIZE","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","opListToTree","opList","opTree","opListElement","fn","pf","toFixed","pm","acos","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","loadDependencies","getSVG","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","hasChildNodes","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","inverseTransform","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","childNodes","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","stop","getAttributeNS","clipId","clipPath","clipElement","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","XfaLayer","html","fieldId","attributes","setupStorage","root","xfa","rootHtml","setAttributes","stack","rootDiv","coeffs","child","childHtml","PDFNodeStream","_network_utils","fs","http","https","fileUriRegex","sourceUrl","parsedUrl","parse","host","parseUrl","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","_setReadableStream","BaseRangeReader","createRequestOptions","headers","auth","hostname","method","handleResponse","statusCode","getResponseHeader","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","stat","createReadStream","createResponseStatusError","contentDisposition","_content_disposition","getFilenameFromContentDispositionHeader","returnValues","validateResponseStatus","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","contentDispositionStr","iter","quot","part","parts","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","TextDecoder","fatal","decode","err","quotindex","extvalue","encodingend","charset","hex","PDFNetworkStream","NetworkManager","getXhr","currXhrId","pendingRequests","requestRange","listeners","requestFull","xhr","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","abortRequest","_source","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","lengthComputable","_requestId","_close","PDFFetchStream","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","__webpack_module_cache__","moduleId","cachedModule","module","__webpack_exports__","_api","_annotation_layer","_text_layer","_svg","_xfa_layer"],"sourceRoot":""}