{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./src/modules/pdf-viewer/PDFViewer.vue?a557","webpack:///./src/modules/pdf-viewer/PDFViewer.vue?b8cf","webpack:///./src/modules/pdf-viewer/PDFViewer.vue","webpack:///./src/modules/pdf-viewer/PDFViewer.vue?64e1","webpack:///./src/modules/pdf-viewer/PDFViewer.vue?6ed8","webpack:///./node_modules/pdfjs-dist/build/pdf.worker.js","webpack:///./node_modules/pdfjs-dist/build/pdf.js","webpack:///./node_modules/pdfjs-dist/web/pdf_viewer.js","webpack:///./src/plugins/mixins/mobileTypeMixin.ts","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/pdfjs-dist/webpack.js"],"names":["$","$trim","trim","forcedStringTrimMethod","target","proto","forced","this","render","_vm","_h","$createElement","_c","_self","attrs","staticClass","on","$event","previous","_v","staticRenderFns","mobileTypeMixin","routeMixin","globalMixin","extend","data","pdf","methods","history","back","mounted","vueInstance","$route","params","pdfUrl","alert","USE_ONLY_CSS_ZOOM","TEXT_LAYER_MODE","MAX_IMAGE_SIZE","CMAP_URL","CMAP_PACKED","DEFAULT_SCALE_DELTA","MIN_SCALE","MAX_SCALE","DEFAULT_SCALE_VALUE","PDFViewerApplication","pdfLoadingTask","pdfDocument","pdfViewer","pdfHistory","pdfLinkService","eventBus","url","documentInfo","metadata","l10n","open","close","then","bind","loadingTask","maxImageSize","cMapUrl","cMapPacked","onProgress","progressData","progress","loaded","total","promise","console","log","setDocument","initialize","fingerprint","loadingBar","hide","$loader","stop","setTitleUsingMetadata","exception","message","loadingErrorMessage","get","msg","error","errorWrapper","document","getElementById","hidden","Promise","resolve","destroy","reset","bar","setTitleUsingUrl","title","decodeURIComponent","e","setTitle","getMetadata","pdfTitle","info","PDFFormatVersion","Producer","Creator","has","Title","titleEl","textContent","moreInfo","moreInfoText","version","build","push","stack","filename","file","lineNumber","line","errorMessage","closeButton","onclick","errorMoreInfo","moreInfoButton","lessInfoButton","style","height","scrollHeight","all","parts","value","join","level","go","percent","Math","round","isNaN","numPages","currentPageNumber","val","zoomIn","ticks","newScale","currentScale","toFixed","ceil","min","currentScaleValue","zoomOut","floor","max","initUI","linkService","container","useOnlyCssZoom","textLayerMode","setViewer","setHistory","addEventListener","page","select","toString","evt","pageNumber","pagesCount","disabled","animationStarted","window","requestAnimationFrame","component","module","exports","Worker","root","factory","modules","installedModules","__w_pdfjs_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","r","Symbol","toStringTag","t","mode","__esModule","ns","create","key","n","object","property","prototype","hasOwnProperty","p","s","_display_utils","addLinkAttributes","getFilenameFromUrl","LinkTarget","loadScript","PDFDateString","RenderingCancelledException","_api","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","_util","CMapCompressionType","createObjectURL","createPromiseCapability","createValidAbsoluteUrl","InvalidPDFException","MissingPDFException","OPS","PasswordResponses","PermissionFlag","removeNullCharacters","shadow","UnexpectedResponseException","UNSUPPORTED_FEATURES","Util","VerbosityLevel","_annotation_layer","AnnotationLayer","_api_compatibility","apiCompatibilityParams","_worker_options","GlobalWorkerOptions","_text_layer","renderTextLayer","_svg","SVGGraphics","isNodeJS","PDFNodeStream","setPDFNetworkStreamFactory","PDFNetworkStream","PDFFetchStream","isFetchSupported","isValidFetchUrl","deprecated","StatTimer","DOMSVGFactory","DOMCMapReaderFactory","BaseCMapReaderFactory","DOMCanvasFactory","BaseCanvasFactory","DEFAULT_LINK_REL","PageViewport","SVG_NS","constructor","unreachable","width","canvasAndContext","canvas","Error","context","ownerDocument","globalThis","super","_document","createElement","getContext","baseUrl","isCompressed","compressionType","BINARY","NONE","_fetchData","catch","reason","baseURI","fetch","async","response","ok","statusText","cMapData","Uint8Array","arrayBuffer","stringToBytes","text","reject","request","XMLHttpRequest","responseType","onreadystatechange","readyState","DONE","status","responseText","send","assert","svg","createElementNS","setAttribute","type","viewBox","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","abs","transform","slice","x","y","applyTransform","rect","topLeft","bottomRight","applyInverseTransform","BaseException","SELF","BLANK","PARENT","TOP","link","rel","enabled","urlNullRemoved","href","targetStr","anchor","indexOf","query","end","length","substring","lastIndexOf","started","times","warn","Date","now","start","outBuf","longest","time","duration","padEnd","Response","ReadableStream","protocol","URL","ex","src","script","onload","onerror","head","documentElement","appendChild","details","pdfDateStringRegex","input","isString","RegExp","matches","exec","year","parseInt","month","day","hour","minute","second","universalTimeRelation","offsetHour","offsetMinute","UTC","arrayByteLength","arraysToBytes","bytesToString","escapeString","getModificationDate","getVerbosityLevel","isArrayBuffer","isArrayEqual","isBool","isNum","isSameOrigin","setVerbosityLevel","string32","stringToPDFString","stringToUTF8String","utf8StringToString","IsEvalSupportedCached","IsLittleEndianCached","FormatError","UnknownErrorException","TextRenderingMode","StreamType","PasswordException","AbortException","ImageKind","FontType","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","INFOS","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","errorMarkedContent","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","isInteger","cond","otherUrl","base","origin","other","_isValidProtocol","absoluteUrl","obj","prop","configurable","writable","code","NullCharactersRegExp","str","replace","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","chunk","subarray","charCodeAt","arr","byteLength","resultLength","pos","item","itemLength","set","isLittleEndian","buffer8","view32","Uint32Array","buffer","isEvalSupported","Function","rgbBuf","g","b","m1","m2","xt","yt","p1","p2","p3","p4","v","transpose","a","first","sqrt","sx","sy","rect1","rect2","compare","orderedX","sort","orderedY","result","normalizeRect","PDFStringTranslateTable","charAt","escape","unescape","encodeURIComponent","arr1","arr2","every","element","index","date","getUTCFullYear","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","capability","isSettled","digits","contentType","forceDataSchema","blob","Blob","ii","b1","b2","b3","d1","d2","d3","d4","process","versions","nw","electron","PDFPageProxy","PDFDocumentProxy","_font_loader","_node_utils","_annotation_storage","_canvas","_is_node","_message_handler","_metadata","_optional_content_config","_transport_stream","_webgl","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DefaultCanvasFactory","NodeCanvasFactory","DefaultCMapReaderFactory","NodeCMapReaderFactory","createPDFNetworkStream","pdfNetworkStreamFactory","task","PDFDocumentLoadingTask","source","range","rangeTransport","worker","pdfBytes","location","rangeChunkSize","CMapReaderFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","disableFontFace","disableRange","disableStream","disableAutoFetch","workerParams","port","workerPort","fromPort","_worker","docId","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","httpHeaders","withCredentials","workerId","messageHandler","MessageHandler","postMessageTransfers","transport","WorkerTransport","_transport","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","password","docBaseUrl","nextDocumentId","onPassword","onUnsupportedFeature","transportDestroyed","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","listener","begin","pdfInfo","_pdfInfo","AnnotationStorage","getPage","ref","getPageIndex","getDestinations","id","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getOutline","getOptionalContentConfig","getPermissions","getData","downloadInfoCapability","getStats","startCleanup","loadingParams","annotationStorage","saveDocument","pageIndex","pageInfo","_pageIndex","_pageInfo","_ownerDocument","_stats","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","_intentStates","Map","rotate","userUnit","view","intent","annotationsPromise","annotationsIntent","getAnnotations","canvasContext","viewport","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","optionalContentConfigPromise","renderingIntent","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","webGLContext","WebGLContext","enable","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","_pumpOperatorList","getAll","complete","renderTasks","internalRenderTask","splice","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","opListReadCapability","opListTask","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","combineTextItems","highWaterMark","items","readableStream","streamTextContent","pump","reader","read","done","assign","styles","getReader","pageCache","waitOn","force","completed","cancel","clear","resetStats","values","operatorListChunk","args","streamReader","_renderPageChunk","setTimeout","curIntentState","delete","cleanup","defer","_listeners","_defer","_deferred","transfers","cloneValue","cloned","transferable","includes","byteOffset","Array","isArray","desc","getOwnPropertyDescriptor","getPrototypeOf","forEach","WeakMap","PDFWorkerClosure","pdfWorkerPorts","isWorkerDisabled","fallbackWorkerSrc","nextFakeWorkerId","fakeWorkerCapability","pdfjsFilePath","currentScript","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","mainWorkerMessageHandler","pdfjsWorker","WorkerMessageHandler","setupFakeWorkerGlobal","loader","eval","createCDNWrapper","wrapper","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","terminateEarly","removeEventListener","onWorkerError","terminate","_setupFakeWorker","supportTransfers","sendTest","testObj","workerHandler","setup","fontLoader","FontLoader","_onUnsupportedFeature","_params","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","_destroy","terminated","cancelAllRequests","sink","getFullReader","onPull","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","updatePassword","_startRenderPage","exportedData","exportedError","fontRegistry","FontInspector","fontAdded","FontFaceObject","finally","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","fetched","builtInCMap","featureId","resetModified","results","OptionalContentConfig","Metadata","contentDispositionFilename","cleanupSuccessful","_objs","objId","resolved","_ensureObj","RenderTask","_internalRenderTask","onContinue","canvasInRendering","WeakSet","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","add","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","executeOperatorList","BaseFontLoader","nativeFontFaces","styleElement","nativeFontFace","fonts","rule","getElementsByTagName","styleSheet","sheet","insertRule","cssRules","remove","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","supported","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","navigator","userAgent","completeRequest","otherRequest","shift","getLoadTestFont","atob","int32","offset","spliceString","insert","chunk1","chunk2","ctx","called","isFontReady","fillText","getImageData","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","btoa","names","loadedName","div","visibility","position","top","left","span","fontFamily","body","removeChild","translatedData","compiledGlyphs","FontFace","registerFont","mimetype","character","cmds","current","size","js","cmd","Canvas","createCanvas","fs","readFile","_storage","_modified","onSetModified","onResetModified","defaultValue","_setModified","fromEntries","compatibilityParams","freeze","_pattern_helper","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_transformMatrix","_transformStack","f","ad_bc","bc_ad","old","prev","pop","angle","cosValue","cos","sinValue","sin","CachedCanvases","cache","getCanvas","trackTransform","canvasEntry","compileType3Glyph","imgData","j","j0","POINT_TO_PROCESS_LIMIT","width1","points","POINT_TYPES","lineSize","data0","mask","elem","count","sum","steps","Int32Array","outlines","pp","coords","p0","step","drawOutline","beginPath","k","kk","ll","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","transferMaps","clone","setCurrentPoint","EXECUTION_TIME","EXECUTION_STEPS","canvasCtx","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","contentVisible","markedContentStack","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","ImageData","putImageData","destPos","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","dest","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","composeFn","hasBackdrop","PIXELS_TO_PROCESS","chunkSize","row","chunkHeight","composeSMask","scaleX","scaleY","isEnabled","composed","layer","drawImage","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","op","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","endTime","breakIt","depObjId","objsPool","startsWith","endSMaskGroup","endLayout","limit","dashArray","dashPhase","flatness","states","state","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","bezierCurveTo","consumePath","singularValueDecompose2dScale","getPattern","isPatternFill","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","patternTransform","fillStrokeMode","isAddToPathSet","getPathGenerator","strokeText","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","glyph","scaledX","scaledY","scaledAccentX","scaledAccentY","vmetric","vx","vy","charWidth","restoreNeeded","isSpace","fontChar","accent","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","paintChar","spacingLength","isTextInvisible","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","color","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","arguments","makeCssRgb","patternIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","isolated","knockout","bounds","getAxialAlignedBoundingBox","canvasBounds","intersect","imageSmoothingEnabled","mozImageSmoothingEnabled","img","compiled","maskCanvas","skewX","skewY","positions","images","image","map","w","h","imgToPaint","tmpCanvas","widthScale","heightScale","HTMLElement","tmpCtx","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getCanvasPosition","appendImage","entry","tag","visible","isVisible","isContentVisible","inverse","ShadingIRs","applyBoundingBox","Path2D","region","RadialAxial","fromIR","raw","colorStops","r1","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","c1","c2","c3","tmp","colors","rowSize","x2","y2","x3","y3","xa","car","cag","cab","xb","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","combinesScale","figures","backgroundColor","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","drawFigures","shadingIR","Mesh","owner","matrixScale","temporaryPatternCanvas","createPattern","Dummy","PaintType","COLORED","UNCOLORED","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","combinedScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","clipBbox","realOutputSize","maxSize","bboxWidth","bboxHeight","cssColor","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","event","stream","_processStreamMessage","action","cbSourceName","cbTargetName","postMessage","_createStreamSink","actionName","handler","ah","_postMessage","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","self","streamSink","isCancelled","lastDesiredSize","sinkCapability","success","_deleteStreamController","allSettled","_xml_parser","_repair","parser","SimpleXMLParser","xmlDocument","parseFromString","_metadataMap","_parse","codes","chars","rdf","nodeName","toLowerCase","firstChild","nextSibling","hasChildNodes","children","childNodes","jj","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","ch","isWhitespaceString","XMLParserBase","entity","onResolveEntity","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","_resolveEntities","parsed","attrStart","ch2","onError","onEndElement","pi","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","content","_parseContent","onBeginElement","onText","isEmpty","SimpleDOMNode","nodeValue","parentNode","child","_currentFragment","_stack","_errorCode","parseXml","node","lastElement","OptionalContentGroup","creator","_order","_groups","order","groups","baseState","off","expression","policy","ids","from","keys","_queuedChunks","_progressiveDone","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","found","some","_begin","_loaded","firstReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","requestDataRange","readers","abort","_stream","_done","_filename","_requests","_headersReady","requestCapability","_end","_queuedChunk","requestsCapability","_removeRangeReader","_enabled","WebGLUtils","tryInitGL","loadShader","gl","shaderType","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","errorMsg","getShaderInfoLog","createVertexShader","VERTEX_SHADER","createFragmentShader","FRAGMENT_SHADER","createProgram","shaders","program","attachShader","linkProgram","linked","getProgramParameter","LINK_STATUS","getProgramInfoLog","createTexture","textureId","activeTexture","texture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","texImage2D","RGBA","UNSIGNED_BYTE","currentGL","currentCanvas","generateGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","initSmaskGL","vertexShader","fragmentShader","useProgram","resolutionLocation","getUniformLocation","positionLocation","getAttribLocation","backdropLocation","subtypeLocation","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","Float32Array","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform1i","drawingBufferWidth","drawingBufferHeight","uniform2f","uniform4f","TEXTURE0","maskTexture","TEXTURE1","clearColor","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","COLOR_BUFFER_BIT","drawArrays","TRIANGLES","flush","deleteTexture","deleteBuffer","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","scaleLocation","offsetLocation","colorLocation","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","AnnotationElementFactory","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","downloadManager","imageResourcesPath","svgFactory","_createContainer","transformOrigin","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","trigger","popupElement","PopupElement","modificationDate","contents","hideWrapper","popup","className","newWindow","externalLinkTarget","externalLinkRel","externalLinkEnabled","_bindNamedAction","_bindLink","destination","getDestinationHash","navigateTo","getAnchorUrl","executeNamedAction","hasPopup","alt","dataset","l10nId","l10nArgs","JSON","stringify","_createPopup","hasAppearance","fieldValue","TEXT_ALIGNMENT","storage","getOrCreateValue","multiLine","setValue","readOnly","fieldName","maxLen","maxLength","comb","fieldWidth","combWidth","classList","letterSpacing","verticalAlign","display","_setTextStyle","textAlignment","textAlign","direction","fontWeight","fontStyle","checked","buttonValue","radio","getElementsByName","getAttribute","selectElement","combo","options","multiSelect","multiple","option","optionElement","displayValue","exportValue","selectedIndex","IGNORE_TYPES","parentType","selector","parentId","parentElement","querySelector","parentLeft","parseFloat","parentWidth","pinned","BACKGROUND_ENLIGHT","hideElement","dateObject","toDateObject","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","lines","split","createTextNode","pin","hasAttribute","removeAttribute","zIndex","unpin","lineCoordinates","append","square","circle","containerClassName","svgElementName","coordinate","vertices","polyline","inkList","inkLists","dispatch","_download","downloadData","sortedAnnotations","popupAnnotations","annotations","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","isAllWhitespace","test","appendText","geom","textDiv","textDivProperties","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_textDivProperties","tx","_viewport","atan2","fontName","PI","fontHeight","fontAscent","ascent","descent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","right","bottom","_canceled","textDivs","textDivsLength","_renderingDone","findPositiveMin","ts","expand","expanded","expandBounds","divProperties","Float64Array","boxScale","boxes","box","x1New","x2New","expandBoundsLTR","fakeBoundary","Infinity","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","concat","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_reader","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","renderParameters","_render","timeout","styleCache","len","mozOpaque","textItems","textStyles","_processItems","expandTextDivs","expandDivs","transformBuf","paddingBuf","divProps","padding","SVG_DEFAULTS","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","Buffer","output","maxBlockLength","deflateBlocks","idat","adler","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","opListToTree","opList","opTree","opListElement","fn","pf","pm","acos","clipCount","maskCount","shadingCount","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","svgElement","loadDependencies","convertOpList","operatorIdMapping","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","defs","addFontStyle","_makeColorN_Pattern","inverseTransform","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","shadingId","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","getAttributeNS","clipId","clipPath","clipElement","cloneNode","setStrokeAlpha","setFillAlpha","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","_network_utils","http","https","fileUriRegex","parseUrl","sourceUrl","parsedUrl","parse","host","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","createRequestOptions","headers","auth","hostname","method","handleResponse","statusCode","_setReadableStream","getResponseHeader","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","stat","createReadStream","createResponseStatusError","validateResponseStatus","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","TextDecoder","fatal","decode","err","contentDispositionStr","match","iter","quot","part","quotindex","extvalue","encodingend","langvalue","charset","hex","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","array","NetworkManager","getXhr","currXhrId","pendingRequests","listeners","xhrId","pendingRequest","setRequestHeader","expectedStatus","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","ok_response_on_range_request","rangeHeader","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","getRequestXhr","abortRequest","lengthComputable","isPendingRequest","_requestId","requestRange","_close","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","_annotation_layer_builder","AnnotationLayerBuilder","DefaultAnnotationLayerFactory","_text_layer_builder","DefaultTextLayerFactory","TextLayerBuilder","_ui_utils","EventBus","NullL10n","ProgressBar","_pdf_link_service","PDFLinkService","SimpleLinkService","_download_manager","DownloadManager","_genericl10n","GenericL10n","_pdf_find_controller","PDFFindController","_pdf_history","PDFHistory","_pdf_page_view","PDFPageView","_pdf_single_page_viewer","PDFSinglePageViewer","_pdf_viewer","PDFViewer","_pdfjsLib","pageDiv","pdfPage","_cancelled","update","pdfjsLib","isValidRotation","isValidScrollMode","isValidSpreadMode","isPortraitOrientation","clamp","getPDFFileNameFromURL","noContextMenuHandler","parseQueryString","backtrackBeforeAllVisibleElements","getVisibleElements","roundToDivide","getPageSizeInches","approximateFraction","getOutputScale","scrollIntoView","watchScroll","binarySearchFirstItem","normalizeWheelEventDirection","normalizeWheelEventDelta","waitOnEventOrTimeout","moveToEndOfArray","WaitOnType","SpreadMode","ScrollMode","TextLayerMode","RendererType","PresentationModeState","VERTICAL_PADDING","SCROLLBAR_PADDING","MAX_AUTO_SCALE","UNKNOWN_SCALE","DEFAULT_SCALE","CSS_UNITS","AutoPrintRegExp","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","VERTICAL","HORIZONTAL","WRAPPED","ODD","EVEN","formatL10nValue","fallback","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","pixelRatio","scaled","spot","skipOverflowHiddenElements","parent","offsetParent","offsetTop","clientTop","offsetLeft","clientLeft","clientHeight","clientWidth","scrollWidth","getComputedStyle","overflow","_scaleY","_scaleX","scrollLeft","scrollTop","viewAreaElement","debounceScroll","rAF","currentX","lastX","currentY","lastY","down","_eventHandler","param","condition","minIndex","maxIndex","currentIndex","currentItem","xinv","x_","changeOrientation","views","elt","pageTop","scrollEl","sortByVisibility","horizontal","isElementBottomAfterViewTop","elementBottom","isElementRightAfterViewLeft","elementRight","numViews","firstVisibleElementInd","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","hiddenWidth","last","pc","preventDefault","isDataSchema","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","delta","deltaX","deltaY","MOUSE_DOM_DELTA_PIXEL_MODE","MOUSE_DOM_DELTA_LINE_MODE","MOUSE_PIXELS_PER_LINE","MOUSE_LINES_PER_PAGE","deltaMode","EVENT","TIMEOUT","delay","_off","eventHandler","_on","timeoutHandler","eventName","external","eventListeners","externalListeners","units","_indeterminate","progressSize","_percent","_updateBar","viewer","scrollbarWidth","offsetWidth","moved","write","ignoreDestinationZoom","_ignoreDestinationZoom","_pagesRefCache","pagesRotation","goToDestination","namedDest","explicitDest","destRef","_cachedPageNumber","cachePageRef","pushCurrentPosition","scrollPageIntoView","destArray","hash","search","phraseSearch","phrase","zoomArgs","zoom","zoomArg","zoomArgNumber","allowNegativeOffset","pagemode","nameddest","isValidExplicitDestination","forward","pageNum","pageRef","refStr","gen","num","isPageVisible","destLength","allowNull","EXPAND_DIVS_TIMEOUT","textLayerDiv","findController","renderingDone","pageIdx","textLayerRenderTask","_onUpdateTextLayerMatches","_bindMouse","endOfContent","numTextDivs","textLayerFrag","createDocumentFragment","_finishRendering","_updateMatches","matchesLength","iIndex","queryLen","mm","matchIdx","divIdx","isSelectedPage","selected","selectedMatchIdx","highlightAll","prevEnd","infinity","appendTextToDiv","fromOffset","toOffset","i0","i1","isSelected","highlightSuffix","scrollMatchIntoView","matchIndex","n0","n1","clearedUntilDivIdx","highlightMatches","pageMatches","pageMatchesLength","_convertMatches","_renderMatches","expandDivsTimer","adjustTop","getPropertyValue","divBounds","getBoundingClientRect","pageY","_viewer_compatibility","download","blobUrl","click","msSaveBlob","viewerCompatibilityParams","disableCreateObjectURL","sourceEventType","downloadUrl","platform","maxTouchPoints","isAndroid","isIE","isIOS","isIOSChrome","maxCanvasPixels","webL10n","lang","_lang","_ready","setLanguage","getLanguage","getDirection","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","gAsyncResourceLoading","getL10nResourceLinks","querySelectorAll","getL10nDictionary","innerHTML","getTranslatableChildren","getL10nAttributes","xhrLoadText","onSuccess","onFailure","overrideMimeType","ontimeout","parseResource","successCallback","failureCallback","baseURL","evalString","parseProperties","parsedPropertiesCallback","dictionary","reBlank","reComment","reSection","reImport","reSplit","parseRawLines","rawText","extendedSyntax","parsedRawLinesCallback","entries","currentLang","genericLang","skipLang","nextEntry","loadImport","loadLocale","langLinks","langCount","onResourceLoaded","gResourceCount","resource","L10nResourceLink","load","dict","locales","default_locale","defaultLocale","anyCaseLang","getPluralRules","locales2rules","isIn","list","isBetween","pluralRules","getL10nData","rv","substIndexes","substArguments","reIndex","reMatch","macroName","paramName","macro","reArgs","matched_text","arg","translateElement","getChildElementCount","nodeType","textNode","insertBefore","childElementCount","translateFragment","elementCount","plural","_pluralRules","fallbackString","getText","rtlList","shortCode","getReadyState","once","FindState","_pdf_find_utils","FOUND","NOT_FOUND","PENDING","FIND_TIMEOUT","MATCH_SCROLL_OFFSET_TOP","MATCH_SCROLL_OFFSET_LEFT","CHARACTERS_TO_NORMALIZE","normalizationRegex","normalize","_linkService","_eventBus","_reset","_onFindBarClose","_highlightMatches","_pageMatches","_pageMatchesLength","_selected","_state","_pdfDocument","_firstPageCapability","_shouldDirtyMatch","_dirtyMatch","_updateUIState","_extractText","findbarClosed","pendingTimeout","_findTimeout","_nextMatch","_updateAllPages","_scrollMatches","_offset","wrapped","_extractTextPromises","_pageContents","_matchesCountTotal","_pagesToSearch","_pendingFindMatches","_resumePageIdx","_rawQuery","_normalizedQuery","matchesWithLength","isSubTerm","currentElem","nextElem","skipped","prevElem","matchLength","startIdx","getCharacterType","endIdx","pageContent","entireWord","_isEntireWord","queryArray","subquery","subqueryLen","_prepareMatches","_query","caseSensitive","_calculatePhraseMatch","_calculateWordMatch","_updatePage","_nextPageMatch","pageMatchesCount","_updateUIResultsCount","extractTextCapability","getTextContent","findPrevious","currentPageIndex","_calculateMatch","numPageMatches","_updateMatch","_advanceOffsetPage","numMatches","_matchesReady","previousPage","matchesCount","_requestMatchesCount","rawQuery","CharacterType","SPACE","ALPHA_LETTER","PUNCT","HAN_LETTER","KATAKANA_LETTER","HIRAGANA_LETTER","HALFWIDTH_KATAKANA_LETTER","THAI_LETTER","isAlphabeticalScript","charCode","isAscii","isAsciiAlpha","isAsciiDigit","isAsciiSpace","isHan","isKatakana","isHiragana","isHalfwidthKatakana","isThai","isDestHashesEqual","isDestArraysEqual","HASH_CHANGE_TIMEOUT","POSITION_UPDATED_THRESHOLD","UPDATE_VIEWAREA_TIMEOUT","getCurrentHash","_initialized","_fingerprint","_boundEvents","_isViewerInPresentationMode","active","switchInProgress","_isPagesLoaded","onPagesLoaded","resetHistory","updateUrl","reInitialized","_updateUrl","_bindEvents","_popStateInProgress","_blockHashChange","_currentHash","_numPositionUpdates","_uid","_maxUid","_destination","_position","_isValidState","_parseCurrentHash","_pushOrReplaceState","_updateInternalState","uid","_initialRotation","_initialBookmark","_pageHide","_unbindEvents","_updateViewareaTimeout","forceReplace","_tryPushCurrentPosition","shouldReplace","newState","newUrl","replaceState","pushState","temporary","checkReload","perfEntry","performance","getEntriesByType","removeTemporary","checkNameddest","pdfOpenParams","newHash","hashChanged","setHash","updateViewarea","_updateViewarea","popState","_popState","pageHide","destHash","pushHash","firstDest","secondDest","isEntryEqual","_pdf_rendering_queue","MAX_CANVAS_PIXELS","defaultViewport","renderingId","pageLabel","pdfPageRotate","_annotationStorage","_optionalContentConfigPromise","hasRestrictedScaling","renderingQueue","textLayerFactory","annotationLayerFactory","renderer","paintTask","paintedViewportMap","renderingState","RenderingStates","INITIAL","resume","annotationLayer","textLayer","zoomLayer","totalRotation","getViewport","stats","removeFromDOM","zoomLayerCanvas","keepZoomLayer","keepAnnotations","cancelRendering","currentZoomLayerNode","currentAnnotationNode","_resetZoomLayer","loadingIconDiv","cssTransform","timestamp","isScalingRestricted","outputScale","redrawAnnotations","relativeRotation","absRotation","textLayerViewport","textRelativeRotation","textAbsRotation","transX","transY","_renderAnnotationLayer","convertToPdfPoint","FINISHED","RUNNING","canvasWrapper","createTextLayerBuilder","renderContinueCallback","cont","isHighestPriority","PAUSED","finishPaintTask","paintOnSvg","paintOnCanvas","onRenderContinue","resultPromise","setTextContentStream","createAnnotationLayerBuilder","renderCapability","isCanvasHidden","showCanvas","actualSizeViewport","pixelsInViewport","maxScale","sfx","sfy","renderContext","ensureNotCancelled","getOperatorList","svgGfx","getSVG","label","PDFRenderingQueue","CLEANUP_TIMEOUT","pdfThumbnailViewer","onIdle","highestPriorityPage","idleTimeout","printing","isThumbnailViewEnabled","currentlyVisiblePages","forceRendering","scrolledDown","visibleViews","numVisible","isViewFinished","nextPageIndex","previousPageIndex","draw","renderHighestPriority","_base_viewer","BaseViewer","_ensurePageViewVisible","_shadowViewer","_resetView","_previousPageNumber","_updateScrollDown","pageView","_pages","_currentPageNumber","previousPageView","viewerNodes","_scrollUpdate","pageSpot","_setCurrentPageNumber","_scrollIntoView","scroll","_getCurrentVisiblePage","visiblePages","DEFAULT_CACHE_SIZE","PDFPageViewBuffer","resize","newSize","pagesToKeep","pageIdsToKeep","Set","iMax","isSameScale","oldScale","_name","firstElementChild","HTMLDivElement","removePageBorders","enablePrintAutoRotate","defaultRenderingQueue","presentationModeState","_onBeforeDraw","_onAfterDraw","_pagesCapability","settled","resetCurrentPageView","_resetCurrentPageView","_pageLabels","_currentScale","_setScale","_currentScaleValue","_pagesRotation","_onePageRenderedCapability","_getVisiblePages","_cancelRendering","firstPagePromise","_buffer","firstPdfPage","_viewerElement","firstPageView","setPdfPage","_spreadMode","_updateSpreadMode","_onePageRenderedOrForceFetch","getPagesLeft","labels","setPageLabel","_location","_pagesRequests","_scrollMode","_updateScrollMode","newValue","noScroll","preset","presetValue","isInPresentationMode","isChangingPresentationMode","_setScaleUpdatePages","currentPage","noPadding","hPadding","vPadding","_isScrollModeHorizontal","pageWidthScale","pageHeightScale","horizontalScale","pageWidth","pageHeight","boundingRect","convertToViewportPoint","firstPage","normalizedScaleValue","currentPageView","getPagePoint","intLeft","intTop","numVisiblePages","newCacheSize","_updateHelper","_updateLocation","contains","focus","scrollAhead","getHighestPriority","_ensurePdfPageLoaded","renderView","pagesOverview","scrollMode","toggle","pages","parity","spread","currentId","stillFullyVisible","isBlackBerry","isiOS","isOpera","isWindows","isMobileDevice","fails","whitespaces","non","METHOD_NAME","pdfjs","PdfjsWorker"],"mappings":"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,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,IAAO,EACP,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,IAAO,GACP,GAAM,EACN,GAAM,EACN,IAAO,GACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,GACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,GACN,IAAO,EACP,IAAO,EACP,IAAO,EACP,GAAM,EACN,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,GACN,IAAO,GACP,GAAM,GACN,GAAM,GACN,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM,EACN,IAAO,EACP,GAAM,EACN,GAAM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","file":"js/chunk-4354d67b.2feac307.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDFViewer.vue?vue&type=style&index=0&id=13a2561b&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('header',[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"div-previous\",on:{\"click\":function($event){return _vm.previous()}}},[_c('v-icon',[_vm._v(\"mdi-chevron-left\")])],1),_c('div',[_c('h5',{attrs:{\"id\":\"title\"}})])])]),_c('div',{attrs:{\"id\":\"viewerContainer\"}},[_c('div',{staticClass:\"pdfViewer\",attrs:{\"id\":\"viewer\"}})]),_c('div',{attrs:{\"id\":\"loadingBar\"}},[_c('div',{staticClass:\"progress\"}),_c('div',{staticClass:\"glimmer\"})]),_c('div',{attrs:{\"id\":\"errorWrapper\",\"hidden\":\"true\"}},[_c('div',{attrs:{\"id\":\"errorMessageLeft\"}},[_c('span',{attrs:{\"id\":\"errorMessage\"}}),_c('button',{attrs:{\"id\":\"errorShowMore\"}},[_vm._v(\"More Information\")]),_c('button',{attrs:{\"id\":\"errorShowLess\"}},[_vm._v(\"Less Information\")])]),_c('div',{attrs:{\"id\":\"errorMessageRight\"}},[_c('button',{attrs:{\"id\":\"errorClose\"}},[_vm._v(\"Close\")])]),_c('div',{staticClass:\"clearBoth\"}),_c('textarea',{attrs:{\"id\":\"errorMoreInfo\",\"hidden\":\"true\",\"readonly\":\"readonly\"}})]),_c('div',{staticClass:\"footer-pdf-viewer d-flex justify-space-between align-center\"},[_c('div',{staticClass:\"mx-2\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\",\"title\":\"Previous Page\",\"id\":\"previous\"}},[_c('v-icon',[_vm._v(\"mdi-chevron-up\")])],1),_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"title\":\"Next Page\",\"id\":\"next\"}},[_c('v-icon',[_vm._v(\"mdi-chevron-down\")])],1)],1),_c('div',[_c('input',{attrs:{\"type\":\"number\",\"id\":\"pageNumber\",\"value\":\"1\",\"size\":\"4\",\"min\":\"1\"}})]),_c('div',{staticClass:\"mx-2\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"title\":\"Zoom Out\",\"id\":\"zoomOut\"}},[_c('v-icon',[_vm._v(\"mdi-magnify-minus-outline\")])],1),_c('v-btn',{attrs:{\"small\":\"\",\"title\":\"Zoom In\",\"id\":\"zoomIn\"}},[_c('v-icon',[_vm._v(\"mdi-magnify-plus-outline\")])],1)],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport * as pdfjsLib from 'pdfjs-dist/webpack'\r\n// @ts-ignore\r\nimport * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer'\r\nimport mobileTypeMixin from '@/plugins/mixins/mobileTypeMixin'\r\nimport mixins from 'vue-typed-mixins'\r\nimport routeMixin from '@/router/routeMixin'\r\nimport globalMixin from '../globalMixin'\r\n\r\n\r\n/* eslint @typescript-eslint/no-this-alias : 0 */\r\n/* eslint consistent-this : 0 */\r\n\r\nexport default mixins(mobileTypeMixin, routeMixin, globalMixin).extend({\r\n data: () => {\r\n return {\r\n pdf: null as null | string,\r\n }\r\n },\r\n methods : {\r\n previous(){\r\n history.back()\r\n }\r\n },\r\n mounted() {\r\n\r\n const vueInstance = this;\r\n\r\n if (!this.$route.params.pdfUrl)\r\n return /* Copyright 2016 Mozilla Foundation\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n ;('use strict')\r\n\r\n if (!pdfjsLib.getDocument || !pdfjsViewer.PDFViewer) {\r\n // eslint-disable-next-line no-alert\r\n alert('Please build the pdfjs-dist library using\\n `gulp dist-install`')\r\n }\r\n\r\n const USE_ONLY_CSS_ZOOM = true\r\n const TEXT_LAYER_MODE = 0 // DISABLE\r\n const MAX_IMAGE_SIZE = 1024 * 1024\r\n const CMAP_URL = '../../node_modules/pdfjs-dist/cmaps/'\r\n const CMAP_PACKED = true\r\n\r\n const DEFAULT_URL = ''\r\n const DEFAULT_SCALE_DELTA = 1.1\r\n const MIN_SCALE = 0.25\r\n const MAX_SCALE = 10.0\r\n const DEFAULT_SCALE_VALUE = 'auto'\r\n\r\n const PDFViewerApplication = {\r\n pdfLoadingTask: null as null | any,\r\n pdfDocument: null as null | any,\r\n pdfViewer: null as null | any,\r\n pdfHistory: null as null | any,\r\n pdfLinkService: null as null | any,\r\n eventBus: null as null | any,\r\n url: null as null | any,\r\n documentInfo: null as null | any,\r\n metadata: null as null | any,\r\n l10n: pdfjsViewer.NullL10n,\r\n\r\n /**\r\n * Opens PDF document specified by URL.\r\n * @returns {Promise} - Returns the promise, which is resolved when document\r\n * is opened.\r\n */\r\n open(params: any) {\r\n if (this.pdfLoadingTask) {\r\n // We need to destroy already opened document\r\n return this.close().then(\r\n function () {\r\n // ... and repeat the open() call.\r\n // @ts-ignore\r\n return this.open(params)\r\n }.bind(this)\r\n )\r\n }\r\n\r\n const url = params.url\r\n // this.setTitleUsingUrl(url)\r\n\r\n // Loading document.\r\n const loadingTask = pdfjsLib.getDocument({\r\n url,\r\n maxImageSize: MAX_IMAGE_SIZE,\r\n cMapUrl: CMAP_URL,\r\n cMapPacked: CMAP_PACKED,\r\n })\r\n this.pdfLoadingTask = loadingTask\r\n\r\n // @ts-ignore\r\n loadingTask.onProgress = (progressData: any) => {\r\n this.progress(progressData.loaded / progressData.total)\r\n }\r\n\r\n return loadingTask.promise.then(\r\n (pdfDocument: any) => {\r\n // Document loaded, specifying document for the viewer.\r\n console.log(this)\r\n this.pdfDocument = pdfDocument\r\n this.pdfViewer.setDocument(pdfDocument)\r\n this.pdfLinkService.setDocument(pdfDocument)\r\n this.pdfHistory.initialize({ fingerprint: pdfDocument.fingerprint })\r\n\r\n this.loadingBar.hide()\r\n vueInstance.$loader.stop();\r\n this.setTitleUsingMetadata(pdfDocument)\r\n },\r\n (exception: any) => {\r\n const message = exception && exception.message\r\n const l10n = this.l10n\r\n const loadingErrorMessage = l10n.get('loading_error', null, 'An error occurred while loading the PDF.')\r\n\r\n loadingErrorMessage.then((msg: any) => {\r\n this.error(msg, { message })\r\n })\r\n this.loadingBar.hide()\r\n vueInstance.$loader.stop();\r\n }\r\n )\r\n },\r\n\r\n /**\r\n * Closes opened PDF document.\r\n * @returns {Promise} - Returns the promise, which is resolved when all\r\n * destruction is completed.\r\n */\r\n close() {\r\n const errorWrapper = document.getElementById('errorWrapper')\r\n if (!errorWrapper) return\r\n errorWrapper.hidden = true\r\n\r\n if (!this.pdfLoadingTask) {\r\n return Promise.resolve()\r\n }\r\n\r\n const promise = this.pdfLoadingTask?.destroy()\r\n this.pdfLoadingTask = null\r\n\r\n if (this.pdfDocument) {\r\n this.pdfDocument = null\r\n\r\n this.pdfViewer.setDocument(null)\r\n this.pdfLinkService.setDocument(null, null)\r\n\r\n if (this.pdfHistory) {\r\n this.pdfHistory.reset()\r\n }\r\n }\r\n\r\n return promise\r\n },\r\n\r\n get loadingBar() {\r\n const bar = new pdfjsViewer.ProgressBar('#loadingBar', {})\r\n // @ts-ignore\r\n return pdfjsLib.shadow(this, 'loadingBar', bar)\r\n },\r\n\r\n setTitleUsingUrl: function pdfViewSetTitleUsingUrl(url: any) {\r\n this.url = url\r\n // @ts-ignore\r\n let title = pdfjsLib.getFilenameFromUrl(url) || url\r\n console.log(title)\r\n try {\r\n title = decodeURIComponent(title)\r\n console.log(title)\r\n } catch (e) {\r\n // decodeURIComponent may throw URIError,\r\n // fall back to using the unprocessed url in that case\r\n }\r\n this.setTitle(title)\r\n },\r\n\r\n setTitleUsingMetadata(pdfDocument: any) {\r\n pdfDocument.getMetadata().then((data: any) => {\r\n const info = data.info,\r\n metadata = data.metadata\r\n this.documentInfo = info\r\n this.metadata = metadata\r\n console.log(data, info, metadata)\r\n // Provides some basic debug information\r\n console.log('PDF ' + pdfDocument.fingerprint + ' [' + info.PDFFormatVersion + ' ' + (info.Producer || '-').trim() + ' / ' + (info.Creator || '-').trim() + ']' + ' (PDF.js: ' + (pdfjsLib.version || '-') + ')')\r\n\r\n let pdfTitle\r\n if (metadata && metadata.has('dc:title')) {\r\n const title = metadata.get('dc:title')\r\n // Ghostscript sometimes returns 'Untitled', so prevent setting the\r\n // title to 'Untitled.\r\n if (title !== 'Untitled') {\r\n pdfTitle = title\r\n }\r\n }\r\n\r\n if (!pdfTitle && info && info.Title) {\r\n pdfTitle = info.Title\r\n }\r\n\r\n if (pdfTitle) {\r\n this.setTitle(pdfTitle + ' - ' + document.title)\r\n }\r\n })\r\n },\r\n\r\n setTitle: function pdfViewSetTitle(title: string) {\r\n // document.title = title\r\n console.log(title)\r\n const titleEl = document.getElementById('title')\r\n if (titleEl) titleEl.textContent = title\r\n },\r\n\r\n error: function pdfViewError(message: string, moreInfo: any) {\r\n const l10n = this.l10n\r\n // @ts-ignore\r\n const moreInfoText = [l10n.get('error_version_info', { version: pdfjsLib.version || '?', build: pdfjsLib.build || '?' }, 'PDF.js v{{version}} (build: {{build}})')]\r\n if (moreInfo) {\r\n moreInfoText.push(l10n.get('error_message', { message: moreInfo.message }, 'Message: {{message}}'))\r\n if (moreInfo.stack) {\r\n moreInfoText.push(l10n.get('error_stack', { stack: moreInfo.stack }, 'Stack: {{stack}}'))\r\n } else {\r\n if (moreInfo.filename) {\r\n moreInfoText.push(l10n.get('error_file', { file: moreInfo.filename }, 'File: {{file}}'))\r\n }\r\n if (moreInfo.lineNumber) {\r\n moreInfoText.push(l10n.get('error_line', { line: moreInfo.lineNumber }, 'Line: {{line}}'))\r\n }\r\n }\r\n }\r\n const errorWrapper = document.getElementById('errorWrapper')\r\n\r\n if (!errorWrapper) return\r\n errorWrapper.hidden = false\r\n const errorMessage = document.getElementById('errorMessage')\r\n\r\n if (!errorMessage) return\r\n errorMessage.textContent = message\r\n const closeButton = document.getElementById('errorClose')\r\n if (!closeButton) return\r\n closeButton.onclick = function () {\r\n errorWrapper.hidden = true\r\n }\r\n const errorMoreInfo = document.getElementById('errorMoreInfo')\r\n if (!errorMoreInfo) return\r\n const moreInfoButton = document.getElementById('errorShowMore')\r\n if (!moreInfoButton) return\r\n const lessInfoButton = document.getElementById('errorShowLess')\r\n if (!lessInfoButton) return\r\n if (moreInfoButton)\r\n moreInfoButton.onclick = function () {\r\n errorMoreInfo.hidden = false\r\n moreInfoButton.hidden = true\r\n lessInfoButton.hidden = false\r\n errorMoreInfo.style.height = errorMoreInfo.scrollHeight + 'px'\r\n }\r\n if (lessInfoButton)\r\n lessInfoButton.onclick = function () {\r\n errorMoreInfo.hidden = true\r\n moreInfoButton.hidden = false\r\n lessInfoButton.hidden = true\r\n }\r\n if (moreInfoButton) moreInfoButton.hidden = false\r\n if (lessInfoButton) lessInfoButton.hidden = true\r\n Promise.all(moreInfoText).then(function (parts) {\r\n // @ts-ignore\r\n errorMoreInfo.value = parts.join('\\n')\r\n })\r\n },\r\n\r\n progress: function pdfViewProgress(level: number) {\r\n vueInstance.$loader.go();\r\n\r\n const percent = Math.round(level * 100)\r\n // Updating the bar if value increases.\r\n if (percent > this.loadingBar.percent || isNaN(percent)) {\r\n this.loadingBar.percent = percent\r\n }\r\n },\r\n\r\n get pagesCount() {\r\n return this.pdfDocument.numPages\r\n },\r\n\r\n get page() {\r\n return this.pdfViewer.currentPageNumber\r\n },\r\n\r\n set page(val) {\r\n this.pdfViewer.currentPageNumber = val\r\n },\r\n\r\n zoomIn: function pdfViewZoomIn(ticks: number) {\r\n let newScale = this.pdfViewer.currentScale\r\n do {\r\n newScale = (newScale * DEFAULT_SCALE_DELTA).toFixed(2)\r\n newScale = Math.ceil(newScale * 10) / 10\r\n newScale = Math.min(MAX_SCALE, newScale)\r\n } while (--ticks && newScale < MAX_SCALE)\r\n this.pdfViewer.currentScaleValue = newScale\r\n },\r\n\r\n zoomOut: function pdfViewZoomOut(ticks: number) {\r\n let newScale = this.pdfViewer.currentScale\r\n do {\r\n newScale = (newScale / DEFAULT_SCALE_DELTA).toFixed(2)\r\n newScale = Math.floor(newScale * 10) / 10\r\n newScale = Math.max(MIN_SCALE, newScale)\r\n } while (--ticks && newScale > MIN_SCALE)\r\n this.pdfViewer.currentScaleValue = newScale\r\n },\r\n\r\n initUI: function pdfViewInitUI() {\r\n const eventBus = new pdfjsViewer.EventBus()\r\n this.eventBus = eventBus\r\n\r\n const linkService = new pdfjsViewer.PDFLinkService({\r\n eventBus,\r\n })\r\n this.pdfLinkService = linkService\r\n\r\n this.l10n = pdfjsViewer.NullL10n\r\n\r\n const container = document.getElementById('viewerContainer')\r\n const pdfViewer = new pdfjsViewer.PDFViewer({\r\n container,\r\n eventBus,\r\n linkService,\r\n l10n: this.l10n,\r\n useOnlyCssZoom: USE_ONLY_CSS_ZOOM,\r\n textLayerMode: TEXT_LAYER_MODE,\r\n })\r\n console.log(pdfViewer)\r\n this.pdfViewer = pdfViewer\r\n linkService.setViewer(pdfViewer)\r\n\r\n this.pdfHistory = new pdfjsViewer.PDFHistory({\r\n eventBus,\r\n linkService,\r\n })\r\n linkService.setHistory(this.pdfHistory)\r\n\r\n document.getElementById('previous')?.addEventListener('click', function () {\r\n PDFViewerApplication.page--\r\n })\r\n\r\n document.getElementById('next')?.addEventListener('click', function () {\r\n PDFViewerApplication.page++\r\n })\r\n\r\n document.getElementById('zoomIn')?.addEventListener('click', function () {\r\n // @ts-ignore\r\n PDFViewerApplication.zoomIn()\r\n })\r\n\r\n document.getElementById('zoomOut')?.addEventListener('click', function () {\r\n // @ts-ignore\r\n PDFViewerApplication.zoomOut()\r\n })\r\n\r\n document.getElementById('pageNumber')?.addEventListener('click', function () {\r\n // @ts-ignore\r\n this.select()\r\n })\r\n\r\n document.getElementById('pageNumber')?.addEventListener('change', function (this: any) {\r\n PDFViewerApplication.page = this.value | 0\r\n\r\n // Ensure that the page number input displays the correct value,\r\n // even if the value entered by the user was invalid\r\n // (e.g. a floating point number).\r\n if (this.value !== PDFViewerApplication.page.toString()) {\r\n this.value = PDFViewerApplication.page\r\n }\r\n })\r\n\r\n eventBus.on('pagesinit', function () {\r\n // We can use pdfViewer now, e.g. let's change default scale.\r\n pdfViewer.currentScaleValue = DEFAULT_SCALE_VALUE\r\n })\r\n\r\n eventBus.on(\r\n 'pagechanging',\r\n function (evt: any) {\r\n const page = evt.pageNumber\r\n const numPages = PDFViewerApplication.pagesCount\r\n\r\n // @ts-ignore\r\n document.getElementById('pageNumber').value = page\r\n // @ts-ignore\r\n document.getElementById('previous').disabled = page <= 1\r\n // @ts-ignore\r\n document.getElementById('next').disabled = page >= numPages\r\n },\r\n true\r\n )\r\n },\r\n }\r\n\r\n document.addEventListener(\r\n 'DOMContentLoaded',\r\n function () {\r\n console.log('PDFViewerApplication.initUI()')\r\n },\r\n true\r\n )\r\n\r\n // The offsetParent is not set until the PDF.js iframe or object is visible;\r\n // waiting for first animation.\r\n const animationStarted = new Promise(function (resolve) {\r\n window.requestAnimationFrame(resolve)\r\n })\r\n\r\n // We need to delay opening until all HTML is loaded.\r\n animationStarted.then(function () {\r\n PDFViewerApplication.initUI()\r\n // PDFViewerApplication.open({\r\n // url: 'http://192.168.1.28:8182/api/file/301d5118-15b6-406e-8e62-18383860a0eb-e1dffe5c-d1fc-4f39-bdb2-3898c93b9967-c0e4db9e-8485-421b-83ab-ced2fbede047',\r\n // })\r\n })\r\n\r\n if (this.pdf)\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n PDFViewerApplication.close().then(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n PDFViewerApplication.open({\r\n url: this.$route.params.pdfUrl,\r\n })\r\n this.pdf = this.$route.params.pdfUrl\r\n })\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n PDFViewerApplication.open({\r\n url: this.$route.params.pdfUrl,\r\n })\r\n this.pdf = this.$route.params.pdfUrl\r\n }\r\n },\r\n})\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDFViewer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PDFViewer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PDFViewer.vue?vue&type=template&id=13a2561b&scoped=true&\"\nimport script from \"./PDFViewer.vue?vue&type=script&lang=ts&\"\nexport * from \"./PDFViewer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PDFViewer.vue?vue&type=style&index=0&id=13a2561b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13a2561b\",\n null\n \n)\n\nexport default component.exports","module.exports = function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"js/pdf.worker.6f8d1628.worker.js\");\n}\n","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__w_pdfjs_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__w_pdfjs_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__w_pdfjs_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"addLinkAttributes\", {\n enumerable: true,\n get: function () {\n return _display_utils.addLinkAttributes;\n }\n});\nObject.defineProperty(exports, \"getFilenameFromUrl\", {\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n});\nObject.defineProperty(exports, \"LinkTarget\", {\n enumerable: true,\n get: function () {\n return _display_utils.LinkTarget;\n }\n});\nObject.defineProperty(exports, \"loadScript\", {\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n});\nObject.defineProperty(exports, \"PDFDateString\", {\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n});\nObject.defineProperty(exports, \"RenderingCancelledException\", {\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n});\nObject.defineProperty(exports, \"build\", {\n enumerable: true,\n get: function () {\n return _api.build;\n }\n});\nObject.defineProperty(exports, \"getDocument\", {\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n});\nObject.defineProperty(exports, \"LoopbackPort\", {\n enumerable: true,\n get: function () {\n return _api.LoopbackPort;\n }\n});\nObject.defineProperty(exports, \"PDFDataRangeTransport\", {\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n});\nObject.defineProperty(exports, \"PDFWorker\", {\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _api.version;\n }\n});\nObject.defineProperty(exports, \"CMapCompressionType\", {\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n});\nObject.defineProperty(exports, \"createObjectURL\", {\n enumerable: true,\n get: function () {\n return _util.createObjectURL;\n }\n});\nObject.defineProperty(exports, \"createPromiseCapability\", {\n enumerable: true,\n get: function () {\n return _util.createPromiseCapability;\n }\n});\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", {\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n});\nObject.defineProperty(exports, \"InvalidPDFException\", {\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n});\nObject.defineProperty(exports, \"MissingPDFException\", {\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n});\nObject.defineProperty(exports, \"OPS\", {\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n});\nObject.defineProperty(exports, \"PasswordResponses\", {\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n});\nObject.defineProperty(exports, \"PermissionFlag\", {\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n});\nObject.defineProperty(exports, \"removeNullCharacters\", {\n enumerable: true,\n get: function () {\n return _util.removeNullCharacters;\n }\n});\nObject.defineProperty(exports, \"shadow\", {\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n});\nObject.defineProperty(exports, \"UnexpectedResponseException\", {\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n});\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", {\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n});\nObject.defineProperty(exports, \"Util\", {\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n});\nObject.defineProperty(exports, \"VerbosityLevel\", {\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n});\nObject.defineProperty(exports, \"AnnotationLayer\", {\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n});\nObject.defineProperty(exports, \"apiCompatibilityParams\", {\n enumerable: true,\n get: function () {\n return _api_compatibility.apiCompatibilityParams;\n }\n});\nObject.defineProperty(exports, \"GlobalWorkerOptions\", {\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n});\nObject.defineProperty(exports, \"renderTextLayer\", {\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n});\nObject.defineProperty(exports, \"SVGGraphics\", {\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n});\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _api = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _annotation_layer = __w_pdfjs_require__(19);\n\nvar _api_compatibility = __w_pdfjs_require__(9);\n\nvar _worker_options = __w_pdfjs_require__(12);\n\nvar _text_layer = __w_pdfjs_require__(20);\n\nvar _svg = __w_pdfjs_require__(21);\n\nconst pdfjsVersion = '2.6.347';\nconst pdfjsBuild = '3be9c65f';\n{\n const {\n isNodeJS\n } = __w_pdfjs_require__(4);\n\n if (isNodeJS) {\n const PDFNodeStream = __w_pdfjs_require__(22).PDFNodeStream;\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const PDFNetworkStream = __w_pdfjs_require__(25).PDFNetworkStream;\n\n let PDFFetchStream;\n\n if ((0, _display_utils.isFetchSupported)()) {\n PDFFetchStream = __w_pdfjs_require__(26).PDFFetchStream;\n }\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n if (PDFFetchStream && (0, _display_utils.isValidFetchUrl)(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addLinkAttributes = addLinkAttributes;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.isFetchSupported = isFetchSupported;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.deprecated = deprecated;\nexports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.BaseCMapReaderFactory = exports.DOMCanvasFactory = exports.BaseCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nexports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n (0, _util.unreachable)(\"Abstract method `create` called.\");\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n}\n\nexports.BaseCanvasFactory = BaseCanvasFactory;\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = this._document.createElement(\"canvas\");\n\n const context = canvas.getContext(\"2d\");\n canvas.width = width;\n canvas.height = height;\n return {\n canvas,\n context\n };\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = false\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) {\n return fetch(url).then(async response => {\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n let cMapData;\n\n if (this.isCompressed) {\n cMapData = new Uint8Array(await response.arrayBuffer());\n } else {\n cMapData = (0, _util.stringToBytes)(await response.text());\n }\n\n return {\n cMapData,\n compressionType\n };\n });\n }\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (this.isCompressed) {\n request.responseType = \"arraybuffer\";\n }\n\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n let cMapData;\n\n if (this.isCompressed && request.response) {\n cMapData = new Uint8Array(request.response);\n } else if (!this.isCompressed && request.responseText) {\n cMapData = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (cMapData) {\n resolve({\n cMapData,\n compressionType\n });\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMSVGFactory {\n create(width, height) {\n (0, _util.assert)(width > 0 && height > 0, \"Invalid SVG dimensions\");\n const svg = document.createElementNS(SVG_NS, \"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n svg.setAttribute(\"width\", width + \"px\");\n svg.setAttribute(\"height\", height + \"px\");\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n return svg;\n }\n\n createElement(type) {\n (0, _util.assert)(typeof type === \"string\", \"Invalid SVG element type\");\n return document.createElementNS(SVG_NS, type);\n }\n\n}\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n\n}\n\nexports.PageViewport = PageViewport;\n\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, type) {\n super(msg);\n this.type = type;\n }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\nconst LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\n\nfunction addLinkAttributes(link, {\n url,\n target,\n rel,\n enabled = true\n} = {}) {\n (0, _util.assert)(url && typeof url === \"string\", 'addLinkAttributes: A valid \"url\" parameter must provided.');\n const urlNullRemoved = (0, _util.removeNullCharacters)(url);\n\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${urlNullRemoved}`;\n\n link.onclick = () => {\n return false;\n };\n }\n\n let targetStr = \"\";\n\n switch (target) {\n case LinkTarget.NONE:\n break;\n\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\nfunction 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\nclass StatTimer {\n constructor() {\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n\n toString() {\n const outBuf = [];\n let longest = 0;\n\n for (const time of this.times) {\n const name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n\n for (const time of this.times) {\n const duration = time.end - time.start;\n outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n }\n\n return outBuf.join(\"\");\n }\n\n}\n\nexports.StatTimer = StatTimer;\n\nfunction isFetchSupported() {\n return typeof fetch !== \"undefined\" && typeof Response !== \"undefined\" && \"body\" in Response.prototype && typeof ReadableStream !== \"undefined\";\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = resolve;\n\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || !(0, _util.isString)(input)) {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n const matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n\n}\n\nexports.PDFDateString = PDFDateString;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\nexports.isNum = isNum;\nexports.isString = isString;\nexports.isSameOrigin = isSameOrigin;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.removeNullCharacters = removeNullCharacters;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.unreachable = unreachable;\nexports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0;\n\n__w_pdfjs_require__(3);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n 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 errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\n\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = this.constructor.name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg);\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {}\n\nexports.AbortException = AbortException;\nconst NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined, \"Invalid argument for bytesToString\");\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n const length = str.length;\n const bytes = new Uint8Array(length);\n\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n }\n\n};\nexports.IsLittleEndianCached = IsLittleEndianCached;\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n }\n\n};\nexports.IsEvalSupportedCached = IsEvalSupportedCached;\nconst rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\nclass Util {\n static makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join(\"\");\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) * (a + d) - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n const result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n for (let i = 2; i < length; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i)));\n }\n } else {\n for (let i = 0; i < length; ++i) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n return str.replace(/([\\(\\)\\\\])/g, \"\\\\$1\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n return arr1.every(function (element, index) {\n return element === arr2[index];\n });\n}\n\nfunction getModificationDate(date = new Date(Date.now())) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), (date.getUTCDate() + 1).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\nconst createObjectURL = function createObjectURLClosure() {\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], {\n type: contentType\n });\n return URL.createObjectURL(blob);\n }\n\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\nexports.createObjectURL = createObjectURL;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\n;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _font_loader = __w_pdfjs_require__(6);\n\nvar _node_utils = __w_pdfjs_require__(7);\n\nvar _annotation_storage = __w_pdfjs_require__(8);\n\nvar _api_compatibility = __w_pdfjs_require__(9);\n\nvar _canvas = __w_pdfjs_require__(10);\n\nvar _worker_options = __w_pdfjs_require__(12);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(13);\n\nvar _metadata = __w_pdfjs_require__(14);\n\nvar _optional_content_config = __w_pdfjs_require__(16);\n\nvar _transport_stream = __w_pdfjs_require__(17);\n\nvar _webgl = __w_pdfjs_require__(18);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DefaultCanvasFactory = _is_node.isNodeJS ? _node_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;\nconst DefaultCMapReaderFactory = _is_node.isNodeJS ? _node_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;\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\") {\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 Uint8Array, string or a 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 if (key === \"url\" && typeof window !== \"undefined\") {\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === \"range\") {\n rangeTransport = source[key];\n continue;\n } else if (key === \"worker\") {\n worker = source[key];\n continue;\n } else if (key === \"data\" && !(source[key] instanceof Uint8Array)) {\n const pdfBytes = source[key];\n\n if (typeof pdfBytes === \"string\") {\n params[key] = (0, _util.stringToBytes)(pdfBytes);\n } else if (typeof pdfBytes === \"object\" && pdfBytes !== null && !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if ((0, _util.isArrayBuffer)(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error(\"Invalid PDF binary data: either typed array, \" + \"string or array-like object is expected in the \" + \"data property.\");\n }\n\n continue;\n }\n\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.ownerDocument === \"undefined\") {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n const docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\n\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed\"));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n }\n\n return worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion: '2.6.347',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties\n }).then(function (workerId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n });\n}\n\nconst PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = \"d\" + nextDocumentId++;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n destroy() {\n this.destroyed = true;\n const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n });\n }\n\n }\n\n return PDFDocumentLoadingTask;\n}();\n\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n\n}\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n get fingerprint() {\n return this._pdfInfo.fingerprint;\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 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 getData() {\n return this._transport.getData();\n }\n\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n getStats() {\n return this._transport.getStats();\n }\n\n cleanup() {\n return this._transport.startCleanup();\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(annotationStorage) {\n return this._transport.saveDocument(annotationStorage);\n }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n get ref() {\n return this._pageInfo.ref;\n }\n\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n get view() {\n return this._pageInfo.view;\n }\n\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n getAnnotations({\n intent = null\n } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);\n this.annotationsIntent = intent;\n }\n\n return this.annotationsPromise;\n }\n\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n enableWebGL = false,\n renderInteractiveForms = false,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n annotationStorage = null,\n optionalContentConfigPromise = null\n }) {\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const renderingIntent = intent === \"print\" ? \"print\" : \"display\";\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(renderingIntent);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(renderingIntent, intentState);\n }\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n ownerDocument: this._ownerDocument\n });\n const webGLContext = new _webgl.WebGLContext({\n enable: enableWebGL\n });\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true,\n annotationStorage: annotationStorage && annotationStorage.getAll() || null\n });\n }\n\n const complete = error => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n if (this.cleanupAfterRender || renderingIntent === \"print\") {\n this.pendingCleanup = true;\n }\n\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n webGLContext,\n useRequestAnimationFrame: renderingIntent !== \"print\",\n pdfBug: this._pdfBug\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n\n intentState.renderTasks.push(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n const i = intentState.renderTasks.indexOf(opListTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = \"oplist\";\n\n let intentState = this._intentStates.get(renderingIntent);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(renderingIntent, intentState);\n }\n\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent\n });\n }\n\n return intentState.opListReadCapability.promise;\n }\n\n streamTextContent({\n normalizeWhitespace = false,\n disableCombineTextItems = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n\n size(textContent) {\n return textContent.items.length;\n }\n\n });\n }\n\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this._pageIndex] = null;\n const waitOn = [];\n\n for (const [intent, intentState] of this._intentStates) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intent === \"oplist\") {\n continue;\n }\n\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n\n this.objs.clear();\n this.annotationsPromise = null;\n this.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.length !== 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n\n this.objs.clear();\n this.annotationsPromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n this.pendingCleanup = false;\n return true;\n }\n\n _startRenderPage(transparency, intent) {\n const intentState = this._intentStates.get(intent);\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n _pumpOperatorList(args) {\n (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.');\n\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", args);\n\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(args.intent);\n\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (this._transport.destroyed) {\n return;\n }\n\n this._renderPageChunk(value, intentState);\n\n pump();\n }, reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n\n pump();\n }\n\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n (0, _util.assert)(reason instanceof Error || typeof reason === \"object\" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.');\n\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.length !== 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 && reason.message));\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n for (const [intent, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(intent);\n\n break;\n }\n }\n\n this.cleanup();\n }\n\n get stats() {\n return this._stats;\n }\n\n}\n\nexports.PDFPageProxy = PDFPageProxy;\n\nclass LoopbackPort {\n constructor(defer = true) {\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n\n let buffer, result;\n\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n const transferable = transfers && transfers.includes(buffer);\n\n if (transferable) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n\n cloned.set(value, result);\n return result;\n }\n\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result);\n\n for (const i in value) {\n let desc,\n p = value;\n\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n\n if (typeof desc.value === \"function\") {\n if (value.hasOwnProperty && value.hasOwnProperty(i)) {\n throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`);\n }\n\n continue;\n }\n\n result[i] = cloneValue(desc.value);\n }\n\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(listener => {\n listener.call(this, {\n data: obj\n });\n });\n\n return;\n }\n\n const cloned = new WeakMap();\n const e = {\n data: cloneValue(obj)\n };\n\n this._deferred.then(() => {\n this._listeners.forEach(listener => {\n listener.call(this, e);\n });\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n\n}\n\nexports.LoopbackPort = LoopbackPort;\n\nconst PDFWorker = function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let isWorkerDisabled = false;\n let fallbackWorkerSrc;\n let nextFakeWorkerId = 0;\n let fakeWorkerCapability;\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n isWorkerDisabled = true;\n fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\" && \"currentScript\" in document) {\n const pdfjsFilePath = document.currentScript && document.currentScript.src;\n\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n function getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (typeof fallbackWorkerSrc !== \"undefined\") {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n let mainWorkerMessageHandler;\n\n try {\n mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;\n } catch (ex) {}\n\n return mainWorkerMessageHandler || null;\n }\n\n function setupFakeWorkerGlobal() {\n if (fakeWorkerCapability) {\n return fakeWorkerCapability.promise;\n }\n\n fakeWorkerCapability = (0, _util.createPromiseCapability)();\n\n const loader = async function () {\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(getWorkerSrc());\n return worker.WorkerMessageHandler;\n }\n\n await (0, _display_utils.loadScript)(getWorkerSrc());\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);\n return fakeWorkerCapability.promise;\n }\n\n function createCDNWrapper(url) {\n const wrapper = \"importScripts('\" + url + \"');\";\n return URL.createObjectURL(new Blob([wrapper]));\n }\n\n class PDFWorker {\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n if (port && pdfWorkerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.postMessageTransfers = true;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n get promise() {\n return this._readyCapability.promise;\n }\n\n get port() {\n return this._port;\n }\n\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n\n _initialize() {\n if (typeof Worker !== \"undefined\" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n let workerSrc = getWorkerSrc();\n\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n if (!data.supportTransfers) {\n this.postMessageTransfers = false;\n }\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);\n\n try {\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.warn)(\"Cannot use postMessage transfers.\");\n testObj[0] = 0;\n messageHandler.send(\"test\", testObj);\n }\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n isWorkerDisabled = true;\n }\n\n setupFakeWorkerGlobal().then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n const port = new LoopbackPort();\n this._port = port;\n const id = \"fake\" + nextFakeWorkerId++;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n\n static fromPort(params) {\n if (!params || !params.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n\n static getWorkerSrc() {\n return getWorkerSrc();\n }\n\n }\n\n return PDFWorker;\n}();\n\nexports.PDFWorker = PDFWorker;\n\nclass WorkerTransport {\n constructor(messageHandler, loadingTask, networkStream, params) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument\n });\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n 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 this.pageCache.forEach(function (page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache.length = 0;\n this.pagePromises.length = 0;\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.fontLoader.clear();\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = (0, _util.createPromiseCapability)();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(this._lastProgress);\n }\n\n fullReader.onProgress = evt => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n }\n\n if (!(reason instanceof Error)) {\n const msg = \"DocException - expected a valid Error.\";\n (0, _util.warn)(msg);\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n this._passwordCapability.resolve({\n password\n });\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length\n });\n }\n\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n\n const page = this.pageCache[data.pageIndex];\n\n page._startRenderPage(data.transparency, data.intent);\n });\n messageHandler.on(\"commonobj\", data => {\n if (this.destroyed) {\n return;\n }\n\n const [id, type, exportedData] = data;\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n\n if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n\n };\n }\n\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n\n this.commonObjs.resolve(id, font);\n });\n break;\n\n case \"FontPath\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", data => {\n if (this.destroyed) {\n return undefined;\n }\n\n const [id, pageIndex, type, imageData] = data;\n const pageProxy = this.pageCache[pageIndex];\n\n if (pageProxy.objs.has(id)) {\n return undefined;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData && \"data\" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n\n break;\n\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n\n return undefined;\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total\n });\n }\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", (data, sink) => {\n if (this.destroyed) {\n sink.error(new Error(\"Worker was destroyed\"));\n return;\n }\n\n let fetched = false;\n\n sink.onPull = () => {\n if (fetched) {\n sink.close();\n return;\n }\n\n fetched = true;\n this.CMapReaderFactory.fetch(data).then(function (builtInCMap) {\n sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);\n }).catch(function (reason) {\n sink.error(reason);\n });\n };\n });\n }\n\n _onUnsupportedFeature({\n featureId\n }) {\n if (this.destroyed) {\n return;\n }\n\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\n }\n\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request\"));\n }\n\n const pageIndex = pageNumber - 1;\n\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug);\n this.pageCache[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n\n getPageIndex(ref) {\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n ref\n }).catch(function (reason) {\n return Promise.reject(new Error(reason));\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n\n saveDocument(annotationStorage) {\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n numPages: this._numPages,\n annotationStorage: annotationStorage && annotationStorage.getAll() || null,\n filename: this._fullReader ? this._fullReader.filename : null\n }).finally(() => {\n if (annotationStorage) {\n annotationStorage.resetModified();\n }\n });\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 getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader ? this._fullReader.filename : null\n };\n });\n }\n\n getStats() {\n return this.messageHandler.sendWithPromise(\"GetStats\", null);\n }\n\n startCleanup() {\n return this.messageHandler.sendWithPromise(\"Cleanup\", null).then(() => {\n for (let i = 0, ii = this.pageCache.length; i < ii; i++) {\n const page = this.pageCache[i];\n\n if (page) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`);\n }\n }\n }\n\n this.commonObjs.clear();\n this.fontLoader.clear();\n });\n }\n\n get loadingParams() {\n const params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n disableFontFace: params.disableFontFace\n });\n }\n\n}\n\nclass PDFObjects {\n constructor() {\n this._objs = Object.create(null);\n }\n\n _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n\n return this._objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n }\n\n get(objId, callback = null) {\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n\n return null;\n }\n\n const obj = this._objs[objId];\n\n if (!obj || !obj.resolved) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n\n return obj.data;\n }\n\n has(objId) {\n const obj = this._objs[objId];\n return obj ? obj.resolved : false;\n }\n\n resolve(objId, data) {\n const obj = this._ensureObj(objId);\n\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n }\n\n clear() {\n this._objs = Object.create(null);\n }\n\n}\n\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n cancel() {\n this._internalRenderTask.cancel();\n }\n\n}\n\nconst InternalRenderTask = function InternalRenderTaskClosure() {\n const canvasInRendering = new WeakSet();\n\n class InternalRenderTask {\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n operatorList,\n pageIndex,\n canvasFactory,\n webGLContext,\n useRequestAnimationFrame = false,\n pdfBug = false\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this._pdfBug = pdfBug;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n canvasInRendering.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager && 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, this.webGLContext, imageLayer, optionalContentConfig);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\"));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n }\n\n _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this.cancel.bind(this));\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback();\n }\n }\n }\n\n }\n\n return InternalRenderTask;\n}();\n\nconst version = '2.6.347';\nexports.version = version;\nconst build = '3be9c65f';\nexports.build = build;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature,\n ownerDocument = globalThis.document\n }) {\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n\n this._document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n\n this._document.documentElement.getElementsByTagName(\"head\")[0].appendChild(styleElement);\n }\n\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n this.nativeFontFaces.forEach(nativeFontFace => {\n this._document.fonts.delete(nativeFontFace);\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 supported = typeof this._document !== \"undefined\" && !!this._document.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", supported);\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 && 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 (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].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 (i = 0, ii = names.length; i < ii; ++i) {\n const span = this._document.createElement(\"span\");\n\n span.textContent = \"Hi\";\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n\n this._document.body.appendChild(div);\n\n isFontReady(loadTestFontId, () => {\n this._document.body.removeChild(div);\n\n request.complete();\n });\n }\n\n };\n}\n\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature = null,\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 const nativeFontFace = new FontFace(this.loadedName, this.data, {});\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)(new Uint8Array(this.data));\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\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, current;\n\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n }\n\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {\n let args,\n js = \"\";\n\n for (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.args !== undefined) {\n args = current.args.join(\",\");\n } else {\n args = \"\";\n }\n\n js += \"c.\" + current.cmd + \"(\" + args + \");\\n\";\n }\n\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", js);\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (let i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n\n}\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NodeCMapReaderFactory = exports.NodeCanvasFactory = void 0;\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _util = __w_pdfjs_require__(2);\n\nlet NodeCanvasFactory = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: NodeCanvasFactory\");\n }\n\n};\nexports.NodeCanvasFactory = NodeCanvasFactory;\nlet NodeCMapReaderFactory = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: NodeCMapReaderFactory\");\n }\n\n};\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nif (_is_node.isNodeJS) {\n exports.NodeCanvasFactory = NodeCanvasFactory = class extends _display_utils.BaseCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const Canvas = require(\"canvas\");\n\n const canvas = Canvas.createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n\n };\n exports.NodeCMapReaderFactory = NodeCMapReaderFactory = class extends _display_utils.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n\n resolve({\n cMapData: new Uint8Array(data),\n compressionType\n });\n });\n });\n }\n\n };\n}\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationStorage = void 0;\n\nclass AnnotationStorage {\n constructor() {\n this._storage = new Map();\n this._modified = false;\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n getOrCreateValue(key, defaultValue) {\n if (this._storage.has(key)) {\n return this._storage.get(key);\n }\n\n this._storage.set(key, defaultValue);\n\n return defaultValue;\n }\n\n setValue(key, value) {\n if (this._storage.get(key) !== value) {\n this._setModified();\n }\n\n this._storage.set(key, value);\n }\n\n getAll() {\n if (this._storage.size === 0) {\n return null;\n }\n\n return Object.fromEntries(this._storage);\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}\n\nexports.AnnotationStorage = AnnotationStorage;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.apiCompatibilityParams = void 0;\n\nvar _is_node = __w_pdfjs_require__(4);\n\nconst compatibilityParams = Object.create(null);\n{\n (function checkFontFace() {\n if (_is_node.isNodeJS) {\n compatibilityParams.disableFontFace = true;\n }\n })();\n}\nconst apiCompatibilityParams = Object.freeze(compatibilityParams);\nexports.apiCompatibilityParams = apiCompatibilityParams;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CanvasGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _pattern_helper = __w_pdfjs_require__(11);\n\nvar MIN_FONT_SIZE = 16;\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\nvar MIN_WIDTH_FACTOR = 0.65;\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\nvar FULL_CHUNK_HEIGHT = 16;\n\nfunction addContextCurrentTransform(ctx) {\n if (!ctx.mozCurrentTransform) {\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._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n var m = this._transformMatrix;\n var a = m[0],\n b = m[1],\n c = m[2],\n d = m[3],\n e = m[4],\n f = m[5];\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n var m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n var m = this._transformMatrix;\n m[0] = m[0] * x;\n m[1] = m[1] * x;\n m[2] = m[2] * y;\n m[3] = m[3] * y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.rotate = function ctxRotate(angle) {\n var cosValue = Math.cos(angle);\n var sinValue = Math.sin(angle);\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n\n this._originalRotate(angle);\n };\n }\n}\n\nvar CachedCanvases = function CachedCanvasesClosure() {\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n },\n\n clear() {\n for (var id in this.cache) {\n var canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n\n };\n return CachedCanvases;\n}();\n\nfunction compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n var width = imgData.width,\n height = imgData.height;\n var i,\n j,\n j0,\n width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n var lineSize = width + 7 & ~7,\n data0 = imgData.data;\n var data = new Uint8Array(lineSize * height),\n pos = 0,\n ii;\n\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128,\n elem = data0[i];\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n var 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 var 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 var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n var coords = [p % width1, i];\n var type = points[p],\n p0 = p,\n pp;\n\n do {\n var step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n coords.push(p % width1);\n coords.push(p / width1 | 0);\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n\n for (let k = 0, kk = outlines.length; k < kk; k++) {\n var o = outlines[k];\n c.moveTo(o[0], o[1]);\n\n for (let l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nvar CanvasExtraState = function CanvasExtraStateClosure() {\n function CanvasExtraState() {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null;\n this.transferMaps = null;\n }\n\n CanvasExtraState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return CanvasExtraState;\n}();\n\nvar CanvasGraphics = function CanvasGraphicsClosure() {\n var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer, optionalContentConfig) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState();\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedGetSinglePixelWidth = null;\n }\n\n function putBinaryImageData(ctx, imgData, transferMaps = null) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0,\n destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var 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 var srcLength = src.byteLength;\n var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n var dest32DataLength = dest32.length;\n var fullSrcDiff = width + 7 >> 3;\n var white = 0xffffffff;\n var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n let k = 0;\n var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n }\n\n function putBinaryImageMask(ctx, imgData) {\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0;\n var src = imgData.data;\n var dest = chunkImgData.data;\n\n for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n\n function copyCtxState(sourceCtx, destCtx) {\n var properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n }\n\n function resetCtxToDefault(ctx) {\n ctx.strokeStyle = \"#000000\";\n ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n\n for (var i = 3; i < length; i += 4) {\n var 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 var alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n }\n\n function composeSMaskAlpha(maskData, layerData, transferMap) {\n var length = maskData.length;\n var scale = 1 / 255;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n }\n\n function composeSMaskLuminosity(maskData, layerData, transferMap) {\n var length = maskData.length;\n\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {\n var hasBackdrop = !!backdrop;\n var r0 = hasBackdrop ? backdrop[0] : 0;\n var g0 = hasBackdrop ? backdrop[1] : 0;\n var b0 = hasBackdrop ? backdrop[2] : 0;\n var composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n\n function composeSMask(ctx, smask, layerCtx, webGLContext) {\n var mask = smask.canvas;\n var maskCtx = smask.context;\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);\n var backdrop = smask.backdrop || null;\n\n if (!smask.transferMap && webGLContext.isEnabled) {\n const composed = webGLContext.composeSMask({\n layer: layerCtx.canvas,\n mask,\n properties: {\n subtype: smask.subtype,\n backdrop\n }\n });\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n return;\n }\n\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\n }\n\n var LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n var LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n var NORMAL_CLIP = {};\n var EO_CLIP = {};\n CanvasGraphics.prototype = {\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\n this.ctx.save();\n this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n var transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n\n executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n var commonObjs = this.commonObjs;\n var objs = this.objs;\n var 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 endDrawing: function CanvasGraphics_endDrawing() {\n if (this.current.activeSMask !== null) {\n this.endSMaskGroup();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.webGLContext.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n },\n setLineWidth: function CanvasGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n },\n setLineCap: function CanvasGraphics_setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function CanvasGraphics_setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n },\n setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n var 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: function CanvasGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n if (this.current.activeSMask) {\n if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n\n this.current.activeSMask = value ? this.tempSMask : null;\n\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n\n this.tempSMask = null;\n break;\n\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n var activeSMask = this.current.activeSMask;\n var drawnWidth = activeSMask.canvas.width;\n var drawnHeight = activeSMask.canvas.height;\n var cacheId = \"smaskGroupAt\" + this.groupLevel;\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n this.ctx.save();\n copyCtxState(groupCtx, this.ctx);\n this.current.resumeSMaskCtx = groupCtx;\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n groupCtx.restore();\n },\n resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.current.resumeSMaskCtx;\n var currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n var old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n },\n restore: function CanvasGraphics_restore() {\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {\n this.endSMaskGroup();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.pendingClip = null;\n this._cachedGetSinglePixelWidth = null;\n }\n },\n transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedGetSinglePixelWidth = null;\n },\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x,\n y = current.y;\n\n for (var 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 var width = args[j++];\n var height = args[j++];\n\n if (width === 0 && ctx.lineWidth < this.getSinglePixelWidth()) {\n width = this.getSinglePixelWidth();\n }\n\n if (height === 0 && ctx.lineWidth < this.getSinglePixelWidth()) {\n height = this.getSinglePixelWidth();\n }\n\n var xw = x + width;\n var yh = y + height;\n ctx.moveTo(x, y);\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n ctx.lineTo(x, y);\n ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n current.setCurrentPoint(x, y);\n },\n closePath: function CanvasGraphics_closePath() {\n this.ctx.closePath();\n },\n stroke: function CanvasGraphics_stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (this.contentVisible) {\n if (strokeColor && strokeColor.hasOwnProperty(\"type\") && strokeColor.type === \"Pattern\") {\n ctx.save();\n const transform = ctx.mozCurrentTransform;\n\n const scale = _util.Util.singularValueDecompose2dScale(transform)[0];\n\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth * scale);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);\n ctx.stroke();\n }\n }\n\n if (consumePath) {\n this.consumePath();\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n },\n closeStroke: function CanvasGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n fill: function CanvasGraphics_fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n\n if (this.contentVisible) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n },\n eoFill: function CanvasGraphics_eoFill() {\n this.pendingEOFill = true;\n this.fill();\n },\n fillStroke: function CanvasGraphics_fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n },\n eoFillStroke: function CanvasGraphics_eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n },\n closeFillStroke: function CanvasGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n },\n endPath: function CanvasGraphics_endPath() {\n this.consumePath();\n },\n clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n beginText: function CanvasGraphics_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 endText: function CanvasGraphics_endText() {\n var paths = this.pendingTextPaths;\n var ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (var i = 0; i < paths.length; i++) {\n var path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n },\n setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n },\n setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n },\n setHScale: function CanvasGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setLeading: function CanvasGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setFont: function CanvasGraphics_setFont(fontRefName, size) {\n var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n\n current.fontMatrix = fontObj.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 var 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 var italic = fontObj.italic ? \"italic\" : \"normal\";\n var 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 setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n },\n setTextRise: function CanvasGraphics_setTextRise(rise) {\n this.current.textRise = rise;\n },\n moveText: function CanvasGraphics_moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n },\n setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n nextLine: function CanvasGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n\n paintChar(character, x, y, patternTransform) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var textRenderingMode = current.textRenderingMode;\n var fontSize = current.fontSize / current.fontSizeScale;\n var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n var addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n 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 var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x,\n y,\n fontSize,\n addToPath\n });\n }\n },\n\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n\n for (var 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: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n var ctx = this.ctx;\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n let patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n var lineWidth = current.lineWidth;\n var scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\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 var x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX, scaledY, scaledAccentX, scaledAccentY;\n var width = glyph.width;\n\n if (vertical) {\n var vmetric, vx, vy;\n vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n 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 var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var 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 scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n\n var 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 },\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n var fontDirection = current.fontDirection;\n var spacingDir = font.vertical ? 1 : -1;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var textHScale = current.textHScale * fontDirection;\n var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n var 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 setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var pattern;\n\n if (IR[0] === \"TilingPattern\") {\n var color = IR[1];\n var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);\n }\n\n return pattern;\n },\n setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n },\n setFillColorN: function CanvasGraphics_setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n },\n setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n this.save();\n var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n var inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n },\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n },\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.clip();\n this.endPath();\n }\n },\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n var 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 var currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n var 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 var cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n this.current.activeSMask = null;\n },\n endGroup: function CanvasGraphics_endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n\n this.restore();\n },\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n\n if (Array.isArray(rect) && rect.length === 4) {\n var width = rect[2] - rect[0];\n var height = rect[3] - rect[1];\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n },\n endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({\n data: img.data,\n width,\n height\n });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph && glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n\n paintImageMaskXObjectRepeat(imgData, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, imgData);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n var ctx = this.ctx;\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width,\n height = image.height;\n var maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n\n for (var 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 paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0],\n b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2],\n d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n var imgToPaint, tmpCanvas;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = \"prescale1\";\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3]\n });\n }\n\n this.restore();\n },\n paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n var tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n for (var i = 0, ii = map.length; i < ii; i++) {\n var entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n },\n paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n\n this.ctx.fillRect(0, 0, 1, 1);\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n },\n beginMarkedContentProps: function CanvasGraphics_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 endMarkedContent: function CanvasGraphics_endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n },\n beginCompat: function CanvasGraphics_beginCompat() {},\n endCompat: function CanvasGraphics_endCompat() {},\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n\n this.pendingClip = null;\n }\n\n ctx.beginPath();\n },\n\n getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n const inverse = this.ctx.mozCurrentTransformInverse;\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));\n }\n\n return this._cachedGetSinglePixelWidth;\n },\n\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n },\n isContentVisible: function CanvasGraphics_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 for (var op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n}();\n\nexports.CanvasGraphics = CanvasGraphics;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getShadingPatternFromIR = getShadingPatternFromIR;\nexports.TilingPattern = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar ShadingIRs = {};\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || typeof Path2D === \"undefined\") {\n return;\n }\n\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n var type = raw[1];\n var bbox = raw[2];\n var colorStops = raw[3];\n var p0 = raw[4];\n var p1 = raw[5];\n var r0 = raw[6];\n var r1 = raw[7];\n return {\n type: \"Pattern\",\n getPattern: function RadialAxial_getPattern(ctx) {\n applyBoundingBox(ctx, bbox);\n var grad;\n\n if (type === \"axial\") {\n grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n } else if (type === \"radial\") {\n grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n }\n\n for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n var c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n\n return grad;\n }\n };\n }\n};\n\nvar createMeshCanvas = function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n var coords = context.coords,\n colors = context.colors;\n var bytes = data.data,\n rowSize = data.width * 4;\n var 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 var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n var c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n var c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n var c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n var minY = Math.round(y1),\n maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y1 === y2) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n\n for (var 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\n function drawFigure(data, figure, context) {\n var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n\n for (var 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\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {\n var EXPECTED_SCALE = 1.1;\n var MAX_PATTERN_SIZE = 3000;\n var BORDER_SIZE = 2;\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n var context = {\n coords,\n colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n var canvas, tmpCanvas, i, ii;\n\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context\n });\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n var tmpCtx = tmpCanvas.context;\n var data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n var bytes = data.data;\n\n for (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 (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n\n return createMeshCanvas;\n}();\n\nShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n var coords = raw[2];\n var colors = raw[3];\n var figures = raw[4];\n var bounds = raw[5];\n var matrix = raw[6];\n var bbox = raw[7];\n var background = raw[8];\n return {\n type: \"Pattern\",\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n applyBoundingBox(ctx, bbox);\n var scale;\n\n if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (matrix) {\n ctx.transform.apply(ctx, 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};\nShadingIRs.Dummy = {\n fromIR: function Dummy_fromIR() {\n return {\n type: \"Pattern\",\n getPattern: function Dummy_fromIR_getPattern() {\n return \"hotpink\";\n }\n };\n }\n};\n\nfunction getShadingPatternFromIR(raw) {\n var shadingIR = ShadingIRs[raw[0]];\n\n if (!shadingIR) {\n throw new Error(`Unknown IR type: ${raw[0]}`);\n }\n\n return shadingIR.fromIR(raw);\n}\n\nvar TilingPattern = function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n };\n var MAX_PATTERN_SIZE = 3000;\n\n function TilingPattern(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.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n this.type = \"Pattern\";\n this.ctx = ctx;\n }\n\n TilingPattern.prototype = {\n createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n var operatorList = this.operatorList;\n var bbox = this.bbox;\n var xstep = this.xstep;\n var ystep = this.ystep;\n var paintType = this.paintType;\n var tilingType = this.tilingType;\n var color = this.color;\n var canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n var x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n var tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n graphics.transform(1, 0, 0, 1, -x0, -y0);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.executeOperatorList(operatorList);\n this.ctx.transform(1, 0, 0, 1, x0, y0);\n this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);\n return tmpCanvas.canvas;\n },\n getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);\n var 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 clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\n var bboxWidth = x1 - x0;\n var bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n },\n setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n var 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 var cssColor = _util.Util.makeCssRgb(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 getPattern: function TilingPattern_getPattern(ctx, owner) {\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n return ctx.createPattern(temporaryPatternCanvas, \"repeat\");\n }\n };\n return TilingPattern;\n}();\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n if (typeof reason !== \"object\" || reason === null) {\n return reason;\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.postMessageTransfers = true;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this._postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\n\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++;\n const sourceName = this.sourceName;\n const targetName = this.targetName;\n const comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n\n this._postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n\n _createStreamSink(data) {\n const self = this;\n const action = this.actionHandler[data.action];\n const streamId = data.streamId;\n const sourceName = this.sourceName;\n const targetName = data.sourceName;\n const comObj = this.comObj;\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n self._postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n\n sinkCapability: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n\n _processStreamMessage(data) {\n const streamId = data.streamId;\n const sourceName = this.sourceName;\n const targetName = data.sourceName;\n const comObj = this.comObj;\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].startCall.resolve();\n } else {\n this.streamControllers[streamId].startCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].pullCall.resolve();\n } else {\n this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\n if (!this.streamSinks[streamId]) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n\n if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[streamId].desiredSize = data.desiredSize;\n const {\n onPull\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onPull && onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(this.streamControllers[streamId], \"enqueue should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(this.streamControllers[streamId], \"close should have stream controller\");\n\n if (this.streamControllers[streamId].isClosed) {\n break;\n }\n\n this.streamControllers[streamId].isClosed = true;\n this.streamControllers[streamId].controller.close();\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(this.streamControllers[streamId], \"error should have stream controller\");\n this.streamControllers[streamId].controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n this.streamControllers[streamId].cancelCall.resolve();\n } else {\n this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!this.streamSinks[streamId]) {\n break;\n }\n\n const {\n onCancel\n } = this.streamSinks[data.streamId];\n new Promise(function (resolve) {\n resolve(onCancel && onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[streamId].isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamId) {\n await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) {\n return capability && capability.promise;\n }));\n delete this.streamControllers[streamId];\n }\n\n _postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _xml_parser = __w_pdfjs_require__(15);\n\nclass Metadata {\n constructor(data) {\n (0, _util.assert)(typeof data === \"string\", \"Metadata: input is not a string\");\n data = this._repair(data);\n const parser = new _xml_parser.SimpleXMLParser();\n const xmlDocument = parser.parseFromString(data);\n this._metadataMap = new Map();\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n return data.replace(/^[^<]+/, \"\").replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n\n case \"apos\":\n return \"'\";\n\n case \"gt\":\n return \">\";\n\n case \"lt\":\n return \"<\";\n\n case \"quot\":\n return '\"';\n }\n\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n let chars = \"\";\n\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\n chars += String.fromCharCode(code);\n } else {\n chars += \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\";\n }\n }\n\n return \">\" + chars;\n });\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.firstChild;\n\n while (rdf && rdf.nodeName.toLowerCase() !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n const nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n\n if (!rdf || nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n const children = rdf.childNodes;\n\n for (let i = 0, ii = children.length; i < ii; i++) {\n const desc = children[i];\n\n if (desc.nodeName.toLowerCase() !== \"rdf:description\") {\n continue;\n }\n\n for (let j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== \"#text\") {\n const entry = desc.childNodes[j];\n const name = entry.nodeName.toLowerCase();\n\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n }\n\n get(name) {\n return this._metadataMap.has(name) ? this._metadataMap.get(name) : null;\n }\n\n getAll() {\n return Object.fromEntries(this._metadataMap);\n }\n\n has(name) {\n return this._metadataMap.has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleXMLParser = void 0;\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCharCode(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCharCode(parseInt(entity.substring(1), 10));\n }\n\n switch (entity) {\n case \"lt\":\n return \"<\";\n\n case \"gt\":\n return \">\";\n\n case \"amp\":\n return \"&\";\n\n case \"quot\":\n return '\"';\n }\n\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n const attributes = [];\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n const name = s.substring(start, pos);\n skipWs();\n\n while (pos < s.length && s[pos] !== \">\" && s[pos] !== \"/\" && s[pos] !== \"?\") {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n\n skipWs();\n\n if (s[pos] !== \"=\") {\n return null;\n }\n\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n\n if (attrEndIndex < 0) {\n return null;\n }\n\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue)\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n\n return {\n name,\n attributes,\n parsed: pos - start\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n ++pos;\n }\n\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n\n const value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start\n };\n }\n\n parseXml(s) {\n let i = 0;\n\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n\n case \"?\":\n ++j;\n\n const pi = this._parseProcessingInstruction(s, j);\n\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n const q2 = s.indexOf(\"[\", j + 8);\n let complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n complexDoctype = true;\n }\n\n const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n break;\n\n default:\n const content = this._parseContent(s, j);\n\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n let isClosed = false;\n\n if (s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\") {\n isClosed = true;\n } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== \">\") {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) {}\n\n onComment(text) {}\n\n onCdata(text) {}\n\n onDoctype(doctypeContent) {}\n\n onText(text) {}\n\n onBeginElement(name, attributes, isEmpty) {}\n\n onEndElement(name) {}\n\n onError(code) {}\n\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n Object.defineProperty(this, \"parentNode\", {\n value: null,\n writable: true\n });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n\n if (!childNodes) {\n return undefined;\n }\n\n const index = childNodes.indexOf(this);\n\n if (index === -1) {\n return undefined;\n }\n\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n\n return this.childNodes.map(function (child) {\n return child.textContent;\n }).join(\"\");\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor() {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n const [documentElement] = this._currentFragment;\n\n if (!documentElement) {\n return undefined;\n }\n\n return {\n documentElement\n };\n }\n\n onResolveEntity(name) {\n switch (name) {\n case \"apos\":\n return \"'\";\n }\n\n return super.onResolveEntity(name);\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n\n const node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n\n this._currentFragment.push(node);\n\n if (isEmpty) {\n return;\n }\n\n this._stack.push(this._currentFragment);\n\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment[this._currentFragment.length - 1];\n\n if (!lastElement) {\n return;\n }\n\n for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n }\n\n onError(code) {\n this._errorCode = code;\n }\n\n}\n\nexports.SimpleXMLParser = SimpleXMLParser;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OptionalContentConfig = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass OptionalContentGroup {\n constructor(name, intent) {\n this.visible = true;\n this.name = name;\n this.intent = intent;\n }\n\n}\n\nclass OptionalContentConfig {\n constructor(data) {\n this.name = null;\n this.creator = null;\n this._order = null;\n this._groups = new Map();\n\n if (data === null) {\n return;\n }\n\n this.name = data.name;\n this.creator = data.creator;\n this._order = data.order;\n\n for (const group of data.groups) {\n this._groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n\n if (data.baseState === \"OFF\") {\n for (const group of this._groups) {\n group.visible = false;\n }\n }\n\n for (const on of data.on) {\n this._groups.get(on).visible = true;\n }\n\n for (const off of data.off) {\n this._groups.get(off).visible = false;\n }\n }\n\n isVisible(group) {\n if (group.type === \"OCG\") {\n if (!this._groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n\n return this._groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n (0, _util.warn)(\"Visibility expression not supported yet.\");\n }\n\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this._groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this._groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n }\n\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n\n setVisibility(id, visible = true) {\n if (!this._groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n\n this._groups.get(id).visible = !!visible;\n }\n\n getOrder() {\n if (!this._groups.size) {\n return null;\n }\n\n if (this._order) {\n return this._order.slice();\n }\n\n return Array.from(this._groups.keys());\n }\n\n getGroups() {\n if (!this._groups.size) {\n return null;\n }\n\n return Object.fromEntries(this._groups);\n }\n\n getGroup(id) {\n return this._groups.get(id) || null;\n }\n\n}\n\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDataTransportStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\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 const initialData = params.initialData;\n\n if (initialData && 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 ? this._fullRequestReader._loaded : 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n const firstReader = this._rangeReaders[0];\n\n if (firstReader && firstReader.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n const fullReader = this._fullRequestReader;\n\n if (fullReader && 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);\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 const readers = this._rangeReaders.slice(0);\n\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n\n this._pdfDataRangeTransport.abort();\n }\n\n}\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = 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 this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\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 this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\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 this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._stream._removeRangeReader(this);\n }\n\n}\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebGLContext = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass WebGLContext {\n constructor({\n enable = false\n }) {\n this._enabled = enable === true;\n }\n\n get isEnabled() {\n let enabled = this._enabled;\n\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n\n return (0, _util.shadow)(this, \"isEnabled\", enabled);\n }\n\n composeSMask({\n layer,\n mask,\n properties\n }) {\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n\n drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context\n }) {\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);\n }\n\n clear() {\n WebGLUtils.cleanup();\n }\n\n}\n\nexports.WebGLContext = WebGLContext;\n\nvar WebGLUtils = function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n var shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error(\"Error during shader compilation: \" + errorMsg);\n }\n\n return shader;\n }\n\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error(\"Error during program linking: \" + errorMsg);\n }\n\n return program;\n }\n\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n\n var currentGL, currentCanvas;\n\n function generateGL() {\n if (currentGL) {\n return;\n }\n\n currentCanvas = document.createElement(\"canvas\");\n currentGL = currentCanvas.getContext(\"webgl\", {\n premultipliedalpha: false\n });\n }\n\n var smaskVertexShaderCode = \"\\\n attribute vec2 a_position; \\\n attribute vec2 a_texCoord; \\\n \\\n uniform vec2 u_resolution; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_texCoord = a_texCoord; \\\n } \";\n var smaskFragmentShaderCode = \"\\\n precision mediump float; \\\n \\\n uniform vec4 u_backdrop; \\\n uniform int u_subtype; \\\n uniform sampler2D u_image; \\\n uniform sampler2D u_mask; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec4 imageColor = texture2D(u_image, v_texCoord); \\\n vec4 maskColor = texture2D(u_mask, v_texCoord); \\\n if (u_backdrop.a > 0.0) { \\\n maskColor.rgb = maskColor.rgb * maskColor.a + \\\n u_backdrop.rgb * (1.0 - maskColor.a); \\\n } \\\n float lum; \\\n if (u_subtype == 0) { \\\n lum = maskColor.a; \\\n } else { \\\n lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \\\n maskColor.b * 0.11; \\\n } \\\n imageColor.a *= lum; \\\n imageColor.rgb *= imageColor.a; \\\n gl_FragColor = imageColor; \\\n } \";\n var smaskCache = null;\n\n function initSmaskGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.backdropLocation = gl.getUniformLocation(program, \"u_backdrop\");\n cache.subtypeLocation = gl.getUniformLocation(program, \"u_subtype\");\n var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n var texLayerLocation = gl.getUniformLocation(program, \"u_image\");\n var texMaskLocation = gl.getUniformLocation(program, \"u_mask\");\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n var width = layer.width,\n height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n\n var cache = smaskCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n\n if (properties.backdrop) {\n gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n\n gl.uniform1i(cache.subtypeLocation, properties.subtype === \"Luminosity\" ? 1 : 0);\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n gl.clearColor(0, 0, 0, 0);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n gl.flush();\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n return canvas;\n }\n\n var figuresVertexShaderCode = \"\\\n attribute vec2 a_position; \\\n attribute vec3 a_color; \\\n \\\n uniform vec2 u_resolution; \\\n uniform vec2 u_scale; \\\n uniform vec2 u_offset; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n vec2 position = (a_position + u_offset) * u_scale; \\\n vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_color = vec4(a_color / 255.0, 1.0); \\\n } \";\n var figuresFragmentShaderCode = \"\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } \";\n var figuresCache = null;\n\n function initFiguresGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n cache.scaleLocation = gl.getUniformLocation(program, \"u_scale\");\n cache.offsetLocation = gl.getUniformLocation(program, \"u_offset\");\n cache.positionLocation = gl.getAttribLocation(program, \"a_position\");\n cache.colorLocation = gl.getAttribLocation(program, \"a_color\");\n figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n\n var cache = figuresCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n var count = 0;\n var i, ii, rows;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case \"lattice\":\n rows = figures[i].coords.length / figures[i].verticesPerRow | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n\n case \"triangles\":\n count += figures[i].coords.length;\n break;\n }\n }\n\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords,\n colorsMap = context.colors;\n var pIndex = 0,\n cIndex = 0;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n\n switch (figure.type) {\n case \"lattice\":\n var cols = figure.verticesPerRow;\n rows = ps.length / cols | 0;\n\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n\n for (var col = 1; col < cols; col++, offset++) {\n coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n coords[pIndex + 6] = coords[pIndex + 2];\n coords[pIndex + 7] = coords[pIndex + 3];\n coords[pIndex + 8] = coords[pIndex + 4];\n coords[pIndex + 9] = coords[pIndex + 5];\n coords[pIndex + 10] = coordsMap[ps[offset]];\n coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n colors[cIndex + 9] = colors[cIndex + 3];\n colors[cIndex + 10] = colors[cIndex + 4];\n colors[cIndex + 11] = colors[cIndex + 5];\n colors[cIndex + 12] = colors[cIndex + 6];\n colors[cIndex + 13] = colors[cIndex + 7];\n colors[cIndex + 14] = colors[cIndex + 8];\n colors[cIndex + 15] = colorsMap[cs[offset]];\n colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n pIndex += 12;\n cIndex += 18;\n }\n }\n\n break;\n\n case \"triangles\":\n for (var j = 0, jj = ps.length; j < jj; j++) {\n coords[pIndex] = coordsMap[ps[j]];\n coords[pIndex + 1] = coordsMap[ps[j] + 1];\n colors[cIndex] = colorsMap[cs[j]];\n colors[cIndex + 1] = colorsMap[cs[j] + 1];\n colors[cIndex + 2] = colorsMap[cs[j] + 2];\n pIndex += 2;\n cIndex += 3;\n }\n\n break;\n }\n }\n\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n\n gl.clear(gl.COLOR_BUFFER_BIT);\n var coordsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n var colorsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.colorLocation);\n gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n gl.drawArrays(gl.TRIANGLES, 0, count);\n gl.flush();\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n return canvas;\n }\n\n return {\n tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n\n return false;\n },\n\n composeSMask,\n drawFigures,\n\n cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n\n smaskCache = null;\n figuresCache = null;\n }\n\n };\n}();\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationLayer = void 0;\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _annotation_storage = __w_pdfjs_require__(8);\n\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, isRenderable = false, ignoreBorder = false) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderInteractiveForms = parameters.renderInteractiveForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n }\n\n _createContainer(ignoreBorder = false) {\n const data = this.data,\n page = this.page,\n viewport = this.viewport;\n const container = document.createElement(\"section\");\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n container.setAttribute(\"data-annotation-id\", data.id);\n\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\n container.style.transformOrigin = `-${rect[0]}px -${rect[1]}px`;\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n if (data.color) {\n container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${rect[0]}px`;\n container.style.top = `${rect[1]}px`;\n container.style.width = `${width}px`;\n container.style.height = `${height}px`;\n return container;\n }\n\n _createPopup(container, trigger, data) {\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n title: data.title,\n modificationDate: data.modificationDate,\n contents: data.contents,\n hideWrapper: true\n });\n const popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);\n super(parameters, isRenderable);\n }\n\n render() {\n this.container.className = \"linkAnnotation\";\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n\n if (data.url) {\n (0, _display_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel,\n enabled: linkService.externalLinkEnabled\n });\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n\n this.container.appendChild(link);\n return this.container;\n }\n\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = () => {\n if (destination) {\n this.linkService.navigateTo(destination);\n }\n\n return false;\n };\n\n if (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}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n const image = document.createElement(\"img\");\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n return this.container;\n }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, isRenderable);\n }\n\n render() {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderInteractiveForms) {\n const textContent = storage.getOrCreateValue(id, this.data.fieldValue);\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n }\n\n element.addEventListener(\"input\", function (event) {\n storage.setValue(id, event.target.value);\n });\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n let font = null;\n\n if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {\n font = this.page.commonObjs.get(this.data.fontRefName);\n }\n\n this._setTextStyle(element, font);\n }\n\n if (this.data.textAlignment !== null) {\n element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n _setTextStyle(element, font) {\n const style = element.style;\n style.fontSize = `${this.data.fontSize}px`;\n style.direction = this.data.fontDirection < 0 ? \"rtl\" : \"ltr\";\n\n if (!font) {\n return;\n }\n\n let bold = \"normal\";\n\n if (font.black) {\n bold = \"900\";\n } else if (font.bold) {\n bold = \"bold\";\n }\n\n style.fontWeight = bold;\n style.fontStyle = font.italic ? \"italic\" : \"normal\";\n const fontFamily = font.loadedName ? `\"${font.loadedName}\", ` : \"\";\n const fallbackName = font.fallbackName || \"Helvetica, sans-serif\";\n style.fontFamily = fontFamily + fallbackName;\n }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n const value = storage.getOrCreateValue(id, data.fieldValue && data.fieldValue !== \"Off\");\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n element.disabled = data.readOnly;\n element.type = \"checkbox\";\n element.name = this.data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.addEventListener(\"change\", function (event) {\n storage.setValue(id, event.target.checked);\n });\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\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 const value = storage.getOrCreateValue(id, data.fieldValue === data.buttonValue);\n const element = document.createElement(\"input\");\n element.disabled = data.readOnly;\n element.type = \"radio\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.addEventListener(\"change\", function (event) {\n const name = event.target.name;\n\n for (const radio of document.getElementsByName(name)) {\n if (radio !== event.target) {\n storage.setValue(radio.parentNode.getAttribute(\"data-annotation-id\"), false);\n }\n }\n\n storage.setValue(id, event.target.checked);\n });\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n return container;\n }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n storage.getOrCreateValue(id, this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null);\n const selectElement = document.createElement(\"select\");\n selectElement.disabled = this.data.readOnly;\n selectElement.name = this.data.fieldName;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.fieldValue.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n selectElement.addEventListener(\"input\", function (event) {\n const options = event.target.options;\n const value = options[options.selectedIndex].value;\n storage.setValue(id, value);\n });\n this.container.appendChild(selectElement);\n return this.container;\n }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\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 parentElement = this.layer.querySelector(selector);\n\n if (!parentElement) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\n modificationDate: this.data.modificationDate,\n contents: this.data.contents\n });\n const parentLeft = parseFloat(parentElement.style.left);\n const parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin = `-${parentLeft + parentWidth}px -${parentElement.style.top}`;\n this.container.style.left = `${parentLeft + parentWidth}px`;\n this.container.appendChild(popup.render());\n return this.container;\n }\n\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.title = parameters.title;\n this.modificationDate = parameters.modificationDate;\n this.contents = parameters.contents;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.setAttribute(\"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.makeCssRgb(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement(\"h1\");\n title.textContent = this.title;\n popup.appendChild(title);\n\n const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.appendChild(modificationDate);\n }\n\n const contents = this._formatContents(this.contents);\n\n popup.appendChild(contents);\n this.trigger.addEventListener(\"click\", this._toggle.bind(this));\n this.trigger.addEventListener(\"mouseover\", this._show.bind(this, false));\n this.trigger.addEventListener(\"mouseout\", this._hide.bind(this, false));\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n _formatContents(contents) {\n const p = document.createElement(\"p\");\n const lines = contents.split(/(?:\\r\\n?|\\n)/);\n\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.appendChild(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.appendChild(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hasAttribute(\"hidden\")) {\n this.hideElement.removeAttribute(\"hidden\");\n this.container.style.zIndex += 1;\n }\n }\n\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hasAttribute(\"hidden\") && !this.pinned) {\n this.hideElement.setAttribute(\"hidden\", true);\n this.container.style.zIndex -= 1;\n }\n }\n\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(this.container, line, data);\n\n return this.container;\n }\n\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"none\");\n svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(this.container, square, data);\n\n return this.container;\n }\n\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"none\");\n svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(this.container, circle, data);\n\n return this.container;\n }\n\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n let points = [];\n\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(this.container, polyline, data);\n\n return this.container;\n }\n\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const width = data.rect[2] - data.rect[0];\n const height = data.rect[3] - data.rect[1];\n const svg = this.svgFactory.create(width, height);\n\n for (const inkList of data.inkLists) {\n let points = [];\n\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"none\");\n\n this._createPopup(this.container, polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"highlightAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"underlineAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"squigglyAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"strikeoutAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, true);\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, true);\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n this.content = content;\n\n if (this.linkService.eventBus) {\n this.linkService.eventBus.dispatch(\"fileattachmentannotation\", {\n source: this,\n id: (0, _util.stringToPDFString)(filename),\n filename,\n content\n });\n }\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n const trigger = document.createElement(\"div\");\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n this._createPopup(this.container, trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n\n _download() {\n if (!this.downloadManager) {\n (0, _util.warn)(\"Download cannot be started due to unavailable download manager\");\n return;\n }\n\n this.downloadManager.downloadData(this.content, this.filename, \"\");\n }\n\n}\n\nclass AnnotationLayer {\n static render(parameters) {\n const sortedAnnotations = [],\n popupAnnotations = [];\n\n for (const data of parameters.annotations) {\n if (!data) {\n continue;\n }\n\n if (data.annotationType === _util.AnnotationType.POPUP) {\n popupAnnotations.push(data);\n continue;\n }\n\n sortedAnnotations.push(data);\n }\n\n if (popupAnnotations.length) {\n sortedAnnotations.push(...popupAnnotations);\n }\n\n for (const data of sortedAnnotations) {\n const element = AnnotationElementFactory.create({\n data,\n layer: parameters.div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderInteractiveForms: typeof parameters.renderInteractiveForms === \"boolean\" ? parameters.renderInteractiveForms : true,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage()\n });\n\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n\n static update(parameters) {\n for (const data of parameters.annotations) {\n const element = parameters.div.querySelector(`[data-annotation-id=\"${data.id}\"]`);\n\n if (element) {\n element.style.transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n }\n }\n\n parameters.div.removeAttribute(\"hidden\");\n }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.renderTextLayer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar renderTextLayer = function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n var NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n function appendText(task, geom, styles) {\n var textDiv = document.createElement(\"span\");\n var textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n isWhitespace: false,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1\n };\n\n task._textDivs.push(textDiv);\n\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n return;\n }\n\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n var fontAscent = fontHeight;\n\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n\n let left, top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight}px`;\n textDiv.style.fontFamily = style.fontFamily;\n textDiv.textContent = geom.str;\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) {\n shouldScaleText = true;\n } else if (geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection) {\n var angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var 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\n function render(task) {\n if (task._canceled) {\n return;\n }\n\n var textDivs = task._textDivs;\n var capability = task._capability;\n var 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 (var i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n }\n\n function 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\n function expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n\n var 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 var e = expanded[i],\n b = bounds[i];\n var m = b.m,\n c = m[0],\n s = m[1];\n var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n var ts = new Float64Array(64);\n points.forEach(function (p, j) {\n var t = _util.Util.applyTransform(p, 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 var 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\n function expandBounds(width, height, boxes) {\n var 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 var expanded = new Array(boxes.length);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n });\n boxes.map(function (box, i) {\n var 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 bounds.forEach(function (b) {\n var i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n });\n return expanded;\n }\n\n function expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n var fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n var horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n bounds.forEach(function (boundary) {\n var i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n var j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var horizonPart, affectedBoundary;\n var q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var 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 var changedHorizon = [],\n lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n var used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n });\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n\n function TextLayerRenderTask({\n textContent,\n textContentStream,\n container,\n viewport,\n textDivs,\n textContentItemsStr,\n enhanceTextSelection\n }) {\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._document = container.ownerDocument;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled);\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n\n this._capability.promise.finally(() => {\n if (this._layoutTextCtx) {\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n }).catch(() => {});\n }\n\n TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n cancel: function TextLayer_cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\"));\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n },\n\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache);\n }\n },\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n let transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0) {\n const {\n fontSize,\n fontFamily\n } = textDiv.style;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n const {\n width\n } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = `scaleX(${textDivProperties.scale})`;\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n this._textDivProperties.set(textDiv, textDivProperties);\n\n this._container.appendChild(textDiv);\n },\n\n _render: function TextLayer_render(timeout) {\n const capability = (0, _util.createPromiseCapability)();\n let styleCache = Object.create(null);\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n this._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' + \" parameters specified.\");\n }\n\n capability.promise.then(() => {\n styleCache = null;\n\n if (!timeout) {\n render(this);\n } else {\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\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 (var 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.isWhitespace) {\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 function renderTextLayer(renderParameters) {\n var 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 return renderTextLayer;\n}();\n\nexports.renderTextLayer = renderTextLayer;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SVGGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _display_utils = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nlet SVGGraphics = function () {\n throw new Error(\"Not implemented: SVGGraphics\");\n};\n\nexports.SVGGraphics = SVGGraphics;\n{\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n\n for (let i = 0; i < 256; i++) {\n let c = i;\n\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n let input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return (0, _util.createObjectURL)(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n }\n\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n\n return opTree;\n }\n\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const s = value.toFixed(10);\n let i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n }\n\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n exports.SVGGraphics = SVGGraphics = class SVGGraphics {\n constructor(commonObjs, objs, forceDataSchema = false) {\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.sqrt(a * a + b * b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.appendChild(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n\n current.tspan.textContent += character;\n } else {}\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n let textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.appendChild(this.cssStyle);\n }\n\n const url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix ? 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 && 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.makeCssRgb(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.makeCssRgb(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n\n const [tx0, ty0] = _util.Util.applyTransform([x0, y0], matrix);\n\n const [tx1, ty1] = _util.Util.applyTransform([x1, y1], matrix);\n\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n const cssColor = _util.Util.makeCssRgb(...color);\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.appendChild(bbox.childNodes[0]);\n this.defs.appendChild(tiling);\n return `url(#${tilingId})`;\n }\n\n _makeShadingPattern(args) {\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.appendChild(stop);\n }\n\n this.defs.appendChild(gradient);\n return `url(#${shadingId})`;\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().appendChild(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n this.extraStack.forEach(function (prev) {\n prev.clipGroup = null;\n });\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n\n fillStroke() {\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n }\n\n paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.appendChild(mask);\n\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.appendChild(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n }\n\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n\n };\n}\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNodeStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(23);\n\n;\n\nconst fs = require(\"fs\");\n\nconst http = require(\"http\");\n\nconst https = require(\"https\");\n\nconst url = require(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader ? 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 const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFNodeStream = PDFNodeStream;\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._headersCapability.resolve();\n\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n\n this._headersCapability.reject(reason);\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n this._httpHeaders[property] = value;\n }\n\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n\n this._setReadableStream(response);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n\n this._headersCapability.resolve();\n });\n }\n\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n\n}\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _content_disposition = __w_pdfjs_require__(24);\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n (0, _util.assert)(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(\"Unexpected server response (\" + status + ') while retrieving PDF \"' + url + '\".', status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\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 bytes = Array.from(value, function (ch) {\n return ch.charCodeAt(0) & 0xff;\n });\n value = decoder.decode(new Uint8Array(bytes));\n needsEncodingFixup = false;\n } catch (e) {\n if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n const parts = [];\n\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n\n if (quot) {\n part = unescape(part);\n\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n\n parts.push(part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n}\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFNetworkStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(23);\n\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url, args) {\n this.url = url;\n args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || {};\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n if (pendingRequest.onProgress) {\n pendingRequest.onProgress(evt);\n }\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n const xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n\n}\n\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(args) {\n if (args) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: args.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(args.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n _onError(status) {\n const url = this._url;\n const exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n\n this._headersReceivedCapability.reject(exception);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n\n this._requests = [];\n this._cachedChunks = [];\n }\n\n _onProgress(data) {\n if (this.onProgress) {\n this.onProgress({\n loaded: data.loaded,\n total: data.lengthComputable ? data.total : this._contentLength\n });\n }\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n\n}\n\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._close();\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({\n loaded: evt.loaded\n });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n\n}\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFFetchStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _network_utils = __w_pdfjs_require__(23);\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController && 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 ? 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 const readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n\n}\n\nexports.PDFFetchStream = PDFFetchStream;\n\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._reader = response.body.getReader();\n\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._readCapability.resolve();\n\n this._reader = response.body.getReader();\n }).catch(reason => {\n if (reason && reason.name === \"AbortError\") {\n return;\n }\n\n throw reason;\n });\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.js.map","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2020 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/web/pdf_viewer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/web/pdf_viewer\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/web/pdf_viewer\"] = root.pdfjsViewer = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__w_pdfjs_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__w_pdfjs_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__w_pdfjs_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"AnnotationLayerBuilder\", {\n enumerable: true,\n get: function () {\n return _annotation_layer_builder.AnnotationLayerBuilder;\n }\n});\nObject.defineProperty(exports, \"DefaultAnnotationLayerFactory\", {\n enumerable: true,\n get: function () {\n return _annotation_layer_builder.DefaultAnnotationLayerFactory;\n }\n});\nObject.defineProperty(exports, \"DefaultTextLayerFactory\", {\n enumerable: true,\n get: function () {\n return _text_layer_builder.DefaultTextLayerFactory;\n }\n});\nObject.defineProperty(exports, \"TextLayerBuilder\", {\n enumerable: true,\n get: function () {\n return _text_layer_builder.TextLayerBuilder;\n }\n});\nObject.defineProperty(exports, \"EventBus\", {\n enumerable: true,\n get: function () {\n return _ui_utils.EventBus;\n }\n});\nObject.defineProperty(exports, \"NullL10n\", {\n enumerable: true,\n get: function () {\n return _ui_utils.NullL10n;\n }\n});\nObject.defineProperty(exports, \"ProgressBar\", {\n enumerable: true,\n get: function () {\n return _ui_utils.ProgressBar;\n }\n});\nObject.defineProperty(exports, \"PDFLinkService\", {\n enumerable: true,\n get: function () {\n return _pdf_link_service.PDFLinkService;\n }\n});\nObject.defineProperty(exports, \"SimpleLinkService\", {\n enumerable: true,\n get: function () {\n return _pdf_link_service.SimpleLinkService;\n }\n});\nObject.defineProperty(exports, \"DownloadManager\", {\n enumerable: true,\n get: function () {\n return _download_manager.DownloadManager;\n }\n});\nObject.defineProperty(exports, \"GenericL10n\", {\n enumerable: true,\n get: function () {\n return _genericl10n.GenericL10n;\n }\n});\nObject.defineProperty(exports, \"PDFFindController\", {\n enumerable: true,\n get: function () {\n return _pdf_find_controller.PDFFindController;\n }\n});\nObject.defineProperty(exports, \"PDFHistory\", {\n enumerable: true,\n get: function () {\n return _pdf_history.PDFHistory;\n }\n});\nObject.defineProperty(exports, \"PDFPageView\", {\n enumerable: true,\n get: function () {\n return _pdf_page_view.PDFPageView;\n }\n});\nObject.defineProperty(exports, \"PDFSinglePageViewer\", {\n enumerable: true,\n get: function () {\n return _pdf_single_page_viewer.PDFSinglePageViewer;\n }\n});\nObject.defineProperty(exports, \"PDFViewer\", {\n enumerable: true,\n get: function () {\n return _pdf_viewer.PDFViewer;\n }\n});\n\nvar _annotation_layer_builder = __w_pdfjs_require__(1);\n\nvar _text_layer_builder = __w_pdfjs_require__(5);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_link_service = __w_pdfjs_require__(4);\n\nvar _download_manager = __w_pdfjs_require__(6);\n\nvar _genericl10n = __w_pdfjs_require__(8);\n\nvar _pdf_find_controller = __w_pdfjs_require__(10);\n\nvar _pdf_history = __w_pdfjs_require__(12);\n\nvar _pdf_page_view = __w_pdfjs_require__(13);\n\nvar _pdf_single_page_viewer = __w_pdfjs_require__(15);\n\nvar _pdf_viewer = __w_pdfjs_require__(17);\n\nconst pdfjsVersion = '2.6.347';\nconst pdfjsBuild = '3be9c65f';\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_link_service = __w_pdfjs_require__(4);\n\nclass AnnotationLayerBuilder {\n constructor({\n pageDiv,\n pdfPage,\n linkService,\n downloadManager,\n annotationStorage = null,\n imageResourcesPath = \"\",\n renderInteractiveForms = true,\n l10n = _ui_utils.NullL10n\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.linkService = linkService;\n this.downloadManager = downloadManager;\n this.imageResourcesPath = imageResourcesPath;\n this.renderInteractiveForms = renderInteractiveForms;\n this.l10n = l10n;\n this.annotationStorage = annotationStorage;\n this.div = null;\n this._cancelled = false;\n }\n\n render(viewport, intent = \"display\") {\n return this.pdfPage.getAnnotations({\n intent\n }).then(annotations => {\n if (this._cancelled) {\n return;\n }\n\n if (annotations.length === 0) {\n return;\n }\n\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n annotations,\n page: this.pdfPage,\n imageResourcesPath: this.imageResourcesPath,\n renderInteractiveForms: this.renderInteractiveForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n annotationStorage: this.annotationStorage\n };\n\n if (this.div) {\n _pdfjsLib.AnnotationLayer.update(parameters);\n } else {\n this.div = document.createElement(\"div\");\n this.div.className = \"annotationLayer\";\n this.pageDiv.appendChild(this.div);\n parameters.div = this.div;\n\n _pdfjsLib.AnnotationLayer.render(parameters);\n\n this.l10n.translate(this.div);\n }\n });\n }\n\n cancel() {\n this._cancelled = true;\n }\n\n hide() {\n if (!this.div) {\n return;\n }\n\n this.div.setAttribute(\"hidden\", \"true\");\n }\n\n}\n\nexports.AnnotationLayerBuilder = AnnotationLayerBuilder;\n\nclass DefaultAnnotationLayerFactory {\n createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = \"\", renderInteractiveForms = true, l10n = _ui_utils.NullL10n) {\n return new AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\n imageResourcesPath,\n renderInteractiveForms,\n linkService: new _pdf_link_service.SimpleLinkService(),\n l10n,\n annotationStorage\n });\n }\n\n}\n\nexports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nlet pdfjsLib;\n\nif (typeof window !== \"undefined\" && window[\"pdfjs-dist/build/pdf\"]) {\n pdfjsLib = window[\"pdfjs-dist/build/pdf\"];\n} else {\n pdfjsLib = require(\"../build/pdf.js\");\n}\n\nmodule.exports = pdfjsLib;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isValidRotation = isValidRotation;\nexports.isValidScrollMode = isValidScrollMode;\nexports.isValidSpreadMode = isValidSpreadMode;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.clamp = clamp;\nexports.getPDFFileNameFromURL = getPDFFileNameFromURL;\nexports.noContextMenuHandler = noContextMenuHandler;\nexports.parseQueryString = parseQueryString;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.getVisibleElements = getVisibleElements;\nexports.roundToDivide = roundToDivide;\nexports.getPageSizeInches = getPageSizeInches;\nexports.approximateFraction = approximateFraction;\nexports.getOutputScale = getOutputScale;\nexports.scrollIntoView = scrollIntoView;\nexports.watchScroll = watchScroll;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.normalizeWheelEventDirection = normalizeWheelEventDirection;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nexports.moveToEndOfArray = moveToEndOfArray;\nexports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = exports.AutoPrintRegExp = void 0;\nconst CSS_UNITS = 96.0 / 72.0;\nexports.CSS_UNITS = CSS_UNITS;\nconst DEFAULT_SCALE_VALUE = \"auto\";\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nconst DEFAULT_SCALE = 1.0;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nconst MIN_SCALE = 0.1;\nexports.MIN_SCALE = MIN_SCALE;\nconst MAX_SCALE = 10.0;\nexports.MAX_SCALE = MAX_SCALE;\nconst UNKNOWN_SCALE = 0;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nconst MAX_AUTO_SCALE = 1.25;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nconst SCROLLBAR_PADDING = 40;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nconst VERTICAL_PADDING = 5;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nexports.PresentationModeState = PresentationModeState;\nconst RendererType = {\n CANVAS: \"canvas\",\n SVG: \"svg\"\n};\nexports.RendererType = RendererType;\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_ENHANCE: 2\n};\nexports.TextLayerMode = TextLayerMode;\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0,\n HORIZONTAL: 1,\n WRAPPED: 2\n};\nexports.ScrollMode = ScrollMode;\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0,\n ODD: 1,\n EVEN: 2\n};\nexports.SpreadMode = SpreadMode;\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\nexports.AutoPrintRegExp = AutoPrintRegExp;\n\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n\n return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\n\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n\n async getDirection() {\n return \"ltr\";\n },\n\n async get(property, args, fallback) {\n return formatL10nValue(fallback, args);\n },\n\n async translate(element) {}\n\n};\nexports.NullL10n = NullL10n;\n\nfunction getOutputScale(ctx) {\n const devicePixelRatio = window.devicePixelRatio || 1;\n const backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n const pixelRatio = devicePixelRatio / backingStoreRatio;\n return {\n sx: pixelRatio,\n sy: pixelRatio,\n scaled: pixelRatio !== 1\n };\n}\n\nfunction scrollIntoView(element, spot, skipOverflowHiddenElements = false) {\n let parent = element.offsetParent;\n\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === \"hidden\") {\n if (parent.dataset._scaleY) {\n offsetY /= parent.dataset._scaleY;\n offsetX /= parent.dataset._scaleX;\n }\n\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n\n if (!parent) {\n return;\n }\n }\n\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n\n parent.scrollTop = offsetY;\n}\n\nfunction watchScroll(viewAreaElement, callback) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n\n state.lastY = currentY;\n callback(state);\n });\n };\n\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\n\nfunction parseQueryString(query) {\n const parts = query.split(\"&\");\n const params = Object.create(null);\n\n for (let i = 0, ii = parts.length; i < ii; ++i) {\n const param = parts[i].split(\"=\");\n const key = param[0].toLowerCase();\n const value = param.length > 1 ? param[1] : null;\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n\n return params;\n}\n\nfunction binarySearchFirstItem(items, condition) {\n let minIndex = 0;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = minIndex + maxIndex >> 1;\n const currentItem = items[currentIndex];\n\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n\n return minIndex;\n}\n\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n\n const xinv = 1 / x;\n const limit = 8;\n\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n const x_ = x > 1 ? xinv : x;\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n\n while (true) {\n const p = a + c,\n q = b + d;\n\n if (q > limit) {\n break;\n }\n\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n\n let result;\n\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n\n return result;\n}\n\nfunction roundToDivide(x, div) {\n const r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\n\nfunction getPageSizeInches({\n view,\n userUnit,\n rotate\n}) {\n const [x1, y1, x2, y2] = view;\n const changeOrientation = rotate % 180 !== 0;\n const width = (x2 - x1) / 72 * userUnit;\n const height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\n\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n\n index = i;\n }\n\n return index;\n}\n\nfunction getVisibleElements(scrollEl, views, sortByVisibility = false, horizontal = false) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n\n function isElementRightAfterViewLeft(view) {\n const element = view.div;\n const elementRight = element.offsetLeft + element.clientLeft + element.clientWidth;\n return elementRight > left;\n }\n\n const visible = [],\n numViews = views.length;\n let firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop);\n\n if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n\n let lastEdge = horizontal ? right : -1;\n\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n\n const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n const percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent\n });\n }\n\n const first = visible[0],\n last = visible[visible.length - 1];\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n\n return a.id - b.id;\n });\n }\n\n return {\n first,\n last,\n views: visible\n };\n}\n\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\n\nfunction isDataSchema(url) {\n let i = 0;\n const ii = url.length;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction getPDFFileNameFromURL(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataSchema(url)) {\n console.warn(\"getPDFFileNameFromURL: \" + 'ignoring \"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\nfunction normalizeWheelEventDirection(evt) {\n let delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n\n return delta;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n let delta = normalizeWheelEventDirection(evt);\n const MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n const MOUSE_DOM_DELTA_LINE_MODE = 1;\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\n\nfunction isValidSpreadMode(mode) {\n return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\nconst WaitOnType = {\n EVENT: \"event\",\n TIMEOUT: \"timeout\"\n};\nexports.WaitOnType = WaitOnType;\n\nfunction waitOnEventOrTimeout({\n target,\n name,\n delay = 0\n}) {\n return new Promise(function (resolve, reject) {\n if (typeof target !== \"object\" || !(name && typeof name === \"string\") || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n }\n\n function handler(type) {\n if (target instanceof EventBus) {\n target._off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n resolve(type);\n }\n\n const eventHandler = handler.bind(null, WaitOnType.EVENT);\n\n if (target instanceof EventBus) {\n target._on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n\n const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n const timeout = setTimeout(timeoutHandler, delay);\n });\n}\n\nconst animationStarted = new Promise(function (resolve) {\n window.requestAnimationFrame(resolve);\n});\nexports.animationStarted = animationStarted;\n\nfunction dispatchDOMEvent(eventName, args = null) {\n throw new Error(\"Not implemented: dispatchDOMEvent\");\n}\n\nclass EventBus {\n constructor(options) {\n this._listeners = Object.create(null);\n }\n\n on(eventName, listener) {\n this._on(eventName, listener, {\n external: true\n });\n }\n\n off(eventName, listener) {\n this._off(eventName, listener, {\n external: true\n });\n }\n\n dispatch(eventName) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners || eventListeners.length === 0) {\n return;\n }\n\n const args = Array.prototype.slice.call(arguments, 1);\n let externalListeners;\n eventListeners.slice(0).forEach(function ({\n listener,\n external\n }) {\n if (external) {\n if (!externalListeners) {\n externalListeners = [];\n }\n\n externalListeners.push(listener);\n return;\n }\n\n listener.apply(null, args);\n });\n\n if (externalListeners) {\n externalListeners.forEach(function (listener) {\n listener.apply(null, args);\n });\n externalListeners = null;\n }\n }\n\n _on(eventName, listener, options = null) {\n let eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n this._listeners[eventName] = eventListeners = [];\n }\n\n eventListeners.push({\n listener,\n external: (options && options.external) === true\n });\n }\n\n _off(eventName, listener, options = null) {\n const eventListeners = this._listeners[eventName];\n\n if (!eventListeners) {\n return;\n }\n\n for (let i = 0, ii = eventListeners.length; i < ii; i++) {\n if (eventListeners[i].listener === listener) {\n eventListeners.splice(i, 1);\n return;\n }\n }\n }\n\n}\n\nexports.EventBus = EventBus;\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nclass ProgressBar {\n constructor(id, {\n height,\n width,\n units\n } = {}) {\n this.visible = true;\n this.div = document.querySelector(id + \" .progress\");\n this.bar = this.div.parentNode;\n this.height = height || 100;\n this.width = width || 100;\n this.units = units || \"%\";\n this.div.style.height = this.height + this.units;\n this.percent = 0;\n }\n\n _updateBar() {\n if (this._indeterminate) {\n this.div.classList.add(\"indeterminate\");\n this.div.style.width = this.width + this.units;\n return;\n }\n\n this.div.classList.remove(\"indeterminate\");\n const progressSize = this.width * this._percent / 100;\n this.div.style.width = progressSize + this.units;\n }\n\n get percent() {\n return this._percent;\n }\n\n set percent(val) {\n this._indeterminate = isNaN(val);\n this._percent = clamp(val, 0, 100);\n\n this._updateBar();\n }\n\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n\n if (scrollbarWidth > 0) {\n this.bar.style.width = `calc(100% - ${scrollbarWidth}px)`;\n }\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n this.bar.classList.add(\"hidden\");\n document.body.classList.remove(\"loadingInProgress\");\n }\n\n show() {\n if (this.visible) {\n return;\n }\n\n this.visible = true;\n document.body.classList.add(\"loadingInProgress\");\n this.bar.classList.remove(\"hidden\");\n }\n\n}\n\nexports.ProgressBar = ProgressBar;\n\nfunction moveToEndOfArray(arr, condition) {\n const moved = [],\n len = arr.length;\n let write = 0;\n\n for (let read = 0; read < len; ++read) {\n if (condition(arr[read])) {\n moved.push(arr[read]);\n } else {\n arr[write] = arr[read];\n ++write;\n }\n }\n\n for (let read = 0; write < len; ++read, ++write) {\n arr[write] = moved[read];\n }\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleLinkService = exports.PDFLinkService = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nclass PDFLinkService {\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n externalLinkEnabled = true,\n ignoreDestinationZoom = false\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.externalLinkEnabled = externalLinkEnabled;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n this._pagesRefCache = null;\n }\n\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this._pagesRefCache = Object.create(null);\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n\n get page() {\n return this.pdfViewer.currentPageNumber;\n }\n\n set page(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n\n get rotation() {\n return this.pdfViewer.pagesRotation;\n }\n\n set rotation(value) {\n this.pdfViewer.pagesRotation = value;\n }\n\n navigateTo(dest) {\n const goToDestination = ({\n namedDest,\n explicitDest\n }) => {\n const destRef = explicitDest[0];\n let pageNumber;\n\n if (destRef instanceof Object) {\n pageNumber = this._cachedPageNumber(destRef);\n\n if (pageNumber === null) {\n this.pdfDocument.getPageIndex(destRef).then(pageIndex => {\n this.cachePageRef(pageIndex + 1, destRef);\n goToDestination({\n namedDest,\n explicitDest\n });\n }).catch(() => {\n console.error(`PDFLinkService.navigateTo: \"${destRef}\" is not ` + `a valid page reference, for dest=\"${dest}\".`);\n });\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(`PDFLinkService.navigateTo: \"${destRef}\" is not ` + `a valid destination reference, for dest=\"${dest}\".`);\n return;\n }\n\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(`PDFLinkService.navigateTo: \"${pageNumber}\" is not ` + `a valid page number, for dest=\"${dest}\".`);\n return;\n }\n\n if (this.pdfHistory) {\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({\n namedDest,\n explicitDest,\n pageNumber\n });\n }\n\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom\n });\n };\n\n new Promise((resolve, reject) => {\n if (typeof dest === \"string\") {\n this.pdfDocument.getDestination(dest).then(destArray => {\n resolve({\n namedDest: dest,\n explicitDest: destArray\n });\n });\n return;\n }\n\n resolve({\n namedDest: \"\",\n explicitDest: dest\n });\n }).then(data => {\n if (!Array.isArray(data.explicitDest)) {\n console.error(`PDFLinkService.navigateTo: \"${data.explicitDest}\" is` + ` not a valid destination array, for dest=\"${dest}\".`);\n return;\n }\n\n goToDestination(data);\n });\n }\n\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n\n if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n\n return this.getAnchorUrl(\"\");\n }\n\n getAnchorUrl(anchor) {\n return (this.baseUrl || \"\") + anchor;\n }\n\n setHash(hash) {\n let pageNumber, dest;\n\n if (hash.includes(\"=\")) {\n const params = (0, _ui_utils.parseQueryString)(hash);\n\n if (\"search\" in params) {\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: params.search.replace(/\"/g, \"\"),\n phraseSearch: params.phrase === \"true\"\n });\n }\n\n if (\"page\" in params) {\n pageNumber = params.page | 0 || 1;\n }\n\n if (\"zoom\" in params) {\n const zoomArgs = params.zoom.split(\",\");\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes(\"Fit\")) {\n dest = [null, {\n name: \"XYZ\"\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n } else {\n if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, {\n name: zoomArg\n }];\n } else if (zoomArg === \"FitH\" || zoomArg === \"FitBH\" || zoomArg === \"FitV\" || zoomArg === \"FitBV\") {\n dest = [null, {\n name: zoomArg\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n } else {\n dest = [null, {\n name: zoomArg\n }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n }\n } else {\n console.error(`PDFLinkService.setHash: \"${zoomArg}\" is not ` + \"a valid zoom value.\");\n }\n }\n }\n\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true\n });\n } else if (pageNumber) {\n this.page = pageNumber;\n }\n\n if (\"pagemode\" in params) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.pagemode\n });\n }\n\n if (\"nameddest\" in params) {\n this.navigateTo(params.nameddest);\n }\n } else {\n dest = unescape(hash);\n\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n dest = dest.toString();\n }\n } catch (ex) {}\n\n if (typeof dest === \"string\" || isValidExplicitDestination(dest)) {\n this.navigateTo(dest);\n return;\n }\n\n console.error(`PDFLinkService.setHash: \"${unescape(hash)}\" is not ` + \"a valid destination.\");\n }\n }\n\n executeNamedAction(action) {\n switch (action) {\n case \"GoBack\":\n if (this.pdfHistory) {\n this.pdfHistory.back();\n }\n\n break;\n\n case \"GoForward\":\n if (this.pdfHistory) {\n this.pdfHistory.forward();\n }\n\n break;\n\n case \"NextPage\":\n if (this.page < this.pagesCount) {\n this.page++;\n }\n\n break;\n\n case \"PrevPage\":\n if (this.page > 1) {\n this.page--;\n }\n\n break;\n\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n\n case \"FirstPage\":\n this.page = 1;\n break;\n\n default:\n break;\n }\n\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action\n });\n }\n\n cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n this._pagesRefCache[refStr] = pageNum;\n }\n\n _cachedPageNumber(pageRef) {\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n return this._pagesRefCache && this._pagesRefCache[refStr] || null;\n }\n\n isPageVisible(pageNumber) {\n return this.pdfViewer.isPageVisible(pageNumber);\n }\n\n}\n\nexports.PDFLinkService = PDFLinkService;\n\nfunction isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n\n const destLength = dest.length;\n\n if (destLength < 2) {\n return false;\n }\n\n const page = dest[0];\n\n if (!(typeof page === \"object\" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {\n return false;\n }\n\n const zoom = dest[1];\n\n if (!(typeof zoom === \"object\" && typeof zoom.name === \"string\")) {\n return false;\n }\n\n let allowNull = true;\n\n switch (zoom.name) {\n case \"XYZ\":\n if (destLength !== 5) {\n return false;\n }\n\n break;\n\n case \"Fit\":\n case \"FitB\":\n return destLength === 2;\n\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (destLength !== 3) {\n return false;\n }\n\n break;\n\n case \"FitR\":\n if (destLength !== 6) {\n return false;\n }\n\n allowNull = false;\n break;\n\n default:\n return false;\n }\n\n for (let i = 2; i < destLength; i++) {\n const param = dest[i];\n\n if (!(typeof param === \"number\" || allowNull && param === null)) {\n return false;\n }\n }\n\n return true;\n}\n\nclass SimpleLinkService {\n constructor() {\n this.externalLinkTarget = null;\n this.externalLinkRel = null;\n this.externalLinkEnabled = true;\n this._ignoreDestinationZoom = false;\n }\n\n get pagesCount() {\n return 0;\n }\n\n get page() {\n return 0;\n }\n\n set page(value) {}\n\n get rotation() {\n return 0;\n }\n\n set rotation(value) {}\n\n navigateTo(dest) {}\n\n getDestinationHash(dest) {\n return \"#\";\n }\n\n getAnchorUrl(hash) {\n return \"#\";\n }\n\n setHash(hash) {}\n\n executeNamedAction(action) {}\n\n cachePageRef(pageNum, pageRef) {}\n\n isPageVisible(pageNumber) {\n return true;\n }\n\n}\n\nexports.SimpleLinkService = SimpleLinkService;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nconst EXPAND_DIVS_TIMEOUT = 300;\n\nclass TextLayerBuilder {\n constructor({\n textLayerDiv,\n eventBus,\n pageIndex,\n viewport,\n findController = null,\n enhanceTextSelection = false\n }) {\n this.textLayerDiv = textLayerDiv;\n this.eventBus = eventBus;\n this.textContent = null;\n this.textContentItemsStr = [];\n this.textContentStream = null;\n this.renderingDone = false;\n this.pageIdx = pageIndex;\n this.pageNumber = this.pageIdx + 1;\n this.matches = [];\n this.viewport = viewport;\n this.textDivs = [];\n this.findController = findController;\n this.textLayerRenderTask = null;\n this.enhanceTextSelection = enhanceTextSelection;\n this._onUpdateTextLayerMatches = null;\n\n this._bindMouse();\n }\n\n _finishRendering() {\n this.renderingDone = true;\n\n if (!this.enhanceTextSelection) {\n const endOfContent = document.createElement(\"div\");\n endOfContent.className = \"endOfContent\";\n this.textLayerDiv.appendChild(endOfContent);\n }\n\n this.eventBus.dispatch(\"textlayerrendered\", {\n source: this,\n pageNumber: this.pageNumber,\n numTextDivs: this.textDivs.length\n });\n }\n\n render(timeout = 0) {\n if (!(this.textContent || this.textContentStream) || this.renderingDone) {\n return;\n }\n\n this.cancel();\n this.textDivs = [];\n const textLayerFrag = document.createDocumentFragment();\n this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({\n textContent: this.textContent,\n textContentStream: this.textContentStream,\n container: textLayerFrag,\n viewport: this.viewport,\n textDivs: this.textDivs,\n textContentItemsStr: this.textContentItemsStr,\n timeout,\n enhanceTextSelection: this.enhanceTextSelection\n });\n this.textLayerRenderTask.promise.then(() => {\n this.textLayerDiv.appendChild(textLayerFrag);\n\n this._finishRendering();\n\n this._updateMatches();\n }, function (reason) {});\n\n if (!this._onUpdateTextLayerMatches) {\n this._onUpdateTextLayerMatches = evt => {\n if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) {\n this._updateMatches();\n }\n };\n\n this.eventBus._on(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n }\n }\n\n cancel() {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.cancel();\n this.textLayerRenderTask = null;\n }\n\n if (this._onUpdateTextLayerMatches) {\n this.eventBus._off(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n\n this._onUpdateTextLayerMatches = null;\n }\n }\n\n setTextContentStream(readableStream) {\n this.cancel();\n this.textContentStream = readableStream;\n }\n\n setTextContent(textContent) {\n this.cancel();\n this.textContent = textContent;\n }\n\n _convertMatches(matches, matchesLength) {\n if (!matches) {\n return [];\n }\n\n const {\n findController,\n textContentItemsStr\n } = this;\n let i = 0,\n iIndex = 0;\n const end = textContentItemsStr.length - 1;\n const queryLen = findController.state.query.length;\n const result = [];\n\n for (let m = 0, mm = matches.length; m < mm; m++) {\n let matchIdx = matches[m];\n\n while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n if (i === textContentItemsStr.length) {\n console.error(\"Could not find a matching mapping\");\n }\n\n const match = {\n begin: {\n divIdx: i,\n offset: matchIdx - iIndex\n }\n };\n\n if (matchesLength) {\n matchIdx += matchesLength[m];\n } else {\n matchIdx += queryLen;\n }\n\n while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n\n match.end = {\n divIdx: i,\n offset: matchIdx - iIndex\n };\n result.push(match);\n }\n\n return result;\n }\n\n _renderMatches(matches) {\n if (matches.length === 0) {\n return;\n }\n\n const {\n findController,\n pageIdx,\n textContentItemsStr,\n textDivs\n } = this;\n const isSelectedPage = pageIdx === findController.selected.pageIdx;\n const selectedMatchIdx = findController.selected.matchIdx;\n const highlightAll = findController.state.highlightAll;\n let prevEnd = null;\n const infinity = {\n divIdx: -1,\n offset: undefined\n };\n\n function beginText(begin, className) {\n const divIdx = begin.divIdx;\n textDivs[divIdx].textContent = \"\";\n appendTextToDiv(divIdx, 0, begin.offset, className);\n }\n\n function appendTextToDiv(divIdx, fromOffset, toOffset, className) {\n const div = textDivs[divIdx];\n const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);\n const node = document.createTextNode(content);\n\n if (className) {\n const span = document.createElement(\"span\");\n span.className = className;\n span.appendChild(node);\n div.appendChild(span);\n return;\n }\n\n div.appendChild(node);\n }\n\n let i0 = selectedMatchIdx,\n i1 = i0 + 1;\n\n if (highlightAll) {\n i0 = 0;\n i1 = matches.length;\n } else if (!isSelectedPage) {\n return;\n }\n\n for (let i = i0; i < i1; i++) {\n const match = matches[i];\n const begin = match.begin;\n const end = match.end;\n const isSelected = isSelectedPage && i === selectedMatchIdx;\n const highlightSuffix = isSelected ? \" selected\" : \"\";\n\n if (isSelected) {\n findController.scrollMatchIntoView({\n element: textDivs[begin.divIdx],\n pageIndex: pageIdx,\n matchIndex: selectedMatchIdx\n });\n }\n\n if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {\n if (prevEnd !== null) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n\n beginText(begin);\n } else {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);\n }\n\n if (begin.divIdx === end.divIdx) {\n appendTextToDiv(begin.divIdx, begin.offset, end.offset, \"highlight\" + highlightSuffix);\n } else {\n appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, \"highlight begin\" + highlightSuffix);\n\n for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {\n textDivs[n0].className = \"highlight middle\" + highlightSuffix;\n }\n\n beginText(end, \"highlight end\" + highlightSuffix);\n }\n\n prevEnd = end;\n }\n\n if (prevEnd) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n }\n\n _updateMatches() {\n if (!this.renderingDone) {\n return;\n }\n\n const {\n findController,\n matches,\n pageIdx,\n textContentItemsStr,\n textDivs\n } = this;\n let clearedUntilDivIdx = -1;\n\n for (let i = 0, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);\n\n for (let n = begin, end = match.end.divIdx; n <= end; n++) {\n const div = textDivs[n];\n div.textContent = textContentItemsStr[n];\n div.className = \"\";\n }\n\n clearedUntilDivIdx = match.end.divIdx + 1;\n }\n\n if (!findController || !findController.highlightMatches) {\n return;\n }\n\n const pageMatches = findController.pageMatches[pageIdx] || null;\n const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;\n this.matches = this._convertMatches(pageMatches, pageMatchesLength);\n\n this._renderMatches(this.matches);\n }\n\n _bindMouse() {\n const div = this.textLayerDiv;\n let expandDivsTimer = null;\n div.addEventListener(\"mousedown\", evt => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(true);\n\n if (expandDivsTimer) {\n clearTimeout(expandDivsTimer);\n expandDivsTimer = null;\n }\n\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n\n if (!end) {\n return;\n }\n\n let adjustTop = evt.target !== div;\n adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue(\"-moz-user-select\") !== \"none\";\n\n if (adjustTop) {\n const divBounds = div.getBoundingClientRect();\n const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);\n end.style.top = (r * 100).toFixed(2) + \"%\";\n }\n\n end.classList.add(\"active\");\n });\n div.addEventListener(\"mouseup\", () => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n expandDivsTimer = setTimeout(() => {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(false);\n }\n\n expandDivsTimer = null;\n }, EXPAND_DIVS_TIMEOUT);\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n\n if (!end) {\n return;\n }\n\n end.style.top = \"\";\n end.classList.remove(\"active\");\n });\n }\n\n}\n\nexports.TextLayerBuilder = TextLayerBuilder;\n\nclass DefaultTextLayerFactory {\n createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) {\n return new TextLayerBuilder({\n textLayerDiv,\n pageIndex,\n viewport,\n enhanceTextSelection,\n eventBus\n });\n }\n\n}\n\nexports.DefaultTextLayerFactory = DefaultTextLayerFactory;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DownloadManager = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _viewer_compatibility = __w_pdfjs_require__(7);\n\n;\n\nfunction download(blobUrl, filename) {\n const a = document.createElement(\"a\");\n\n if (!a.click) {\n throw new Error('DownloadManager: \"a.click()\" is not supported.');\n }\n\n a.href = blobUrl;\n a.target = \"_parent\";\n\n if (\"download\" in a) {\n a.download = filename;\n }\n\n (document.body || document.documentElement).appendChild(a);\n a.click();\n a.remove();\n}\n\nclass DownloadManager {\n downloadUrl(url, filename) {\n if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, \"http://example.com\")) {\n return;\n }\n\n download(url + \"#pdfjs.action=download\", filename);\n }\n\n downloadData(data, filename, contentType) {\n if (navigator.msSaveBlob) {\n navigator.msSaveBlob(new Blob([data], {\n type: contentType\n }), filename);\n return;\n }\n\n const blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL);\n download(blobUrl, filename);\n }\n\n download(blob, url, filename, sourceEventType = \"download\") {\n if (navigator.msSaveBlob) {\n if (!navigator.msSaveBlob(blob, filename)) {\n this.downloadUrl(url, filename);\n }\n\n return;\n }\n\n if (_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) {\n this.downloadUrl(url, filename);\n return;\n }\n\n const blobUrl = URL.createObjectURL(blob);\n download(blobUrl, filename);\n }\n\n}\n\nexports.DownloadManager = DownloadManager;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.viewerCompatibilityParams = void 0;\nconst compatibilityParams = Object.create(null);\n{\n const userAgent = typeof navigator !== \"undefined\" && navigator.userAgent || \"\";\n const platform = typeof navigator !== \"undefined\" && navigator.platform || \"\";\n const maxTouchPoints = typeof navigator !== \"undefined\" && navigator.maxTouchPoints || 1;\n const isAndroid = /Android/.test(userAgent);\n const isIE = /Trident/.test(userAgent);\n const isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === \"MacIntel\" && maxTouchPoints > 1;\n const isIOSChrome = /CriOS/.test(userAgent);\n\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\n }\n })();\n\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n compatibilityParams.maxCanvasPixels = 5242880;\n }\n })();\n}\nconst viewerCompatibilityParams = Object.freeze(compatibilityParams);\nexports.viewerCompatibilityParams = viewerCompatibilityParams;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GenericL10n = void 0;\n\n__w_pdfjs_require__(9);\n\nconst webL10n = document.webL10n;\n\nclass GenericL10n {\n constructor(lang) {\n this._lang = lang;\n this._ready = new Promise((resolve, reject) => {\n webL10n.setLanguage(lang, () => {\n resolve(webL10n);\n });\n });\n }\n\n async getLanguage() {\n const l10n = await this._ready;\n return l10n.getLanguage();\n }\n\n async getDirection() {\n const l10n = await this._ready;\n return l10n.getDirection();\n }\n\n async get(property, args, fallback) {\n const l10n = await this._ready;\n return l10n.get(property, args, fallback);\n }\n\n async translate(element) {\n const l10n = await this._ready;\n return l10n.translate(element);\n }\n\n}\n\nexports.GenericL10n = GenericL10n;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\ndocument.webL10n = function (window, document, undefined) {\n var gL10nData = {};\n var gTextData = '';\n var gTextProp = 'textContent';\n var gLanguage = '';\n var gMacros = {};\n var gReadyState = 'loading';\n var gAsyncResourceLoading = true;\n\n function getL10nResourceLinks() {\n return document.querySelectorAll('link[type=\"application/l10n\"]');\n }\n\n function getL10nDictionary() {\n var script = document.querySelector('script[type=\"application/l10n\"]');\n return script ? JSON.parse(script.innerHTML) : null;\n }\n\n function getTranslatableChildren(element) {\n return element ? element.querySelectorAll('*[data-l10n-id]') : [];\n }\n\n function getL10nAttributes(element) {\n if (!element) return {};\n var l10nId = element.getAttribute('data-l10n-id');\n var l10nArgs = element.getAttribute('data-l10n-args');\n var args = {};\n\n if (l10nArgs) {\n try {\n args = JSON.parse(l10nArgs);\n } catch (e) {\n console.warn('could not parse arguments for #' + l10nId);\n }\n }\n\n return {\n id: l10nId,\n args: args\n };\n }\n\n function xhrLoadText(url, onSuccess, onFailure) {\n onSuccess = onSuccess || function _onSuccess(data) {};\n\n onFailure = onFailure || function _onFailure() {};\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, gAsyncResourceLoading);\n\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType('text/plain; charset=utf-8');\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n if (xhr.status == 200 || xhr.status === 0) {\n onSuccess(xhr.responseText);\n } else {\n onFailure();\n }\n }\n };\n\n xhr.onerror = onFailure;\n xhr.ontimeout = onFailure;\n\n try {\n xhr.send(null);\n } catch (e) {\n onFailure();\n }\n }\n\n function parseResource(href, lang, successCallback, failureCallback) {\n var baseURL = href.replace(/[^\\/]*$/, '') || './';\n\n function evalString(text) {\n if (text.lastIndexOf('\\\\') < 0) return text;\n return text.replace(/\\\\\\\\/g, '\\\\').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\t/g, '\\t').replace(/\\\\b/g, '\\b').replace(/\\\\f/g, '\\f').replace(/\\\\{/g, '{').replace(/\\\\}/g, '}').replace(/\\\\\"/g, '\"').replace(/\\\\'/g, \"'\");\n }\n\n function parseProperties(text, parsedPropertiesCallback) {\n var dictionary = {};\n var reBlank = /^\\s*|\\s*$/;\n var reComment = /^\\s*#|^\\s*$/;\n var reSection = /^\\s*\\[(.*)\\]\\s*$/;\n var reImport = /^\\s*@import\\s+url\\((.*)\\)\\s*$/i;\n var reSplit = /^([^=\\s]*)\\s*=\\s*(.+)$/;\n\n function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) {\n var entries = rawText.replace(reBlank, '').split(/[\\r\\n]+/);\n var currentLang = '*';\n var genericLang = lang.split('-', 1)[0];\n var skipLang = false;\n var match = '';\n\n function nextEntry() {\n while (true) {\n if (!entries.length) {\n parsedRawLinesCallback();\n return;\n }\n\n var line = entries.shift();\n if (reComment.test(line)) continue;\n\n if (extendedSyntax) {\n match = reSection.exec(line);\n\n if (match) {\n currentLang = match[1].toLowerCase();\n skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang;\n continue;\n } else if (skipLang) {\n continue;\n }\n\n match = reImport.exec(line);\n\n if (match) {\n loadImport(baseURL + match[1], nextEntry);\n return;\n }\n }\n\n var tmp = line.match(reSplit);\n\n if (tmp && tmp.length == 3) {\n dictionary[tmp[1]] = evalString(tmp[2]);\n }\n }\n }\n\n nextEntry();\n }\n\n function loadImport(url, callback) {\n xhrLoadText(url, function (content) {\n parseRawLines(content, false, callback);\n }, function () {\n console.warn(url + ' not found.');\n callback();\n });\n }\n\n parseRawLines(text, true, function () {\n parsedPropertiesCallback(dictionary);\n });\n }\n\n xhrLoadText(href, function (response) {\n gTextData += response;\n parseProperties(response, function (data) {\n for (var key in data) {\n var id,\n prop,\n index = key.lastIndexOf('.');\n\n if (index > 0) {\n id = key.substring(0, index);\n prop = key.substring(index + 1);\n } else {\n id = key;\n prop = gTextProp;\n }\n\n if (!gL10nData[id]) {\n gL10nData[id] = {};\n }\n\n gL10nData[id][prop] = data[key];\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n }, failureCallback);\n }\n\n function loadLocale(lang, callback) {\n if (lang) {\n lang = lang.toLowerCase();\n }\n\n callback = callback || function _callback() {};\n\n clear();\n gLanguage = lang;\n var langLinks = getL10nResourceLinks();\n var langCount = langLinks.length;\n\n if (langCount === 0) {\n var dict = getL10nDictionary();\n\n if (dict && dict.locales && dict.default_locale) {\n console.log('using the embedded JSON directory, early way out');\n gL10nData = dict.locales[lang];\n\n if (!gL10nData) {\n var defaultLocale = dict.default_locale.toLowerCase();\n\n for (var anyCaseLang in dict.locales) {\n anyCaseLang = anyCaseLang.toLowerCase();\n\n if (anyCaseLang === lang) {\n gL10nData = dict.locales[lang];\n break;\n } else if (anyCaseLang === defaultLocale) {\n gL10nData = dict.locales[defaultLocale];\n }\n }\n }\n\n callback();\n } else {\n console.log('no resource to load, early way out');\n }\n\n gReadyState = 'complete';\n return;\n }\n\n var onResourceLoaded = null;\n var gResourceCount = 0;\n\n onResourceLoaded = function () {\n gResourceCount++;\n\n if (gResourceCount >= langCount) {\n callback();\n gReadyState = 'complete';\n }\n };\n\n function L10nResourceLink(link) {\n var href = link.href;\n\n this.load = function (lang, callback) {\n parseResource(href, lang, callback, function () {\n console.warn(href + ' not found.');\n console.warn('\"' + lang + '\" resource not found');\n gLanguage = '';\n callback();\n });\n };\n }\n\n for (var i = 0; i < langCount; i++) {\n var resource = new L10nResourceLink(langLinks[i]);\n resource.load(lang, onResourceLoaded);\n }\n }\n\n function clear() {\n gL10nData = {};\n gTextData = '';\n gLanguage = '';\n }\n\n function getPluralRules(lang) {\n var locales2rules = {\n 'af': 3,\n 'ak': 4,\n 'am': 4,\n 'ar': 1,\n 'asa': 3,\n 'az': 0,\n 'be': 11,\n 'bem': 3,\n 'bez': 3,\n 'bg': 3,\n 'bh': 4,\n 'bm': 0,\n 'bn': 3,\n 'bo': 0,\n 'br': 20,\n 'brx': 3,\n 'bs': 11,\n 'ca': 3,\n 'cgg': 3,\n 'chr': 3,\n 'cs': 12,\n 'cy': 17,\n 'da': 3,\n 'de': 3,\n 'dv': 3,\n 'dz': 0,\n 'ee': 3,\n 'el': 3,\n 'en': 3,\n 'eo': 3,\n 'es': 3,\n 'et': 3,\n 'eu': 3,\n 'fa': 0,\n 'ff': 5,\n 'fi': 3,\n 'fil': 4,\n 'fo': 3,\n 'fr': 5,\n 'fur': 3,\n 'fy': 3,\n 'ga': 8,\n 'gd': 24,\n 'gl': 3,\n 'gsw': 3,\n 'gu': 3,\n 'guw': 4,\n 'gv': 23,\n 'ha': 3,\n 'haw': 3,\n 'he': 2,\n 'hi': 4,\n 'hr': 11,\n 'hu': 0,\n 'id': 0,\n 'ig': 0,\n 'ii': 0,\n 'is': 3,\n 'it': 3,\n 'iu': 7,\n 'ja': 0,\n 'jmc': 3,\n 'jv': 0,\n 'ka': 0,\n 'kab': 5,\n 'kaj': 3,\n 'kcg': 3,\n 'kde': 0,\n 'kea': 0,\n 'kk': 3,\n 'kl': 3,\n 'km': 0,\n 'kn': 0,\n 'ko': 0,\n 'ksb': 3,\n 'ksh': 21,\n 'ku': 3,\n 'kw': 7,\n 'lag': 18,\n 'lb': 3,\n 'lg': 3,\n 'ln': 4,\n 'lo': 0,\n 'lt': 10,\n 'lv': 6,\n 'mas': 3,\n 'mg': 4,\n 'mk': 16,\n 'ml': 3,\n 'mn': 3,\n 'mo': 9,\n 'mr': 3,\n 'ms': 0,\n 'mt': 15,\n 'my': 0,\n 'nah': 3,\n 'naq': 7,\n 'nb': 3,\n 'nd': 3,\n 'ne': 3,\n 'nl': 3,\n 'nn': 3,\n 'no': 3,\n 'nr': 3,\n 'nso': 4,\n 'ny': 3,\n 'nyn': 3,\n 'om': 3,\n 'or': 3,\n 'pa': 3,\n 'pap': 3,\n 'pl': 13,\n 'ps': 3,\n 'pt': 3,\n 'rm': 3,\n 'ro': 9,\n 'rof': 3,\n 'ru': 11,\n 'rwk': 3,\n 'sah': 0,\n 'saq': 3,\n 'se': 7,\n 'seh': 3,\n 'ses': 0,\n 'sg': 0,\n 'sh': 11,\n 'shi': 19,\n 'sk': 12,\n 'sl': 14,\n 'sma': 7,\n 'smi': 7,\n 'smj': 7,\n 'smn': 7,\n 'sms': 7,\n 'sn': 3,\n 'so': 3,\n 'sq': 3,\n 'sr': 11,\n 'ss': 3,\n 'ssy': 3,\n 'st': 3,\n 'sv': 3,\n 'sw': 3,\n 'syr': 3,\n 'ta': 3,\n 'te': 3,\n 'teo': 3,\n 'th': 0,\n 'ti': 4,\n 'tig': 3,\n 'tk': 3,\n 'tl': 4,\n 'tn': 3,\n 'to': 0,\n 'tr': 0,\n 'ts': 3,\n 'tzm': 22,\n 'uk': 11,\n 'ur': 3,\n 've': 3,\n 'vi': 0,\n 'vun': 3,\n 'wa': 4,\n 'wae': 3,\n 'wo': 0,\n 'xh': 3,\n 'xog': 3,\n 'yo': 0,\n 'zh': 0,\n 'zu': 3\n };\n\n function isIn(n, list) {\n return list.indexOf(n) !== -1;\n }\n\n function isBetween(n, start, end) {\n return start <= n && n <= end;\n }\n\n var pluralRules = {\n '0': function (n) {\n return 'other';\n },\n '1': function (n) {\n if (isBetween(n % 100, 3, 10)) return 'few';\n if (n === 0) return 'zero';\n if (isBetween(n % 100, 11, 99)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '2': function (n) {\n if (n !== 0 && n % 10 === 0) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '3': function (n) {\n if (n == 1) return 'one';\n return 'other';\n },\n '4': function (n) {\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '5': function (n) {\n if (isBetween(n, 0, 2) && n != 2) return 'one';\n return 'other';\n },\n '6': function (n) {\n if (n === 0) return 'zero';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '7': function (n) {\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '8': function (n) {\n if (isBetween(n, 3, 6)) return 'few';\n if (isBetween(n, 7, 10)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '9': function (n) {\n if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '10': function (n) {\n if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few';\n if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one';\n return 'other';\n },\n '11': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '12': function (n) {\n if (isBetween(n, 2, 4)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '13': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '14': function (n) {\n if (isBetween(n % 100, 3, 4)) return 'few';\n if (n % 100 == 2) return 'two';\n if (n % 100 == 1) return 'one';\n return 'other';\n },\n '15': function (n) {\n if (n === 0 || isBetween(n % 100, 2, 10)) return 'few';\n if (isBetween(n % 100, 11, 19)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '16': function (n) {\n if (n % 10 == 1 && n != 11) return 'one';\n return 'other';\n },\n '17': function (n) {\n if (n == 3) return 'few';\n if (n === 0) return 'zero';\n if (n == 6) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '18': function (n) {\n if (n === 0) return 'zero';\n if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one';\n return 'other';\n },\n '19': function (n) {\n if (isBetween(n, 2, 10)) return 'few';\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '20': function (n) {\n if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few';\n if (n % 1000000 === 0 && n !== 0) return 'many';\n if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two';\n if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one';\n return 'other';\n },\n '21': function (n) {\n if (n === 0) return 'zero';\n if (n == 1) return 'one';\n return 'other';\n },\n '22': function (n) {\n if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one';\n return 'other';\n },\n '23': function (n) {\n if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one';\n return 'other';\n },\n '24': function (n) {\n if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few';\n if (isIn(n, [2, 12])) return 'two';\n if (isIn(n, [1, 11])) return 'one';\n return 'other';\n }\n };\n var index = locales2rules[lang.replace(/-.*$/, '')];\n\n if (!(index in pluralRules)) {\n console.warn('plural form unknown for [' + lang + ']');\n return function () {\n return 'other';\n };\n }\n\n return pluralRules[index];\n }\n\n gMacros.plural = function (str, param, key, prop) {\n var n = parseFloat(param);\n if (isNaN(n)) return str;\n if (prop != gTextProp) return str;\n\n if (!gMacros._pluralRules) {\n gMacros._pluralRules = getPluralRules(gLanguage);\n }\n\n var index = '[' + gMacros._pluralRules(n) + ']';\n\n if (n === 0 && key + '[zero]' in gL10nData) {\n str = gL10nData[key + '[zero]'][prop];\n } else if (n == 1 && key + '[one]' in gL10nData) {\n str = gL10nData[key + '[one]'][prop];\n } else if (n == 2 && key + '[two]' in gL10nData) {\n str = gL10nData[key + '[two]'][prop];\n } else if (key + index in gL10nData) {\n str = gL10nData[key + index][prop];\n } else if (key + '[other]' in gL10nData) {\n str = gL10nData[key + '[other]'][prop];\n }\n\n return str;\n };\n\n function getL10nData(key, args, fallback) {\n var data = gL10nData[key];\n\n if (!data) {\n console.warn('#' + key + ' is undefined.');\n\n if (!fallback) {\n return null;\n }\n\n data = fallback;\n }\n\n var rv = {};\n\n for (var prop in data) {\n var str = data[prop];\n str = substIndexes(str, args, key, prop);\n str = substArguments(str, args, key);\n rv[prop] = str;\n }\n\n return rv;\n }\n\n function substIndexes(str, args, key, prop) {\n var reIndex = /\\{\\[\\s*([a-zA-Z]+)\\(([a-zA-Z]+)\\)\\s*\\]\\}/;\n var reMatch = reIndex.exec(str);\n if (!reMatch || !reMatch.length) return str;\n var macroName = reMatch[1];\n var paramName = reMatch[2];\n var param;\n\n if (args && paramName in args) {\n param = args[paramName];\n } else if (paramName in gL10nData) {\n param = gL10nData[paramName];\n }\n\n if (macroName in gMacros) {\n var macro = gMacros[macroName];\n str = macro(str, param, key, prop);\n }\n\n return str;\n }\n\n function substArguments(str, args, key) {\n var reArgs = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\n return str.replace(reArgs, function (matched_text, arg) {\n if (args && arg in args) {\n return args[arg];\n }\n\n if (arg in gL10nData) {\n return gL10nData[arg];\n }\n\n console.log('argument {{' + arg + '}} for #' + key + ' is undefined.');\n return matched_text;\n });\n }\n\n function translateElement(element) {\n var l10n = getL10nAttributes(element);\n if (!l10n.id) return;\n var data = getL10nData(l10n.id, l10n.args);\n\n if (!data) {\n console.warn('#' + l10n.id + ' is undefined.');\n return;\n }\n\n if (data[gTextProp]) {\n if (getChildElementCount(element) === 0) {\n element[gTextProp] = data[gTextProp];\n } else {\n var children = element.childNodes;\n var found = false;\n\n for (var i = 0, l = children.length; i < l; i++) {\n if (children[i].nodeType === 3 && /\\S/.test(children[i].nodeValue)) {\n if (found) {\n children[i].nodeValue = '';\n } else {\n children[i].nodeValue = data[gTextProp];\n found = true;\n }\n }\n }\n\n if (!found) {\n var textNode = document.createTextNode(data[gTextProp]);\n element.insertBefore(textNode, element.firstChild);\n }\n }\n\n delete data[gTextProp];\n }\n\n for (var k in data) {\n element[k] = data[k];\n }\n }\n\n function getChildElementCount(element) {\n if (element.children) {\n return element.children.length;\n }\n\n if (typeof element.childElementCount !== 'undefined') {\n return element.childElementCount;\n }\n\n var count = 0;\n\n for (var i = 0; i < element.childNodes.length; i++) {\n count += element.nodeType === 1 ? 1 : 0;\n }\n\n return count;\n }\n\n function translateFragment(element) {\n element = element || document.documentElement;\n var children = getTranslatableChildren(element);\n var elementCount = children.length;\n\n for (var i = 0; i < elementCount; i++) {\n translateElement(children[i]);\n }\n\n translateElement(element);\n }\n\n return {\n get: function (key, args, fallbackString) {\n var index = key.lastIndexOf('.');\n var prop = gTextProp;\n\n if (index > 0) {\n prop = key.substring(index + 1);\n key = key.substring(0, index);\n }\n\n var fallback;\n\n if (fallbackString) {\n fallback = {};\n fallback[prop] = fallbackString;\n }\n\n var data = getL10nData(key, args, fallback);\n\n if (data && prop in data) {\n return data[prop];\n }\n\n return '{{' + key + '}}';\n },\n getData: function () {\n return gL10nData;\n },\n getText: function () {\n return gTextData;\n },\n getLanguage: function () {\n return gLanguage;\n },\n setLanguage: function (lang, callback) {\n loadLocale(lang, function () {\n if (callback) callback();\n });\n },\n getDirection: function () {\n var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];\n var shortCode = gLanguage.split('-', 1)[0];\n return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr';\n },\n translate: translateFragment,\n getReadyState: function () {\n return gReadyState;\n },\n ready: function (callback) {\n if (!callback) {\n return;\n } else if (gReadyState == 'complete' || gReadyState == 'interactive') {\n window.setTimeout(function () {\n callback();\n });\n } else if (document.addEventListener) {\n document.addEventListener('localized', function once() {\n document.removeEventListener('localized', once);\n callback();\n });\n }\n }\n };\n}(window, document);\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFFindController = exports.FindState = void 0;\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_find_utils = __w_pdfjs_require__(11);\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nconst FindState = {\n FOUND: 0,\n NOT_FOUND: 1,\n WRAPPED: 2,\n PENDING: 3\n};\nexports.FindState = FindState;\nconst FIND_TIMEOUT = 250;\nconst MATCH_SCROLL_OFFSET_TOP = -50;\nconst MATCH_SCROLL_OFFSET_LEFT = -400;\nconst CHARACTERS_TO_NORMALIZE = {\n \"\\u2018\": \"'\",\n \"\\u2019\": \"'\",\n \"\\u201A\": \"'\",\n \"\\u201B\": \"'\",\n \"\\u201C\": '\"',\n \"\\u201D\": '\"',\n \"\\u201E\": '\"',\n \"\\u201F\": '\"',\n \"\\u00BC\": \"1/4\",\n \"\\u00BD\": \"1/2\",\n \"\\u00BE\": \"3/4\"\n};\nlet normalizationRegex = null;\n\nfunction normalize(text) {\n if (!normalizationRegex) {\n const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(\"\");\n normalizationRegex = new RegExp(`[${replace}]`, \"g\");\n }\n\n return text.replace(normalizationRegex, function (ch) {\n return CHARACTERS_TO_NORMALIZE[ch];\n });\n}\n\nclass PDFFindController {\n constructor({\n linkService,\n eventBus\n }) {\n this._linkService = linkService;\n this._eventBus = eventBus;\n\n this._reset();\n\n eventBus._on(\"findbarclose\", this._onFindBarClose.bind(this));\n }\n\n get highlightMatches() {\n return this._highlightMatches;\n }\n\n get pageMatches() {\n return this._pageMatches;\n }\n\n get pageMatchesLength() {\n return this._pageMatchesLength;\n }\n\n get selected() {\n return this._selected;\n }\n\n get state() {\n return this._state;\n }\n\n setDocument(pdfDocument) {\n if (this._pdfDocument) {\n this._reset();\n }\n\n if (!pdfDocument) {\n return;\n }\n\n this._pdfDocument = pdfDocument;\n\n this._firstPageCapability.resolve();\n }\n\n executeCommand(cmd, state) {\n if (!state) {\n return;\n }\n\n const pdfDocument = this._pdfDocument;\n\n if (this._state === null || this._shouldDirtyMatch(cmd, state)) {\n this._dirtyMatch = true;\n }\n\n this._state = state;\n\n if (cmd !== \"findhighlightallchange\") {\n this._updateUIState(FindState.PENDING);\n }\n\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n\n this._extractText();\n\n const findbarClosed = !this._highlightMatches;\n const pendingTimeout = !!this._findTimeout;\n\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n\n if (cmd === \"find\") {\n this._findTimeout = setTimeout(() => {\n this._nextMatch();\n\n this._findTimeout = null;\n }, FIND_TIMEOUT);\n } else if (this._dirtyMatch) {\n this._nextMatch();\n } else if (cmd === \"findagain\") {\n this._nextMatch();\n\n if (findbarClosed && this._state.highlightAll) {\n this._updateAllPages();\n }\n } else if (cmd === \"findhighlightallchange\") {\n if (pendingTimeout) {\n this._nextMatch();\n } else {\n this._highlightMatches = true;\n }\n\n this._updateAllPages();\n } else {\n this._nextMatch();\n }\n });\n }\n\n scrollMatchIntoView({\n element = null,\n pageIndex = -1,\n matchIndex = -1\n }) {\n if (!this._scrollMatches || !element) {\n return;\n } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {\n return;\n } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {\n return;\n }\n\n this._scrollMatches = false;\n const spot = {\n top: MATCH_SCROLL_OFFSET_TOP,\n left: MATCH_SCROLL_OFFSET_LEFT\n };\n (0, _ui_utils.scrollIntoView)(element, spot, true);\n }\n\n _reset() {\n this._highlightMatches = false;\n this._scrollMatches = false;\n this._pdfDocument = null;\n this._pageMatches = [];\n this._pageMatchesLength = [];\n this._state = null;\n this._selected = {\n pageIdx: -1,\n matchIdx: -1\n };\n this._offset = {\n pageIdx: null,\n matchIdx: null,\n wrapped: false\n };\n this._extractTextPromises = [];\n this._pageContents = [];\n this._matchesCountTotal = 0;\n this._pagesToSearch = null;\n this._pendingFindMatches = Object.create(null);\n this._resumePageIdx = null;\n this._dirtyMatch = false;\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();\n }\n\n get _query() {\n if (this._state.query !== this._rawQuery) {\n this._rawQuery = this._state.query;\n this._normalizedQuery = normalize(this._state.query);\n }\n\n return this._normalizedQuery;\n }\n\n _shouldDirtyMatch(cmd, state) {\n if (state.query !== this._state.query) {\n return true;\n }\n\n switch (cmd) {\n case \"findagain\":\n const pageNumber = this._selected.pageIdx + 1;\n const linkService = this._linkService;\n\n if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) {\n return true;\n }\n\n return false;\n\n case \"findhighlightallchange\":\n return false;\n }\n\n return true;\n }\n\n _prepareMatches(matchesWithLength, matches, matchesLength) {\n function isSubTerm(currentIndex) {\n const currentElem = matchesWithLength[currentIndex];\n const nextElem = matchesWithLength[currentIndex + 1];\n\n if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) {\n currentElem.skipped = true;\n return true;\n }\n\n for (let i = currentIndex - 1; i >= 0; i--) {\n const prevElem = matchesWithLength[i];\n\n if (prevElem.skipped) {\n continue;\n }\n\n if (prevElem.match + prevElem.matchLength < currentElem.match) {\n break;\n }\n\n if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) {\n currentElem.skipped = true;\n return true;\n }\n }\n\n return false;\n }\n\n matchesWithLength.sort(function (a, b) {\n return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match;\n });\n\n for (let i = 0, len = matchesWithLength.length; i < len; i++) {\n if (isSubTerm(i)) {\n continue;\n }\n\n matches.push(matchesWithLength[i].match);\n matchesLength.push(matchesWithLength[i].matchLength);\n }\n }\n\n _isEntireWord(content, startIdx, length) {\n if (startIdx > 0) {\n const first = content.charCodeAt(startIdx);\n const limit = content.charCodeAt(startIdx - 1);\n\n if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n\n const endIdx = startIdx + length - 1;\n\n if (endIdx < content.length - 1) {\n const last = content.charCodeAt(endIdx);\n const limit = content.charCodeAt(endIdx + 1);\n\n if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n\n return true;\n }\n\n _calculatePhraseMatch(query, pageIndex, pageContent, entireWord) {\n const matches = [];\n const queryLen = query.length;\n let matchIdx = -queryLen;\n\n while (true) {\n matchIdx = pageContent.indexOf(query, matchIdx + queryLen);\n\n if (matchIdx === -1) {\n break;\n }\n\n if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) {\n continue;\n }\n\n matches.push(matchIdx);\n }\n\n this._pageMatches[pageIndex] = matches;\n }\n\n _calculateWordMatch(query, pageIndex, pageContent, entireWord) {\n const matchesWithLength = [];\n const queryArray = query.match(/\\S+/g);\n\n for (let i = 0, len = queryArray.length; i < len; i++) {\n const subquery = queryArray[i];\n const subqueryLen = subquery.length;\n let matchIdx = -subqueryLen;\n\n while (true) {\n matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen);\n\n if (matchIdx === -1) {\n break;\n }\n\n if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) {\n continue;\n }\n\n matchesWithLength.push({\n match: matchIdx,\n matchLength: subqueryLen,\n skipped: false\n });\n }\n }\n\n this._pageMatchesLength[pageIndex] = [];\n this._pageMatches[pageIndex] = [];\n\n this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]);\n }\n\n _calculateMatch(pageIndex) {\n let pageContent = this._pageContents[pageIndex];\n let query = this._query;\n const {\n caseSensitive,\n entireWord,\n phraseSearch\n } = this._state;\n\n if (query.length === 0) {\n return;\n }\n\n if (!caseSensitive) {\n pageContent = pageContent.toLowerCase();\n query = query.toLowerCase();\n }\n\n if (phraseSearch) {\n this._calculatePhraseMatch(query, pageIndex, pageContent, entireWord);\n } else {\n this._calculateWordMatch(query, pageIndex, pageContent, entireWord);\n }\n\n if (this._state.highlightAll) {\n this._updatePage(pageIndex);\n }\n\n if (this._resumePageIdx === pageIndex) {\n this._resumePageIdx = null;\n\n this._nextPageMatch();\n }\n\n const pageMatchesCount = this._pageMatches[pageIndex].length;\n\n if (pageMatchesCount > 0) {\n this._matchesCountTotal += pageMatchesCount;\n\n this._updateUIResultsCount();\n }\n }\n\n _extractText() {\n if (this._extractTextPromises.length > 0) {\n return;\n }\n\n let promise = Promise.resolve();\n\n for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) {\n const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._extractTextPromises[i] = extractTextCapability.promise;\n promise = promise.then(() => {\n return this._pdfDocument.getPage(i + 1).then(pdfPage => {\n return pdfPage.getTextContent({\n normalizeWhitespace: true\n });\n }).then(textContent => {\n const textItems = textContent.items;\n const strBuf = [];\n\n for (let j = 0, jj = textItems.length; j < jj; j++) {\n strBuf.push(textItems[j].str);\n }\n\n this._pageContents[i] = normalize(strBuf.join(\"\"));\n extractTextCapability.resolve(i);\n }, reason => {\n console.error(`Unable to get text content for page ${i + 1}`, reason);\n this._pageContents[i] = \"\";\n extractTextCapability.resolve(i);\n });\n });\n }\n }\n\n _updatePage(index) {\n if (this._scrollMatches && this._selected.pageIdx === index) {\n this._linkService.page = index + 1;\n }\n\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: index\n });\n }\n\n _updateAllPages() {\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: -1\n });\n }\n\n _nextMatch() {\n const previous = this._state.findPrevious;\n const currentPageIndex = this._linkService.page - 1;\n const numPages = this._linkService.pagesCount;\n this._highlightMatches = true;\n\n if (this._dirtyMatch) {\n this._dirtyMatch = false;\n this._selected.pageIdx = this._selected.matchIdx = -1;\n this._offset.pageIdx = currentPageIndex;\n this._offset.matchIdx = null;\n this._offset.wrapped = false;\n this._resumePageIdx = null;\n this._pageMatches.length = 0;\n this._pageMatchesLength.length = 0;\n this._matchesCountTotal = 0;\n\n this._updateAllPages();\n\n for (let i = 0; i < numPages; i++) {\n if (this._pendingFindMatches[i] === true) {\n continue;\n }\n\n this._pendingFindMatches[i] = true;\n\n this._extractTextPromises[i].then(pageIdx => {\n delete this._pendingFindMatches[pageIdx];\n\n this._calculateMatch(pageIdx);\n });\n }\n }\n\n if (this._query === \"\") {\n this._updateUIState(FindState.FOUND);\n\n return;\n }\n\n if (this._resumePageIdx) {\n return;\n }\n\n const offset = this._offset;\n this._pagesToSearch = numPages;\n\n if (offset.matchIdx !== null) {\n const numPageMatches = this._pageMatches[offset.pageIdx].length;\n\n if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {\n offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;\n\n this._updateMatch(true);\n\n return;\n }\n\n this._advanceOffsetPage(previous);\n }\n\n this._nextPageMatch();\n }\n\n _matchesReady(matches) {\n const offset = this._offset;\n const numMatches = matches.length;\n const previous = this._state.findPrevious;\n\n if (numMatches) {\n offset.matchIdx = previous ? numMatches - 1 : 0;\n\n this._updateMatch(true);\n\n return true;\n }\n\n this._advanceOffsetPage(previous);\n\n if (offset.wrapped) {\n offset.matchIdx = null;\n\n if (this._pagesToSearch < 0) {\n this._updateMatch(false);\n\n return true;\n }\n }\n\n return false;\n }\n\n _nextPageMatch() {\n if (this._resumePageIdx !== null) {\n console.error(\"There can only be one pending page.\");\n }\n\n let matches = null;\n\n do {\n const pageIdx = this._offset.pageIdx;\n matches = this._pageMatches[pageIdx];\n\n if (!matches) {\n this._resumePageIdx = pageIdx;\n break;\n }\n } while (!this._matchesReady(matches));\n }\n\n _advanceOffsetPage(previous) {\n const offset = this._offset;\n const numPages = this._linkService.pagesCount;\n offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;\n offset.matchIdx = null;\n this._pagesToSearch--;\n\n if (offset.pageIdx >= numPages || offset.pageIdx < 0) {\n offset.pageIdx = previous ? numPages - 1 : 0;\n offset.wrapped = true;\n }\n }\n\n _updateMatch(found = false) {\n let state = FindState.NOT_FOUND;\n const wrapped = this._offset.wrapped;\n this._offset.wrapped = false;\n\n if (found) {\n const previousPage = this._selected.pageIdx;\n this._selected.pageIdx = this._offset.pageIdx;\n this._selected.matchIdx = this._offset.matchIdx;\n state = wrapped ? FindState.WRAPPED : FindState.FOUND;\n\n if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {\n this._updatePage(previousPage);\n }\n }\n\n this._updateUIState(state, this._state.findPrevious);\n\n if (this._selected.pageIdx !== -1) {\n this._scrollMatches = true;\n\n this._updatePage(this._selected.pageIdx);\n }\n }\n\n _onFindBarClose(evt) {\n const pdfDocument = this._pdfDocument;\n\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n\n if (this._resumePageIdx) {\n this._resumePageIdx = null;\n this._dirtyMatch = true;\n }\n\n this._updateUIState(FindState.FOUND);\n\n this._highlightMatches = false;\n\n this._updateAllPages();\n });\n }\n\n _requestMatchesCount() {\n const {\n pageIdx,\n matchIdx\n } = this._selected;\n let current = 0,\n total = this._matchesCountTotal;\n\n if (matchIdx !== -1) {\n for (let i = 0; i < pageIdx; i++) {\n current += this._pageMatches[i] && this._pageMatches[i].length || 0;\n }\n\n current += matchIdx + 1;\n }\n\n if (current < 1 || current > total) {\n current = total = 0;\n }\n\n return {\n current,\n total\n };\n }\n\n _updateUIResultsCount() {\n this._eventBus.dispatch(\"updatefindmatchescount\", {\n source: this,\n matchesCount: this._requestMatchesCount()\n });\n }\n\n _updateUIState(state, previous) {\n this._eventBus.dispatch(\"updatefindcontrolstate\", {\n source: this,\n state,\n previous,\n matchesCount: this._requestMatchesCount(),\n rawQuery: this._state ? this._state.query : null\n });\n }\n\n}\n\nexports.PDFFindController = PDFFindController;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCharacterType = getCharacterType;\nexports.CharacterType = void 0;\nconst CharacterType = {\n SPACE: 0,\n ALPHA_LETTER: 1,\n PUNCT: 2,\n HAN_LETTER: 3,\n KATAKANA_LETTER: 4,\n HIRAGANA_LETTER: 5,\n HALFWIDTH_KATAKANA_LETTER: 6,\n THAI_LETTER: 7\n};\nexports.CharacterType = CharacterType;\n\nfunction isAlphabeticalScript(charCode) {\n return charCode < 0x2e80;\n}\n\nfunction isAscii(charCode) {\n return (charCode & 0xff80) === 0;\n}\n\nfunction isAsciiAlpha(charCode) {\n return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a;\n}\n\nfunction isAsciiDigit(charCode) {\n return charCode >= 0x30 && charCode <= 0x39;\n}\n\nfunction isAsciiSpace(charCode) {\n return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a;\n}\n\nfunction isHan(charCode) {\n return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff;\n}\n\nfunction isKatakana(charCode) {\n return charCode >= 0x30a0 && charCode <= 0x30ff;\n}\n\nfunction isHiragana(charCode) {\n return charCode >= 0x3040 && charCode <= 0x309f;\n}\n\nfunction isHalfwidthKatakana(charCode) {\n return charCode >= 0xff60 && charCode <= 0xff9f;\n}\n\nfunction isThai(charCode) {\n return (charCode & 0xff80) === 0x0e00;\n}\n\nfunction getCharacterType(charCode) {\n if (isAlphabeticalScript(charCode)) {\n if (isAscii(charCode)) {\n if (isAsciiSpace(charCode)) {\n return CharacterType.SPACE;\n } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) {\n return CharacterType.ALPHA_LETTER;\n }\n\n return CharacterType.PUNCT;\n } else if (isThai(charCode)) {\n return CharacterType.THAI_LETTER;\n } else if (charCode === 0xa0) {\n return CharacterType.SPACE;\n }\n\n return CharacterType.ALPHA_LETTER;\n }\n\n if (isHan(charCode)) {\n return CharacterType.HAN_LETTER;\n } else if (isKatakana(charCode)) {\n return CharacterType.KATAKANA_LETTER;\n } else if (isHiragana(charCode)) {\n return CharacterType.HIRAGANA_LETTER;\n } else if (isHalfwidthKatakana(charCode)) {\n return CharacterType.HALFWIDTH_KATAKANA_LETTER;\n }\n\n return CharacterType.ALPHA_LETTER;\n}\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isDestHashesEqual = isDestHashesEqual;\nexports.isDestArraysEqual = isDestArraysEqual;\nexports.PDFHistory = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nconst HASH_CHANGE_TIMEOUT = 1000;\nconst POSITION_UPDATED_THRESHOLD = 50;\nconst UPDATE_VIEWAREA_TIMEOUT = 1000;\n\nfunction getCurrentHash() {\n return document.location.hash;\n}\n\nclass PDFHistory {\n constructor({\n linkService,\n eventBus\n }) {\n this.linkService = linkService;\n this.eventBus = eventBus;\n this._initialized = false;\n this._fingerprint = \"\";\n this.reset();\n this._boundEvents = null;\n this._isViewerInPresentationMode = false;\n\n this.eventBus._on(\"presentationmodechanged\", evt => {\n this._isViewerInPresentationMode = evt.active || evt.switchInProgress;\n });\n\n this.eventBus._on(\"pagesinit\", () => {\n this._isPagesLoaded = false;\n\n const onPagesLoaded = evt => {\n this.eventBus._off(\"pagesloaded\", onPagesLoaded);\n\n this._isPagesLoaded = !!evt.pagesCount;\n };\n\n this.eventBus._on(\"pagesloaded\", onPagesLoaded);\n });\n }\n\n initialize({\n fingerprint,\n resetHistory = false,\n updateUrl = false\n }) {\n if (!fingerprint || typeof fingerprint !== \"string\") {\n console.error('PDFHistory.initialize: The \"fingerprint\" must be a non-empty string.');\n return;\n }\n\n if (this._initialized) {\n this.reset();\n }\n\n const reInitialized = this._fingerprint !== \"\" && this._fingerprint !== fingerprint;\n this._fingerprint = fingerprint;\n this._updateUrl = updateUrl === true;\n this._initialized = true;\n\n this._bindEvents();\n\n const state = window.history.state;\n this._popStateInProgress = false;\n this._blockHashChange = 0;\n this._currentHash = getCurrentHash();\n this._numPositionUpdates = 0;\n this._uid = this._maxUid = 0;\n this._destination = null;\n this._position = null;\n\n if (!this._isValidState(state, true) || resetHistory) {\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash(true);\n\n if (!hash || reInitialized || resetHistory) {\n this._pushOrReplaceState(null, true);\n\n return;\n }\n\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n\n return;\n }\n\n const destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if (this._uid > this._maxUid) {\n this._maxUid = this._uid;\n }\n\n if (destination.rotation !== undefined) {\n this._initialRotation = destination.rotation;\n }\n\n if (destination.dest) {\n this._initialBookmark = JSON.stringify(destination.dest);\n this._destination.page = null;\n } else if (destination.hash) {\n this._initialBookmark = destination.hash;\n } else if (destination.page) {\n this._initialBookmark = `page=${destination.page}`;\n }\n }\n\n reset() {\n if (this._initialized) {\n this._pageHide();\n\n this._initialized = false;\n\n this._unbindEvents();\n }\n\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n this._initialBookmark = null;\n this._initialRotation = null;\n }\n\n push({\n namedDest = null,\n explicitDest,\n pageNumber\n }) {\n if (!this._initialized) {\n return;\n }\n\n if (namedDest && typeof namedDest !== \"string\") {\n console.error(\"PDFHistory.push: \" + `\"${namedDest}\" is not a valid namedDest parameter.`);\n return;\n } else if (!Array.isArray(explicitDest)) {\n console.error(\"PDFHistory.push: \" + `\"${explicitDest}\" is not a valid explicitDest parameter.`);\n return;\n } else if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.linkService.pagesCount)) {\n if (pageNumber !== null || this._destination) {\n console.error(\"PDFHistory.push: \" + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n }\n\n const hash = namedDest || JSON.stringify(explicitDest);\n\n if (!hash) {\n return;\n }\n\n let forceReplace = false;\n\n if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {\n if (this._destination.page) {\n return;\n }\n\n forceReplace = true;\n }\n\n if (this._popStateInProgress && !forceReplace) {\n return;\n }\n\n this._pushOrReplaceState({\n dest: explicitDest,\n hash,\n page: pageNumber,\n rotation: this.linkService.rotation\n }, forceReplace);\n\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n }\n\n pushCurrentPosition() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n this._tryPushCurrentPosition();\n }\n\n back() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n const state = window.history.state;\n\n if (this._isValidState(state) && state.uid > 0) {\n window.history.back();\n }\n }\n\n forward() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n\n const state = window.history.state;\n\n if (this._isValidState(state) && state.uid < this._maxUid) {\n window.history.forward();\n }\n }\n\n get popStateInProgress() {\n return this._initialized && (this._popStateInProgress || this._blockHashChange > 0);\n }\n\n get initialBookmark() {\n return this._initialized ? this._initialBookmark : null;\n }\n\n get initialRotation() {\n return this._initialized ? this._initialRotation : null;\n }\n\n _pushOrReplaceState(destination, forceReplace = false) {\n const shouldReplace = forceReplace || !this._destination;\n const newState = {\n fingerprint: this._fingerprint,\n uid: shouldReplace ? this._uid : this._uid + 1,\n destination\n };\n\n this._updateInternalState(destination, newState.uid);\n\n let newUrl;\n\n if (this._updateUrl && destination && destination.hash) {\n const baseUrl = document.location.href.split(\"#\")[0];\n\n if (!baseUrl.startsWith(\"file://\")) {\n newUrl = `${baseUrl}#${destination.hash}`;\n }\n }\n\n if (shouldReplace) {\n window.history.replaceState(newState, \"\", newUrl);\n } else {\n this._maxUid = this._uid;\n window.history.pushState(newState, \"\", newUrl);\n }\n }\n\n _tryPushCurrentPosition(temporary = false) {\n if (!this._position) {\n return;\n }\n\n let position = this._position;\n\n if (temporary) {\n position = Object.assign(Object.create(null), this._position);\n position.temporary = true;\n }\n\n if (!this._destination) {\n this._pushOrReplaceState(position);\n\n return;\n }\n\n if (this._destination.temporary) {\n this._pushOrReplaceState(position, true);\n\n return;\n }\n\n if (this._destination.hash === position.hash) {\n return;\n }\n\n if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {\n return;\n }\n\n let forceReplace = false;\n\n if (this._destination.page >= position.first && this._destination.page <= position.page) {\n if (this._destination.dest || !this._destination.first) {\n return;\n }\n\n forceReplace = true;\n }\n\n this._pushOrReplaceState(position, forceReplace);\n }\n\n _isValidState(state, checkReload = false) {\n if (!state) {\n return false;\n }\n\n if (state.fingerprint !== this._fingerprint) {\n if (checkReload) {\n if (typeof state.fingerprint !== \"string\" || state.fingerprint.length !== this._fingerprint.length) {\n return false;\n }\n\n const [perfEntry] = performance.getEntriesByType(\"navigation\");\n\n if (!perfEntry || perfEntry.type !== \"reload\") {\n return false;\n }\n } else {\n return false;\n }\n }\n\n if (!Number.isInteger(state.uid) || state.uid < 0) {\n return false;\n }\n\n if (state.destination === null || typeof state.destination !== \"object\") {\n return false;\n }\n\n return true;\n }\n\n _updateInternalState(destination, uid, removeTemporary = false) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n if (removeTemporary && destination && destination.temporary) {\n delete destination.temporary;\n }\n\n this._destination = destination;\n this._uid = uid;\n this._numPositionUpdates = 0;\n }\n\n _parseCurrentHash(checkNameddest = false) {\n const hash = unescape(getCurrentHash()).substring(1);\n const params = (0, _ui_utils.parseQueryString)(hash);\n const nameddest = params.nameddest || \"\";\n let page = params.page | 0;\n\n if (!(Number.isInteger(page) && page > 0 && page <= this.linkService.pagesCount) || checkNameddest && nameddest.length > 0) {\n page = null;\n }\n\n return {\n hash,\n page,\n rotation: this.linkService.rotation\n };\n }\n\n _updateViewarea({\n location\n }) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n\n this._position = {\n hash: this._isViewerInPresentationMode ? `page=${location.pageNumber}` : location.pdfOpenParams.substring(1),\n page: this.linkService.page,\n first: location.pageNumber,\n rotation: location.rotation\n };\n\n if (this._popStateInProgress) {\n return;\n }\n\n if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {\n this._numPositionUpdates++;\n }\n\n if (UPDATE_VIEWAREA_TIMEOUT > 0) {\n this._updateViewareaTimeout = setTimeout(() => {\n if (!this._popStateInProgress) {\n this._tryPushCurrentPosition(true);\n }\n\n this._updateViewareaTimeout = null;\n }, UPDATE_VIEWAREA_TIMEOUT);\n }\n }\n\n _popState({\n state\n }) {\n const newHash = getCurrentHash(),\n hashChanged = this._currentHash !== newHash;\n this._currentHash = newHash;\n\n if (!state) {\n this._uid++;\n\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash();\n\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n\n return;\n }\n\n if (!this._isValidState(state)) {\n return;\n }\n\n this._popStateInProgress = true;\n\n if (hashChanged) {\n this._blockHashChange++;\n (0, _ui_utils.waitOnEventOrTimeout)({\n target: window,\n name: \"hashchange\",\n delay: HASH_CHANGE_TIMEOUT\n }).then(() => {\n this._blockHashChange--;\n });\n }\n\n const destination = state.destination;\n\n this._updateInternalState(destination, state.uid, true);\n\n if (this._uid > this._maxUid) {\n this._maxUid = this._uid;\n }\n\n if ((0, _ui_utils.isValidRotation)(destination.rotation)) {\n this.linkService.rotation = destination.rotation;\n }\n\n if (destination.dest) {\n this.linkService.navigateTo(destination.dest);\n } else if (destination.hash) {\n this.linkService.setHash(destination.hash);\n } else if (destination.page) {\n this.linkService.page = destination.page;\n }\n\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n\n _pageHide() {\n if (!this._destination || this._destination.temporary) {\n this._tryPushCurrentPosition();\n }\n }\n\n _bindEvents() {\n if (this._boundEvents) {\n return;\n }\n\n this._boundEvents = {\n updateViewarea: this._updateViewarea.bind(this),\n popState: this._popState.bind(this),\n pageHide: this._pageHide.bind(this)\n };\n\n this.eventBus._on(\"updateviewarea\", this._boundEvents.updateViewarea);\n\n window.addEventListener(\"popstate\", this._boundEvents.popState);\n window.addEventListener(\"pagehide\", this._boundEvents.pageHide);\n }\n\n _unbindEvents() {\n if (!this._boundEvents) {\n return;\n }\n\n this.eventBus._off(\"updateviewarea\", this._boundEvents.updateViewarea);\n\n window.removeEventListener(\"popstate\", this._boundEvents.popState);\n window.removeEventListener(\"pagehide\", this._boundEvents.pageHide);\n this._boundEvents = null;\n }\n\n}\n\nexports.PDFHistory = PDFHistory;\n\nfunction isDestHashesEqual(destHash, pushHash) {\n if (typeof destHash !== \"string\" || typeof pushHash !== \"string\") {\n return false;\n }\n\n if (destHash === pushHash) {\n return true;\n }\n\n const {\n nameddest\n } = (0, _ui_utils.parseQueryString)(destHash);\n\n if (nameddest === pushHash) {\n return true;\n }\n\n return false;\n}\n\nfunction isDestArraysEqual(firstDest, secondDest) {\n function isEntryEqual(first, second) {\n if (typeof first !== typeof second) {\n return false;\n }\n\n if (Array.isArray(first) || Array.isArray(second)) {\n return false;\n }\n\n if (first !== null && typeof first === \"object\" && second !== null) {\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (const key in first) {\n if (!isEntryEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return first === second || Number.isNaN(first) && Number.isNaN(second);\n }\n\n if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {\n return false;\n }\n\n if (firstDest.length !== secondDest.length) {\n return false;\n }\n\n for (let i = 0, ii = firstDest.length; i < ii; i++) {\n if (!isEntryEqual(firstDest[i], secondDest[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFPageView = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_rendering_queue = __w_pdfjs_require__(14);\n\nvar _viewer_compatibility = __w_pdfjs_require__(7);\n\nconst MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216;\n\nclass PDFPageView {\n constructor(options) {\n const container = options.container;\n const defaultViewport = options.defaultViewport;\n this.id = options.id;\n this.renderingId = \"page\" + this.id;\n this.pdfPage = null;\n this.pageLabel = null;\n this.rotation = 0;\n this.scale = options.scale || _ui_utils.DEFAULT_SCALE;\n this.viewport = defaultViewport;\n this.pdfPageRotate = defaultViewport.rotation;\n this._annotationStorage = options.annotationStorage || null;\n this._optionalContentConfigPromise = options.optionalContentConfigPromise || null;\n this.hasRestrictedScaling = false;\n this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.renderInteractiveForms = typeof options.renderInteractiveForms === \"boolean\" ? options.renderInteractiveForms : true;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS;\n this.eventBus = options.eventBus;\n this.renderingQueue = options.renderingQueue;\n this.textLayerFactory = options.textLayerFactory;\n this.annotationLayerFactory = options.annotationLayerFactory;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.enableWebGL = options.enableWebGL || false;\n this.l10n = options.l10n || _ui_utils.NullL10n;\n this.paintTask = null;\n this.paintedViewportMap = new WeakMap();\n this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;\n this.resume = null;\n this.error = null;\n this.annotationLayer = null;\n this.textLayer = null;\n this.zoomLayer = null;\n const div = document.createElement(\"div\");\n div.className = \"page\";\n div.style.width = Math.floor(this.viewport.width) + \"px\";\n div.style.height = Math.floor(this.viewport.height) + \"px\";\n div.setAttribute(\"data-page-number\", this.id);\n this.div = div;\n container.appendChild(div);\n }\n\n setPdfPage(pdfPage) {\n this.pdfPage = pdfPage;\n this.pdfPageRotate = pdfPage.rotate;\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = pdfPage.getViewport({\n scale: this.scale * _ui_utils.CSS_UNITS,\n rotation: totalRotation\n });\n this.stats = pdfPage.stats;\n this.reset();\n }\n\n destroy() {\n this.reset();\n\n if (this.pdfPage) {\n this.pdfPage.cleanup();\n }\n }\n\n async _renderAnnotationLayer() {\n let error = null;\n\n try {\n await this.annotationLayer.render(this.viewport, \"display\");\n } catch (ex) {\n error = ex;\n } finally {\n this.eventBus.dispatch(\"annotationlayerrendered\", {\n source: this,\n pageNumber: this.id,\n error\n });\n }\n }\n\n _resetZoomLayer(removeFromDOM = false) {\n if (!this.zoomLayer) {\n return;\n }\n\n const zoomLayerCanvas = this.zoomLayer.firstChild;\n this.paintedViewportMap.delete(zoomLayerCanvas);\n zoomLayerCanvas.width = 0;\n zoomLayerCanvas.height = 0;\n\n if (removeFromDOM) {\n this.zoomLayer.remove();\n }\n\n this.zoomLayer = null;\n }\n\n reset(keepZoomLayer = false, keepAnnotations = false) {\n this.cancelRendering(keepAnnotations);\n this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;\n const div = this.div;\n div.style.width = Math.floor(this.viewport.width) + \"px\";\n div.style.height = Math.floor(this.viewport.height) + \"px\";\n const childNodes = div.childNodes;\n const currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null;\n const currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null;\n\n for (let i = childNodes.length - 1; i >= 0; i--) {\n const node = childNodes[i];\n\n if (currentZoomLayerNode === node || currentAnnotationNode === node) {\n continue;\n }\n\n div.removeChild(node);\n }\n\n div.removeAttribute(\"data-loaded\");\n\n if (currentAnnotationNode) {\n this.annotationLayer.hide();\n } else if (this.annotationLayer) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n }\n\n if (!currentZoomLayerNode) {\n if (this.canvas) {\n this.paintedViewportMap.delete(this.canvas);\n this.canvas.width = 0;\n this.canvas.height = 0;\n delete this.canvas;\n }\n\n this._resetZoomLayer();\n }\n\n if (this.svg) {\n this.paintedViewportMap.delete(this.svg);\n delete this.svg;\n }\n\n this.loadingIconDiv = document.createElement(\"div\");\n this.loadingIconDiv.className = \"loadingIcon\";\n div.appendChild(this.loadingIconDiv);\n }\n\n update(scale, rotation, optionalContentConfigPromise = null) {\n this.scale = scale || this.scale;\n\n if (typeof rotation !== \"undefined\") {\n this.rotation = rotation;\n }\n\n if (optionalContentConfigPromise instanceof Promise) {\n this._optionalContentConfigPromise = optionalContentConfigPromise;\n }\n\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = this.viewport.clone({\n scale: this.scale * _ui_utils.CSS_UNITS,\n rotation: totalRotation\n });\n\n if (this.svg) {\n this.cssTransform(this.svg, true);\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now()\n });\n return;\n }\n\n let isScalingRestricted = false;\n\n if (this.canvas && this.maxCanvasPixels > 0) {\n const outputScale = this.outputScale;\n\n if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) {\n isScalingRestricted = true;\n }\n }\n\n if (this.canvas) {\n if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) {\n this.cssTransform(this.canvas, true);\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now()\n });\n return;\n }\n\n if (!this.zoomLayer && !this.canvas.hasAttribute(\"hidden\")) {\n this.zoomLayer = this.canvas.parentNode;\n this.zoomLayer.style.position = \"absolute\";\n }\n }\n\n if (this.zoomLayer) {\n this.cssTransform(this.zoomLayer.firstChild);\n }\n\n this.reset(true, true);\n }\n\n cancelRendering(keepAnnotations = false) {\n if (this.paintTask) {\n this.paintTask.cancel();\n this.paintTask = null;\n }\n\n this.resume = null;\n\n if (this.textLayer) {\n this.textLayer.cancel();\n this.textLayer = null;\n }\n\n if (!keepAnnotations && this.annotationLayer) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n }\n }\n\n cssTransform(target, redrawAnnotations = false) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n const div = this.div;\n target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + \"px\";\n target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + \"px\";\n const relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation;\n const absRotation = Math.abs(relativeRotation);\n let scaleX = 1,\n scaleY = 1;\n\n if (absRotation === 90 || absRotation === 270) {\n scaleX = height / width;\n scaleY = width / height;\n }\n\n const cssTransform = \"rotate(\" + relativeRotation + \"deg) \" + \"scale(\" + scaleX + \",\" + scaleY + \")\";\n target.style.transform = cssTransform;\n\n if (this.textLayer) {\n const textLayerViewport = this.textLayer.viewport;\n const textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation;\n const textAbsRotation = Math.abs(textRelativeRotation);\n let scale = width / textLayerViewport.width;\n\n if (textAbsRotation === 90 || textAbsRotation === 270) {\n scale = width / textLayerViewport.height;\n }\n\n const textLayerDiv = this.textLayer.textLayerDiv;\n let transX, transY;\n\n switch (textAbsRotation) {\n case 0:\n transX = transY = 0;\n break;\n\n case 90:\n transX = 0;\n transY = \"-\" + textLayerDiv.style.height;\n break;\n\n case 180:\n transX = \"-\" + textLayerDiv.style.width;\n transY = \"-\" + textLayerDiv.style.height;\n break;\n\n case 270:\n transX = \"-\" + textLayerDiv.style.width;\n transY = 0;\n break;\n\n default:\n console.error(\"Bad rotation value.\");\n break;\n }\n\n textLayerDiv.style.transform = \"rotate(\" + textAbsRotation + \"deg) \" + \"scale(\" + scale + \", \" + scale + \") \" + \"translate(\" + transX + \", \" + transY + \")\";\n textLayerDiv.style.transformOrigin = \"0% 0%\";\n }\n\n if (redrawAnnotations && this.annotationLayer) {\n this._renderAnnotationLayer();\n }\n }\n\n get width() {\n return this.viewport.width;\n }\n\n get height() {\n return this.viewport.height;\n }\n\n getPagePoint(x, y) {\n return this.viewport.convertToPdfPoint(x, y);\n }\n\n draw() {\n if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) {\n console.error(\"Must be in new state before drawing\");\n this.reset();\n }\n\n const {\n div,\n pdfPage\n } = this;\n\n if (!pdfPage) {\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n\n if (this.loadingIconDiv) {\n div.removeChild(this.loadingIconDiv);\n delete this.loadingIconDiv;\n }\n\n return Promise.reject(new Error(\"pdfPage is not loaded\"));\n }\n\n this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;\n const canvasWrapper = document.createElement(\"div\");\n canvasWrapper.style.width = div.style.width;\n canvasWrapper.style.height = div.style.height;\n canvasWrapper.classList.add(\"canvasWrapper\");\n\n if (this.annotationLayer && this.annotationLayer.div) {\n div.insertBefore(canvasWrapper, this.annotationLayer.div);\n } else {\n div.appendChild(canvasWrapper);\n }\n\n let textLayer = null;\n\n if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) {\n const textLayerDiv = document.createElement(\"div\");\n textLayerDiv.className = \"textLayer\";\n textLayerDiv.style.width = canvasWrapper.style.width;\n textLayerDiv.style.height = canvasWrapper.style.height;\n\n if (this.annotationLayer && this.annotationLayer.div) {\n div.insertBefore(textLayerDiv, this.annotationLayer.div);\n } else {\n div.appendChild(textLayerDiv);\n }\n\n textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE, this.eventBus);\n }\n\n this.textLayer = textLayer;\n let renderContinueCallback = null;\n\n if (this.renderingQueue) {\n renderContinueCallback = cont => {\n if (!this.renderingQueue.isHighestPriority(this)) {\n this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED;\n\n this.resume = () => {\n this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;\n cont();\n };\n\n return;\n }\n\n cont();\n };\n }\n\n const finishPaintTask = async error => {\n if (paintTask === this.paintTask) {\n this.paintTask = null;\n }\n\n if (error instanceof _pdfjsLib.RenderingCancelledException) {\n this.error = null;\n return;\n }\n\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n\n if (this.loadingIconDiv) {\n div.removeChild(this.loadingIconDiv);\n delete this.loadingIconDiv;\n }\n\n this._resetZoomLayer(true);\n\n this.error = error;\n this.stats = pdfPage.stats;\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: false,\n timestamp: performance.now()\n });\n\n if (error) {\n throw error;\n }\n };\n\n const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper);\n paintTask.onRenderContinue = renderContinueCallback;\n this.paintTask = paintTask;\n const resultPromise = paintTask.promise.then(function () {\n return finishPaintTask(null).then(function () {\n if (textLayer) {\n const readableStream = pdfPage.streamTextContent({\n normalizeWhitespace: true\n });\n textLayer.setTextContentStream(readableStream);\n textLayer.render();\n }\n });\n }, function (reason) {\n return finishPaintTask(reason);\n });\n\n if (this.annotationLayerFactory) {\n if (!this.annotationLayer) {\n this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this._annotationStorage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n);\n }\n\n this._renderAnnotationLayer();\n }\n\n div.setAttribute(\"data-loaded\", true);\n this.eventBus.dispatch(\"pagerender\", {\n source: this,\n pageNumber: this.id\n });\n return resultPromise;\n }\n\n paintOnCanvas(canvasWrapper) {\n const renderCapability = (0, _pdfjsLib.createPromiseCapability)();\n const result = {\n promise: renderCapability.promise,\n\n onRenderContinue(cont) {\n cont();\n },\n\n cancel() {\n renderTask.cancel();\n }\n\n };\n const viewport = this.viewport;\n const canvas = document.createElement(\"canvas\");\n this.l10n.get(\"page_canvas\", {\n page: this.id\n }, \"Page {{page}}\").then(msg => {\n canvas.setAttribute(\"aria-label\", msg);\n });\n canvas.setAttribute(\"hidden\", \"hidden\");\n let isCanvasHidden = true;\n\n const showCanvas = function () {\n if (isCanvasHidden) {\n canvas.removeAttribute(\"hidden\");\n isCanvasHidden = false;\n }\n };\n\n canvasWrapper.appendChild(canvas);\n this.canvas = canvas;\n canvas.mozOpaque = true;\n const ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n const outputScale = (0, _ui_utils.getOutputScale)(ctx);\n this.outputScale = outputScale;\n\n if (this.useOnlyCssZoom) {\n const actualSizeViewport = viewport.clone({\n scale: _ui_utils.CSS_UNITS\n });\n outputScale.sx *= actualSizeViewport.width / viewport.width;\n outputScale.sy *= actualSizeViewport.height / viewport.height;\n outputScale.scaled = true;\n }\n\n if (this.maxCanvasPixels > 0) {\n const pixelsInViewport = viewport.width * viewport.height;\n const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport);\n\n if (outputScale.sx > maxScale || outputScale.sy > maxScale) {\n outputScale.sx = maxScale;\n outputScale.sy = maxScale;\n outputScale.scaled = true;\n this.hasRestrictedScaling = true;\n } else {\n this.hasRestrictedScaling = false;\n }\n }\n\n const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx);\n const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy);\n canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]);\n canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]);\n canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + \"px\";\n canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + \"px\";\n this.paintedViewportMap.set(canvas, viewport);\n const transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0];\n const renderContext = {\n canvasContext: ctx,\n transform,\n viewport: this.viewport,\n enableWebGL: this.enableWebGL,\n renderInteractiveForms: this.renderInteractiveForms,\n optionalContentConfigPromise: this._optionalContentConfigPromise\n };\n const renderTask = this.pdfPage.render(renderContext);\n\n renderTask.onContinue = function (cont) {\n showCanvas();\n\n if (result.onRenderContinue) {\n result.onRenderContinue(cont);\n } else {\n cont();\n }\n };\n\n renderTask.promise.then(function () {\n showCanvas();\n renderCapability.resolve(undefined);\n }, function (error) {\n showCanvas();\n renderCapability.reject(error);\n });\n return result;\n }\n\n paintOnSvg(wrapper) {\n let cancelled = false;\n\n const ensureNotCancelled = () => {\n if (cancelled) {\n throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, \"svg\");\n }\n };\n\n const pdfPage = this.pdfPage;\n const actualSizeViewport = this.viewport.clone({\n scale: _ui_utils.CSS_UNITS\n });\n const promise = pdfPage.getOperatorList().then(opList => {\n ensureNotCancelled();\n const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs);\n return svgGfx.getSVG(opList, actualSizeViewport).then(svg => {\n ensureNotCancelled();\n this.svg = svg;\n this.paintedViewportMap.set(svg, actualSizeViewport);\n svg.style.width = wrapper.style.width;\n svg.style.height = wrapper.style.height;\n this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;\n wrapper.appendChild(svg);\n });\n });\n return {\n promise,\n\n onRenderContinue(cont) {\n cont();\n },\n\n cancel() {\n cancelled = true;\n }\n\n };\n }\n\n setPageLabel(label) {\n this.pageLabel = typeof label === \"string\" ? label : null;\n\n if (this.pageLabel !== null) {\n this.div.setAttribute(\"data-page-label\", this.pageLabel);\n } else {\n this.div.removeAttribute(\"data-page-label\");\n }\n }\n\n}\n\nexports.PDFPageView = PDFPageView;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFRenderingQueue = exports.RenderingStates = void 0;\nconst CLEANUP_TIMEOUT = 30000;\nconst RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3\n};\nexports.RenderingStates = RenderingStates;\n\nclass PDFRenderingQueue {\n constructor() {\n this.pdfViewer = null;\n this.pdfThumbnailViewer = null;\n this.onIdle = null;\n this.highestPriorityPage = null;\n this.idleTimeout = null;\n this.printing = false;\n this.isThumbnailViewEnabled = false;\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setThumbnailViewer(pdfThumbnailViewer) {\n this.pdfThumbnailViewer = pdfThumbnailViewer;\n }\n\n isHighestPriority(view) {\n return this.highestPriorityPage === view.renderingId;\n }\n\n renderHighestPriority(currentlyVisiblePages) {\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n\n if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {\n return;\n }\n\n if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {\n if (this.pdfThumbnailViewer.forceRendering()) {\n return;\n }\n }\n\n if (this.printing) {\n return;\n }\n\n if (this.onIdle) {\n this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);\n }\n }\n\n getHighestPriority(visible, views, scrolledDown) {\n const visibleViews = visible.views;\n const numVisible = visibleViews.length;\n\n if (numVisible === 0) {\n return null;\n }\n\n for (let i = 0; i < numVisible; ++i) {\n const view = visibleViews[i].view;\n\n if (!this.isViewFinished(view)) {\n return view;\n }\n }\n\n if (scrolledDown) {\n const nextPageIndex = visible.last.id;\n\n if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {\n return views[nextPageIndex];\n }\n } else {\n const previousPageIndex = visible.first.id - 2;\n\n if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {\n return views[previousPageIndex];\n }\n }\n\n return null;\n }\n\n isViewFinished(view) {\n return view.renderingState === RenderingStates.FINISHED;\n }\n\n renderView(view) {\n switch (view.renderingState) {\n case RenderingStates.FINISHED:\n return false;\n\n case RenderingStates.PAUSED:\n this.highestPriorityPage = view.renderingId;\n view.resume();\n break;\n\n case RenderingStates.RUNNING:\n this.highestPriorityPage = view.renderingId;\n break;\n\n case RenderingStates.INITIAL:\n this.highestPriorityPage = view.renderingId;\n view.draw().finally(() => {\n this.renderHighestPriority();\n }).catch(reason => {\n console.error(`renderView: \"${reason}\"`);\n });\n break;\n }\n\n return true;\n }\n\n}\n\nexports.PDFRenderingQueue = PDFRenderingQueue;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFSinglePageViewer = void 0;\n\nvar _base_viewer = __w_pdfjs_require__(16);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nclass PDFSinglePageViewer extends _base_viewer.BaseViewer {\n constructor(options) {\n super(options);\n\n this.eventBus._on(\"pagesinit\", evt => {\n this._ensurePageViewVisible();\n });\n }\n\n get _viewerElement() {\n return (0, _pdfjsLib.shadow)(this, \"_viewerElement\", this._shadowViewer);\n }\n\n _resetView() {\n super._resetView();\n\n this._previousPageNumber = 1;\n this._shadowViewer = document.createDocumentFragment();\n this._updateScrollDown = null;\n }\n\n _ensurePageViewVisible() {\n const pageView = this._pages[this._currentPageNumber - 1];\n const previousPageView = this._pages[this._previousPageNumber - 1];\n const viewerNodes = this.viewer.childNodes;\n\n switch (viewerNodes.length) {\n case 0:\n this.viewer.appendChild(pageView.div);\n break;\n\n case 1:\n if (viewerNodes[0] !== previousPageView.div) {\n throw new Error(\"_ensurePageViewVisible: Unexpected previously visible page.\");\n }\n\n if (pageView === previousPageView) {\n break;\n }\n\n this._shadowViewer.appendChild(previousPageView.div);\n\n this.viewer.appendChild(pageView.div);\n this.container.scrollTop = 0;\n break;\n\n default:\n throw new Error(\"_ensurePageViewVisible: Only one page should be visible at a time.\");\n }\n\n this._previousPageNumber = this._currentPageNumber;\n }\n\n _scrollUpdate() {\n if (this._updateScrollDown) {\n this._updateScrollDown();\n }\n\n super._scrollUpdate();\n }\n\n _scrollIntoView({\n pageDiv,\n pageSpot = null,\n pageNumber = null\n }) {\n if (pageNumber) {\n this._setCurrentPageNumber(pageNumber);\n }\n\n const scrolledDown = this._currentPageNumber >= this._previousPageNumber;\n\n this._ensurePageViewVisible();\n\n this.update();\n\n super._scrollIntoView({\n pageDiv,\n pageSpot,\n pageNumber\n });\n\n this._updateScrollDown = () => {\n this.scroll.down = scrolledDown;\n this._updateScrollDown = null;\n };\n }\n\n _getVisiblePages() {\n return this._getCurrentVisiblePage();\n }\n\n _updateHelper(visiblePages) {}\n\n get _isScrollModeHorizontal() {\n return (0, _pdfjsLib.shadow)(this, \"_isScrollModeHorizontal\", false);\n }\n\n _updateScrollMode() {}\n\n _updateSpreadMode() {}\n\n}\n\nexports.PDFSinglePageViewer = PDFSinglePageViewer;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BaseViewer = void 0;\n\nvar _ui_utils = __w_pdfjs_require__(3);\n\nvar _pdf_rendering_queue = __w_pdfjs_require__(14);\n\nvar _annotation_layer_builder = __w_pdfjs_require__(1);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nvar _pdf_page_view = __w_pdfjs_require__(13);\n\nvar _pdf_link_service = __w_pdfjs_require__(4);\n\nvar _text_layer_builder = __w_pdfjs_require__(5);\n\nconst DEFAULT_CACHE_SIZE = 10;\n\nfunction PDFPageViewBuffer(size) {\n const data = [];\n\n this.push = function (view) {\n const i = data.indexOf(view);\n\n if (i >= 0) {\n data.splice(i, 1);\n }\n\n data.push(view);\n\n if (data.length > size) {\n data.shift().destroy();\n }\n };\n\n this.resize = function (newSize, pagesToKeep) {\n size = newSize;\n\n if (pagesToKeep) {\n const pageIdsToKeep = new Set();\n\n for (let i = 0, iMax = pagesToKeep.length; i < iMax; ++i) {\n pageIdsToKeep.add(pagesToKeep[i].id);\n }\n\n (0, _ui_utils.moveToEndOfArray)(data, function (page) {\n return pageIdsToKeep.has(page.id);\n });\n }\n\n while (data.length > size) {\n data.shift().destroy();\n }\n };\n}\n\nfunction isSameScale(oldScale, newScale) {\n if (newScale === oldScale) {\n return true;\n }\n\n if (Math.abs(newScale - oldScale) < 1e-15) {\n return true;\n }\n\n return false;\n}\n\nclass BaseViewer {\n constructor(options) {\n if (this.constructor === BaseViewer) {\n throw new Error(\"Cannot initialize BaseViewer.\");\n }\n\n this._name = this.constructor.name;\n this.container = options.container;\n this.viewer = options.viewer || options.container.firstElementChild;\n\n if (!(this.container instanceof HTMLDivElement && this.viewer instanceof HTMLDivElement)) {\n throw new Error(\"Invalid `container` and/or `viewer` option.\");\n }\n\n this.eventBus = options.eventBus;\n this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();\n this.downloadManager = options.downloadManager || null;\n this.findController = options.findController || null;\n this.removePageBorders = options.removePageBorders || false;\n this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.renderInteractiveForms = typeof options.renderInteractiveForms === \"boolean\" ? options.renderInteractiveForms : true;\n this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;\n this.enableWebGL = options.enableWebGL || false;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels;\n this.l10n = options.l10n || _ui_utils.NullL10n;\n this.defaultRenderingQueue = !options.renderingQueue;\n\n if (this.defaultRenderingQueue) {\n this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();\n this.renderingQueue.setViewer(this);\n } else {\n this.renderingQueue = options.renderingQueue;\n }\n\n this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this));\n this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN;\n this._onBeforeDraw = this._onAfterDraw = null;\n\n this._resetView();\n\n if (this.removePageBorders) {\n this.viewer.classList.add(\"removePageBorders\");\n }\n\n Promise.resolve().then(() => {\n this.eventBus.dispatch(\"baseviewerinit\", {\n source: this\n });\n });\n }\n\n get pagesCount() {\n return this._pages.length;\n }\n\n getPageView(index) {\n return this._pages[index];\n }\n\n get pageViewsReady() {\n if (!this._pagesCapability.settled) {\n return false;\n }\n\n return this._pages.every(function (pageView) {\n return pageView && pageView.pdfPage;\n });\n }\n\n get currentPageNumber() {\n return this._currentPageNumber;\n }\n\n set currentPageNumber(val) {\n if (!Number.isInteger(val)) {\n throw new Error(\"Invalid page number.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (!this._setCurrentPageNumber(val, true)) {\n console.error(`${this._name}.currentPageNumber: \"${val}\" is not a valid page.`);\n }\n }\n\n _setCurrentPageNumber(val, resetCurrentPageView = false) {\n if (this._currentPageNumber === val) {\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n\n return true;\n }\n\n if (!(0 < val && val <= this.pagesCount)) {\n return false;\n }\n\n this._currentPageNumber = val;\n this.eventBus.dispatch(\"pagechanging\", {\n source: this,\n pageNumber: val,\n pageLabel: this._pageLabels && this._pageLabels[val - 1]\n });\n\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n\n return true;\n }\n\n get currentPageLabel() {\n return this._pageLabels && this._pageLabels[this._currentPageNumber - 1];\n }\n\n set currentPageLabel(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n let page = val | 0;\n\n if (this._pageLabels) {\n const i = this._pageLabels.indexOf(val);\n\n if (i >= 0) {\n page = i + 1;\n }\n }\n\n if (!this._setCurrentPageNumber(page, true)) {\n console.error(`${this._name}.currentPageLabel: \"${val}\" is not a valid page.`);\n }\n }\n\n get currentScale() {\n return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE;\n }\n\n set currentScale(val) {\n if (isNaN(val)) {\n throw new Error(\"Invalid numeric scale.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n\n get currentScaleValue() {\n return this._currentScaleValue;\n }\n\n set currentScaleValue(val) {\n if (!this.pdfDocument) {\n return;\n }\n\n this._setScale(val, false);\n }\n\n get pagesRotation() {\n return this._pagesRotation;\n }\n\n set pagesRotation(rotation) {\n if (!(0, _ui_utils.isValidRotation)(rotation)) {\n throw new Error(\"Invalid pages rotation angle.\");\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (this._pagesRotation === rotation) {\n return;\n }\n\n this._pagesRotation = rotation;\n const pageNumber = this._currentPageNumber;\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n const pageView = this._pages[i];\n pageView.update(pageView.scale, rotation);\n }\n\n if (this._currentScaleValue) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this.eventBus.dispatch(\"rotationchanging\", {\n source: this,\n pagesRotation: rotation,\n pageNumber\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n\n get firstPagePromise() {\n return this.pdfDocument ? this._firstPageCapability.promise : null;\n }\n\n get onePageRendered() {\n return this.pdfDocument ? this._onePageRenderedCapability.promise : null;\n }\n\n get pagesPromise() {\n return this.pdfDocument ? this._pagesCapability.promise : null;\n }\n\n get _viewerElement() {\n throw new Error(\"Not implemented: _viewerElement\");\n }\n\n _onePageRenderedOrForceFetch() {\n if (!this.container.offsetParent || this._getVisiblePages().views.length === 0) {\n return Promise.resolve();\n }\n\n return this._onePageRenderedCapability.promise;\n }\n\n setDocument(pdfDocument) {\n if (this.pdfDocument) {\n this._cancelRendering();\n\n this._resetView();\n\n if (this.findController) {\n this.findController.setDocument(null);\n }\n }\n\n this.pdfDocument = pdfDocument;\n\n if (!pdfDocument) {\n return;\n }\n\n const pagesCount = pdfDocument.numPages;\n const firstPagePromise = pdfDocument.getPage(1);\n const annotationStorage = pdfDocument.annotationStorage;\n const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig();\n\n this._pagesCapability.promise.then(() => {\n this.eventBus.dispatch(\"pagesloaded\", {\n source: this,\n pagesCount\n });\n });\n\n this._onBeforeDraw = evt => {\n const pageView = this._pages[evt.pageNumber - 1];\n\n if (!pageView) {\n return;\n }\n\n this._buffer.push(pageView);\n };\n\n this.eventBus._on(\"pagerender\", this._onBeforeDraw);\n\n this._onAfterDraw = evt => {\n if (evt.cssTransform || this._onePageRenderedCapability.settled) {\n return;\n }\n\n this._onePageRenderedCapability.resolve();\n\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n\n this._onAfterDraw = null;\n };\n\n this.eventBus._on(\"pagerendered\", this._onAfterDraw);\n\n firstPagePromise.then(firstPdfPage => {\n this._firstPageCapability.resolve(firstPdfPage);\n\n this._optionalContentConfigPromise = optionalContentConfigPromise;\n const scale = this.currentScale;\n const viewport = firstPdfPage.getViewport({\n scale: scale * _ui_utils.CSS_UNITS\n });\n const textLayerFactory = this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE ? this : null;\n\n for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {\n const pageView = new _pdf_page_view.PDFPageView({\n container: this._viewerElement,\n eventBus: this.eventBus,\n id: pageNum,\n scale,\n defaultViewport: viewport.clone(),\n annotationStorage,\n optionalContentConfigPromise,\n renderingQueue: this.renderingQueue,\n textLayerFactory,\n textLayerMode: this.textLayerMode,\n annotationLayerFactory: this,\n imageResourcesPath: this.imageResourcesPath,\n renderInteractiveForms: this.renderInteractiveForms,\n renderer: this.renderer,\n enableWebGL: this.enableWebGL,\n useOnlyCssZoom: this.useOnlyCssZoom,\n maxCanvasPixels: this.maxCanvasPixels,\n l10n: this.l10n\n });\n\n this._pages.push(pageView);\n }\n\n const firstPageView = this._pages[0];\n\n if (firstPageView) {\n firstPageView.setPdfPage(firstPdfPage);\n this.linkService.cachePageRef(1, firstPdfPage.ref);\n }\n\n if (this._spreadMode !== _ui_utils.SpreadMode.NONE) {\n this._updateSpreadMode();\n }\n\n this._onePageRenderedOrForceFetch().then(() => {\n if (this.findController) {\n this.findController.setDocument(pdfDocument);\n }\n\n if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > 7500) {\n this._pagesCapability.resolve();\n\n return;\n }\n\n let getPagesLeft = pagesCount - 1;\n\n if (getPagesLeft <= 0) {\n this._pagesCapability.resolve();\n\n return;\n }\n\n for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) {\n pdfDocument.getPage(pageNum).then(pdfPage => {\n const pageView = this._pages[pageNum - 1];\n\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n this.linkService.cachePageRef(pageNum, pdfPage.ref);\n\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n }, reason => {\n console.error(`Unable to get page ${pageNum} to initialize viewer`, reason);\n\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n });\n }\n });\n\n this.eventBus.dispatch(\"pagesinit\", {\n source: this\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }).catch(reason => {\n console.error(\"Unable to initialize viewer\", reason);\n });\n }\n\n setPageLabels(labels) {\n if (!this.pdfDocument) {\n return;\n }\n\n if (!labels) {\n this._pageLabels = null;\n } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {\n this._pageLabels = null;\n console.error(`${this._name}.setPageLabels: Invalid page labels.`);\n } else {\n this._pageLabels = labels;\n }\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n const pageView = this._pages[i];\n const label = this._pageLabels && this._pageLabels[i];\n pageView.setPageLabel(label);\n }\n }\n\n _resetView() {\n this._pages = [];\n this._currentPageNumber = 1;\n this._currentScale = _ui_utils.UNKNOWN_SCALE;\n this._currentScaleValue = null;\n this._pageLabels = null;\n this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);\n this._location = null;\n this._pagesRotation = 0;\n this._optionalContentConfigPromise = null;\n this._pagesRequests = new WeakMap();\n this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)();\n this._scrollMode = _ui_utils.ScrollMode.VERTICAL;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n\n if (this._onBeforeDraw) {\n this.eventBus._off(\"pagerender\", this._onBeforeDraw);\n\n this._onBeforeDraw = null;\n }\n\n if (this._onAfterDraw) {\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n\n this._onAfterDraw = null;\n }\n\n this.viewer.textContent = \"\";\n\n this._updateScrollMode();\n }\n\n _scrollUpdate() {\n if (this.pagesCount === 0) {\n return;\n }\n\n this.update();\n }\n\n _scrollIntoView({\n pageDiv,\n pageSpot = null,\n pageNumber = null\n }) {\n (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot);\n }\n\n _setScaleUpdatePages(newScale, newValue, noScroll = false, preset = false) {\n this._currentScaleValue = newValue.toString();\n\n if (isSameScale(this._currentScale, newScale)) {\n if (preset) {\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: newValue\n });\n }\n\n return;\n }\n\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n this._pages[i].update(newScale);\n }\n\n this._currentScale = newScale;\n\n if (!noScroll) {\n let page = this._currentPageNumber,\n dest;\n\n if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {\n page = this._location.pageNumber;\n dest = [null, {\n name: \"XYZ\"\n }, this._location.left, this._location.top, null];\n }\n\n this.scrollPageIntoView({\n pageNumber: page,\n destArray: dest,\n allowNegativeOffset: true\n });\n }\n\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: preset ? newValue : undefined\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n\n _setScale(value, noScroll = false) {\n let scale = parseFloat(value);\n\n if (scale > 0) {\n this._setScaleUpdatePages(scale, value, noScroll, false);\n } else {\n const currentPage = this._pages[this._currentPageNumber - 1];\n\n if (!currentPage) {\n return;\n }\n\n const noPadding = this.isInPresentationMode || this.removePageBorders;\n let hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING;\n let vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING;\n\n if (!noPadding && this._isScrollModeHorizontal) {\n [hPadding, vPadding] = [vPadding, hPadding];\n }\n\n const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale;\n const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;\n\n switch (value) {\n case \"page-actual\":\n scale = 1;\n break;\n\n case \"page-width\":\n scale = pageWidthScale;\n break;\n\n case \"page-height\":\n scale = pageHeightScale;\n break;\n\n case \"page-fit\":\n scale = Math.min(pageWidthScale, pageHeightScale);\n break;\n\n case \"auto\":\n const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);\n scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale);\n break;\n\n default:\n console.error(`${this._name}._setScale: \"${value}\" is an unknown zoom value.`);\n return;\n }\n\n this._setScaleUpdatePages(scale, value, noScroll, true);\n }\n }\n\n _resetCurrentPageView() {\n if (this.isInPresentationMode) {\n this._setScale(this._currentScaleValue, true);\n }\n\n const pageView = this._pages[this._currentPageNumber - 1];\n\n this._scrollIntoView({\n pageDiv: pageView.div\n });\n }\n\n scrollPageIntoView({\n pageNumber,\n destArray = null,\n allowNegativeOffset = false,\n ignoreDestinationZoom = false\n }) {\n if (!this.pdfDocument) {\n return;\n }\n\n const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];\n\n if (!pageView) {\n console.error(`${this._name}.scrollPageIntoView: ` + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n\n if (this.isInPresentationMode || !destArray) {\n this._setCurrentPageNumber(pageNumber, true);\n\n return;\n }\n\n let x = 0,\n y = 0;\n let width = 0,\n height = 0,\n widthScale,\n heightScale;\n const changeOrientation = pageView.rotation % 180 !== 0;\n const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS;\n const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS;\n let scale = 0;\n\n switch (destArray[1].name) {\n case \"XYZ\":\n x = destArray[2];\n y = destArray[3];\n scale = destArray[4];\n x = x !== null ? x : 0;\n y = y !== null ? y : pageHeight;\n break;\n\n case \"Fit\":\n case \"FitB\":\n scale = \"page-fit\";\n break;\n\n case \"FitH\":\n case \"FitBH\":\n y = destArray[2];\n scale = \"page-width\";\n\n if (y === null && this._location) {\n x = this._location.left;\n y = this._location.top;\n }\n\n break;\n\n case \"FitV\":\n case \"FitBV\":\n x = destArray[2];\n width = pageWidth;\n height = pageHeight;\n scale = \"page-height\";\n break;\n\n case \"FitR\":\n x = destArray[2];\n y = destArray[3];\n width = destArray[4] - x;\n height = destArray[5] - y;\n const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING;\n const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING;\n widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS;\n heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS;\n scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));\n break;\n\n default:\n console.error(`${this._name}.scrollPageIntoView: ` + `\"${destArray[1].name}\" is not a valid destination type.`);\n return;\n }\n\n if (!ignoreDestinationZoom) {\n if (scale && scale !== this._currentScale) {\n this.currentScaleValue = scale;\n } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) {\n this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;\n }\n }\n\n if (scale === \"page-fit\" && !destArray[4]) {\n this._scrollIntoView({\n pageDiv: pageView.div,\n pageNumber\n });\n\n return;\n }\n\n const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];\n let left = Math.min(boundingRect[0][0], boundingRect[1][0]);\n let top = Math.min(boundingRect[0][1], boundingRect[1][1]);\n\n if (!allowNegativeOffset) {\n left = Math.max(left, 0);\n top = Math.max(top, 0);\n }\n\n this._scrollIntoView({\n pageDiv: pageView.div,\n pageSpot: {\n left,\n top\n },\n pageNumber\n });\n }\n\n _updateLocation(firstPage) {\n const currentScale = this._currentScale;\n const currentScaleValue = this._currentScaleValue;\n const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;\n const pageNumber = firstPage.id;\n let pdfOpenParams = \"#page=\" + pageNumber;\n pdfOpenParams += \"&zoom=\" + normalizedScaleValue;\n const currentPageView = this._pages[pageNumber - 1];\n const container = this.container;\n const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);\n const intLeft = Math.round(topLeft[0]);\n const intTop = Math.round(topLeft[1]);\n pdfOpenParams += \",\" + intLeft + \",\" + intTop;\n this._location = {\n pageNumber,\n scale: normalizedScaleValue,\n top: intTop,\n left: intLeft,\n rotation: this._pagesRotation,\n pdfOpenParams\n };\n }\n\n _updateHelper(visiblePages) {\n throw new Error(\"Not implemented: _updateHelper\");\n }\n\n update() {\n const visible = this._getVisiblePages();\n\n const visiblePages = visible.views,\n numVisiblePages = visiblePages.length;\n\n if (numVisiblePages === 0) {\n return;\n }\n\n const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);\n\n this._buffer.resize(newCacheSize, visiblePages);\n\n this.renderingQueue.renderHighestPriority(visible);\n\n this._updateHelper(visiblePages);\n\n this._updateLocation(visible.first);\n\n this.eventBus.dispatch(\"updateviewarea\", {\n source: this,\n location: this._location\n });\n }\n\n containsElement(element) {\n return this.container.contains(element);\n }\n\n focus() {\n this.container.focus();\n }\n\n get _isScrollModeHorizontal() {\n return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL;\n }\n\n get isInPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;\n }\n\n get isChangingPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING;\n }\n\n get isHorizontalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;\n }\n\n get isVerticalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;\n }\n\n _getCurrentVisiblePage() {\n if (!this.pagesCount) {\n return {\n views: []\n };\n }\n\n const pageView = this._pages[this._currentPageNumber - 1];\n const element = pageView.div;\n const view = {\n id: pageView.id,\n x: element.offsetLeft + element.clientLeft,\n y: element.offsetTop + element.clientTop,\n view: pageView\n };\n return {\n first: view,\n last: view,\n views: [view]\n };\n }\n\n _getVisiblePages() {\n return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal);\n }\n\n isPageVisible(pageNumber) {\n if (!this.pdfDocument) {\n return false;\n }\n\n if (pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(`${this._name}.isPageVisible: \"${pageNumber}\" is out of bounds.`);\n return false;\n }\n\n return this._getVisiblePages().views.some(function (view) {\n return view.id === pageNumber;\n });\n }\n\n cleanup() {\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) {\n this._pages[i].reset();\n }\n }\n }\n\n _cancelRendering() {\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n if (this._pages[i]) {\n this._pages[i].cancelRendering();\n }\n }\n }\n\n _ensurePdfPageLoaded(pageView) {\n if (pageView.pdfPage) {\n return Promise.resolve(pageView.pdfPage);\n }\n\n if (this._pagesRequests.has(pageView)) {\n return this._pagesRequests.get(pageView);\n }\n\n const promise = this.pdfDocument.getPage(pageView.id).then(pdfPage => {\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n\n this._pagesRequests.delete(pageView);\n\n return pdfPage;\n }).catch(reason => {\n console.error(\"Unable to get page for page view\", reason);\n\n this._pagesRequests.delete(pageView);\n });\n\n this._pagesRequests.set(pageView, promise);\n\n return promise;\n }\n\n forceRendering(currentlyVisiblePages) {\n const visiblePages = currentlyVisiblePages || this._getVisiblePages();\n\n const scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down;\n const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead);\n\n if (pageView) {\n this._ensurePdfPageLoaded(pageView).then(() => {\n this.renderingQueue.renderView(pageView);\n });\n\n return true;\n }\n\n return false;\n }\n\n createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) {\n return new _text_layer_builder.TextLayerBuilder({\n textLayerDiv,\n eventBus,\n pageIndex,\n viewport,\n findController: this.isInPresentationMode ? null : this.findController,\n enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection\n });\n }\n\n createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = \"\", renderInteractiveForms = false, l10n = _ui_utils.NullL10n) {\n return new _annotation_layer_builder.AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\n annotationStorage,\n imageResourcesPath,\n renderInteractiveForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n l10n\n });\n }\n\n get hasEqualPageSizes() {\n const firstPageView = this._pages[0];\n\n for (let i = 1, ii = this._pages.length; i < ii; ++i) {\n const pageView = this._pages[i];\n\n if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {\n return false;\n }\n }\n\n return true;\n }\n\n getPagesOverview() {\n const pagesOverview = this._pages.map(function (pageView) {\n const viewport = pageView.pdfPage.getViewport({\n scale: 1\n });\n return {\n width: viewport.width,\n height: viewport.height,\n rotation: viewport.rotation\n };\n });\n\n if (!this.enablePrintAutoRotate) {\n return pagesOverview;\n }\n\n return pagesOverview.map(function (size) {\n if ((0, _ui_utils.isPortraitOrientation)(size)) {\n return size;\n }\n\n return {\n width: size.height,\n height: size.width,\n rotation: (size.rotation + 90) % 360\n };\n });\n }\n\n get optionalContentConfigPromise() {\n if (!this.pdfDocument) {\n return Promise.resolve(null);\n }\n\n if (!this._optionalContentConfigPromise) {\n return this.pdfDocument.getOptionalContentConfig();\n }\n\n return this._optionalContentConfigPromise;\n }\n\n set optionalContentConfigPromise(promise) {\n if (!(promise instanceof Promise)) {\n throw new Error(`Invalid optionalContentConfigPromise: ${promise}`);\n }\n\n if (!this.pdfDocument) {\n return;\n }\n\n if (!this._optionalContentConfigPromise) {\n return;\n }\n\n this._optionalContentConfigPromise = promise;\n\n for (const pageView of this._pages) {\n pageView.update(pageView.scale, pageView.rotation, promise);\n }\n\n this.update();\n this.eventBus.dispatch(\"optionalcontentconfigchanged\", {\n source: this,\n promise\n });\n }\n\n get scrollMode() {\n return this._scrollMode;\n }\n\n set scrollMode(mode) {\n if (this._scrollMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidScrollMode)(mode)) {\n throw new Error(`Invalid scroll mode: ${mode}`);\n }\n\n this._scrollMode = mode;\n this.eventBus.dispatch(\"scrollmodechanged\", {\n source: this,\n mode\n });\n\n this._updateScrollMode(this._currentPageNumber);\n }\n\n _updateScrollMode(pageNumber = null) {\n const scrollMode = this._scrollMode,\n viewer = this.viewer;\n viewer.classList.toggle(\"scrollHorizontal\", scrollMode === _ui_utils.ScrollMode.HORIZONTAL);\n viewer.classList.toggle(\"scrollWrapped\", scrollMode === _ui_utils.ScrollMode.WRAPPED);\n\n if (!this.pdfDocument || !pageNumber) {\n return;\n }\n\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n\n get spreadMode() {\n return this._spreadMode;\n }\n\n set spreadMode(mode) {\n if (this._spreadMode === mode) {\n return;\n }\n\n if (!(0, _ui_utils.isValidSpreadMode)(mode)) {\n throw new Error(`Invalid spread mode: ${mode}`);\n }\n\n this._spreadMode = mode;\n this.eventBus.dispatch(\"spreadmodechanged\", {\n source: this,\n mode\n });\n\n this._updateSpreadMode(this._currentPageNumber);\n }\n\n _updateSpreadMode(pageNumber = null) {\n if (!this.pdfDocument) {\n return;\n }\n\n const viewer = this.viewer,\n pages = this._pages;\n viewer.textContent = \"\";\n\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n for (let i = 0, iMax = pages.length; i < iMax; ++i) {\n viewer.appendChild(pages[i].div);\n }\n } else {\n const parity = this._spreadMode - 1;\n let spread = null;\n\n for (let i = 0, iMax = pages.length; i < iMax; ++i) {\n if (spread === null) {\n spread = document.createElement(\"div\");\n spread.className = \"spread\";\n viewer.appendChild(spread);\n } else if (i % 2 === parity) {\n spread = spread.cloneNode(false);\n viewer.appendChild(spread);\n }\n\n spread.appendChild(pages[i].div);\n }\n }\n\n if (!pageNumber) {\n return;\n }\n\n this._setCurrentPageNumber(pageNumber, true);\n\n this.update();\n }\n\n}\n\nexports.BaseViewer = BaseViewer;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFViewer = void 0;\n\nvar _base_viewer = __w_pdfjs_require__(16);\n\nvar _pdfjsLib = __w_pdfjs_require__(2);\n\nclass PDFViewer extends _base_viewer.BaseViewer {\n get _viewerElement() {\n return (0, _pdfjsLib.shadow)(this, \"_viewerElement\", this.viewer);\n }\n\n _scrollIntoView({\n pageDiv,\n pageSpot = null,\n pageNumber = null\n }) {\n if (!pageSpot && !this.isInPresentationMode) {\n const left = pageDiv.offsetLeft + pageDiv.clientLeft;\n const right = left + pageDiv.clientWidth;\n const {\n scrollLeft,\n clientWidth\n } = this.container;\n\n if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) {\n pageSpot = {\n left: 0,\n top: 0\n };\n }\n }\n\n super._scrollIntoView({\n pageDiv,\n pageSpot,\n pageNumber\n });\n }\n\n _getVisiblePages() {\n if (this.isInPresentationMode) {\n return this._getCurrentVisiblePage();\n }\n\n return super._getVisiblePages();\n }\n\n _updateHelper(visiblePages) {\n if (this.isInPresentationMode) {\n return;\n }\n\n let currentId = this._currentPageNumber;\n let stillFullyVisible = false;\n\n for (const page of visiblePages) {\n if (page.percent < 100) {\n break;\n }\n\n if (page.id === currentId) {\n stillFullyVisible = true;\n break;\n }\n }\n\n if (!stillFullyVisible) {\n currentId = visiblePages[0].id;\n }\n\n this._setCurrentPageNumber(currentId);\n }\n\n}\n\nexports.PDFViewer = PDFViewer;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf_viewer.js.map","// Pour le mixin :https://stackoverflow.com/questions/48515023/display-different-vuejs-components-for-mobile-browsers\r\n\r\nimport Vue from 'vue'\r\n\r\n// Pour la détection : https://stackoverflow.com/questions/11381673/detecting-a-mobile-browser\r\nexport default Vue.extend({\r\n methods: {\r\n isAndroid() {\r\n return navigator.userAgent.match(/Android/i)\r\n },\r\n isBlackBerry: function() {\r\n return navigator.userAgent.match(/BlackBerry/i)\r\n },\r\n isiOS: function() {\r\n return navigator.userAgent.match(/iPhone|iPad|iPod/i)\r\n },\r\n isOpera: function() {\r\n return navigator.userAgent.match(/Opera Mini/i)\r\n },\r\n isWindows: function() {\r\n return navigator.userAgent.match(/IEMobile/i) || navigator.userAgent.match(/WPDesktop/i)\r\n },\r\n isMobileDevice() {\r\n return this.isAndroid() || this.isBlackBerry() || this.isiOS() || this.isOpera() || this.isWindows()\r\n }\r\n }\r\n})\r\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","/* Copyright 2020 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\n\"use strict\";\n\nvar pdfjs = require(\"./build/pdf.js\");\nvar PdfjsWorker = require(\"worker-loader?esModule=false!./build/pdf.worker.js\");\n\nif (typeof window !== \"undefined\" && \"Worker\" in window) {\n pdfjs.GlobalWorkerOptions.workerPort = new PdfjsWorker();\n}\n\nmodule.exports = pdfjs;\n"],"sourceRoot":""}