{"version":3,"file":"5114.e0d040c5b2e262809af6.js","mappings":"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","sources":["webpack://shipley-du-lib/./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 2022 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})(globalThis, () => {\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.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\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.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\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;\n\n__w_pdfjs_require__(2);\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 LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n FREETEXT_SIZE: 1,\n FREETEXT_COLOR: 2,\n FREETEXT_OPACITY: 3,\n INK_COLOR: 11,\n INK_THICKNESS: 12,\n INK_OPACITY: 13\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\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 TYPE1STANDARD: \"TYPE1STANDARD\",\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 errorContentSubStream: \"errorContentSubStream\"\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 _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 = null, options = null) {\n if (!url) {\n return null;\n }\n\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\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, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = 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, \"PasswordException\");\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n\n}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n\n}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n\n}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n\n}\n\nexports.AbortException = AbortException;\n\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes === null || bytes.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n\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 if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n\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 if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n\n unreachable(\"Invalid argument for arrayByteLength\");\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\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n\n}\n\nexports.FeatureTest = FeatureTest;\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 scaleMinMax(transform, minMax) {\n let temp;\n\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\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 const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n\n if (xLow > xHigh) {\n return null;\n }\n\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n\n t = -c / b;\n\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n\n continue;\n }\n\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n\n if (b2ac < 0) {\n continue;\n }\n\n t1 = (-b + sqrtb2ac) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n\n t2 = (-b - sqrtb2ac) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\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 if (str[0] >= \"\\xEF\") {\n let encoding;\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n\n const strBuf = [];\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\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 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\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\n\nvar _is_node = __w_pdfjs_require__(3);\n\n;\n\n/***/ }),\n/* 3 */\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/* 4 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.build = exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.version = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _annotation_storage = __w_pdfjs_require__(5);\n\nvar _display_utils = __w_pdfjs_require__(8);\n\nvar _font_loader = __w_pdfjs_require__(11);\n\nvar _canvas = __w_pdfjs_require__(12);\n\nvar _worker_options = __w_pdfjs_require__(15);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _message_handler = __w_pdfjs_require__(16);\n\nvar _metadata = __w_pdfjs_require__(17);\n\nvar _optional_content_config = __w_pdfjs_require__(18);\n\nvar _transport_stream = __w_pdfjs_require__(19);\n\nvar _xfa_text = __w_pdfjs_require__(20);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nlet DefaultCanvasFactory = _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nlet DefaultCMapReaderFactory = _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nlet DefaultStandardFontDataFactory = _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\n\nif (_is_node.isNodeJS) {\n const {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory\n } = __w_pdfjs_require__(21);\n\n exports.DefaultCanvasFactory = DefaultCanvasFactory = NodeCanvasFactory;\n exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory = NodeCMapReaderFactory;\n exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory = NodeStandardFontDataFactory;\n}\n\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, TypedArray, 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 TypedArray, \" + \"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.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory;\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 (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) {\n params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE;\n }\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) || params.maxImageSize < -1) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.cMapUrl !== \"string\") {\n params.cMapUrl = null;\n }\n\n if (typeof params.standardFontDataUrl !== \"string\") {\n params.standardFontDataUrl = null;\n }\n\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _is_node.isNodeJS;\n }\n\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace;\n }\n\n if (typeof params.ownerDocument !== \"object\" || params.ownerDocument === null) {\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 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\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n throw 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 const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion: '2.16.105',\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 docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n enableXfa: source.enableXfa,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null\n });\n\n if (source.data) {\n source.data = null;\n }\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n}\n\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n\n constructor() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\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 async destroy() {\n this.destroyed = true;\n await this._transport?.destroy();\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n }\n\n}\n\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\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 Object.defineProperty(this, \"fingerprint\", {\n get() {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.fingerprint`, \" + \"please use `PDFDocumentProxy.fingerprints` instead.\");\n return this.fingerprints[0];\n }\n\n });\n Object.defineProperty(this, \"getStats\", {\n value: async () => {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getStats`, \" + \"please use the `PDFDocumentProxy.stats`-getter instead.\");\n return this.stats || {\n streamTypes: {},\n fontTypes: {}\n };\n }\n });\n }\n\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n get stats() {\n return this._transport.stats;\n }\n\n get isPureXfa() {\n return !!this._transport._htmlForXfa;\n }\n\n get allXfaHtml() {\n return this._transport._htmlForXfa;\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 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 (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._bitmaps = new Set();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = 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 = \"display\"\n } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n let promise = this._annotationPromises.get(intentArgs.cacheKey);\n\n if (!promise) {\n promise = this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n promise = promise.then(annotations => {\n for (const annotation of annotations) {\n if (annotation.titleObj !== undefined) {\n Object.defineProperty(annotation, \"title\", {\n get() {\n (0, _display_utils.deprecated)(\"`title`-property on annotation, please use `titleObj` instead.\");\n return annotation.titleObj.str;\n }\n\n });\n }\n\n if (annotation.contentsObj !== undefined) {\n Object.defineProperty(annotation, \"contents\", {\n get() {\n (0, _display_utils.deprecated)(\"`contents`-property on annotation, please use `contentsObj` instead.\");\n return annotation.contentsObj.str;\n }\n\n });\n }\n }\n\n return annotations;\n });\n }\n\n return promise;\n }\n\n getJSActions() {\n return this._jsActionsPromise ||= this._transport.getPageJSActions(this._pageIndex);\n }\n\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null\n }) {\n if (arguments[0]?.renderInteractiveForms !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `renderInteractiveForms`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].renderInteractiveForms === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_FORMS;\n }\n }\n\n if (arguments[0]?.includeAnnotationStorage !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `includeAnnotationStorage`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].includeAnnotationStorage === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_STORAGE;\n }\n }\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, 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 intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n if (this.cleanupAfterRender || intentPrint) {\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 instanceof Error ? error : new Error(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 annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (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 intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n printAnnotationStorage = null\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n return intentState.opListReadCapability.promise;\n }\n\n streamTextContent({\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 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 if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\n\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._transport.getStructTree(this._pageIndex);\n }\n\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intentState.opListReadCapability) {\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\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n\n this._bitmaps.clear();\n\n this._annotationPromises.clear();\n\n this._jsActionsPromise = 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\n this._annotationPromises.clear();\n\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n\n this._bitmaps.clear();\n\n this.pendingCleanup = false;\n return true;\n }\n\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\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 intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\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({\n renderingIntent,\n cacheKey,\n annotationStorageMap\n }) {\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: annotationStorageMap\n });\n\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\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 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)).catch(() => {});\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\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();\n }\n\n postMessage(obj, transfers) {\n const event = {\n data: structuredClone(obj, transfers)\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;\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n if (_is_node.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n PDFWorkerUtil.isSameOrigin = function (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\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\nclass PDFWorker {\n static #workerPorts = new WeakMap();\n\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n if (port && PDFWorker.#workerPorts.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.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 PDFWorker.#workerPorts.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 (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n let {\n workerSrc\n } = PDFWorker;\n\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.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 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();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\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 (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._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${PDFWorkerUtil.fakeWorkerId++}`;\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 PDFWorker.#workerPorts.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?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (this.#workerPorts.has(params.port)) {\n return this.#workerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n\n static get workerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch (ex) {\n return null;\n }\n }\n\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n\n await (0, _display_utils.loadScript)(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n\n}\n\nexports.PDFWorker = PDFWorker;\n{\n PDFWorker.getWorkerSrc = function () {\n (0, _display_utils.deprecated)(\"`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.\");\n return this.workerSrc;\n };\n}\n\nclass WorkerTransport {\n #docStats = null;\n #pageCache = new Map();\n #pagePromises = new Map();\n #metadataPromise = null;\n\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 styleElement: params.styleElement\n });\n this._params = params;\n\n if (!params.useWorkerFetch) {\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.StandardFontDataFactory = new params.StandardFontDataFactory({\n baseUrl: params.standardFontDataUrl\n });\n }\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.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 get stats() {\n return this.#docStats;\n }\n\n getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) {\n let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n let annotationMap = null;\n\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n\n case \"display\":\n break;\n\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n\n default:\n (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n }\n\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n\n case _util.AnnotationMode.ENABLE:\n break;\n\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n annotationMap = annotationStorage.serializable;\n break;\n\n default:\n (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${_annotation_storage.AnnotationStorage.getHash(annotationMap)}`,\n annotationStorageMap: annotationMap\n };\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.values()) {\n waitOn.push(page._destroy());\n }\n\n this.#pageCache.clear();\n this.#pagePromises.clear();\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.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\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) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\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 this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\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 default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\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 if (password instanceof Error) {\n this._passwordCapability.reject(password);\n } else {\n this._passwordCapability.resolve({\n password\n });\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 loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\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.get(data.pageIndex);\n\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return;\n }\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\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n\n const pageProxy = this.#pageCache.get(pageIndex);\n\n if (pageProxy.objs.has(id)) {\n return;\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) {\n let length;\n\n if (imageData.bitmap) {\n const {\n bitmap,\n width,\n height\n } = imageData;\n length = width * height * 4;\n\n pageProxy._bitmaps.add(bitmap);\n } else {\n length = imageData.data?.length || 0;\n }\n\n if (length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n }\n\n break;\n\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"DocStats\", data => {\n if (this.destroyed) {\n return;\n }\n\n this.#docStats = Object.freeze({\n streamTypes: Object.freeze(data.streamTypes),\n fontTypes: Object.freeze(data.fontTypes)\n });\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!this.CMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return this.CMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!this.StandardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return this.StandardFontDataFactory.fetch(data);\n });\n }\n\n _onUnsupportedFeature({\n featureId\n }) {\n if (this.destroyed) {\n return;\n }\n\n this.loadingTask.onUnsupportedFeature?.(featureId);\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 cachedPromise = this.#pagePromises.get(pageIndex);\n\n if (cachedPromise) {\n return cachedPromise;\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.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n getPageIndex(ref) {\n if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\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 isPureXfa: !!this._htmlForXfa,\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._getFieldObjectsPromise ||= this.messageHandler.sendWithPromise(\"GetFieldObjects\", null);\n }\n\n hasJSActions() {\n return 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 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.#metadataPromise ||= 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 async startCleanup(keepLoadedFonts = false) {\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n if (this.destroyed) {\n return;\n }\n\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n\n this.commonObjs.clear();\n\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n\n this.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\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 enableXfa: params.enableXfa\n });\n }\n\n}\n\nclass PDFObjects {\n #objs = Object.create(null);\n\n #ensureObj(objId) {\n const obj = this.#objs[objId];\n\n if (obj) {\n return obj;\n }\n\n return this.#objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null\n };\n }\n\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n\n const obj = this.#objs[objId];\n\n if (!obj?.capability.settled) {\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?.capability.settled || false;\n }\n\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.capability.resolve();\n }\n\n clear() {\n this.#objs = Object.create(null);\n }\n\n}\n\nclass RenderTask {\n #internalRenderTask = null;\n\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 get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n\n if (!separateAnnots) {\n return false;\n }\n\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n\n}\n\nexports.RenderTask = RenderTask;\n\nclass InternalRenderTask {\n static #canvasInUse = new WeakSet();\n\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\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 (InternalRenderTask.#canvasInUse.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 InternalRenderTask.#canvasInUse.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, this.annotationCanvasMap, this.pageColors);\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 InternalRenderTask.#canvasInUse.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 InternalRenderTask.#canvasInUse.delete(this._canvas);\n }\n\n this.callback();\n }\n }\n }\n\n}\n\nconst version = '2.16.105';\nexports.version = version;\nconst build = '172ccdbe5';\nexports.build = build;\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _editor = __w_pdfjs_require__(6);\n\nvar _murmurhash = __w_pdfjs_require__(10);\n\nclass AnnotationStorage {\n constructor() {\n this._storage = new Map();\n this._modified = false;\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n\n getValue(key, defaultValue) {\n const value = this._storage.get(key);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return Object.assign(defaultValue, value);\n }\n\n getRawValue(key) {\n return this._storage.get(key);\n }\n\n remove(key) {\n this._storage.delete(key);\n\n if (this._storage.size === 0) {\n this.resetModified();\n }\n\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this._storage.values()) {\n if (value instanceof _editor.AnnotationEditor) {\n return;\n }\n }\n\n this.onAnnotationEditor(null);\n }\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 modified = true;\n\n this._storage.set(key, value);\n }\n\n if (modified) {\n this.#setModified();\n }\n\n if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n\n has(key) {\n return this._storage.has(key);\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 print() {\n return new PrintAnnotationStorage(this);\n }\n\n get serializable() {\n if (this._storage.size === 0) {\n return null;\n }\n\n const clone = new Map();\n\n for (const [key, val] of this._storage) {\n const serialized = val instanceof _editor.AnnotationEditor ? val.serialize() : val;\n\n if (serialized) {\n clone.set(key, serialized);\n }\n }\n\n return clone;\n }\n\n static getHash(map) {\n if (!map) {\n return \"\";\n }\n\n const hash = new _murmurhash.MurmurHash3_64();\n\n for (const [key, val] of map) {\n hash.update(`${key}:${JSON.stringify(val)}`);\n }\n\n return hash.hexdigest();\n }\n\n}\n\nexports.AnnotationStorage = AnnotationStorage;\n\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable = null;\n\n constructor(parent) {\n super();\n this.#serializable = structuredClone(parent.serializable);\n }\n\n get print() {\n (0, _util.unreachable)(\"Should not call PrintAnnotationStorage.print\");\n }\n\n get serializable() {\n return this.#serializable;\n }\n\n}\n\nexports.PrintAnnotationStorage = PrintAnnotationStorage;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditor = void 0;\n\nvar _tools = __w_pdfjs_require__(7);\n\nvar _util = __w_pdfjs_require__(1);\n\nclass AnnotationEditor {\n #boundFocusin = this.focusin.bind(this);\n #boundFocusout = this.focusout.bind(this);\n #hasBeenSelected = false;\n #isEditing = false;\n #isInEditMode = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _colorManager = new _tools.ColorManager();\n static _zIndex = 1;\n\n constructor(parameters) {\n if (this.constructor === AnnotationEditor) {\n (0, _util.unreachable)(\"Cannot initialize AnnotationEditor.\");\n }\n\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n const [width, height] = this.parent.viewportBaseDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.rotation = this.parent.viewport.rotation;\n this.isAttachedToDOM = false;\n }\n\n static get _defaultLineColor() {\n return (0, _util.shadow)(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n\n focusin(event) {\n if (!this.#hasBeenSelected) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenSelected = false;\n }\n }\n\n focusout(event) {\n if (!this.isAttachedToDOM) {\n return;\n }\n\n const target = event.relatedTarget;\n\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n\n event.preventDefault();\n\n if (!this.parent.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n\n commit() {\n this.parent.addToAnnotationStorage(this);\n }\n\n dragstart(event) {\n const rect = this.parent.div.getBoundingClientRect();\n this.startX = event.clientX - rect.x;\n this.startY = event.clientY - rect.y;\n event.dataTransfer.setData(\"text/plain\", this.id);\n event.dataTransfer.effectAllowed = \"move\";\n }\n\n setAt(x, y, tx, ty) {\n const [width, height] = this.parent.viewportBaseDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.div.style.left = `${100 * this.x}%`;\n this.div.style.top = `${100 * this.y}%`;\n }\n\n translate(x, y) {\n const [width, height] = this.parent.viewportBaseDimensions;\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.div.style.left = `${100 * this.x}%`;\n this.div.style.top = `${100 * this.y}%`;\n }\n\n screenToPageTranslation(x, y) {\n const {\n rotation\n } = this.parent.viewport;\n\n switch (rotation) {\n case 90:\n return [y, -x];\n\n case 180:\n return [-x, -y];\n\n case 270:\n return [-y, x];\n\n default:\n return [x, y];\n }\n }\n\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.div.style.width = `${100 * width / parentWidth}%`;\n this.div.style.height = `${100 * height / parentHeight}%`;\n }\n\n getInitialTranslation() {\n return [0, 0];\n }\n\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.setAttribute(\"tabIndex\", 0);\n this.setInForeground();\n this.div.addEventListener(\"focusin\", this.#boundFocusin);\n this.div.addEventListener(\"focusout\", this.#boundFocusout);\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n (0, _tools.bindEvents)(this, this.div, [\"dragstart\", \"pointerdown\"]);\n return this.div;\n }\n\n pointerdown(event) {\n const isMac = _tools.KeyboardManager.platform.isMac;\n\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n\n this.#hasBeenSelected = true;\n }\n\n getRect(tx, ty) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n const [pageWidth, pageHeight] = this.parent.pageDimensions;\n const shiftX = pageWidth * tx / parentWidth;\n const shiftY = pageHeight * ty / parentHeight;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n\n switch (this.rotation) {\n case 0:\n return [x + shiftX, pageHeight - y - shiftY - height, x + shiftX + width, pageHeight - y - shiftY];\n\n case 90:\n return [x + shiftY, pageHeight - y + shiftX, x + shiftY + height, pageHeight - y + shiftX + width];\n\n case 180:\n return [x - shiftX - width, pageHeight - y + shiftY, x - shiftX, pageHeight - y + shiftY + height];\n\n case 270:\n return [x - shiftY - height, pageHeight - y - shiftX - width, x - shiftY, pageHeight - y - shiftX];\n\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n\n case 90:\n return [x1, pageHeight - y1, height, width];\n\n case 180:\n return [x2, pageHeight - y1, width, height];\n\n case 270:\n return [x2, pageHeight - y2, height, width];\n\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n\n onceAdded() {}\n\n isEmpty() {\n return false;\n }\n\n enableEditMode() {\n this.#isInEditMode = true;\n }\n\n disableEditMode() {\n this.#isInEditMode = false;\n }\n\n isInEditMode() {\n return this.#isInEditMode;\n }\n\n shouldGetKeyboardEvents() {\n return false;\n }\n\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n\n rebuild() {\n this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n }\n\n serialize() {\n (0, _util.unreachable)(\"An editor must be serializable\");\n }\n\n static deserialize(data, parent) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId()\n });\n editor.rotation = data.rotation;\n const [pageWidth, pageHeight] = parent.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n\n remove() {\n this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n\n if (!this.isEmpty()) {\n this.commit();\n }\n\n this.parent.remove(this);\n }\n\n select() {\n this.div?.classList.add(\"selectedEditor\");\n }\n\n unselect() {\n this.div?.classList.remove(\"selectedEditor\");\n }\n\n updateParams(type, value) {}\n\n disableEditing() {}\n\n enableEditing() {}\n\n get propertiesToUpdate() {\n return {};\n }\n\n get contentDiv() {\n return this.div;\n }\n\n get isEditing() {\n return this.#isEditing;\n }\n\n set isEditing(value) {\n this.#isEditing = value;\n\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n\n}\n\nexports.AnnotationEditor = AnnotationEditor;\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;\nexports.bindEvents = bindEvents;\nexports.opacityToHex = opacityToHex;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(8);\n\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\n\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\n\nclass IdManager {\n #id = 0;\n\n getId() {\n return `${_util.AnnotationEditorPrefix}${this.#id++}`;\n }\n\n}\n\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n\n add({\n cmd,\n undo,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n\n if (this.#locked) {\n return;\n }\n\n const save = {\n cmd,\n undo,\n type\n };\n\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n\n this.#commands[this.#position] = save;\n return;\n }\n\n const next = this.#position + 1;\n\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n\n this.#commands.push(save);\n }\n\n undo() {\n if (this.#position === -1) {\n return;\n }\n\n this.#locked = true;\n this.#commands[this.#position].undo();\n this.#locked = false;\n this.#position -= 1;\n }\n\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n this.#commands[this.#position].cmd();\n this.#locked = false;\n }\n }\n\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n\n destroy() {\n this.#commands = null;\n }\n\n}\n\nexports.CommandManager = CommandManager;\n\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const isMac = KeyboardManager.platform.isMac;\n\n for (const [keys, callback] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), callback);\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, callback);\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n\n static get platform() {\n const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n return (0, _util.shadow)(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\")\n });\n }\n\n #serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n\n const callback = this.callbacks.get(this.#serialize(event));\n\n if (!callback) {\n return;\n }\n\n callback.bind(self)();\n event.stopPropagation();\n event.preventDefault();\n }\n\n}\n\nexports.KeyboardManager = KeyboardManager;\n\nclass ClipboardManager {\n #elements = null;\n\n copy(element) {\n if (!element) {\n return;\n }\n\n if (Array.isArray(element)) {\n this.#elements = element.map(el => el.serialize());\n } else {\n this.#elements = [element.serialize()];\n }\n\n this.#elements = this.#elements.filter(el => !!el);\n\n if (this.#elements.length === 0) {\n this.#elements = null;\n }\n }\n\n paste() {\n return this.#elements;\n }\n\n isEmpty() {\n return this.#elements === null;\n }\n\n destroy() {\n this.#elements = null;\n }\n\n}\n\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n (0, _display_utils.getColorValues)(colors);\n return (0, _util.shadow)(this, \"_colors\", colors);\n }\n\n convert(color) {\n const rgb = (0, _display_utils.getRGB)(color);\n\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n\n return rgb;\n }\n\n getHexCode(name) {\n const rgb = this._colors.get(name);\n\n if (!rgb) {\n return name;\n }\n\n return _util.Util.makeHexColor(...rgb);\n }\n\n}\n\nexports.ColorManager = ColorManager;\n\nclass AnnotationEditorUIManager {\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #clipboardManager = new ClipboardManager();\n #commandManager = new CommandManager();\n #currentPageIndex = 0;\n #editorTypes = null;\n #eventBus = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #mode = _util.AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #boundKeydown = this.keydown.bind(this);\n #boundOnEditingAction = this.onEditingAction.bind(this);\n #boundOnPageChanging = this.onPageChanging.bind(this);\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasEmptyClipboard: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false\n };\n #container = null;\n static _keyboardManager = new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], AnnotationEditorUIManager.prototype.selectAll], [[\"ctrl+c\", \"mac+meta+c\"], AnnotationEditorUIManager.prototype.copy], [[\"ctrl+v\", \"mac+meta+v\"], AnnotationEditorUIManager.prototype.paste], [[\"ctrl+x\", \"mac+meta+x\"], AnnotationEditorUIManager.prototype.cut], [[\"ctrl+z\", \"mac+meta+z\"], AnnotationEditorUIManager.prototype.undo], [[\"ctrl+y\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], AnnotationEditorUIManager.prototype.redo], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\"], AnnotationEditorUIManager.prototype.delete], [[\"Escape\", \"mac+Escape\"], AnnotationEditorUIManager.prototype.unselectAll]]);\n\n constructor(container, eventBus) {\n this.#container = container;\n this.#eventBus = eventBus;\n\n this.#eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n\n this.#eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n }\n\n destroy() {\n this.#removeKeyboardManager();\n\n this.#eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n\n this.#eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#clipboardManager.destroy();\n this.#commandManager.destroy();\n }\n\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n\n focusMainContainer() {\n this.#container.focus();\n }\n\n #addKeyboardManager() {\n this.#container.addEventListener(\"keydown\", this.#boundKeydown);\n }\n\n #removeKeyboardManager() {\n this.#container.removeEventListener(\"keydown\", this.#boundKeydown);\n }\n\n keydown(event) {\n if (!this.getActive()?.shouldGetKeyboardEvents()) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n\n onEditingAction(details) {\n if ([\"undo\", \"redo\", \"cut\", \"copy\", \"paste\", \"delete\", \"selectAll\"].includes(details.name)) {\n this[details.name]();\n }\n }\n\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n\n if (hasChanged) {\n this.#eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n }\n }\n\n #dispatchUpdateUI(details) {\n this.#eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n\n setEditingState(isEditing) {\n if (isEditing) {\n this.#addKeyboardManager();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== _util.AnnotationEditorType.NONE,\n isEmpty: this.#isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false,\n hasEmptyClipboard: this.#clipboardManager.isEmpty()\n });\n } else {\n this.#removeKeyboardManager();\n this.#dispatchUpdateStates({\n isEditing: false\n });\n }\n }\n\n registerEditorTypes(types) {\n this.#editorTypes = types;\n\n for (const editorType of this.#editorTypes) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n\n getId() {\n return this.#idManager.getId();\n }\n\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n\n updateMode(mode) {\n this.#mode = mode;\n\n if (mode === _util.AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n } else {\n this.setEditingState(true);\n this.#enableAll();\n\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n }\n }\n\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n\n this.#eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n\n updateParams(type, value) {\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n\n #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n\n for (const layer of this.#allLayers.values()) {\n layer.enable();\n }\n }\n }\n\n #disableAll() {\n this.unselectAll();\n\n if (this.#isEnabled) {\n this.#isEnabled = false;\n\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n }\n }\n\n getEditors(pageIndex) {\n const editors = [];\n\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n\n return editors;\n }\n\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n\n removeEditor(editor) {\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n }\n\n #addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n }\n }\n\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n\n this.#activeEditor = editor;\n\n if (editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n }\n\n redo() {\n this.#commandManager.redo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.#isEmpty()\n });\n }\n\n addCommands(params) {\n this.#commandManager.add(params);\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.#isEmpty()\n });\n }\n\n #isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n\n return false;\n }\n\n delete() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n }\n\n if (!this.hasSelection) {\n return;\n }\n\n const editors = [...this.#selectedEditors];\n\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n\n const undo = () => {\n for (const editor of editors) {\n this.#addEditorToLayer(editor);\n }\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n copy() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n }\n\n if (this.hasSelection) {\n const editors = [];\n\n for (const editor of this.#selectedEditors) {\n if (!editor.isEmpty()) {\n editors.push(editor);\n }\n }\n\n if (editors.length === 0) {\n return;\n }\n\n this.#clipboardManager.copy(editors);\n this.#dispatchUpdateStates({\n hasEmptyClipboard: false\n });\n }\n }\n\n cut() {\n this.copy();\n this.delete();\n }\n\n paste() {\n if (this.#clipboardManager.isEmpty()) {\n return;\n }\n\n this.unselectAll();\n const layer = this.#allLayers.get(this.#currentPageIndex);\n const newEditors = this.#clipboardManager.paste().map(data => layer.deserialize(data));\n\n const cmd = () => {\n for (const editor of newEditors) {\n this.#addEditorToLayer(editor);\n }\n\n this.#selectEditors(newEditors);\n };\n\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n #selectEditors(editors) {\n this.#selectedEditors.clear();\n\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n\n this.#selectedEditors.add(editor);\n editor.select();\n }\n\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n\n this.#selectEditors(this.#allEditors.values());\n }\n\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n return;\n }\n\n if (this.#selectEditors.size === 0) {\n return;\n }\n\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n\n this.#selectedEditors.clear();\n this.#dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n\n getActive() {\n return this.#activeEditor;\n }\n\n getMode() {\n return this.#mode;\n }\n\n}\n\nexports.AnnotationEditorUIManager = AnnotationEditorUIManager;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = exports.AnnotationPrefix = void 0;\nexports.deprecated = deprecated;\nexports.getColorValues = getColorValues;\nexports.getCurrentTransform = getCurrentTransform;\nexports.getCurrentTransformInverse = getCurrentTransformInverse;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getRGB = getRGB;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\n\nvar _base_factory = __w_pdfjs_require__(9);\n\nvar _util = __w_pdfjs_require__(1);\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nexports.AnnotationPrefix = AnnotationPrefix;\n\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\n\nexports.PixelsPerInch = PixelsPerInch;\n\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nasync function fetchData(url, asTypedArray = false) {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n }\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (asTypedArray) {\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 data;\n\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (data) {\n resolve(data);\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n}\n\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, true);\n }\n\n}\n\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\n\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n _createSVG(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, \"RenderingCancelledException\");\n this.type = type;\n }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\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 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).append(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 || typeof input !== \"string\") {\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\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\n\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n\n (0, _util.warn)(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\n\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n\n span.remove();\n}\n\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\n\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\n\nvar _util = __w_pdfjs_require__(1);\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 if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = this._createCanvas(width, height);\n\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\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 _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n\n}\n\nexports.BaseCanvasFactory = BaseCanvasFactory;\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 BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n\n this.baseUrl = baseUrl;\n }\n\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n\n _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\n\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n\n const svg = this._createSVG(\"svg:svg\");\n\n svg.setAttribute(\"version\", \"1.1\");\n\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n\n return this._createSVG(type);\n }\n\n _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n\n}\n\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n\n}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 11 */\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__(1);\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature,\n ownerDocument = globalThis.document,\n styleElement = null\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].append(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 const hasFonts = !!this._document?.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\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.append(span);\n }\n\n this._document.body.append(div);\n\n isFontReady(loadTestFontId, () => {\n div.remove();\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.FeatureTest.isEvalSupported) {\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/* 12 */\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 _display_utils = __w_pdfjs_require__(8);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _pattern_helper = __w_pdfjs_require__(13);\n\nvar _image_utils = __w_pdfjs_require__(14);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = _is_node.isNodeJS && typeof Path2D === \"undefined\" ? -1 : 1000;\nconst FULL_CHUNK_HEIGHT = 16;\n\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\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.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n\n ctx.save = function ctxSave() {\n destCtx.save();\n\n this.__originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n\n this.__originalRestore();\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n\n this.__originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n\n this.__originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n\n this.__originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n\n this.__originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n\n this.__originalRotate(angle);\n };\n\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n\n this.__originalClip(rule);\n };\n\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n\n this.__originalMoveTo(x, y);\n };\n\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n\n this.__originalLineTo(x, y);\n };\n\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n\n this.__originalRect(x, y, width, height);\n };\n\n ctx.closePath = function () {\n destCtx.closePath();\n\n this.__originalClosePath();\n };\n\n ctx.beginPath = function () {\n destCtx.beginPath();\n\n this.__originalBeginPath();\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) {\n let canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n return canvasEntry;\n }\n\n delete(id) {\n delete this.cache[id];\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 drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx);\n\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\n\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n\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 width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n\n for (const elem of imgData.data) {\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 path = new Path2D();\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 path.moveTo(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 path.lineTo(p % width1, p / width1 | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n --i;\n }\n\n data = null;\n points = null;\n\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nclass CanvasExtraState {\n constructor(width, height) {\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.transferMaps = null;\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n updatePathMinMax(transform, x, y) {\n [x, y] = _util.Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n\n updateRectMinMax(transform, rect) {\n const p1 = _util.Util.applyTransform(rect, transform);\n\n const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n\n this.minX = Math.min(this.minX, p1[0], p2[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n }\n\n updateScalingPathMinMax(transform, minMax) {\n _util.Util.scaleMinMax(transform, minMax);\n\n this.minX = Math.min(this.minX, minMax[0]);\n this.maxX = Math.max(this.maxX, minMax[1]);\n this.minY = Math.min(this.minY, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n\n if (minMax) {\n minMax[0] = Math.min(minMax[0], box[0], box[2]);\n minMax[1] = Math.max(minMax[1], box[0], box[2]);\n minMax[2] = Math.min(minMax[2], box[1], box[3]);\n minMax[3] = Math.max(minMax[3], box[1], box[3]);\n return;\n }\n\n this.updateRectMinMax(transform, box);\n }\n\n getPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n\n return box;\n }\n\n updateClipFromPath() {\n const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n\n isEmptyClip() {\n return this.minX === Infinity;\n }\n\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n\n getClippedPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n\n}\n\nfunction 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.FeatureTest.isLittleEndian ? 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\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 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 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 ({\n srcPos\n } = (0, _image_utils.applyMaskImageData)({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\n\nfunction 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\nfunction resetCtxToDefault(ctx, foregroundColor) {\n ctx.strokeStyle = ctx.fillStyle = foregroundColor || \"#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\nfunction 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\nfunction 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\nfunction 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\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\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(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n\n return false;\n}\n\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\n\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\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.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.backgroundColor = pageColors?.background || null;\n this.foregroundColor = pageColors?.foreground || null;\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n\n return fallback;\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 const defaultBackgroundColor = background || \"#ffffff\";\n this.ctx.save();\n\n if (this.foregroundColor && this.backgroundColor) {\n this.ctx.fillStyle = this.foregroundColor;\n const fg = this.foregroundColor = this.ctx.fillStyle;\n this.ctx.fillStyle = this.backgroundColor;\n const bg = this.backgroundColor = this.ctx.fillStyle;\n let isValidDefaultBg = true;\n let defaultBg = defaultBackgroundColor;\n this.ctx.fillStyle = defaultBackgroundColor;\n defaultBg = this.ctx.fillStyle;\n isValidDefaultBg = typeof defaultBg === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg);\n\n if (fg === \"#000000\" && bg === \"#ffffff\" || fg === bg || !isValidDefaultBg) {\n this.foregroundColor = this.backgroundColor = null;\n } else {\n const [rB, gB, bB] = (0, _display_utils.getRGB)(defaultBg);\n\n const newComp = x => {\n x /= 255;\n return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n };\n\n const lumB = Math.round(0.2126 * newComp(rB) + 0.7152 * newComp(gB) + 0.0722 * newComp(bB));\n\n this.selectColor = (r, g, b) => {\n const lumC = 0.2126 * newComp(r) + 0.7152 * newComp(g) + 0.0722 * newComp(b);\n return Math.round(lumC) === lumB ? bg : fg;\n };\n }\n }\n\n this.ctx.fillStyle = this.backgroundColor || defaultBackgroundColor;\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);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx));\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx, this.foregroundColor);\n\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n\n if (this.imageLayer) {\n (0, _display_utils.deprecated)(\"The `imageLayer` functionality will be removed in the future.\");\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 #restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\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\n endDrawing() {\n this.#restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n\n cache.clear();\n }\n\n this._cachedBitmapsMap.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n }\n\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\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(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n const withoutTranslation = currentTransform.slice(0, 4);\n cacheKey = JSON.stringify(isPatternFill ? withoutTranslation : [withoutTranslation, fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n\n if (!cache) {\n cache = new Map();\n\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n\n const cachedImage = cache.get(cacheKey);\n\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n\n scaled = cachedImage;\n }\n\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n\n let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n\n const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n\n const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n\n const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n\n const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx));\n scaled = scaled.img;\n\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n\n const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking = null;\n }\n\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 this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n }\n\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n\n this.ctx._removeMirroring();\n\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\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 if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, 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\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n\n break;\n\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\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 current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\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 ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\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, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n\n const intersect = this.current.getClippedPathBoundingBox();\n\n if (this.contentVisible && intersect !== null) {\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(intersect);\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 (const path of paths) {\n ctx.setTransform(...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) {\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(...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 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 ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: (0, _display_utils.getCurrentTransform)(ctx),\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 ctx.transform(...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 patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n patternTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n let lineWidth = current.lineWidth;\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 lineWidth = this.getSinglePixelWidth();\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 (typeof glyph === \"number\") {\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);\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);\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 this.compose();\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._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...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 (typeof glyph === \"number\") {\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(...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.ctx.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 || (0, _display_utils.getCurrentTransform)(this.ctx);\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 = this._getPattern(IR[1], IR[2]);\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 = this.selectColor?.(r, g, b) || _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 = this.selectColor?.(r, g, b) || _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 _getPattern(objId, matrix = null) {\n let pattern;\n\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n\n if (matrix) {\n pattern.matrix = matrix;\n }\n\n return pattern;\n }\n\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n this.save();\n\n const pattern = this._getPattern(objId);\n\n ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING);\n const inv = (0, _display_utils.getCurrentTransformInverse)(ctx);\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.compose(this.current.getClippedPathBoundingBox());\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(...matrix);\n }\n\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\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.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox);\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\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n\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 = (0, _display_utils.getCurrentTransform)(currentCtx);\n\n if (group.matrix) {\n currentCtx.transform(...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, (0, _display_utils.getCurrentTransform)(currentCtx));\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 this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\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);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...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 currentCtx.save();\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 }\n\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n\n const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx, this.foregroundColor);\n this.ctx.save();\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx));\n\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx, this.foregroundColor);\n } else {\n resetCtxToDefault(this.ctx, this.foregroundColor);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n\n const mask = this._createMaskCanvas(img);\n\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n\n const mask = this._createMaskCanvas(img);\n\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n\n const [x, y] = _util.Util.applyTransform([0, 0], trans);\n\n ctx.drawImage(mask.canvas, x, y);\n }\n\n ctx.restore();\n this.compose();\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 (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n\n this.compose();\n }\n\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = this.getObject(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 = this.getObject(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 let imgToPaint;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx));\n\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate);\n const [rWidth, rHeight] = drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n const [left, top] = _util.Util.applyTransform([0, -height], (0, _display_utils.getCurrentTransform)(this.ctx));\n\n this.imageLayer.appendImage({\n imgData,\n left,\n top,\n width: rWidth,\n height: rHeight\n });\n }\n\n this.compose();\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 (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n const [left, top] = _util.Util.applyTransform([entry.x, entry.y], (0, _display_utils.getCurrentTransform)(this.ctx));\n\n this.imageLayer.appendImage({\n imgData,\n left,\n top,\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n\n this.compose();\n }\n\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\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(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n\n const ctx = this.ctx;\n\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n\n this.pendingClip = null;\n }\n\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n\n return this._cachedGetSinglePixelWidth;\n }\n\n getScaleForStroking() {\n if (!this._cachedScaleForStroking) {\n const {\n lineWidth\n } = this.current;\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n let scaleX, scaleY;\n\n if (m[1] === 0 && m[2] === 0) {\n const normX = Math.abs(m[0]);\n const normY = Math.abs(m[3]);\n\n if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[1]);\n const normY = Math.hypot(m[2], m[3]);\n\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n\n this._cachedScaleForStroking = [scaleX, scaleY];\n }\n\n return this._cachedScaleForStroking;\n }\n\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n\n let savedMatrix, savedDashes, savedDashOffset;\n\n if (saveRestore) {\n savedMatrix = (0, _display_utils.getCurrentTransform)(ctx);\n savedDashes = ctx.getLineDash().slice();\n savedDashOffset = ctx.lineDashOffset;\n }\n\n ctx.scale(scaleX, scaleY);\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(ctx.getLineDash().map(x => x / scale));\n ctx.lineDashOffset /= scale;\n ctx.stroke();\n\n if (saveRestore) {\n ctx.setTransform(...savedMatrix);\n ctx.setLineDash(savedDashes);\n ctx.lineDashOffset = savedDashOffset;\n }\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\nexports.CanvasGraphics = CanvasGraphics;\n\nfor (const op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(8);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || _is_node.isNodeJS) {\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 = null;\n }\n\n _createGradient(ctx) {\n let grad;\n\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.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 return grad;\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, 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 tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(`RadialAxialShadingPattern.getPattern: \"${ex?.message}\".`);\n }\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n\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 {\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._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\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, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx));\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, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n\n if (this.matrix) {\n ctx.transform(...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 let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\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, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\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, inverse, pathType) {\n let matrix = inverse;\n\n if (pathType !== PathType.SHADING) {\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 = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(`TilingPattern.getPattern: \"${ex?.message}\".`);\n }\n\n return pattern;\n }\n\n}\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.applyMaskImageData = applyMaskImageData;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction applyMaskImageData({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n inverseDecode = false\n}) {\n const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n\n if (widthRemainder === 0) {\n continue;\n }\n\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n\n return {\n srcPos,\n destPos\n };\n}\n\n/***/ }),\n/* 15 */\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/* 16 */\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__(1);\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 (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\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 \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\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.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.comObj.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.comObj.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 sourceName = this.sourceName,\n targetName = this.targetName,\n 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 comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\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 streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\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 comObj.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 sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.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)(streamController, \"enqueue should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.isClosed = true;\n streamController.controller.close();\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(streamSink.onCancel && streamSink.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 streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.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(streamController, streamId) {\n await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 17 */\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__(1);\n\nclass Metadata {\n #metadataMap;\n #data;\n\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/* 18 */\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__(1);\n\nconst INTERNAL = Symbol(\"INTERNAL\");\n\nclass OptionalContentGroup {\n #visible = true;\n\n constructor(name, intent) {\n this.name = name;\n this.intent = intent;\n }\n\n get visible() {\n return this.#visible;\n }\n\n _setVisible(internal, visible) {\n if (internal !== INTERNAL) {\n (0, _util.unreachable)(\"Internal method `_setVisible` called.\");\n }\n\n this.#visible = visible;\n }\n\n}\n\nclass OptionalContentConfig {\n #cachedHasInitialVisibility = true;\n #groups = new Map();\n #initialVisibility = null;\n #order = null;\n\n constructor(data) {\n this.name = null;\n this.creator = null;\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.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n\n this.#initialVisibility = new Map();\n\n for (const [id, group] of this.#groups) {\n this.#initialVisibility.set(id, group.visible);\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 (this.#groups.size === 0) {\n return true;\n }\n\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n\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)._setVisible(INTERNAL, !!visible);\n\n this.#cachedHasInitialVisibility = null;\n }\n\n get hasInitialVisibility() {\n if (this.#cachedHasInitialVisibility !== null) {\n return this.#cachedHasInitialVisibility;\n }\n\n for (const [id, group] of this.#groups) {\n const visible = this.#initialVisibility.get(id);\n\n if (group.visible !== visible) {\n return this.#cachedHasInitialVisibility = false;\n }\n }\n\n return this.#cachedHasInitialVisibility = true;\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 [...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/* 19 */\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__(1);\n\nvar _display_utils = __w_pdfjs_require__(8);\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/* 20 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\n\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n\n function walk(node) {\n if (!node) {\n return;\n }\n\n let str = null;\n const name = node.name;\n\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n\n if (str !== null) {\n items.push({\n str\n });\n }\n\n if (!node.children) {\n return;\n }\n\n for (const child of node.children) {\n walk(child);\n }\n }\n\n walk(xfa);\n return output;\n }\n\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n\n}\n\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\n\nvar _base_factory = __w_pdfjs_require__(9);\n\n;\n\nconst fetchData = function (url) {\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(new Uint8Array(data));\n });\n });\n};\n\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = require(\"canvas\");\n\n return Canvas.createCanvas(width, height);\n }\n\n}\n\nexports.NodeCanvasFactory = NodeCanvasFactory;\n\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n\n}\n\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n\n}\n\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayer = void 0;\n\nvar _tools = __w_pdfjs_require__(7);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _freetext = __w_pdfjs_require__(23);\n\nvar _ink = __w_pdfjs_require__(24);\n\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #boundPointerup = this.pointerup.bind(this);\n #boundPointerdown = this.pointerdown.bind(this);\n #editors = new Map();\n #hadPointerDown = false;\n #isCleaningUp = false;\n #uiManager;\n static _initialized = false;\n\n constructor(options) {\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n\n _freetext.FreeTextEditor.initialize(options.l10n);\n\n _ink.InkEditor.initialize(options.l10n);\n\n options.uiManager.registerEditorTypes([_freetext.FreeTextEditor, _ink.InkEditor]);\n }\n\n this.#uiManager = options.uiManager;\n this.annotationStorage = options.annotationStorage;\n this.pageIndex = options.pageIndex;\n this.div = options.div;\n this.#accessibilityManager = options.accessibilityManager;\n this.#uiManager.addLayer(this);\n }\n\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n\n if (mode === _util.AnnotationEditorType.INK) {\n this.addInkEditorIfNeeded(false);\n this.disableClick();\n } else {\n this.enableClick();\n }\n\n this.#uiManager.unselectAll();\n }\n\n addInkEditorIfNeeded(isCommitting) {\n if (!isCommitting && this.#uiManager.getMode() !== _util.AnnotationEditorType.INK) {\n return;\n }\n\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n\n const editor = this.#createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n });\n editor.setInBackground();\n }\n\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n\n enable() {\n this.div.style.pointerEvents = \"auto\";\n\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n }\n }\n\n disable() {\n this.div.style.pointerEvents = \"none\";\n\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n }\n }\n\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n\n if (currentActive === editor) {\n return;\n }\n\n this.#uiManager.setActiveEditor(editor);\n }\n\n enableClick() {\n this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.addEventListener(\"pointerup\", this.#boundPointerup);\n }\n\n disableClick() {\n this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n }\n\n attach(editor) {\n this.#editors.set(editor.id, editor);\n }\n\n detach(editor) {\n this.#editors.delete(editor.id);\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n }\n\n remove(editor) {\n this.#uiManager.removeEditor(editor);\n this.detach(editor);\n this.annotationStorage.remove(editor.id);\n editor.div.style.display = \"none\";\n setTimeout(() => {\n editor.div.style.display = \"\";\n editor.div.remove();\n editor.isAttachedToDOM = false;\n\n if (document.activeElement === document.body) {\n this.#uiManager.focusMainContainer();\n }\n }, 0);\n\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n\n #changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n\n this.attach(editor);\n editor.pageIndex = this.pageIndex;\n editor.parent?.detach(editor);\n editor.parent = this;\n\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n\n add(editor) {\n this.#changeParent(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n\n this.moveEditorInDOM(editor);\n editor.onceAdded();\n this.addToAnnotationStorage(editor);\n }\n\n moveEditorInDOM(editor) {\n this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && !this.annotationStorage.has(editor.id)) {\n this.annotationStorage.setValue(editor.id, editor);\n }\n }\n\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.rebuild();\n } else {\n this.add(editor);\n }\n }\n\n addANewEditor(editor) {\n const cmd = () => {\n this.addOrRebuild(editor);\n };\n\n const undo = () => {\n editor.remove();\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n addUndoableEditor(editor) {\n const cmd = () => {\n this.addOrRebuild(editor);\n };\n\n const undo = () => {\n editor.remove();\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n\n getNextId() {\n return this.#uiManager.getId();\n }\n\n #createNewEditor(params) {\n switch (this.#uiManager.getMode()) {\n case _util.AnnotationEditorType.FREETEXT:\n return new _freetext.FreeTextEditor(params);\n\n case _util.AnnotationEditorType.INK:\n return new _ink.InkEditor(params);\n }\n\n return null;\n }\n\n deserialize(data) {\n switch (data.annotationType) {\n case _util.AnnotationEditorType.FREETEXT:\n return _freetext.FreeTextEditor.deserialize(data, this);\n\n case _util.AnnotationEditorType.INK:\n return _ink.InkEditor.deserialize(data, this);\n }\n\n return null;\n }\n\n #createAndAddNewEditor(event) {\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY\n });\n\n if (editor) {\n this.add(editor);\n }\n\n return editor;\n }\n\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n\n isSelected(editor) {\n return this.#uiManager.isSelected(editor);\n }\n\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n\n pointerup(event) {\n const isMac = _tools.KeyboardManager.platform.isMac;\n\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n\n if (event.target !== this.div) {\n return;\n }\n\n if (!this.#hadPointerDown) {\n return;\n }\n\n this.#hadPointerDown = false;\n\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n\n this.#createAndAddNewEditor(event);\n }\n\n pointerdown(event) {\n const isMac = _tools.KeyboardManager.platform.isMac;\n\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n\n if (event.target !== this.div) {\n return;\n }\n\n this.#hadPointerDown = true;\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n\n drop(event) {\n const id = event.dataTransfer.getData(\"text/plain\");\n const editor = this.#uiManager.getEditor(id);\n\n if (!editor) {\n return;\n }\n\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n this.#changeParent(editor);\n const rect = this.div.getBoundingClientRect();\n const endX = event.clientX - rect.x;\n const endY = event.clientY - rect.y;\n editor.translate(endX - editor.startX, endY - editor.startY);\n this.moveEditorInDOM(editor);\n editor.div.focus();\n }\n\n dragover(event) {\n event.preventDefault();\n }\n\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.setActiveEditor(null);\n }\n\n for (const editor of this.#editors.values()) {\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n editor.parent = null;\n }\n\n this.div = null;\n this.#editors.clear();\n this.#uiManager.removeLayer(this);\n }\n\n #cleanup() {\n this.#isCleaningUp = true;\n\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n\n this.#isCleaningUp = false;\n }\n\n render(parameters) {\n this.viewport = parameters.viewport;\n (0, _tools.bindEvents)(this, this.div, [\"dragover\", \"drop\"]);\n this.setDimensions();\n\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n }\n\n this.updateMode();\n }\n\n update(parameters) {\n this.viewport = parameters.viewport;\n this.setDimensions();\n this.updateMode();\n }\n\n get scaleFactor() {\n return this.viewport.scale;\n }\n\n get pageDimensions() {\n const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n const width = pageURx - pageLLx;\n const height = pageURy - pageLLy;\n return [width, height];\n }\n\n get viewportBaseDimensions() {\n const {\n width,\n height,\n rotation\n } = this.viewport;\n return rotation % 180 === 0 ? [width, height] : [height, width];\n }\n\n setDimensions() {\n const {\n width,\n height,\n rotation\n } = this.viewport;\n const flipOrientation = rotation % 180 !== 0,\n widthStr = Math.floor(width) + \"px\",\n heightStr = Math.floor(height) + \"px\";\n this.div.style.width = flipOrientation ? heightStr : widthStr;\n this.div.style.height = flipOrientation ? widthStr : heightStr;\n this.div.setAttribute(\"data-main-rotation\", rotation);\n }\n\n}\n\nexports.AnnotationEditorLayer = AnnotationEditorLayer;\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FreeTextEditor = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _tools = __w_pdfjs_require__(7);\n\nvar _editor = __w_pdfjs_require__(6);\n\nclass FreeTextEditor extends _editor.AnnotationEditor {\n #boundEditorDivBlur = this.editorDivBlur.bind(this);\n #boundEditorDivFocus = this.editorDivFocus.bind(this);\n #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n #color;\n #content = \"\";\n #hasAlreadyBeenCommitted = false;\n #fontSize;\n static _freeTextDefaultContent = \"\";\n static _l10nPromise;\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static _keyboardManager = new _tools.KeyboardManager([[[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], FreeTextEditor.prototype.commitOrRemove]]);\n static _type = \"freetext\";\n\n constructor(params) {\n super({ ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n\n static initialize(l10n) {\n this._l10nPromise = new Map([\"free_text_default_content\", \"editor_free_text_aria_label\"].map(str => [str, l10n.get(str)]));\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]];\n }\n\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parent.scaleFactor);\n this.#fontSize = size;\n this.#setEditorDimensions();\n };\n\n const savedFontsize = this.#fontSize;\n this.parent.addCommands({\n cmd: () => {\n setFontsize(fontSize);\n },\n undo: () => {\n setFontsize(savedFontsize);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n #updateColor(color) {\n const savedColor = this.#color;\n this.parent.addCommands({\n cmd: () => {\n this.#color = color;\n this.editorDiv.style.color = color;\n },\n undo: () => {\n this.#color = savedColor;\n this.editorDiv.style.color = savedColor;\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n getInitialTranslation() {\n return [-FreeTextEditor._internalPadding * this.parent.scaleFactor, -(FreeTextEditor._internalPadding + this.#fontSize) * this.parent.scaleFactor];\n }\n\n rebuild() {\n super.rebuild();\n\n if (this.div === null) {\n return;\n }\n\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n\n this.parent.setEditingState(false);\n this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.enableEditing();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this.div.draggable = false;\n this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n }\n\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.disableEditing();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.draggable = true;\n this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n this.div.focus();\n this.isEditing = false;\n }\n\n focusin(event) {\n super.focusin(event);\n\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n\n onceAdded() {\n if (this.width) {\n return;\n }\n\n this.enableEditMode();\n this.editorDiv.focus();\n }\n\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n\n remove() {\n this.isEditing = false;\n this.parent.setEditingState(true);\n super.remove();\n }\n\n #extractText() {\n const divs = this.editorDiv.getElementsByTagName(\"div\");\n\n if (divs.length === 0) {\n return this.editorDiv.innerText;\n }\n\n const buffer = [];\n\n for (let i = 0, ii = divs.length; i < ii; i++) {\n const div = divs[i];\n const first = div.firstChild;\n\n if (first?.nodeName === \"#text\") {\n buffer.push(first.data);\n } else {\n buffer.push(\"\");\n }\n }\n\n return buffer.join(\"\\n\");\n }\n\n #setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n const rect = this.div.getBoundingClientRect();\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n }\n\n commit() {\n super.commit();\n\n if (!this.#hasAlreadyBeenCommitted) {\n this.#hasAlreadyBeenCommitted = true;\n this.parent.addUndoableEditor(this);\n }\n\n this.disableEditMode();\n this.#content = this.#extractText().trimEnd();\n this.#setEditorDimensions();\n }\n\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n\n dblclick(event) {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n }\n\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n\n editorDivFocus(event) {\n this.isEditing = true;\n }\n\n editorDivBlur(event) {\n this.isEditing = false;\n }\n\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n\n render() {\n if (this.div) {\n return this.div;\n }\n\n let baseX, baseY;\n\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", `${this.id}-editor`);\n this.enableEditing();\n\n FreeTextEditor._l10nPromise.get(\"editor_free_text_aria_label\").then(msg => this.editorDiv?.setAttribute(\"aria-label\", msg));\n\n FreeTextEditor._l10nPromise.get(\"free_text_default_content\").then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n (0, _tools.bindEvents)(this, this.div, [\"dblclick\", \"keydown\"]);\n\n if (this.width) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n\n this.div.draggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this.div.draggable = false;\n this.editorDiv.contentEditable = true;\n }\n\n return this.div;\n }\n\n get contentDiv() {\n return this.editorDiv;\n }\n\n static deserialize(data, parent) {\n const editor = super.deserialize(data, parent);\n editor.#fontSize = data.fontSize;\n editor.#color = _util.Util.makeHexColor(...data.color);\n editor.#content = data.value;\n return editor;\n }\n\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n\n const padding = FreeTextEditor._internalPadding * this.parent.scaleFactor;\n const rect = this.getRect(padding, padding);\n\n const color = _editor.AnnotationEditor._colorManager.convert(getComputedStyle(this.editorDiv).color);\n\n return {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#content,\n pageIndex: this.parent.pageIndex,\n rect,\n rotation: this.rotation\n };\n }\n\n}\n\nexports.FreeTextEditor = FreeTextEditor;\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InkEditor = void 0;\nObject.defineProperty(exports, \"fitCurve\", ({\n enumerable: true,\n get: function () {\n return _pdfjsFitCurve.fitCurve;\n }\n}));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _editor = __w_pdfjs_require__(6);\n\nvar _pdfjsFitCurve = __w_pdfjs_require__(25);\n\nvar _tools = __w_pdfjs_require__(7);\n\nconst RESIZER_SIZE = 16;\n\nclass InkEditor extends _editor.AnnotationEditor {\n #aspectRatio = 0;\n #baseHeight = 0;\n #baseWidth = 0;\n #boundCanvasPointermove = this.canvasPointermove.bind(this);\n #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n #boundCanvasPointerup = this.canvasPointerup.bind(this);\n #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n #disableEditing = false;\n #isCanvasInitialized = false;\n #lastPoint = null;\n #observer = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _l10nPromise;\n static _type = \"ink\";\n\n constructor(params) {\n super({ ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n }\n\n static initialize(l10n) {\n this._l10nPromise = new Map([\"editor_ink_canvas_aria_label\", \"editor_ink_aria_label\"].map(str => [str, l10n.get(str)]));\n }\n\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n\n case _util.AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n this.#updateThickness(value);\n break;\n\n case _util.AnnotationEditorParamsType.INK_COLOR:\n this.#updateColor(value);\n break;\n\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n this.#updateOpacity(value);\n break;\n }\n }\n\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n\n #updateThickness(thickness) {\n const savedThickness = this.thickness;\n this.parent.addCommands({\n cmd: () => {\n this.thickness = thickness;\n this.#fitToContent();\n },\n undo: () => {\n this.thickness = savedThickness;\n this.#fitToContent();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n #updateColor(color) {\n const savedColor = this.color;\n this.parent.addCommands({\n cmd: () => {\n this.color = color;\n this.#redraw();\n },\n undo: () => {\n this.color = savedColor;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n #updateOpacity(opacity) {\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.parent.addCommands({\n cmd: () => {\n this.opacity = opacity;\n this.#redraw();\n },\n undo: () => {\n this.opacity = savedOpacity;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n rebuild() {\n super.rebuild();\n\n if (this.div === null) {\n return;\n }\n\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.#setCanvasDims();\n }\n\n this.#fitToContent();\n }\n\n remove() {\n if (this.canvas === null) {\n return;\n }\n\n if (!this.isEmpty()) {\n this.commit();\n }\n\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n this.#observer.disconnect();\n this.#observer = null;\n super.remove();\n }\n\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n\n super.enableEditMode();\n this.div.draggable = false;\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\n }\n\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n\n super.disableEditMode();\n this.div.draggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n }\n\n onceAdded() {\n this.div.draggable = !this.isEmpty();\n }\n\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n\n #getInitialBBox() {\n const {\n width,\n height,\n rotation\n } = this.parent.viewport;\n\n switch (rotation) {\n case 90:\n return [0, width, width, height];\n\n case 180:\n return [width, height, width, height];\n\n case 270:\n return [height, 0, width, height];\n\n default:\n return [0, 0, width, height];\n }\n }\n\n #setStroke() {\n this.ctx.lineWidth = this.thickness * this.parent.scaleFactor / this.scaleFactor;\n this.ctx.lineCap = \"round\";\n this.ctx.lineJoin = \"round\";\n this.ctx.miterLimit = 10;\n this.ctx.strokeStyle = `${this.color}${(0, _tools.opacityToHex)(this.opacity)}`;\n }\n\n #startDrawing(x, y) {\n this.isEditing = true;\n\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n\n this.currentPath.push([x, y]);\n this.#lastPoint = null;\n this.#setStroke();\n this.ctx.beginPath();\n this.ctx.moveTo(x, y);\n\n this.#requestFrameCallback = () => {\n if (!this.#requestFrameCallback) {\n return;\n }\n\n if (this.#lastPoint) {\n if (this.isEmpty()) {\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n } else {\n this.#redraw();\n }\n\n this.ctx.lineTo(...this.#lastPoint);\n this.#lastPoint = null;\n this.ctx.stroke();\n }\n\n window.requestAnimationFrame(this.#requestFrameCallback);\n };\n\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n\n #draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n\n if (x === lastX && y === lastY) {\n return;\n }\n\n this.currentPath.push([x, y]);\n this.#lastPoint = [x, y];\n }\n\n #stopDrawing(x, y) {\n this.ctx.closePath();\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n const [lastX, lastY] = this.currentPath.at(-1);\n\n if (x !== lastX || y !== lastY) {\n this.currentPath.push([x, y]);\n }\n\n let bezier;\n\n if (this.currentPath.length !== 1) {\n bezier = (0, _pdfjsFitCurve.fitCurve)(this.currentPath, 30, null);\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n\n const path2D = InkEditor.#buildPath2D(bezier);\n this.currentPath.length = 0;\n\n const cmd = () => {\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this.rebuild();\n };\n\n const undo = () => {\n this.paths.pop();\n this.bezierPath2D.pop();\n\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n\n this.#fitToContent();\n }\n };\n\n this.parent.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n #redraw() {\n if (this.isEmpty()) {\n this.#updateTransform();\n return;\n }\n\n this.#setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.#updateTransform();\n\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n\n commit() {\n if (this.#disableEditing) {\n return;\n }\n\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.#fitToContent(true);\n this.parent.addInkEditorIfNeeded(true);\n this.parent.moveEditorInDOM(this);\n this.div.focus();\n }\n\n focusin(event) {\n super.focusin(event);\n this.enableEditMode();\n }\n\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n\n this.setInForeground();\n\n if (event.type !== \"mouse\") {\n this.div.focus();\n }\n\n event.stopPropagation();\n this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.#startDrawing(event.offsetX, event.offsetY);\n }\n\n canvasPointermove(event) {\n event.stopPropagation();\n this.#draw(event.offsetX, event.offsetY);\n }\n\n canvasPointerup(event) {\n if (event.button !== 0) {\n return;\n }\n\n if (this.isInEditMode() && this.currentPath.length !== 0) {\n event.stopPropagation();\n this.#endDrawing(event);\n this.setInBackground();\n }\n }\n\n canvasPointerleave(event) {\n this.#endDrawing(event);\n this.setInBackground();\n }\n\n #endDrawing(event) {\n this.#stopDrawing(event.offsetX, event.offsetY);\n this.canvas.removeEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.removeEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.parent.addToAnnotationStorage(this);\n }\n\n #createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n\n InkEditor._l10nPromise.get(\"editor_ink_canvas_aria_label\").then(msg => this.canvas?.setAttribute(\"aria-label\", msg));\n\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n\n render() {\n if (this.div) {\n return this.div;\n }\n\n let baseX, baseY;\n\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n\n super.render();\n\n InkEditor._l10nPromise.get(\"editor_ink_aria_label\").then(msg => this.div?.setAttribute(\"aria-label\", msg));\n\n const [x, y, w, h] = this.#getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.#createCanvas();\n\n if (this.width) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.#redraw();\n this.#setMinDims();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n\n this.#createObserver();\n return this.div;\n }\n\n #setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.#updateTransform();\n }\n\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n\n if (this.#aspectRatio && Math.abs(this.#aspectRatio - width / height) > 1e-2) {\n height = Math.ceil(width / this.#aspectRatio);\n this.setDims(width, height);\n }\n\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n\n if (this.#disableEditing) {\n this.#setScaleFactor(width, height);\n }\n\n this.#setCanvasDims();\n this.#redraw();\n this.canvas.style.visibility = \"visible\";\n }\n\n #setScaleFactor(width, height) {\n const padding = this.#getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n\n #updateTransform() {\n const padding = this.#getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n\n static #buildPath2D(bezier) {\n const path2D = new Path2D();\n\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n\n if (i === 0) {\n path2D.moveTo(...first);\n }\n\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n\n return path2D;\n }\n\n #serializePaths(s, tx, ty, h) {\n const NUMBER_OF_POINTS_ON_BEZIER_CURVE = 4;\n const paths = [];\n const padding = this.thickness / 2;\n let buffer, points;\n\n for (const bezier of this.paths) {\n buffer = [];\n points = [];\n\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n const p10 = s * (first[0] + tx) + padding;\n const p11 = h - s * (first[1] + ty) - padding;\n const p20 = s * (control1[0] + tx) + padding;\n const p21 = h - s * (control1[1] + ty) - padding;\n const p30 = s * (control2[0] + tx) + padding;\n const p31 = h - s * (control2[1] + ty) - padding;\n const p40 = s * (second[0] + tx) + padding;\n const p41 = h - s * (second[1] + ty) - padding;\n\n if (i === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n\n buffer.push(p20, p21, p30, p31, p40, p41);\n this.#extractPointsOnBezier(p10, p11, p20, p21, p30, p31, p40, p41, NUMBER_OF_POINTS_ON_BEZIER_CURVE, points);\n }\n\n paths.push({\n bezier: buffer,\n points\n });\n }\n\n return paths;\n }\n\n #extractPointsOnBezier(p10, p11, p20, p21, p30, p31, p40, p41, n, points) {\n if (this.#isAlmostFlat(p10, p11, p20, p21, p30, p31, p40, p41)) {\n points.push(p40, p41);\n return;\n }\n\n for (let i = 1; i < n - 1; i++) {\n const t = i / n;\n const mt = 1 - t;\n let q10 = t * p10 + mt * p20;\n let q11 = t * p11 + mt * p21;\n let q20 = t * p20 + mt * p30;\n let q21 = t * p21 + mt * p31;\n const q30 = t * p30 + mt * p40;\n const q31 = t * p31 + mt * p41;\n q10 = t * q10 + mt * q20;\n q11 = t * q11 + mt * q21;\n q20 = t * q20 + mt * q30;\n q21 = t * q21 + mt * q31;\n q10 = t * q10 + mt * q20;\n q11 = t * q11 + mt * q21;\n points.push(q10, q11);\n }\n\n points.push(p40, p41);\n }\n\n #isAlmostFlat(p10, p11, p20, p21, p30, p31, p40, p41) {\n const tol = 10;\n const ax = (3 * p20 - 2 * p10 - p40) ** 2;\n const ay = (3 * p21 - 2 * p11 - p41) ** 2;\n const bx = (3 * p30 - p10 - 2 * p40) ** 2;\n const by = (3 * p31 - p11 - 2 * p41) ** 2;\n return Math.max(ax, bx) + Math.max(ay, by) <= tol;\n }\n\n #getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n\n return [xMin, yMin, xMax, yMax];\n }\n\n #getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parent.scaleFactor) : 0;\n }\n\n #fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n\n if (!this.#disableEditing) {\n this.#redraw();\n return;\n }\n\n const bbox = this.#getBbox();\n const padding = this.#getPadding();\n this.#baseWidth = Math.max(RESIZER_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(RESIZER_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.#aspectRatio = width / height;\n this.#setMinDims();\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.#setCanvasDims();\n this.#redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n\n #setMinDims() {\n const {\n style\n } = this.div;\n\n if (this.#aspectRatio >= 1) {\n style.minHeight = `${RESIZER_SIZE}px`;\n style.minWidth = `${Math.round(this.#aspectRatio * RESIZER_SIZE)}px`;\n } else {\n style.minWidth = `${RESIZER_SIZE}px`;\n style.minHeight = `${Math.round(RESIZER_SIZE / this.#aspectRatio)}px`;\n }\n }\n\n static deserialize(data, parent) {\n const editor = super.deserialize(data, parent);\n editor.thickness = data.thickness;\n editor.color = _util.Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = parent.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = parent.scaleFactor;\n const padding = data.thickness / 2;\n editor.#aspectRatio = width / height;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n\n for (const {\n bezier\n } of data.paths) {\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (height - bezier[1] - padding);\n\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (height - bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (height - bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (height - bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n\n const path2D = this.#buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n\n const bbox = editor.#getBbox();\n editor.#baseWidth = Math.max(RESIZER_SIZE, bbox[2] - bbox[0]);\n editor.#baseHeight = Math.max(RESIZER_SIZE, bbox[3] - bbox[1]);\n editor.#setScaleFactor(width, height);\n return editor;\n }\n\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n\n const rect = this.getRect(0, 0);\n const height = this.rotation % 180 === 0 ? rect[3] - rect[1] : rect[2] - rect[0];\n\n const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n\n return {\n annotationType: _util.AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.#serializePaths(this.scaleFactor / this.parent.scaleFactor, this.translationX, this.translationY, height),\n pageIndex: this.parent.pageIndex,\n rect,\n rotation: this.rotation\n };\n }\n\n}\n\nexports.InkEditor = InkEditor;\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.fitCurve = void 0;\n\nconst fitCurve = __w_pdfjs_require__(26);\n\nexports.fitCurve = fitCurve;\n\n/***/ }),\n/* 26 */\n/***/ ((module) => {\n\n\n\nfunction fitCurve(points, maxError, progressCallback) {\n if (!Array.isArray(points)) {\n throw new TypeError(\"First argument should be an array\");\n }\n\n points.forEach(point => {\n if (!Array.isArray(point) || point.some(item => typeof item !== 'number') || point.length !== points[0].length) {\n throw Error(\"Each point should be an array of numbers. Each point should have the same amount of numbers.\");\n }\n });\n points = points.filter((point, i) => i === 0 || !point.every((val, j) => val === points[i - 1][j]));\n\n if (points.length < 2) {\n return [];\n }\n\n const len = points.length;\n const leftTangent = createTangent(points[1], points[0]);\n const rightTangent = createTangent(points[len - 2], points[len - 1]);\n return fitCubic(points, leftTangent, rightTangent, maxError, progressCallback);\n}\n\nfunction fitCubic(points, leftTangent, rightTangent, error, progressCallback) {\n const MaxIterations = 20;\n var bezCurve, u, uPrime, maxError, prevErr, splitPoint, prevSplit, centerVector, toCenterTangent, fromCenterTangent, beziers, dist, i;\n\n if (points.length === 2) {\n dist = maths.vectorLen(maths.subtract(points[0], points[1])) / 3.0;\n bezCurve = [points[0], maths.addArrays(points[0], maths.mulItems(leftTangent, dist)), maths.addArrays(points[1], maths.mulItems(rightTangent, dist)), points[1]];\n return [bezCurve];\n }\n\n u = chordLengthParameterize(points);\n [bezCurve, maxError, splitPoint] = generateAndReport(points, u, u, leftTangent, rightTangent, progressCallback);\n\n if (maxError === 0 || maxError < error) {\n return [bezCurve];\n }\n\n if (maxError < error * error) {\n uPrime = u;\n prevErr = maxError;\n prevSplit = splitPoint;\n\n for (i = 0; i < MaxIterations; i++) {\n uPrime = reparameterize(bezCurve, points, uPrime);\n [bezCurve, maxError, splitPoint] = generateAndReport(points, u, uPrime, leftTangent, rightTangent, progressCallback);\n\n if (maxError < error) {\n return [bezCurve];\n } else if (splitPoint === prevSplit) {\n let errChange = maxError / prevErr;\n\n if (errChange > .9999 && errChange < 1.0001) {\n break;\n }\n }\n\n prevErr = maxError;\n prevSplit = splitPoint;\n }\n }\n\n beziers = [];\n centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint + 1]);\n\n if (centerVector.every(val => val === 0)) {\n centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint]);\n [centerVector[0], centerVector[1]] = [-centerVector[1], centerVector[0]];\n }\n\n toCenterTangent = maths.normalize(centerVector);\n fromCenterTangent = maths.mulItems(toCenterTangent, -1);\n beziers = beziers.concat(fitCubic(points.slice(0, splitPoint + 1), leftTangent, toCenterTangent, error, progressCallback));\n beziers = beziers.concat(fitCubic(points.slice(splitPoint), fromCenterTangent, rightTangent, error, progressCallback));\n return beziers;\n}\n\n;\n\nfunction generateAndReport(points, paramsOrig, paramsPrime, leftTangent, rightTangent, progressCallback) {\n var bezCurve, maxError, splitPoint;\n bezCurve = generateBezier(points, paramsPrime, leftTangent, rightTangent, progressCallback);\n [maxError, splitPoint] = computeMaxError(points, bezCurve, paramsOrig);\n\n if (progressCallback) {\n progressCallback({\n bez: bezCurve,\n points: points,\n params: paramsOrig,\n maxErr: maxError,\n maxPoint: splitPoint\n });\n }\n\n return [bezCurve, maxError, splitPoint];\n}\n\nfunction generateBezier(points, parameters, leftTangent, rightTangent) {\n var bezCurve,\n A,\n a,\n C,\n X,\n det_C0_C1,\n det_C0_X,\n det_X_C1,\n alpha_l,\n alpha_r,\n epsilon,\n segLength,\n i,\n len,\n tmp,\n u,\n ux,\n firstPoint = points[0],\n lastPoint = points[points.length - 1];\n bezCurve = [firstPoint, null, null, lastPoint];\n A = maths.zeros_Xx2x2(parameters.length);\n\n for (i = 0, len = parameters.length; i < len; i++) {\n u = parameters[i];\n ux = 1 - u;\n a = A[i];\n a[0] = maths.mulItems(leftTangent, 3 * u * (ux * ux));\n a[1] = maths.mulItems(rightTangent, 3 * ux * (u * u));\n }\n\n C = [[0, 0], [0, 0]];\n X = [0, 0];\n\n for (i = 0, len = points.length; i < len; i++) {\n u = parameters[i];\n a = A[i];\n C[0][0] += maths.dot(a[0], a[0]);\n C[0][1] += maths.dot(a[0], a[1]);\n C[1][0] += maths.dot(a[0], a[1]);\n C[1][1] += maths.dot(a[1], a[1]);\n tmp = maths.subtract(points[i], bezier.q([firstPoint, firstPoint, lastPoint, lastPoint], u));\n X[0] += maths.dot(a[0], tmp);\n X[1] += maths.dot(a[1], tmp);\n }\n\n det_C0_C1 = C[0][0] * C[1][1] - C[1][0] * C[0][1];\n det_C0_X = C[0][0] * X[1] - C[1][0] * X[0];\n det_X_C1 = X[0] * C[1][1] - X[1] * C[0][1];\n alpha_l = det_C0_C1 === 0 ? 0 : det_X_C1 / det_C0_C1;\n alpha_r = det_C0_C1 === 0 ? 0 : det_C0_X / det_C0_C1;\n segLength = maths.vectorLen(maths.subtract(firstPoint, lastPoint));\n epsilon = 1.0e-6 * segLength;\n\n if (alpha_l < epsilon || alpha_r < epsilon) {\n bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, segLength / 3.0));\n bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, segLength / 3.0));\n } else {\n bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, alpha_l));\n bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, alpha_r));\n }\n\n return bezCurve;\n}\n\n;\n\nfunction reparameterize(bezier, points, parameters) {\n return parameters.map((p, i) => newtonRaphsonRootFind(bezier, points[i], p));\n}\n\n;\n\nfunction newtonRaphsonRootFind(bez, point, u) {\n var d = maths.subtract(bezier.q(bez, u), point),\n qprime = bezier.qprime(bez, u),\n numerator = maths.mulMatrix(d, qprime),\n denominator = maths.sum(maths.squareItems(qprime)) + 2 * maths.mulMatrix(d, bezier.qprimeprime(bez, u));\n\n if (denominator === 0) {\n return u;\n } else {\n return u - numerator / denominator;\n }\n}\n\n;\n\nfunction chordLengthParameterize(points) {\n var u = [],\n currU,\n prevU,\n prevP;\n points.forEach((p, i) => {\n currU = i ? prevU + maths.vectorLen(maths.subtract(p, prevP)) : 0;\n u.push(currU);\n prevU = currU;\n prevP = p;\n });\n u = u.map(x => x / prevU);\n return u;\n}\n\n;\n\nfunction computeMaxError(points, bez, parameters) {\n var dist, maxDist, splitPoint, v, i, count, point, t;\n maxDist = 0;\n splitPoint = Math.floor(points.length / 2);\n const t_distMap = mapTtoRelativeDistances(bez, 10);\n\n for (i = 0, count = points.length; i < count; i++) {\n point = points[i];\n t = find_t(bez, parameters[i], t_distMap, 10);\n v = maths.subtract(bezier.q(bez, t), point);\n dist = v[0] * v[0] + v[1] * v[1];\n\n if (dist > maxDist) {\n maxDist = dist;\n splitPoint = i;\n }\n }\n\n return [maxDist, splitPoint];\n}\n\n;\n\nvar mapTtoRelativeDistances = function (bez, B_parts) {\n var B_t_curr;\n var B_t_dist = [0];\n var B_t_prev = bez[0];\n var sumLen = 0;\n\n for (var i = 1; i <= B_parts; i++) {\n B_t_curr = bezier.q(bez, i / B_parts);\n sumLen += maths.vectorLen(maths.subtract(B_t_curr, B_t_prev));\n B_t_dist.push(sumLen);\n B_t_prev = B_t_curr;\n }\n\n B_t_dist = B_t_dist.map(x => x / sumLen);\n return B_t_dist;\n};\n\nfunction find_t(bez, param, t_distMap, B_parts) {\n if (param < 0) {\n return 0;\n }\n\n if (param > 1) {\n return 1;\n }\n\n var lenMax, lenMin, tMax, tMin, t;\n\n for (var i = 1; i <= B_parts; i++) {\n if (param <= t_distMap[i]) {\n tMin = (i - 1) / B_parts;\n tMax = i / B_parts;\n lenMin = t_distMap[i - 1];\n lenMax = t_distMap[i];\n t = (param - lenMin) / (lenMax - lenMin) * (tMax - tMin) + tMin;\n break;\n }\n }\n\n return t;\n}\n\nfunction createTangent(pointA, pointB) {\n return maths.normalize(maths.subtract(pointA, pointB));\n}\n\nclass maths {\n static zeros_Xx2x2(x) {\n var zs = [];\n\n while (x--) {\n zs.push([0, 0]);\n }\n\n return zs;\n }\n\n static mulItems(items, multiplier) {\n return items.map(x => x * multiplier);\n }\n\n static mulMatrix(m1, m2) {\n return m1.reduce((sum, x1, i) => sum + x1 * m2[i], 0);\n }\n\n static subtract(arr1, arr2) {\n return arr1.map((x1, i) => x1 - arr2[i]);\n }\n\n static addArrays(arr1, arr2) {\n return arr1.map((x1, i) => x1 + arr2[i]);\n }\n\n static addItems(items, addition) {\n return items.map(x => x + addition);\n }\n\n static sum(items) {\n return items.reduce((sum, x) => sum + x);\n }\n\n static dot(m1, m2) {\n return maths.mulMatrix(m1, m2);\n }\n\n static vectorLen(v) {\n return Math.hypot(...v);\n }\n\n static divItems(items, divisor) {\n return items.map(x => x / divisor);\n }\n\n static squareItems(items) {\n return items.map(x => x * x);\n }\n\n static normalize(v) {\n return this.divItems(v, this.vectorLen(v));\n }\n\n}\n\nclass bezier {\n static q(ctrlPoly, t) {\n var tx = 1.0 - t;\n var pA = maths.mulItems(ctrlPoly[0], tx * tx * tx),\n pB = maths.mulItems(ctrlPoly[1], 3 * tx * tx * t),\n pC = maths.mulItems(ctrlPoly[2], 3 * tx * t * t),\n pD = maths.mulItems(ctrlPoly[3], t * t * t);\n return maths.addArrays(maths.addArrays(pA, pB), maths.addArrays(pC, pD));\n }\n\n static qprime(ctrlPoly, t) {\n var tx = 1.0 - t;\n var pA = maths.mulItems(maths.subtract(ctrlPoly[1], ctrlPoly[0]), 3 * tx * tx),\n pB = maths.mulItems(maths.subtract(ctrlPoly[2], ctrlPoly[1]), 6 * tx * t),\n pC = maths.mulItems(maths.subtract(ctrlPoly[3], ctrlPoly[2]), 3 * t * t);\n return maths.addArrays(maths.addArrays(pA, pB), pC);\n }\n\n static qprimeprime(ctrlPoly, t) {\n return maths.addArrays(maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[2], maths.mulItems(ctrlPoly[1], 2)), ctrlPoly[0]), 6 * (1.0 - t)), maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[3], maths.mulItems(ctrlPoly[2], 2)), ctrlPoly[1]), 6 * t));\n }\n\n}\n\nmodule.exports = fitCurve;\nmodule.exports.fitCubic = fitCubic;\nmodule.exports.createTangent = createTangent;\n\n/***/ }),\n/* 27 */\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 _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(8);\n\nvar _annotation_storage = __w_pdfjs_require__(5);\n\nvar _scripting_utils = __w_pdfjs_require__(28);\n\nvar _xfa_layer = __w_pdfjs_require__(29);\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\n\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\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.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\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 const {\n width,\n height\n } = getRectDims(data.rect);\n const [pageLLx, pageLLy, pageURx, pageURy] = viewport.viewBox;\n const pageWidth = pageURx - pageLLx;\n const pageHeight = pageURy - pageLLy;\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 if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\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 const borderColor = data.borderColor || null;\n\n if (borderColor) {\n container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${100 * (rect[0] - pageLLx) / pageWidth}%`;\n container.style.top = `${100 * (rect[1] - pageLLy) / pageHeight}%`;\n const {\n rotation\n } = data;\n\n if (data.hasOwnCanvas || rotation === 0) {\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n\n return container;\n }\n\n setRotation(angle, container = this.container) {\n const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n const pageWidth = pageURx - pageLLx;\n const pageHeight = pageURy - pageLLy;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n\n get _commonActions() {\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 return (0, _util.shadow)(this, \"_commonActions\", {\n display: event => {\n const hidden = event.detail.display % 2 === 1;\n this.container.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 this.container.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 this._setRequired(event.target, event.detail.required);\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 rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\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 _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n\n if (!storedData) {\n return;\n }\n\n const commonActions = this._commonActions;\n\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\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.className = \"popupTriggerArea\";\n container.append(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n hideWrapper: true\n });\n const popup = popupElement.render();\n popup.style.left = \"100%\";\n container.append(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 _getElementsByName(name, skipId = null) {\n const fields = [];\n\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n\n if (id === skipId) {\n continue;\n }\n\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n\n return fields;\n }\n\n for (const domElement of document.getElementsByName(name)) {\n const {\n id,\n exportValue\n } = domElement;\n\n if (id === skipId) {\n continue;\n }\n\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n\n return fields;\n }\n\n static get platform() {\n const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n return (0, _util.shadow)(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\")\n });\n }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n\n isBound = true;\n }\n\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n\n isBound = true;\n }\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"linkAnnotation\").map((quadrilateral, index) => {\n const linkElement = index === 0 ? link : link.cloneNode();\n quadrilateral.append(linkElement);\n return quadrilateral;\n });\n }\n\n this.container.className = \"linkAnnotation\";\n\n if (isBound) {\n this.container.append(link);\n }\n\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 if (!link.onclick) {\n link.onclick = () => false;\n }\n\n link.className = \"internalLink\";\n }\n\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n\n link.className = \"internalLink\";\n\n if (!this._fieldObjects) {\n (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n\n return;\n }\n\n link.onclick = () => {\n if (otherClickAction) {\n otherClickAction();\n }\n\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n\n const storage = this.annotationStorage;\n const allIds = [];\n\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n\n default:\n continue;\n }\n\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n\n return false;\n };\n }\n\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable\n });\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n const image = document.createElement(\"img\");\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.append(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 const {\n isWin,\n isMac\n } = AnnotationElement.platform;\n return isWin && event.ctrlKey || isMac && 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: valueGetter(event)\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 _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1]);\n const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, Math.round(lineHeight / _util.LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1]);\n computedFontSize = Math.min(fontSize, Math.round(height / _util.LINE_FACTOR));\n }\n\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\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 _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n\n element.setAttribute(\"aria-required\", isRequired);\n }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || !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 this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n\n storage.setValue(element.id, {\n [keyInStorage]: value\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.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.formattedValue || storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n\n const elementData = {\n userValue: textContent,\n formattedValue: null,\n valueOnFocus: \"\"\n };\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n\n this._setRequired(element, this.data.required);\n\n if (maxLen) {\n element.maxLength = maxLen;\n }\n\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 element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n\n event.target.scrollLeft = 0;\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 elementData.valueOnFocus = event.target.value;\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 event.target.value = elementData.userValue;\n },\n\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n\n storage.setValue(id, {\n formattedValue\n });\n },\n\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n\n charLimit: event => {\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n\n if (!value || value.length <= charLimit) {\n return;\n }\n\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\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 const {\n value\n } = event.target;\n\n if (elementData.valueOnFocus === value) {\n return;\n }\n\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n 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 const {\n value\n } = event.target;\n elementData.userValue = value;\n\n if (this._mouseState.isDown && elementData.valueOnFocus !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n 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\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n\n if (match) {\n selStart -= match[0].length;\n }\n\n break;\n }\n\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n\n if (match) {\n selEnd += match[0].length;\n }\n\n break;\n }\n\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n\n break;\n\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n\n break;\n }\n\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: 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 if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 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._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.append(element);\n return this.container;\n }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\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.exportValue === data.fieldValue\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 GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n\n this._setRequired(element, this.data.required);\n\n element.type = \"checkbox\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\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._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.append(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\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 GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n\n this._setRequired(element, this.data.required);\n\n element.type = \"radio\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\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 this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n\n storage.setValue(radio.id, {\n value: curChecked\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._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.append(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n\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 const linkElement = container.lastChild;\n\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n\n return container;\n }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n\n this._setRequired(selectElement, this.data.required);\n\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\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 selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\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 (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n\n selectElement.append(optionElement);\n }\n\n let removeEmptyEntry = null;\n\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n\n selectElement.addEventListener(\"input\", removeEmptyEntry);\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 removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\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 selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n\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.append(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\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\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, true)\n });\n });\n }\n\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n\n this._setBackgroundColor(selectElement);\n\n this._setDefaultPropertiesFromJS(selectElement);\n\n this.container.append(selectElement);\n return this.container;\n }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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 titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText\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 const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n const pageWidth = pageURx - pageLLx;\n const pageHeight = pageURy - pageLLy;\n this.container.style.left = `${100 * (popupLeft - pageLLx) / pageWidth}%`;\n this.container.style.top = `${100 * (popupTop - pageLLy) / pageHeight}%`;\n this.container.append(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.titleObj = parameters.titleObj;\n this.modificationDate = parameters.modificationDate;\n this.contentsObj = parameters.contentsObj;\n this.richText = parameters.richText;\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.dir = this.titleObj.dir;\n title.textContent = this.titleObj.str;\n popup.append(title);\n\n const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.className = \"popupDate\";\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.append(modificationDate);\n }\n\n if (this.richText?.str && (!this.contentsObj?.str || this.contentsObj.str === this.richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: this.richText.html,\n intent: \"richText\",\n div: popup\n });\n\n popup.lastChild.className = \"richText popupContent\";\n } else {\n const contents = this._formatContents(this.contentsObj);\n\n popup.append(contents);\n }\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.append(popup);\n return wrapper;\n }\n\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.className = \"popupContent\";\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.append(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 = parseInt(this.container.style.zIndex) + 1000;\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 = parseInt(this.container.style.zIndex) - 1000;\n }\n }\n\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.className = \"annotationTextContent\";\n content.setAttribute(\"role\", \"comment\");\n\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n\n this.container.append(content);\n }\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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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 {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\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 line.setAttribute(\"fill\", \"transparent\");\n svg.append(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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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 {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\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\", \"transparent\");\n svg.append(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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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 {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\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\", \"transparent\");\n svg.append(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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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 {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\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\", \"transparent\");\n svg.append(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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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 {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\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\", \"transparent\");\n\n this._createPopup(polyline, data);\n\n svg.append(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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\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 filename,\n content\n });\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n const trigger = document.createElement(\"div\");\n trigger.className = \"popupTriggerArea\";\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.titleObj?.str || this.data.contentsObj?.str || this.data.richText)) {\n this._createPopup(trigger, this.data);\n }\n\n this.container.append(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 #appendElement(element, id, div, accessibilityManager) {\n const contentElement = element.firstChild || element;\n contentElement.id = `${_display_utils.AnnotationPrefix}${id}`;\n div.append(element);\n accessibilityManager?.moveElementInDOM(div, element, contentElement, false);\n }\n\n static render(parameters) {\n const {\n annotations,\n div,\n viewport,\n accessibilityManager\n } = parameters;\n this.#setDimensions(div, viewport);\n let zIndex = 0;\n\n for (const data of annotations) {\n if (data.annotationType !== _util.AnnotationType.POPUP) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n\n if (width <= 0 || height <= 0) {\n continue;\n }\n }\n\n const element = AnnotationElementFactory.create({\n data,\n layer: div,\n page: parameters.page,\n viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderForms: parameters.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: parameters.enableScripting,\n hasJSActions: parameters.hasJSActions,\n fieldObjects: parameters.fieldObjects,\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 renderedElement.style.zIndex = zIndex++;\n AnnotationLayer.#appendElement(renderedElement, data.id, div, accessibilityManager);\n }\n } else {\n rendered.style.zIndex = zIndex++;\n\n if (element instanceof PopupAnnotationElement) {\n div.prepend(rendered);\n } else {\n AnnotationLayer.#appendElement(rendered, data.id, div, accessibilityManager);\n }\n }\n }\n }\n\n this.#setAnnotationCanvasMap(div, parameters.annotationCanvasMap);\n }\n\n static update(parameters) {\n const {\n annotationCanvasMap,\n div,\n viewport\n } = parameters;\n this.#setDimensions(div, viewport);\n this.#setAnnotationCanvasMap(div, annotationCanvasMap);\n div.hidden = false;\n }\n\n static #setDimensions(div, {\n width,\n height,\n rotation\n }) {\n const {\n style\n } = div;\n const flipOrientation = rotation % 180 !== 0,\n widthStr = Math.floor(width) + \"px\",\n heightStr = Math.floor(height) + \"px\";\n style.width = flipOrientation ? heightStr : widthStr;\n style.height = flipOrientation ? widthStr : heightStr;\n div.setAttribute(\"data-main-rotation\", rotation);\n }\n\n static #setAnnotationCanvasMap(div, annotationCanvasMap) {\n if (!annotationCanvasMap) {\n return;\n }\n\n for (const [id, canvas] of annotationCanvasMap) {\n const element = div.querySelector(`[data-annotation-id=\"${id}\"]`);\n\n if (!element) {\n continue;\n }\n\n const {\n firstChild\n } = element;\n\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else {\n firstChild.before(canvas);\n }\n }\n\n annotationCanvasMap.clear();\n }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 28 */\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 const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\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/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\n\nvar _xfa_text = __w_pdfjs_require__(20);\n\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\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 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n\n break;\n\n case \"dataId\":\n break;\n\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n\n case \"style\":\n Object.assign(html.style, value);\n break;\n\n case \"textContent\":\n html.textContent = value;\n break;\n\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n\n }\n }\n\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n\n const textDivs = [];\n\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n\n const child = parent.children[++stack.at(-1)[1]];\n\n if (child === null) {\n continue;\n }\n\n const {\n name\n } = child;\n\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n\n let childHtml;\n\n if (child?.attributes?.xmlns) {\n childHtml = document.createElementNS(child.attributes.xmlns, name);\n } else {\n childHtml = document.createElement(name);\n }\n\n html.append(childHtml);\n\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n\n childHtml.append(node);\n }\n }\n\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n\n return {\n textDivs\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/* 30 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerRenderTask = void 0;\nexports.renderTextLayer = renderTextLayer;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(8);\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 = task._enhanceTextSelection ? {\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 fontSize: 0\n } : {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\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 textDivProperties.fontSize = fontHeight;\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.str !== \" \" && 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.at(-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.at(-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, ...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 if (enhanceTextSelection) {\n (0, _display_utils.deprecated)(\"The `enhanceTextSelection` functionality will be removed in the future.\");\n }\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 this._devicePixelRatio = globalThis.devicePixelRatio || 1;\n\n this._capability.promise.finally(() => {\n if (!this._enhanceTextSelection) {\n this._textDivProperties = null;\n }\n\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.\")).catch(() => {});\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.append(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 fontFamily\n } = textDiv.style;\n const {\n fontSize\n } = textDivProperties;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize * this._devicePixelRatio}px ${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 const scale = this._devicePixelRatio * textDivProperties.canvasWidth / width;\n\n if (this._enhanceTextSelection) {\n textDivProperties.scale = scale;\n }\n\n transform = `scaleX(${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.append(textDiv);\n }\n\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n\n this._container.append(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 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\nexports.TextLayerRenderTask = TextLayerRenderTask;\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/* 31 */\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 _display_utils = __w_pdfjs_require__(8);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(3);\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 createObjectURL = function (data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !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 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 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.at(-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 (0, _display_utils.deprecated)(\"The SVG back-end is no longer maintained and *may* be removed in the future.\");\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.append(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 (typeof glyph === \"number\") {\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.append(current.tspan);\n current.txtgrp.append(current.txtElement);\n\n this._ensureTransformGroup().append(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.append(this.cssStyle);\n }\n\n const url = 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().append(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, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._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.append(bbox.childNodes[0]);\n this.defs.append(tiling);\n return `url(#${tilingId})`;\n }\n\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n\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.append(stop);\n }\n\n this.defs.append(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().append(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.append(clipElement);\n this.defs.append(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().append(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.append(imgEl);\n } else {\n this._ensureTransformGroup().append(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.append(mask);\n\n this._ensureTransformGroup().append(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.append(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.append(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.append(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().append(this.tgrp);\n } else {\n this.svg.append(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n\n };\n}\n\n/***/ }),\n/* 32 */\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__(1);\n\nvar _network_utils = __w_pdfjs_require__(33);\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/* 33 */\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__(1);\n\nvar _content_disposition = __w_pdfjs_require__(34);\n\nvar _display_utils = __w_pdfjs_require__(8);\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\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/* 34 */\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__(1);\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 }\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/* 35 */\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__(1);\n\nvar _network_utils = __w_pdfjs_require__(33);\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 this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\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 pendingRequest.onProgress?.(evt);\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 pendingRequest.onError?.(xhr.status);\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 pendingRequest.onError?.(xhr.status);\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 {\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 this._fullRequestReader?.cancel(reason);\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(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.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 this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n this._headersReceivedCapability.reject(this._storedError);\n\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\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 onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n this.onClosed?.(this);\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 _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\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._storedError) {\n throw this._storedError;\n }\n\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/* 36 */\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__(1);\n\nvar _network_utils = __w_pdfjs_require__(33);\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 this._abortController = new AbortController();\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 this._abortController.abort();\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 this._abortController = new AbortController();\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(this._readCapability.reject);\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 this._abortController.abort();\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, \"AnnotationEditorLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_editor_layer.AnnotationEditorLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorParamsType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorParamsType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorUIManager\", ({\n enumerable: true,\n get: function () {\n return _tools.AnnotationEditorUIManager;\n }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"LoopbackPort\", ({\n enumerable: true,\n get: function () {\n return _api.LoopbackPort;\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, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\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, \"PixelsPerInch\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", ({\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\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, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\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, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\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, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _api = __w_pdfjs_require__(4);\n\nvar _display_utils = __w_pdfjs_require__(8);\n\nvar _annotation_editor_layer = __w_pdfjs_require__(22);\n\nvar _tools = __w_pdfjs_require__(7);\n\nvar _annotation_layer = __w_pdfjs_require__(27);\n\nvar _worker_options = __w_pdfjs_require__(15);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _text_layer = __w_pdfjs_require__(30);\n\nvar _svg = __w_pdfjs_require__(31);\n\nvar _xfa_layer = __w_pdfjs_require__(29);\n\nconst pdfjsVersion = '2.16.105';\nconst pdfjsBuild = '172ccdbe5';\n{\n if (_is_node.isNodeJS) {\n const {\n PDFNodeStream\n } = __w_pdfjs_require__(32);\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const {\n PDFNetworkStream\n } = __w_pdfjs_require__(35);\n\n const {\n PDFFetchStream\n } = __w_pdfjs_require__(36);\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n if ((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","globalThis","__webpack_modules__","__unused_webpack_module","exports","__w_pdfjs_require__","Object","defineProperty","value","VerbosityLevel","Util","UnknownErrorException","UnexpectedResponseException","UNSUPPORTED_FEATURES","TextRenderingMode","StreamType","RenderingIntentFlag","PermissionFlag","PasswordResponses","PasswordException","PageActionEventType","OPS","MissingPDFException","LINE_FACTOR","LINE_DESCENT_FACTOR","InvalidPDFException","ImageKind","IDENTITY_MATRIX","FormatError","FontType","FeatureTest","FONT_IDENTITY_MATRIX","DocumentActionEventType","CMapCompressionType","BaseException","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMode","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationEditorType","AnnotationEditorPrefix","AnnotationEditorParamsType","AnnotationBorderStyleType","AnnotationActionEventType","AbortException","arrayByteLength","arraysToBytes","arr","length","Uint8Array","resultLength","i","pos","data","item","stringToBytes","itemLength","byteLength","set","assert","cond","msg","unreachable","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","Math","min","chunk","subarray","push","join","createPromiseCapability","capability","create","isSettled","get","promise","Promise","resolve","reject","reason","createValidAbsoluteUrl","url","baseUrl","options","addDefaultProtocol","startsWith","dots","match","tryConvertEncoding","stringToUTF8String","ex","absoluteUrl","URL","protocol","_isValidProtocol","escapeString","str","replace","getModificationDate","date","Date","getUTCFullYear","toString","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getVerbosityLevel","verbosity","info","INFOS","console","log","isArrayBuffer","v","isArrayEqual","arr1","arr2","ii","isAscii","test","objectFromMap","map","obj","key","objectSize","keys","setVerbosityLevel","level","Number","isInteger","shadow","string32","stringToPDFString","encoding","decoder","TextDecoder","fatal","buffer","decode","warn","code","PDFStringTranslateTable","charCodeAt","charAt","stringToUTF16BEString","buf","char","utf8StringToString","unescape","encodeURIComponent","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","NONE","FREETEXT","INK","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","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","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","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","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","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","errorContentSubStream","NEED_PASSWORD","INCORRECT_PASSWORD","Error","prop","enumerable","configurable","writable","message","name","this","constructor","prototype","super","details","status","isLittleEndian","buffer8","Uint32Array","isEvalSupported","Function","e","isOffscreenCanvasSupported","OffscreenCanvas","hexNumbers","Array","n","makeHexColor","r","g","b","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","m","applyInverseTransform","d","getAxialAlignedBoundingBox","p1","p2","slice","p3","p4","max","inverseTransform","apply3dTransform","singularValueDecompose2dScale","transpose","a","c","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","mt","j","jlen","decodeURIComponent","escape","__unused_webpack_exports","isNodeJS","process","versions","nw","electron","type","build","RenderTask","PDFWorkerUtil","PDFWorker","PDFPageProxy","PDFDocumentProxy","PDFDocumentLoadingTask","PDFDataRangeTransport","LoopbackPort","DefaultStandardFontDataFactory","DefaultCanvasFactory","DefaultCMapReaderFactory","getDocument","setPDFNetworkStreamFactory","version","_util","_annotation_storage","_display_utils","_font_loader","_canvas","_worker_options","_is_node","_message_handler","_metadata","_optional_content_config","_transport_stream","_xfa_text","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DOMCanvasFactory","DOMCMapReaderFactory","DOMStandardFontDataFactory","createPDFNetworkStream","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","pdfNetworkStreamFactory","src","task","source","range","params","rangeTransport","worker","window","location","href","Buffer","isNaN","CMapReaderFactory","StandardFontDataFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","enableXfa","rangeChunkSize","docBaseUrl","isDataScheme","maxImageSize","cMapUrl","standardFontDataUrl","useWorkerFetch","disableFontFace","useSystemFonts","ownerDocument","document","disableRange","disableStream","disableAutoFetch","workerParams","port","GlobalWorkerOptions","workerPort","fromPort","_worker","docId","then","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","httpHeaders","withCredentials","all","workerId","messageHandler","MessageHandler","transport","WorkerTransport","_transport","send","catch","_capability","async","pdfDataRangeTransport","sendWithPromise","apiVersion","password","static","onPassword","onProgress","onUnsupportedFeature","destroy","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","listener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","end","abort","pdfInfo","_pdfInfo","deprecated","fingerprints","stats","streamTypes","fontTypes","annotationStorage","numPages","isPureXfa","_htmlForXfa","allXfaHtml","getPage","pageNumber","getPageIndex","ref","getDestinations","getDestination","id","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getJSActions","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","loadingTask","loadingParams","saveDocument","size","getFieldObjects","hasJSActions","getCalculationOrderIds","pageIndex","pageInfo","_pageIndex","_pageInfo","_ownerDocument","_stats","StatTimer","_pdfBug","commonObjs","objs","PDFObjects","_bitmaps","Set","cleanupAfterRender","pendingCleanup","_intentStates","Map","_annotationPromises","rotate","userUnit","view","getViewport","scale","rotation","offsetX","offsetY","dontFlip","PageViewport","viewBox","getAnnotations","intent","intentArgs","getRenderingIntent","cacheKey","renderingIntent","annotations","annotation","titleObj","contentsObj","_jsActionsPromise","getPageJSActions","getXfa","children","render","canvasContext","viewport","annotationMode","imageLayer","canvasFactory","background","optionalContentConfigPromise","annotationCanvasMap","pageColors","printAnnotationStorage","arguments","renderInteractiveForms","includeAnnotationStorage","time","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","intentPrint","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","separateAnnots","_pumpOperatorList","complete","error","renderTasks","delete","internalRenderTask","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","add","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","getOperatorList","opListTask","opListReadCapability","streamTextContent","disableCombineTextItems","includeMarkedContent","sendWithStream","combineTextItems","highWaterMark","textContent","items","getTextContent","xfa","XfaText","readableStream","reader","getReader","styles","pump","read","done","assign","getStructTree","_structTreePromise","_destroy","waitOn","values","force","completed","cancel","clear","bitmap","close","resetStats","_startRenderPage","_renderPageChunk","operatorListChunk","annotationStorageMap","streamReader","RenderingCancelledException","setTimeout","curCacheKey","curIntentState","_listeners","_deferred","postMessage","transfers","event","structuredClone","call","addEventListener","removeEventListener","indexOf","splice","terminate","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","pdfjsFilePath","currentScript","isSameOrigin","otherUrl","base","origin","other","createCDNWrapper","wrapper","createObjectURL","Blob","WeakMap","has","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","_mainThreadWorkerMessageHandler","workerSrc","Worker","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","pdfjsWorker","loader","mainWorkerMessageHandler","eval","loadScript","getWorkerSrc","fontLoader","FontLoader","_onUnsupportedFeature","bind","styleElement","_params","isCompressed","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","AnnotationStorage","isOpList","annotationMap","PrintAnnotationStorage","serializable","getHash","page","hasOwnProperty","resetModified","terminated","_getFieldObjectsPromise","_hasJSActionsPromise","cancelAllRequests","sink","getFullReader","evt","onPull","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","htmlForXfa","exception","updatePassword","exportedData","exportedError","fontRegistry","FontInspector","enabled","registerFont","fontAdded","FontFaceObject","finally","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","width","height","freeze","fetch","featureId","cachedPromise","num","gen","filename","results","OptionalContentConfig","metadata","Metadata","objId","settled","onContinue","form","canvas","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","_editor","_murmurhash","_storage","_modified","onSetModified","onResetModified","onAnnotationEditor","getValue","defaultValue","getRawValue","remove","AnnotationEditor","setValue","modified","entry","val","entries","_type","getAll","print","clone","serialized","serialize","hash","MurmurHash3_64","update","JSON","stringify","hexdigest","parent","_tools","focusin","focusout","_zIndex","ColorManager","parameters","div","viewportBaseDimensions","x","y","isAttachedToDOM","_defaultLineColor","_colorManager","getHexCode","setInBackground","style","zIndex","setInForeground","setSelected","target","relatedTarget","closest","preventDefault","isMultipleSelection","commitOrRemove","isEmpty","commit","addToAnnotationStorage","dragstart","getBoundingClientRect","startX","clientX","startY","clientY","dataTransfer","setData","effectAllowed","setAt","tx","ty","screenToPageTranslation","left","top","translate","setDims","parentWidth","parentHeight","getInitialTranslation","createElement","setAttribute","className","bindEvents","pointerdown","isMac","KeyboardManager","platform","button","ctrlKey","shiftKey","metaKey","toggleSelected","getRect","pageWidth","pageHeight","pageDimensions","shiftX","shiftY","getRectInCurrentCoords","onceAdded","enableEditMode","disableEditMode","isInEditMode","shouldGetKeyboardEvents","needsToBeRebuilt","rebuild","deserialize","editor","getNextId","select","classList","unselect","updateParams","disableEditing","enableEditing","propertiesToUpdate","contentDiv","isEditing","setActiveEditor","CommandManager","AnnotationEditorUIManager","element","names","opacityToHex","opacity","round","IdManager","getId","maxSize","cmd","undo","mustExec","NaN","overwriteIfSameType","keepUndo","next","redo","hasSomethingToUndo","hasSomethingToRedo","callbacks","allKeys","isMacKey","split","at","navigator","isWin","includes","altKey","exec","self","stopPropagation","ClipboardManager","copy","isArray","el","filter","paste","_colors","colors","getColorValues","convert","color","rgb","getRGB","matchMedia","matches","RGB","every","_colorsMapping","keydown","onEditingAction","onPageChanging","hasEmptyClipboard","hasSelectedEditor","selectAll","cut","unselectAll","container","eventBus","_on","_off","layer","focusMainContainer","focus","getActive","_keyboardManager","some","dispatch","setEditingState","registerEditorTypes","types","editorType","defaultPropertiesToUpdate","addLayer","enable","disable","removeLayer","updateMode","mode","updateToolbar","updateDefaultParams","getEditors","editors","getEditor","addEditor","removeEditor","addOrRebuild","hasSelection","ed","isSelected","addCommands","newEditors","isActive","getMode","PixelsPerInch","PDFDateString","DOMSVGFactory","AnnotationPrefix","span","visibility","body","append","computedColor","getComputedStyle","getCurrentTransform","ctx","f","getTransform","getCurrentTransformInverse","invertSelf","getFilenameFromUrl","anchor","query","substring","lastIndexOf","getPdfFilenameFromUrl","defaultFilename","reFilename","splitURI","suggestedFilename","getXfaPageViewport","xfaPage","attributes","parseInt","isPdfFile","isValidFetchUrl","removeScriptElement","script","onload","onerror","head","documentElement","_base_factory","CSS","PDF","BaseCanvasFactory","_document","_createCanvas","fetchData","asTypedArray","baseURI","response","ok","statusText","arrayBuffer","text","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","responseText","BaseCMapReaderFactory","_fetchData","compressionType","cMapData","BaseStandardFontDataFactory","BaseSVGFactory","_createSVG","createElementNS","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","trim","toLowerCase","pdfDateStringRegex","colorRGB","started","times","now","start","outBuf","longest","duration","padEnd","toDateObject","input","RegExp","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","UTC","context","getContext","reset","canvasAndContext","skipDimensions","svg","SEED","MASK_HIGH","MASK_LOW","seed","h1","h2","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","BaseFontLoader","nativeFontFaces","addNativeFontFace","nativeFontFace","fonts","insertRule","rule","getElementsByTagName","styleSheet","sheet","cssRules","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","hasFonts","_loadTestFont","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","supported","userAgent","otherRequest","shift","atob","int32","offset","spliceString","s","insert","called","XXXX_VALUE","checksum","btoa","loadedName","position","fontFamily","isFontReady","fillText","getImageData","translatedData","compiledGlyphs","cssFontInfo","css","weight","fontWeight","italicAngle","FontFace","mimetype","getPathGenerator","character","cmds","jsBuf","current","args","_pattern_helper","_image_utils","MAX_GROUP_SIZE","MAX_SIZE_TO_COMPILE","Path2D","FULL_CHUNK_HEIGHT","CachedCanvases","cache","getCanvas","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","setTransform","sign","drawImage","hypot","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","minX","minY","maxX","maxY","updateRectMinMax","updateScalingPathMinMax","updateCurvePathMinMax","box","getPathBoundingBox","pathType","PathType","xStrokePad","yStrokePad","updateClipFromPath","isEmptyClip","Infinity","getClippedPathBoundingBox","putBinaryImageData","imgData","ImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","destPos","srcPos","dest","thisChunkHeight","elemsInThisChunk","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","k","kEnd","kEndUnrolled","mask","srcByte","hasTransferMaps","putBinaryImageMask","applyMaskImageData","copyCtxState","sourceCtx","destCtx","properties","property","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","foregroundColor","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","PDF_TO_CSS_UNITS","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","canvasCtx","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","markedContentStack","cachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","backgroundColor","foreground","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","getObject","fallback","defaultBackgroundColor","fg","bg","isValidDefaultBg","defaultBg","rB","gB","bB","newComp","lumB","selectColor","lumC","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","steps","fnId","breakIt","depObjId","objsPool","inSMaskMode","HTMLCanvasElement","endLayout","_scaleImage","img","tmpCanvas","tmpCtx","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","ceil","clearRect","_createMaskCanvas","isPatternFill","currentTransform","scaled","maskCanvas","count","mainKey","withoutTranslation","cachedImage","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","imageSmoothingEnabled","inverse","getPattern","limit","dashArray","dashPhase","flatness","states","state","checkSMaskState","beginSMaskMode","endSMaskMode","cacheId","scratchCanvas","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","angle","cp1x","cp1y","cp2x","cp2y","mirrorContextOperations","compose","dirtyBox","floor","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","subtype","backdrop","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","chunkSize","row","chunkHeight","genericComposeSMask","composeSMask","old","pop","ops","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","rescaleAndStroke","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","getSinglePixelWidth","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","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","_getPattern","matrix","getShadingPattern","SHADING","inv","bl","br","ul","ur","bbox","group","currentCtx","isolated","knockout","canvasBounds","scaleX","scaleY","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","savedCtx","compiled","POINT_TYPES","width1","j0","points","lineSize","elem","sum","Int32Array","p0","step","pp","compileType3Glyph","skewX","skewY","positions","trans","images","image","w","h","imgToPaint","HTMLElement","appendImage","tag","visible","isVisible","isContentVisible","absDet","normX","normY","getScaleForStroking","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","savedMatrix","savedDashes","savedDashOffset","op","RadialAxialShadingPattern","MeshShadingPattern","DummyShadingPattern","applyBoundingBox","region","BaseShadingPattern","_bbox","_colorStops","_p0","_p1","_r0","_r1","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","ownerBBox","createPattern","domMatrix","DOMMatrix","drawTriangle","c1","c2","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","_coords","_figures","_bounds","_background","_createMeshCanvas","combinedScale","boundsWidth","boundsHeight","paddedWidth","BORDER_SIZE","paddedHeight","matrixScale","temporaryPatternCanvas","MAX_PATTERN_SIZE","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","bboxWidth","bboxHeight","cssColor","inverseDecode","opaque","zeroMapping","oneMapping","widthInSource","widthRemainder","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","stream","_processStreamMessage","action","cbSourceName","cbTargetName","result","_createStreamSink","actionName","handler","ah","queueingStrategy","ReadableStream","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","success","streamController","_deleteStreamController","allSettled","parsedData","rawData","getRaw","INTERNAL","Symbol","OptionalContentGroup","_setVisible","internal","creator","order","groups","baseState","off","array","operator","expression","policy","ids","setVisibility","hasInitialVisibility","getOrder","getGroups","getGroup","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_enqueue","found","_begin","_progressiveDataLength","_loaded","firstReader","_removeRangeReader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","_stream","_done","_filename","_requests","_headersReady","requestCapability","_end","_queuedChunk","output","walk","node","shouldBuildText","child","readFile","createCanvas","AnnotationEditorLayer","_freetext","_ink","pointerup","_initialized","FreeTextEditor","initialize","l10n","InkEditor","uiManager","accessibilityManager","addInkEditorIfNeeded","disableClick","enableClick","isCommitting","pointerEvents","attach","detach","removePointerInTextLayer","display","activeElement","moveEditorInDOM","moveElementInDOM","addANewEditor","addUndoableEditor","annotationType","drop","dropEffect","endX","endY","dragover","setDimensions","scaleFactor","pageLLx","pageLLy","pageURx","pageURy","flipOrientation","widthStr","heightStr","editorDivBlur","editorDivFocus","editorDivKeydown","_defaultColor","_defaultFontSize","_l10nPromise","_internalPadding","parseFloat","getPropertyValue","setFontsize","editorDiv","savedFontsize","savedColor","overlayDiv","contentEditable","draggable","innerText","divs","firstChild","nodeName","trimEnd","dblclick","removeAttribute","baseX","baseY","line","createTextNode","padding","_pdfjsFitCurve","fitCurve","RESIZER_SIZE","canvasPointermove","canvasPointerleave","canvasPointerup","canvasPointerdown","thickness","bezierPath2D","currentPath","translationX","translationY","_defaultThickness","_defaultOpacity","savedThickness","savedOpacity","disconnect","lastX","lastY","bezier","xy","path2D","ResizeObserver","contentRect","observe","roundedWidth","roundedHeight","scaleFactorW","scaleFactorH","control1","control2","p10","p11","p20","p21","p30","p31","p40","p41","q10","q11","q20","q21","ax","ay","bx","by","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","minHeight","minWidth","module","fitCubic","leftTangent","rightTangent","progressCallback","bezCurve","u","uPrime","maxError","prevErr","splitPoint","prevSplit","centerVector","toCenterTangent","fromCenterTangent","beziers","dist","maths","vectorLen","subtract","addArrays","mulItems","currU","prevU","prevP","forEach","chordLengthParameterize","generateAndReport","reparameterize","errChange","normalize","concat","paramsOrig","paramsPrime","A","det_C0_C1","det_C0_X","det_X_C1","alpha_l","alpha_r","epsilon","segLength","len","ux","firstPoint","lastPoint","zeros_Xx2x2","dot","generateBezier","bez","maxDist","point","t_distMap","mapTtoRelativeDistances","find_t","computeMaxError","maxErr","maxPoint","newtonRaphsonRootFind","qprime","numerator","mulMatrix","denominator","squareItems","qprimeprime","B_parts","B_t_curr","B_t_dist","B_t_prev","sumLen","param","lenMin","tMax","tMin","createTangent","pointA","pointB","zs","multiplier","reduce","addItems","addition","divItems","divisor","ctrlPoly","pA","pB","pC","pD","TypeError","AnnotationLayer","_scripting_utils","_xfa_layer","DEFAULT_TAB_INDEX","GetElementsByNameSet","getRectDims","AnnotationElementFactory","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","linkService","downloadManager","imageResourcesPath","renderForms","svgFactory","enableScripting","_fieldObjects","fieldObjects","_mouseState","mouseState","_createContainer","quadrilaterals","_createQuadrilaterals","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","setRotation","elementWidth","elementHeight","_commonActions","setColor","jsName","styleName","detail","ColorConverters","hidden","preventScroll","userName","title","readonly","required","_setRequired","bgColor","fgColor","textColor","_dispatchEventFromSandbox","actions","jsEvent","commonActions","_setDefaultPropertiesFromJS","storedData","quadPoints","savedRect","quadPoint","_createPopup","trigger","popup","PopupElement","modificationDate","richText","hideWrapper","_renderQuadrilaterals","quadrilateral","_getElementsByName","skipId","fields","fieldObj","exportValues","exportValue","domElement","querySelector","getElementsByName","isTooltipOnly","link","isBound","addLinkAttributes","newWindow","_bindNamedAction","_bindLink","Action","_bindJSAction","resetForm","_bindResetFormAction","index","linkElement","cloneNode","destination","getDestinationHash","onclick","goToDestination","getAnchorUrl","executeNamedAction","otherClickAction","resetFormFields","refs","resetFormRefs","include","allFields","fieldIds","fieldName","field","storage","allIds","dispatchEvent","Event","hasPopup","alt","dataset","l10nId","l10nArgs","alternativeText","_getKeyModifier","_setEventListener","baseName","eventName","valueGetter","modifier","_setEventListeners","getter","_setBackgroundColor","_setTextStyle","fontColor","defaultAppearanceData","computedFontSize","multiLine","lineHeight","textAlignment","textAlign","isRequired","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","formattedValue","maxLen","charLimit","elementData","userValue","valueOnFocus","doNotScroll","overflowY","overflowX","disabled","readOnly","tabIndex","maxLength","defaultFieldValue","blurListener","scrollLeft","selRange","setSelectionRange","willCommit","commitKey","selStart","selectionStart","selEnd","selectionEnd","_blurListener","isDown","Keystroke","inputType","change","comb","combWidth","letterSpacing","verticalAlign","checked","checkbox","curChecked","buttonValue","radio","pdfButtonValue","lastChild","selectElement","addAnEmptyEntry","combo","multiSelect","multiple","option","selected","optionElement","displayValue","removeEmptyEntry","noneOptionElement","prepend","isExport","selectedIndex","getItems","multipleSelection","findIndex","selectChild","before","indices","editable","changeEx","keyDown","parentType","selector","parentId","parentElements","querySelectorAll","from","parentRect","popupLeft","popupTop","pinned","hideElement","dir","dateObject","toLocaleDateString","toLocaleTimeString","contents","_formatContents","XfaLayer","xfaHtml","html","_toggle","_show","_hide","lines","pin","unpin","content","lineSpan","lineCoordinates","square","circle","containerClassName","svgElementName","coordinate","vertices","polyline","inkList","inkLists","file","_download","openOrDownloadData","contentElement","rendered","renderedElement","replaceWith","makeColorComp","CMYK_G","G_CMYK","G_RGB","G_HTML","G","RGB_G","RGB_HTML","T_HTML","CMYK_RGB","CMYK_HTML","components","RGB_CMYK","setupStorage","xfaOn","xfaOff","getAttribute","setAttributes","isHTMLAnchorElement","HTMLAnchorElement","dataId","root","rootHtml","stack","rootDiv","textDivs","childHtml","xmlns","TextLayerRenderTask","renderTextLayer","renderParameters","textContentStream","textContentItemsStr","enhanceTextSelection","_render","timeout","DEFAULT_FONT_SIZE","ascentCache","AllWhitespaceRegexp","appendText","geom","textDiv","textDivProperties","_enhanceTextSelection","hasText","hasEOL","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_viewport","atan2","fontName","fontHeight","fontAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","getAscent","sin","cos","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_textContentStream","_layoutText","angleCos","angleSin","divWidth","divHeight","right","bottom","_canceled","textDivsLength","_renderingDone","findPositiveMin","ts","expandBoundsLTR","sort","horizon","boundary","x1New","x2New","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","_textContent","_container","_textContentItemsStr","_reader","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","_devicePixelRatio","_processItems","styleCache","parentNode","textItems","textStyles","expandTextDivs","expandDivs","expanded","boxes","expandBounds","divProperties","Float64Array","jj","boxScale","expand","transformBuf","paddingBuf","divProps","SVGGraphics","SVG_DEFAULTS","fontStyle","XML_NS","XLINK_NS","contentType","forceDataSchema","digits","b1","b2","b3","convertImgDataToPng","PNG_HEADER","crcTable","writePngChunk","crc","crc32","deflateSyncUncompressed","literals","maxBlockLength","deflateBlocks","idat","pi","adler","adler32","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","CHUNK_WRAPPER_SIZE","encode","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","svgElement","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","hasChildNodes","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_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","prev","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","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","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","_annotation_editor_layer","_annotation_layer","_api","_svg","_text_layer"],"sourceRoot":""}