{"version":3,"sources":["webpack:///./node_modules/pdfjs-dist/build/pdf.worker.entry.js","webpack:///./node_modules/pdfjs-dist/web/pdf_viewer.css?d43c","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/pdfjs-dist/build/pdf.worker.js","webpack:///./src/components/FeatureNotAvailable.vue?3b30","webpack:///./src/components/FeatureNotAvailable.vue","webpack:///./src/components/FeatureNotAvailable.vue?2435","webpack:///./src/components/FeatureNotAvailable.vue?5d99","webpack:///./src/components/PdfViewer.vue?6970","webpack:///./node_modules/vue-resize-sensor/src/resize-sensor.vue?70e9","webpack:///./node_modules/pdfvuer/src/Pdfvuer.vue?d03c","webpack:///node_modules/vue-resize-sensor/src/resize-sensor.vue","webpack:///./node_modules/vue-resize-sensor/src/resize-sensor.vue?7371","webpack:///node_modules/pdfvuer/src/Pdfvuer.vue","webpack:///./node_modules/pdfvuer/src/Pdfvuer.vue?2dda","webpack:///./node_modules/pdfvuer/src/Pdfvuer.vue","webpack:///./src/components/PdfViewer.vue","webpack:///./src/components/PdfViewer.vue?b3c3","webpack:///./src/components/PdfViewer.vue?2da9","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/pdfjs-dist/build/pdf.js","webpack:///./node_modules/pdfjs-dist/web/pdf_viewer.js","webpack:///./src/components/PdfViewer.vue?b0bd","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/vue-resize-sensor/src/resize-sensor.vue?b1f7","webpack:///./node_modules/pdfvuer/dist/pdfvuer.css?3735","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./src/components/PdfViewer.vue?5188"],"names":["window","pdfjsWorker","exports","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","i","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","nextTick","fn","args","prototype","slice","call","arguments","shift","setTimeout","apply","platform","arch","execPath","title","pid","browser","env","argv","binding","name","path","cwd","chdir","dir","resolve","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","root","factory","module","this","modules","installedModules","__w_pdfjs_require__","moduleId","l","m","c","d","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","hasOwnProperty","p","s","_worker","WorkerMessageHandler","WorkerTask","_util","_primitives","_pdf_manager","_is_node","_message_handler","_worker_stream","_core_utils","terminated","_capability","createPromiseCapability","promise","handler","port","testMessageProcessed","on","data","send","supportTransfers","postMessageTransfers","setVerbosityLevel","verbosity","createDocumentHandler","docParams","pdfManager","cancelXHRs","WorkerTasks","getVerbosityLevel","apiVersion","workerVersion","enumerableProperties","ReadableStream","Promise","allSettled","docId","docBaseUrl","workerHandlerName","MessageHandler","ensureNotTerminated","startWorkerTask","task","finishWorkerTask","finish","splice","async","loadDocument","recoveryMode","ensureDoc","numPages","fingerprint","all","getPdfManager","evaluatorOptions","pdfManagerCapability","newPdfManager","source","LocalPdfManager","password","ex","reject","pdfStream","cachedChunks","PDFWorkerStream","fullRequest","getFullReader","headersReady","then","isRangeSupported","disableAutoFetch","isStreamingSupported","NetworkPdfManager","msgHandler","contentLength","rangeChunkSize","sendProgressiveData","catch","reason","loaded","flushChunks","pdfFile","arraysToBytes","warn","readPromise","readChunk","done","arrayByteLength","total","Math","max","read","e","cancelAllRequests","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","sendWithPromise","updatePassword","pdfManagerReady","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","requestLoadedStream","onLoadedStream","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","terminate","AbortException","stream","bytes","getPage","pageIndex","page","ensure","rotate","ref","userUnit","view","Ref","gen","catalog","pdfDocument","getPageIndex","ensureCatalog","id","xref","stats","intent","getAnnotationsData","sink","VerbosityLevel","INFOS","Date","now","getOperatorList","renderInteractiveForms","operatorListInfo","info","close","featureId","UNSUPPORTED_FEATURES","errorOperatorList","error","onPull","desiredSize","onCancel","extractTextContent","normalizeWhitespace","combineTextItems","fontFallback","cleanup","waitOn","cleanupPromise","clearPrimitiveCaches","forEach","finished","destroy","setup","isMessagePort","maybePort","postMessage","isNodeJS","self","initializeFromPort","assert","bytesToString","isArrayBuffer","isArrayEqual","isBool","isEmptyObj","isNum","isString","isSameOrigin","createValidAbsoluteUrl","removeNullCharacters","shadow","string32","stringToBytes","stringToPDFString","stringToUTF8String","utf8StringToString","unreachable","IsEvalSupportedCached","IsLittleEndianCached","createObjectURL","FormatError","Util","TextRenderingMode","StreamType","PermissionFlag","PasswordResponses","CMapCompressionType","ImageKind","FontType","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","OPS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","BaseException","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","NONE","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","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorFontToUnicode","errorFontLoadNative","errorFontGetPath","NEED_PASSWORD","INCORRECT_PASSWORD","level","Number","isInteger","msg","console","log","cond","baseUrl","otherUrl","base","URL","origin","other","_isValidProtocol","url","protocol","absoluteUrl","obj","prop","configurable","writable","constructor","super","details","status","NullCharactersRegExp","str","replace","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","strBuf","chunkEnd","min","chunk","subarray","resultLength","pos","item","itemLength","set","isLittleEndian","buffer8","view32","Uint32Array","buffer","Function","rgbBuf","g","b","m1","m2","xt","yt","p1","applyTransform","p2","p3","p4","v","transpose","a","first","second","sqrt","sx","sy","rect","rect1","rect2","compare","orderedX","sort","orderedY","result","normalizeRect","PDFStringTranslateTable","charAt","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","every","element","index","capability","isSettled","digits","contentType","forceDataSchema","blob","Blob","type","ii","b1","b2","b3","d1","d2","d3","d4","process","versions","nw","electron","isEOF","isCmd","isDict","isName","isRef","isRefsEqual","isStream","RefSetCache","RefSet","Name","Dict","Cmd","EOF","nameCache","nameValue","_clearCache","cmdCache","cmd","cmdValue","nonSerializable","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","key1","key2","key3","fetch","fetchAsync","isArray","getRaw","getKeys","keys","has","callback","empty","merge","dictArray","mergedDict","dict","keyName","refCache","refValue","put","remove","putAlias","aliasRef","clear","v1","v2","getBytes","_chunked_stream","_document","_stream","BasePdfManager","_docId","_password","_docBaseUrl","href","manuallyTriggered","begin","Stream","PDFDocument","_loadedStreamPromise","pdfNetworkStream","streamManager","ChunkedStreamManager","getStream","MissingDataException","requestRange","requestAllChunks","onReceiveData","abort","ChunkedStream","chunkSize","manager","loadedChunks","numChunksLoaded","numChunks","ceil","progressiveDataLength","lastSuccessfulEnsureByteChunk","chunks","beginChunk","floor","endChunk","curChunk","position","ensureByte","b0","getByte","forceClamped","strEnd","ensureRange","Uint8ClampedArray","peekedByte","ChunkedStreamSubstream","getMissingChunks","missingChunks","allChunksLoaded","subStream","currRequestId","chunksNeededByRequest","requestsByChunk","promisesByRequest","aborted","_loadedStreamCapability","rangeReader","getRangeReader","onProgress","chunkData","_requestChunks","requestId","chunksNeeded","hasChunk","chunksToRequest","groupedChunksToRequest","groupChunks","groupedChunk","sendRequest","getBeginChunk","getEndChunk","ranges","range","includes","groupedChunks","prevChunk","isProgressive","onReceiveProgressiveData","loadedRequests","requestIds","nextEmptyChunk","lastChunk","err","getLookupTableFactory","getInheritableProperty","toRomanNumerals","log2","readInt8","readUint16","readUint32","isWhiteSpace","XRefEntryException","initializer","getArray","stopWhenFound","LOOP_LIMIT","values","loopCount","ROMAN_NUMBER_MAP","number","lowerCase","romanBuf","romanStr","toLowerCase","x","offset","ch","Page","_obj","_annotation","_crypto","_parser","_operator_list","_evaluator","_function","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","isAnnotationRenderable","annotation","viewable","printable","pageDict","fontCache","builtInCMapCache","globalImageCache","pdfFunctionFactory","resourcesPromise","idCounters","idFactory","_getInheritableProperty","box","_getBoundingBox","mediaBox","cropBox","intersect","content","streams","fetchIfRef","StreamsSequenceStream","NullStream","objectLoader","ObjectLoader","resources","load","contentStreamPromise","loadResources","partialEvaluator","PartialEvaluator","options","dataPromises","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","operatorList","_parsedAnnotations","pageOpList","annotations","flush","totalLength","opListPromises","opLists","addOp","addOpList","getTextContent","annotationsData","parsedAnnotations","annotationPromises","annotationRef","AnnotationFactory","filter","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","PDF_HEADER_VERSION_REGEXP","find","signature","limit","backwards","signatureLength","scanBytes","peekBytes","scanLength","signatureEnd","j","arg","XRef","PDFFunctionFactory","_pagePromises","version","catDict","pdfFormatVersion","acroForm","xfa","fields","collection","linearization","Linearization","startXRef","reset","step","startXRefLength","found","skip","parseInt","isNaN","moveStart","MAX_PDF_VERSION_LENGTH","substring","setStartXRef","parse","Catalog","DocumentInfoValidators","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","test","docInfo","PDFFormatVersion","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","infoDict","trailer","customValue","Custom","hash","idArray","calculateMD5","getByteRange","fingerprintBuf","hex","padStart","objectNumberFirst","pageKidsCountCache","getPageDict","pageFirst","_getLinearizationPage","FileSpec","_colorspace","_image_utils","fetchDestination","dest","getCatalogObj","Map","GlobalImageCache","streamRef","encrypt","encryptMetadata","metadata","subtype","pagesObj","_readDocumentOutline","items","queue","parent","processed","blackColor","outlineDict","parseDestDictionary","destDict","resultObj","flags","color","count","rgbColor","ColorSpace","singletons","rgb","getRgb","outlineItem","unsafeUrl","newWindow","bold","italic","permissions","_readPermissions","toplevelPagesDict","_readDests","dests","NameTree","names","getAll","destinationId","_readPageLabels","pageLabels","style","prefix","numberTree","NumberTree","nums","currentLabel","currentIndex","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","charBuf","jj","pageLayout","pageMode","ViewerPreferencesValidators","HideToolbar","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","prefs","prefValue","isValid","openAction","action","attachments","nameTree","fs","serializable","appendIfJavaScriptDict","jsDict","js","promises","translatedFonts","translatedFont","loadedName","fallback","translated","nodesToVisit","visitedNodes","currentPageIndex","next","currentNode","pop","kids","last","pageRef","pagesBeforeRef","kidRef","parentRef","node","getAsync","kidPromises","kid","params","addDefaultProtocolToUrl","startsWith","tryConvertUrlEncoding","actionType","actionName","urlDict","remoteDest","split","JSON","stringify","namedAction","jsAction","URL_OPEN_METHODS","regex","RegExp","jsUrl","exec","entries","xrefstms","_cacheMap","streamTypes","fontTypes","startXRefQueue","trailerDict","indexObjects","readXRef","ids","fileId","CipherTransformFactory","processXRefTable","parser","tableState","entryNum","streamPos","lexer","parserBuf1","buf1","parserBuf2","buf2","readXRefTable","getObj","firstEntryNum","entryCount","entry","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","TAB","LF","CR","SPACE","PERCENT","LT","readToken","token","skipUntil","what","dataLength","skipped","objRegExp","endobjRegExp","nestedObjRegExp","CHECK_CONTENT_LENGTH","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","startPos","endPos","checkPos","tokenStr","objToken","xrefTagOffset","Parser","Lexer","allowStreams","rootDict","startXRefParsedCache","topDict","getEntry","xrefEntry","cacheEntry","fetchUncompressed","fetchCompressed","makeSubStream","obj1","obj2","obj3","createCipherTransform","tableOffset","NameOrNumberTree","_type","kidsOrEntries","MAX_LEVELS","limits","currentKey","mm","description","contentAvailable","pickPlatformItem","_filename","filename","contentRef","fileObj","mayHaveChildren","addChildren","dictKeys","rawValue","refSet","_walk","nodesToRevisit","pendingRequests","getBaseStreams","baseStreams","foundMissingData","requestRanges","_ccitt_stream","_jbig2_stream","_jpeg_stream","_jpx_stream","MAX_LENGTH_TO_CACHE","MAX_ADLER32_LENGTH","computeAdler32","bytesLength","imageCache","refill","cipherTransform","makeInlineImage","array","makeStream","decryptString","E","I","NUL","maybeEIPos","state","followingBytes","endOffset","peekByte","markerLength","foundEOI","getUint16","findDefaultInlineStreamEnd","inlineStreamSkipEI","TILDE","GT","tildePos","maybeEI","dictLength","beginInlineImagePos","filterName","filterZero","findDCTDecodeInlineStreamEnd","findASCII85DecodeInlineStreamEnd","findASCIIHexDecodeInlineStreamEnd","cacheKey","imageStream","imageBytes","initialStreamPos","dictBytes","createStream","SCAN_BLOCK_LENGTH","skipToNextLine","nextChar","tryShift","ENDSTREAM_SIGNATURE","actualLength","_findStreamLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","maybeLength","lastByte","makeFilter","filterArray","paramsArray","xrefStreamStats","PredictorStream","FlateStream","earlyChange","LZWStream","JpegStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","specialChars","toHexDigit","knownCommands","_hexStringNumWarn","currentChar","eNotation","divideBy","sign","baseValue","powerValue","powerValueSign","currentDigit","peekChar","numParen","charBuffered","previousCh","x2","MAX_HEX_STRING_NUM_WARN","firstDigit","secondDigit","isFirstHex","_hexStringWarn","comment","getNumber","getString","getName","getHexString","knownCommandFound","possibleCommand","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","endFirst","mainXRefEntriesOffset","StringStream","DecodeStream","DecryptStream","arrayBuffer","getInt32","emptyBuffer","maybeMinBufferLength","_rawMinBufferLength","bufferLength","eof","minBufferLength","readBlock","ensureBuffer","requested","size","buffer2","bufEnd","newLength","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","cmf","flg","codeSize","codeBuf","getBits","bits","getCode","table","codes","maxLen","codeLen","codeVal","generateHuffmanTable","lengths","val","code2","hdr","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","bitsLength","bitsOffset","codeLengths","repeatLength","code1","dist","k","blockLen","check","block","predictor","readBlockTiff","readBlockPng","colors","columns","pixBytes","rowBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","kk","prevRow","up","upLeft","left","pa","pb","pc","decrypt","nextChunk","initialized","hasMoreData","input","TILDA_CHAR","Z_LOWER_CHAR","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","repeatHeader","cachedData","bitsCached","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","Uint16Array","dictionaryPrevCodes","currentSequence","currentSequenceLength","readBits","lastCode","q","blockSize","estimatedDecodedSize","decodedSizeDelta","prevCode","decodedLength","currentBufferLength","hasPrev","_ccitt","ccittFaxDecoder","CCITTFaxDecoder","K","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","encoding","eoline","byteAlign","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","_lookBits","_eatBits","refPos","blackPixels","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","limitValue","_findTableCode","_jbig","jbig2Image","Jbig2Image","globalsStream","globals","parseChunks","_arithmetic_decoder","Jbig2Error","ContextCache","DecodingContext","decodeInteger","contextCache","procedure","decoder","contexts","getContexts","prev","bit","readBit","decodeIAID","Int8Array","ArithmeticDecoder","cache","SegmentTypes","CodingTemplates","y","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","width","height","decodingContext","contextLabel","pixel","row1","row2","bitmap","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","template","concat","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","i0","j0","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","decode","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","symbol","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMax","bitmapWidth","symbolBitmap","xMin","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","s2","t2","symbolRow","offsetT","offsetS","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","imgData","mask","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","buildTree","decodeTablesSegment","lowestValue","highestValue","reader","prefixSizeBits","rangeSizeBits","currentRangeLow","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onImmediateHalftoneRegion","htOffset","decodeNode","linesLength","prefixLengthMax","histogram","currentCode","currentTemp","currentLength","firstCode","standardTablesCache","currentByte","getCustomHuffmanTable","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","numBits","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","_jpg","jpegOptions","decodeTransform","colorTransform","decodeArr","forceRGB","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","JpegImage","getData","drawWidth","drawHeight","isSourcePDF","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","_decodeTransform","_colorTransform","buildHuffmanTable","getBlockBufferOffset","component","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACNextValue","successiveACState","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","h","decodeBlock","decodeFn","componentsLength","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","qt","quantizationTable","buildComponentData","computationBuffer","Int16Array","currentPos","maxPos","newPos","currentMarker","newMarker","dnlScanLines","readDataBlock","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","precision","sofScanLines","componentIds","componentId","componentsCount","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","scaleX","scaleY","numComponents","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_convertYccToRgb","Y","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","_getLinearizedBlockData","rgbData","grayColor","_isColorConversionNeeded","_jpx","jpxImage","JpxImage","tileCount","tiles","tileComponents","tileWidth","tileHeight","tileLeft","tileTop","top","src","srcPosition","dataPosition","imgRowSize","tileRowSize","JpxError","SubbandsGainLog2","LL","LH","HL","HH","failOnCorruptedImage","calculateComponentDimensions","siz","x0","XOsiz","XRsiz","x1","Xsiz","y0","YOsiz","YRsiz","y1","Ysiz","calculateTileGrids","context","tile","SIZ","numXtiles","XTOsiz","XTsiz","numYtiles","YTOsiz","YTsiz","tx0","ty0","tx1","ty1","Csiz","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","entropyCoderWithCustomPrecincts","PPx","precinctsSizes","PPy","xcb_","xcb","ycb_","ycb","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblock","precinctNumber","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","currentTile","layersCount","codingStyleDefaultParameters","maxDecompositionLevelsCount","decompositionLevelsCount","nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","py","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","scale","widthCurrentResolution","heightCurrentResolution","buildPackets","blocksDimensions","bscale","resolutionSubbands","progressionOrder","packetsIterator","parseTilePackets","bufferSize","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","sopMarkerUsed","COD","ephMarkerUsed","valueReady","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","included","inclusionTree","zeroBitPlanesTree","InclusionTree","TagTree","incrementValue","nextLevel","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","segmentationSymbolUsed","right","bottom","blockWidth","blockHeight","bitModel","currentCodingpassType","BitModel","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","nb","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","interleave","levelOffset","transformTile","quantizationParameters","spqcds","SPqcds","scalarExpounded","guardBits","reversibleTransformation","ReversibleTransform","IrreversibleTransform","subbandCoefficients","Float32Array","mu","epsilon","gainLog2","calculate","transformComponents","resultImages","transformedTiles","y2","tile0","out","multipleComponentTransform","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","initializeTile","qcdOrQcc","QCC","QCD","COC","head","headerSize","lbox","tbox","jumpDataLength","method","colorspace","parseCodestream","headerType","parseImageProperties","newByte","oldByte","doNotRecover","sqcd","spqcdSize","mainHeader","isSigned","qcd","noQuantization","spqcd","cqcc","qcc","cod","scod","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","precinctsSize","unsupported","partIndex","partsCount","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","indexNext","width4","index0","significance","iNext","oneRowDown","twoRowsDown","threeRowsDown","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","extend","j1","j2","hl_lh_hh","u","llWidth","llHeight","llItems","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","gamma","K_","calculateSHA512","calculateSHA384","calculateSHA256","PDF20","PDF17","ARCFourCipher","AES256Cipher","AES128Cipher","keyLength","encryptBlock","tmp2","decryptBlock","h0","h1","h2","h3","paddedLength","padded","w","f","rotateArg","Word64","highInteger","lowInteger","high","low","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","add","lowAdd","highAdd","copyTo","assign","rotr","maj","sigma","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","t1","mode384","tmp3","tmp1","NullCipher","AESBaseCipher","_s","_inv_s","_mix","_mixCol","bufferPosition","cipherKey","_keySize","_cyclesOfRepetition","s0","s1","s3","finalize","sourceLength","iv","plain","_decrypt","_key","outputLength","lastBlock","psLen","_decryptBlock2","cipher","_encrypt","_rcon","_expandKey","rcon","t3","t4","compareByteArrays","array1","array2","checkOwnerPassword","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","concatArrays","calculatePDF20Hash","arrayLength","k1","remainder","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","hashDataSize","keyLengthInBytes","checkData","encryptionKey","derivedKey","decodeUserPassword","identityName","algorithm","cfDict","streamCryptoName","handlerDict","passwordBytes","fileIdBytes","decodedPassword","cf","stmf","strf","eff","buildObjectKey","isAes","buildCipherConstructor","cfm","cryptFilter","cipherConstructor","resizeRgbImage","w1","w2","COMPONENTS","xRatio","yRatio","oldIndex","newIndex","xScaled","w1Scanline","numComps","srcOffset","getRgbItem","destOffset","inputLength","decodeMap","bpc","isDefaultDecode","originalWidth","originalHeight","actualHeight","comps","numComponentColors","needsResizing","isPassthrough","allColors","colorMap","getRgbBuffer","rgbPos","destPos","cs","res","IR","parseToIR","fromIR","whitePoint","blackPoint","gray","cmyk","CalGrayCS","matrix","CalRGBCS","basePatternCS","PatternCS","baseIndexedCS","hiVal","IndexedCS","alt","tintFn","AlternateCS","LabCS","colorSpaces","resCS","altIR","altCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","tmpBuf","baseNumComps","usesZeroToOneRange","baseBuf","scaled","tinted","getOutputLength","baseCS","highVal","outputDelta","lookupPos","convertToRgb","srcScale","A","AG","G","L","YW","XW","ZW","XB","YB","ZB","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","D65X","D65Y","D65Z","sRGBTransferFunction","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","C","AGR","GR","BGG","GG","CGB","GB","X","MXA","MXB","MXC","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","XYZ_Black","XYZ_D65","SRGB","fn_g","high1","low2","high2","maxVal","Ls","as","bs","amin","amax","bmin","bmax","M","N","LocalImageCache","_nameRefMap","_imageMap","_imageCache","getByRef","_refCache","pageIndexSet","NUM_PAGES_THRESHOLD","MAX_IMAGES_TO_CACHE","Set","onlyData","getQuadPoints","MarkupAnnotation","AnnotationBorderStyle","Annotation","createObjId","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","quadPoints","quadPointsLists","getTransformMatrix","bbox","maxY","getAxialAlignedBoundingBox","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","annotationFlags","borderStyle","contents","hasAppearance","appearance","modificationDate","flag","_hasFlag","_isViewable","_isPrintable","dictType","setWidth","setStyle","setDashArray","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","evaluator","renderForms","appearanceDict","dashArray","horizontalCornerRadius","verticalCornerRadius","maxHeight","allZeros","validNumber","radius","rawIRT","inReplyTo","rt","replyType","setCreationDate","creationDate","hasPopup","annotationType","fieldName","_constructFieldName","fieldValue","alternativeText","defaultAppearance","fieldResources","fieldFlags","readOnly","hasFieldFlag","unshift","loopDict","alignment","textAlignment","maximumLength","multiLine","comb","checkBox","radioButton","pushButton","_processCheckBox","_processRadioButton","_processPushButton","customAppearance","exportValueOptionsDict","exportValues","hasCorrectOptionCount","exportValue","buttonValue","fieldParent","fieldParentValue","option","isOptionArray","displayValue","combo","multiSelect","DEFAULT_ICON_SIZE","stateModel","parentItem","parentSubtype","parentType","rawParent","parentId","parentFlags","lineCoordinates","rawVertices","vertices","originalInkLists","inkLists","file","QueueOptimizer","addState","parentState","pattern","checkFn","iterateFn","processFn","handlePaintSolidColorImageMask","iFirstSave","fnArray","argsArray","iFirstPIMXO","imageMask","InitialState","iCurr","match","lastProcessed","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iFirstTransform","iFirstPIIXO","map","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","dataOffset","kind","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iTransform","transformArgs","isSameImage","firstPIMXOArg0","firstTransformArg0","firstTransformArg3","iPIMXO","positions","images","maskParams","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","_optimize","NullOptimizer","CHUNK_SIZE","CHUNK_SIZE_ABOUT","streamSink","_streamSink","optimizer","dependencies","_totalLength","weight","_resolved","ready","addDependency","transfers","cached","enqueue","_transfers","_cmap","_fonts","_encodings","_unicode","_standard_fonts","_pattern","_bidi","_glyphlist","_metrics","_murmurhash","_image","DefaultPartialEvaluatorOptions","parsingType3Font","fetchBuiltInCMap","readableStream","sendWithStream","getReader","pump","compressionType","TIME_SLOT_DURATION_MS","CHECK_TIME_EVERY","TimeSlotManager","normalizeBlendMode","parsingArray","maybeBM","checked","endTime","deferred","TILING_PATTERN","SHADING_PATTERN","newOptions","newEvaluator","nodes","graphicStates","graphicStatesKeys","graphicState","bm","xObjects","xObjectsKeys","xObject","xResources","xobj","initialState","group","groupOptions","isolated","knockout","groupSubtype","colorSpace","parseColorSpace","backdrop","image","isInline","localImageCache","imageRef","bitStrideLength","imgArray","PDFImage","createMask","imageIsFromDecodeStream","inverseDecode","softMask","SMALL_IMAGE_DIMENSIONS","imageObj","createImageData","cacheGlobally","getDocId","shouldCache","imgPromise","buildImage","addPageIndex","setData","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","buildFormXObject","clone","patternDict","tilingOpList","resourcesArray","patternResources","getTilingPatternIR","tilingPatternIR","addDependencies","handleSetFont","fontArgs","fontRef","fontName","loadFont","isType3Font","loadType3Data","TranslatedFont","ErrorFont","extraProperties","chars","glyphs","charsToGlyphs","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","gState","gStateObj","gStateKeys","errorFont","fontRes","getFallbackFontDict","fontCapability","preEvaluatedFont","preEvaluateFont","descriptor","fontID","translatedPromise","fontRefIsRef","fontAliases","aliasFontRef","Font","getFontID","translateFont","fontType","xrefFontStats","fontFile3","getFontType","parsingText","lastIndex","opArgs","patternName","typeNum","handleTilingType","shading","Pattern","parseShading","getIR","EvalState","xobjs","StateManager","preprocessor","EvaluatorPreprocessor","timeSlotManager","closePendingRestoreOPS","argument","savedStatesDepth","promiseBody","stop","operation","localImage","getByName","resolveXObject","rejectXObject","globalImage","buildPaintImageXObject","fontSize","ensureStateFont","handleText","combinedGlyphs","arrLength","arrItem","strokeColorSpace","handleColorN","shadingRes","patternIR","dictName","extGState","buildPath","seenStyles","TextState","WhitespaceRegexp","textContent","styles","textContentItem","vertical","lastAdvanceWidth","lastAdvanceHeight","textAdvanceScale","spaceWidth","fakeSpaceMin","Infinity","fakeMultiSpaceMin","fakeMultiSpaceMax","textRunBreakAllowed","SPACE_FACTOR","MULTI_SPACE_FACTOR","MULTI_SPACE_FACTOR_MAX","emptyXObjectCache","textState","ensureTextContentItem","fontFamily","fallbackName","ascent","descent","tsm","textHScale","textRise","fontMatrix","glyphHeight","trm","ctm","textMatrix","textLineMatrix","scaleLineX","scaleCtmX","isMonospace","replaceWhitespace","runBidiTransform","textChunk","bidiResult","bidi","buildTextContentItem","glyph","glyphWidth","vmetric","glyphUnicode","unicode","NormalizedUnicodes","getNormalizedUnicodes","reverseIfRtl","charSpacing","isSpace","wordSpacing","addFakeSpaces","tx","ty","w0","translateTextMatrix","abs","fakeSpaces","round","flushTextContentItem","enqueueChunk","advance","fontNameArg","fontSizeArg","leading","isSameTextLine","translateTextLineMatrix","carriageReturn","calcTextLineMatrixAdvance","setTextLineMatrix","breakTextRun","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","gStateFont","extractDataStructures","baseDict","properties","cidToGidBytes","toUnicode","toUnicodePromise","readToUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","differences","baseEncodingName","diffEncoding","defaultEncoding","getEncoding","isSymbolicFont","FontFlags","Symbolic","isNonsymbolicFont","Nonsymbolic","StandardEncoding","WinAnsiEncoding","MacRomanEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","hasEncoding","buildToUnicode","builtToUnicode","readCidToGidMap","forceGlyphs","charcode","glyphName","glyphsUnicodeMap","getGlyphsUnicode","codeStr","_buildSimpleFontToUnicode","getUnicodeForGlyph","baseEncoding","fromCodePoint","ToUnicodeMap","hasIncludedToUnicodeMap","fallbackToUnicode","cMap","builtInCMap","IdentityCMap","ucs2CMapName","CMapFactory","useCMap","ucs2CMap","cid","ucs2","IdentityToUnicodeMap","firstChar","lastChar","cmapObj","cmap","getMap","charCode","glyphsData","glyphID","extractWidths","defaultVMetrics","widths","glyphsWidths","defaultWidth","glyphsVMetrics","vmetrics","parseFloat","baseFontName","metrics","getBaseFontMetrics","buildCharCodeToWidth","firstWidth","FixedPitch","isSerifFont","fontNameWoStyle","getSerifFonts","search","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","glyphWidths","widthsByGlyphName","uint8array","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","hexdigest","maxCharIndex","Serif","getSymbolsFonts","newProperties","baseFont","fontNameStr","baseFontStr","cMapPromise","fontFile","length1","length2","length3","fixedPitch","xHeight","capHeight","italicAngle","cidEncoding","fontChar","renderer","hasBuiltPath","getPathJs","accent","_fallbackFontDict","_extraProperties","type3Loaded","sent","exportData","glyphCacheValues","parentOperatorList","type3Options","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcKeys","charProcOperatorList","glyphStream","dummyOperatorList","stateStack","old","txDiff","tyDiff","denominator","calcRenderMatrix","getOPMap","numArgs","variableArgs","J","ri","gs","Q","cm","re","S","F","W","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","CS","SC","SCN","sc","scn","RG","rg","sh","BI","ID","EI","Do","MP","DP","BMC","BDC","EMC","BX","EX","BM","BD","true","fa","fal","fals","false","nu","nul","null","MAX_INVALID_PATH_OPS","opMap","nonProcessedArgs","_numInvalidPathOPS","opSpec","argsLength","preprocessCommand","CMap","BUILT_IN_CMAPS","MAX_MAP_RANGE","codespaceRanges","numCodespaceRanges","dstLow","dst","nn","codespaceRange","addCodespaceRange","BinaryCMapReader","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","processBinaryCMap","readByte","char","sequence","dataSize","ucs2DataSize","subitemsCount","readNumber","readHex","readHexNumber","mapOne","readSigned","mapCidRange","readHexSigned","mapBfRange","readString","stack","sp","strToInt","expectString","expectInt","parseBfChar","parseBfRange","mapBfRangeToArray","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","newCMap","useCodespaceRanges","contains","cMapData","parsedCMap","isIdentityCMap","SEAC_ANALYSIS_ENABLED","_cff_parser","_font_renderer","_type1_parser","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","Script","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","adjustWidths","adjustToUnicode","builtInEncoding","amend","recoverGlyphName","Glyph","operatorListId","isInFont","matchesForCache","OpenTypeFileBuilder","writeInt16","writeInt32","writeData","sfnt","tables","getSearchParams","entriesCount","entrySize","maxPower2","searchRange","rangeShift","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","toArray","tablesNames","tableName","numTables","tableOffsets","searchParams","checksum","quad","addTable","tag","missingFile","glyphCache","toFontChar","isEmpty","fallbackToSystemFont","getFontFileType","mimetype","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","int16","writeSignedInt16","signedInt16","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","fileType","fileSubtype","buildToFontChar","adjustMapping","charCodeToGlyphId","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","originalCharCode","glyphId","fontCharCode","getRanges","numGlyphs","codeIndices","createCmapTable","bmpLength","trailingRangesCount","segCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","startCode","format314","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","getUnicodeRangeFor","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","angle","createNameTable","proto","strings","stringsUnicode","strBufUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","FontRendererFactory","exportDataProperties","nonStdFontMap","getNonStdFontMap","isStandardFont","remeasure","GlyphMapForStandardFonts","getGlyphMapForStandardFonts","SupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForArialBlack","SupplementalGlyphMapForCalibri","getSupplementalGlyphMapForCalibri","isIdentityUnicode","unicodeCharCode","getDingbatsGlyphsUnicode","VALID_TABLES","readTables","hhea","hmtx","maxp","post","readTableEntry","previousPosition","readOpenTypeHeader","ttf","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","potentialHeader","potentialTables","readNameTable","nameEntry","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","format","segIndex","offsetsCount","rangeOffset","offsetIndex","offsets","sanitizeMetrics","dupFirstEntry","numOfMetrics","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","endPoint","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","repeat","glyphDataLength","sanitizeHead","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeGlyphLocations","loca","isGlyphLocationsLong","maxSizeOfInstructions","itemSize","itemDecode","itemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","writeOffset","missingGlyphs","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","glyphNames","valid","glyphNameIndexes","customNames","stringLength","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","language","record","nameIndex","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsStackDeltas","stackTop","functionsDefined","functionsUsed","newStackLength","stackDelta","NaN","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","cffFile","ttcData","isTrueType","isComposite","maxZones","glyphsInfo","metricsOverride","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","standardGlyphName","unicodeOrCharCode","glyphZeroId","newMapping","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","mapping","getGlyphMapping","hasGlyphId","getCharCodes","charCodes","createCharCode","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","tan","cffWidths","charstring","possibleSpaceReplacements","charCodeOf","charToGlyph","widthCode","mapSpecialUnicodeValues","charsCache","charsCacheKey","readCharCode","type1FontGlyphMapping","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","headerBytes","headerBytesLength","EEXEC_SIGNATURE","streamStartPos","getEexecBlock","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","subrs","getType2Subrs","wrap","getSeacs","charstringsLen","type1Charstrings","type1Subrs","type2Subrs","CFF","CFFHeader","CFFTopDict","setByName","CFFStrings","globalSubrIndex","CFFIndex","charsetArray","CFFStandardStrings","CFFCharset","charStringsIndex","charStrings","privateDict","CFFPrivateDict","field","privateData","subrIndex","subrsIndex","charsets","isCIDFont","CFFFDSelect","_charsets","MAX_SUBR_NESTING","NUM_STANDARD_CFF_STRINGS","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","seacAnalysisEnabled","parseHeader","parseIndex","topDictIndex","stringIndex","topDictParsed","parseDict","createDict","parseNameIndex","parseStringIndex","parsePrivateDict","hasName","charStringOffset","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","localSubrIndex","hdrSize","offSize","parseOperand","parseFloatOperand","operands","cffIndex","offsetSize","offsetStart","offsetEnd","Type","cffDict","pair","setByKey","parseCharString","callDepth","stackSize","validationCommand","subrNumber","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","emptyPrivateDictionary","parentDict","privateOffset","privateDictEnd","dictData","subrsOffset","relativeOffset","removeByName","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","raw","predefined","readSupplement","supplementsCount","sid","ExpertEncoding","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","glyphZero","getSID","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","valueLength","createTables","layout","glyphIndex","CFFOffsetTracker","isTracking","track","location","setEntryLocation","offset1","offset2","offset3","offset4","compileHeader","compileNameIndex","subDict","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeFloat","encodeInteger","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","offsetTracker","compileGlobalSubrIndex","writeByteArray","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","MacExpertEncoding","encodingName","AE","AEacute","AEmacron","AEsmall","Aacute","Aacutesmall","Abreve","Abreveacute","Abrevecyrillic","Abrevedotbelow","Abrevegrave","Abrevehookabove","Abrevetilde","Acaron","Acircle","Acircumflex","Acircumflexacute","Acircumflexdotbelow","Acircumflexgrave","Acircumflexhookabove","Acircumflexsmall","Acircumflextilde","Acute","Acutesmall","Acyrillic","Adblgrave","Adieresis","Adieresiscyrillic","Adieresismacron","Adieresissmall","Adotbelow","Adotmacron","Agrave","Agravesmall","Ahookabove","Aiecyrillic","Ainvertedbreve","Alpha","Alphatonos","Amacron","Amonospace","Aogonek","Aring","Aringacute","Aringbelow","Aringsmall","Asmall","Atilde","Atildesmall","Aybarmenian","Bcircle","Bdotaccent","Bdotbelow","Becyrillic","Benarmenian","Beta","Bhook","Blinebelow","Bmonospace","Brevesmall","Bsmall","Btopbar","Caarmenian","Cacute","Caron","Caronsmall","Ccaron","Ccedilla","Ccedillaacute","Ccedillasmall","Ccircle","Ccircumflex","Cdot","Cdotaccent","Cedillasmall","Chaarmenian","Cheabkhasiancyrillic","Checyrillic","Chedescenderabkhasiancyrillic","Chedescendercyrillic","Chedieresiscyrillic","Cheharmenian","Chekhakassiancyrillic","Cheverticalstrokecyrillic","Chi","Chook","Circumflexsmall","Cmonospace","Coarmenian","Csmall","D","DZ","DZcaron","Daarmenian","Dafrican","Dcaron","Dcedilla","Dcircle","Dcircumflexbelow","Dcroat","Ddotaccent","Ddotbelow","Decyrillic","Deicoptic","Delta","Deltagreek","Dhook","Dieresis","DieresisAcute","DieresisGrave","Dieresissmall","Digammagreek","Djecyrillic","Dlinebelow","Dmonospace","Dotaccentsmall","Dslash","Dsmall","Dtopbar","Dz","Dzcaron","Dzeabkhasiancyrillic","Dzecyrillic","Dzhecyrillic","Eacute","Eacutesmall","Ebreve","Ecaron","Ecedillabreve","Echarmenian","Ecircle","Ecircumflex","Ecircumflexacute","Ecircumflexbelow","Ecircumflexdotbelow","Ecircumflexgrave","Ecircumflexhookabove","Ecircumflexsmall","Ecircumflextilde","Ecyrillic","Edblgrave","Edieresis","Edieresissmall","Edot","Edotaccent","Edotbelow","Efcyrillic","Egrave","Egravesmall","Eharmenian","Ehookabove","Eightroman","Einvertedbreve","Eiotifiedcyrillic","Elcyrillic","Elevenroman","Emacron","Emacronacute","Emacrongrave","Emcyrillic","Emonospace","Encyrillic","Endescendercyrillic","Eng","Enghecyrillic","Enhookcyrillic","Eogonek","Eopen","Epsilon","Epsilontonos","Ercyrillic","Ereversed","Ereversedcyrillic","Escyrillic","Esdescendercyrillic","Esh","Esmall","Eta","Etarmenian","Etatonos","Eth","Ethsmall","Etilde","Etildebelow","Euro","Ezh","Ezhcaron","Ezhreversed","Fcircle","Fdotaccent","Feharmenian","Feicoptic","Fhook","Fitacyrillic","Fiveroman","Fmonospace","Fourroman","Fsmall","GBsquare","Gacute","Gamma","Gammaafrican","Gangiacoptic","Gbreve","Gcaron","Gcedilla","Gcircle","Gcircumflex","Gcommaaccent","Gdot","Gdotaccent","Gecyrillic","Ghadarmenian","Ghemiddlehookcyrillic","Ghestrokecyrillic","Gheupturncyrillic","Ghook","Gimarmenian","Gjecyrillic","Gmacron","Gmonospace","Grave","Gravesmall","Gsmall","Gsmallhook","Gstroke","H","H18533","H18543","H18551","H22073","HPsquare","Haabkhasiancyrillic","Hadescendercyrillic","Hardsigncyrillic","Hbar","Hbrevebelow","Hcedilla","Hcircle","Hcircumflex","Hdieresis","Hdotaccent","Hdotbelow","Hmonospace","Hoarmenian","Horicoptic","Hsmall","Hungarumlaut","Hungarumlautsmall","Hzsquare","IAcyrillic","IJ","IUcyrillic","Iacute","Iacutesmall","Ibreve","Icaron","Icircle","Icircumflex","Icircumflexsmall","Icyrillic","Idblgrave","Idieresis","Idieresisacute","Idieresiscyrillic","Idieresissmall","Idot","Idotaccent","Idotbelow","Iebrevecyrillic","Iecyrillic","Ifraktur","Igrave","Igravesmall","Ihookabove","Iicyrillic","Iinvertedbreve","Iishortcyrillic","Imacron","Imacroncyrillic","Imonospace","Iniarmenian","Iocyrillic","Iogonek","Iota","Iotaafrican","Iotadieresis","Iotatonos","Ismall","Istroke","Itilde","Itildebelow","Izhitsacyrillic","Izhitsadblgravecyrillic","Jaarmenian","Jcircle","Jcircumflex","Jecyrillic","Jheharmenian","Jmonospace","Jsmall","KBsquare","KKsquare","Kabashkircyrillic","Kacute","Kacyrillic","Kadescendercyrillic","Kahookcyrillic","Kappa","Kastrokecyrillic","Kaverticalstrokecyrillic","Kcaron","Kcedilla","Kcircle","Kcommaaccent","Kdotbelow","Keharmenian","Kenarmenian","Khacyrillic","Kheicoptic","Khook","Kjecyrillic","Klinebelow","Kmonospace","Koppacyrillic","Koppagreek","Ksicyrillic","Ksmall","LJ","Lacute","Lambda","Lcaron","Lcedilla","Lcircle","Lcircumflexbelow","Lcommaaccent","Ldot","Ldotaccent","Ldotbelow","Ldotbelowmacron","Liwnarmenian","Lj","Ljecyrillic","Llinebelow","Lmonospace","Lslash","Lslashsmall","Lsmall","MBsquare","Macron","Macronsmall","Macute","Mcircle","Mdotaccent","Mdotbelow","Menarmenian","Mmonospace","Msmall","Mturned","Mu","NJ","Nacute","Ncaron","Ncedilla","Ncircle","Ncircumflexbelow","Ncommaaccent","Ndotaccent","Ndotbelow","Nhookleft","Nineroman","Nj","Njecyrillic","Nlinebelow","Nmonospace","Nowarmenian","Nsmall","Ntilde","Ntildesmall","Nu","O","OE","OEsmall","Oacute","Oacutesmall","Obarredcyrillic","Obarreddieresiscyrillic","Obreve","Ocaron","Ocenteredtilde","Ocircle","Ocircumflex","Ocircumflexacute","Ocircumflexdotbelow","Ocircumflexgrave","Ocircumflexhookabove","Ocircumflexsmall","Ocircumflextilde","Ocyrillic","Odblacute","Odblgrave","Odieresis","Odieresiscyrillic","Odieresissmall","Odotbelow","Ogoneksmall","Ograve","Ogravesmall","Oharmenian","Ohm","Ohookabove","Ohorn","Ohornacute","Ohorndotbelow","Ohorngrave","Ohornhookabove","Ohorntilde","Ohungarumlaut","Oi","Oinvertedbreve","Omacron","Omacronacute","Omacrongrave","Omega","Omegacyrillic","Omegagreek","Omegaroundcyrillic","Omegatitlocyrillic","Omegatonos","Omicron","Omicrontonos","Omonospace","Oneroman","Oogonek","Oogonekmacron","Oopen","Oslash","Oslashacute","Oslashsmall","Osmall","Ostrokeacute","Otcyrillic","Otilde","Otildeacute","Otildedieresis","Otildesmall","P","Pacute","Pcircle","Pdotaccent","Pecyrillic","Peharmenian","Pemiddlehookcyrillic","Phi","Phook","Pi","Piwrarmenian","Pmonospace","Psi","Psicyrillic","Psmall","Qcircle","Qmonospace","Qsmall","R","Raarmenian","Racute","Rcaron","Rcedilla","Rcircle","Rcommaaccent","Rdblgrave","Rdotaccent","Rdotbelow","Rdotbelowmacron","Reharmenian","Rfraktur","Rho","Ringsmall","Rinvertedbreve","Rlinebelow","Rmonospace","Rsmall","Rsmallinverted","Rsmallinvertedsuperior","SF010000","SF020000","SF030000","SF040000","SF050000","SF060000","SF070000","SF080000","SF090000","SF100000","SF110000","SF190000","SF200000","SF210000","SF220000","SF230000","SF240000","SF250000","SF260000","SF270000","SF280000","SF360000","SF370000","SF380000","SF390000","SF400000","SF410000","SF420000","SF430000","SF440000","SF450000","SF460000","SF470000","SF480000","SF490000","SF500000","SF510000","SF520000","SF530000","SF540000","Sacute","Sacutedotaccent","Sampigreek","Scaron","Scarondotaccent","Scaronsmall","Scedilla","Schwa","Schwacyrillic","Schwadieresiscyrillic","Scircle","Scircumflex","Scommaaccent","Sdotaccent","Sdotbelow","Sdotbelowdotaccent","Seharmenian","Sevenroman","Shaarmenian","Shacyrillic","Shchacyrillic","Sheicoptic","Shhacyrillic","Shimacoptic","Sigma","Sixroman","Smonospace","Softsigncyrillic","Ssmall","Stigmagreek","T","Tau","Tbar","Tcaron","Tcedilla","Tcircle","Tcircumflexbelow","Tcommaaccent","Tdotaccent","Tdotbelow","Tecyrillic","Tedescendercyrillic","Tenroman","Tetsecyrillic","Theta","Thook","Thorn","Thornsmall","Threeroman","Tildesmall","Tiwnarmenian","Tlinebelow","Tmonospace","Toarmenian","Tonefive","Tonesix","Tonetwo","Tretroflexhook","Tsecyrillic","Tshecyrillic","Tsmall","Twelveroman","Tworoman","U","Uacute","Uacutesmall","Ubreve","Ucaron","Ucircle","Ucircumflex","Ucircumflexbelow","Ucircumflexsmall","Ucyrillic","Udblacute","Udblgrave","Udieresis","Udieresisacute","Udieresisbelow","Udieresiscaron","Udieresiscyrillic","Udieresisgrave","Udieresismacron","Udieresissmall","Udotbelow","Ugrave","Ugravesmall","Uhookabove","Uhorn","Uhornacute","Uhorndotbelow","Uhorngrave","Uhornhookabove","Uhorntilde","Uhungarumlaut","Uhungarumlautcyrillic","Uinvertedbreve","Ukcyrillic","Umacron","Umacroncyrillic","Umacrondieresis","Umonospace","Uogonek","Upsilon","Upsilon1","Upsilonacutehooksymbolgreek","Upsilonafrican","Upsilondieresis","Upsilondieresishooksymbolgreek","Upsilonhooksymbol","Upsilontonos","Uring","Ushortcyrillic","Usmall","Ustraightcyrillic","Ustraightstrokecyrillic","Utilde","Utildeacute","Utildebelow","V","Vcircle","Vdotbelow","Vecyrillic","Vewarmenian","Vhook","Vmonospace","Voarmenian","Vsmall","Vtilde","Wacute","Wcircle","Wcircumflex","Wdieresis","Wdotaccent","Wdotbelow","Wgrave","Wmonospace","Wsmall","Xcircle","Xdieresis","Xdotaccent","Xeharmenian","Xi","Xmonospace","Xsmall","Yacute","Yacutesmall","Yatcyrillic","Ycircle","Ycircumflex","Ydieresis","Ydieresissmall","Ydotaccent","Ydotbelow","Yericyrillic","Yerudieresiscyrillic","Ygrave","Yhook","Yhookabove","Yiarmenian","Yicyrillic","Yiwnarmenian","Ymonospace","Ysmall","Ytilde","Yusbigcyrillic","Yusbigiotifiedcyrillic","Yuslittlecyrillic","Yuslittleiotifiedcyrillic","Zaarmenian","Zacute","Zcaron","Zcaronsmall","Zcircle","Zcircumflex","Zdot","Zdotaccent","Zdotbelow","Zecyrillic","Zedescendercyrillic","Zedieresiscyrillic","Zeta","Zhearmenian","Zhebrevecyrillic","Zhecyrillic","Zhedescendercyrillic","Zhedieresiscyrillic","Zlinebelow","Zmonospace","Zsmall","Zstroke","aabengali","aacute","aadeva","aagujarati","aagurmukhi","aamatragurmukhi","aarusquare","aavowelsignbengali","aavowelsigndeva","aavowelsigngujarati","abbreviationmarkarmenian","abbreviationsigndeva","abengali","abopomofo","abreve","abreveacute","abrevecyrillic","abrevedotbelow","abrevegrave","abrevehookabove","abrevetilde","acaron","acircle","acircumflex","acircumflexacute","acircumflexdotbelow","acircumflexgrave","acircumflexhookabove","acircumflextilde","acute","acutebelowcmb","acutecmb","acutecomb","acutedeva","acutelowmod","acutetonecmb","acyrillic","adblgrave","addakgurmukhi","adeva","adieresis","adieresiscyrillic","adieresismacron","adotbelow","adotmacron","ae","aeacute","aekorean","aemacron","afii00208","afii08941","afii10017","afii10018","afii10019","afii10020","afii10021","afii10022","afii10023","afii10024","afii10025","afii10026","afii10027","afii10028","afii10029","afii10030","afii10031","afii10032","afii10033","afii10034","afii10035","afii10036","afii10037","afii10038","afii10039","afii10040","afii10041","afii10042","afii10043","afii10044","afii10045","afii10046","afii10047","afii10048","afii10049","afii10050","afii10051","afii10052","afii10053","afii10054","afii10055","afii10056","afii10057","afii10058","afii10059","afii10060","afii10061","afii10062","afii10063","afii10064","afii10065","afii10066","afii10067","afii10068","afii10069","afii10070","afii10071","afii10072","afii10073","afii10074","afii10075","afii10076","afii10077","afii10078","afii10079","afii10080","afii10081","afii10082","afii10083","afii10084","afii10085","afii10086","afii10087","afii10088","afii10089","afii10090","afii10091","afii10092","afii10093","afii10094","afii10095","afii10096","afii10097","afii10098","afii10099","afii10100","afii10101","afii10102","afii10103","afii10104","afii10105","afii10106","afii10107","afii10108","afii10109","afii10110","afii10145","afii10146","afii10147","afii10148","afii10192","afii10193","afii10194","afii10195","afii10196","afii10831","afii10832","afii10846","afii299","afii300","afii301","afii57381","afii57388","afii57392","afii57393","afii57394","afii57395","afii57396","afii57397","afii57398","afii57399","afii57400","afii57401","afii57403","afii57407","afii57409","afii57410","afii57411","afii57412","afii57413","afii57414","afii57415","afii57416","afii57417","afii57418","afii57419","afii57420","afii57421","afii57422","afii57423","afii57424","afii57425","afii57426","afii57427","afii57428","afii57429","afii57430","afii57431","afii57432","afii57433","afii57434","afii57440","afii57441","afii57442","afii57443","afii57444","afii57445","afii57446","afii57448","afii57449","afii57450","afii57451","afii57452","afii57453","afii57454","afii57455","afii57456","afii57457","afii57458","afii57470","afii57505","afii57506","afii57507","afii57508","afii57509","afii57511","afii57512","afii57513","afii57514","afii57519","afii57534","afii57636","afii57645","afii57658","afii57664","afii57665","afii57666","afii57667","afii57668","afii57669","afii57670","afii57671","afii57672","afii57673","afii57674","afii57675","afii57676","afii57677","afii57678","afii57679","afii57680","afii57681","afii57682","afii57683","afii57684","afii57685","afii57686","afii57687","afii57688","afii57689","afii57690","afii57694","afii57695","afii57700","afii57705","afii57716","afii57717","afii57718","afii57723","afii57793","afii57794","afii57795","afii57796","afii57797","afii57798","afii57799","afii57800","afii57801","afii57802","afii57803","afii57804","afii57806","afii57807","afii57839","afii57841","afii57842","afii57929","afii61248","afii61289","afii61352","afii61573","afii61574","afii61575","afii61664","afii63167","afii64937","agrave","agujarati","agurmukhi","ahiragana","ahookabove","aibengali","aibopomofo","aideva","aiecyrillic","aigujarati","aigurmukhi","aimatragurmukhi","ainarabic","ainfinalarabic","aininitialarabic","ainmedialarabic","ainvertedbreve","aivowelsignbengali","aivowelsigndeva","aivowelsigngujarati","akatakana","akatakanahalfwidth","akorean","alef","alefarabic","alefdageshhebrew","aleffinalarabic","alefhamzaabovearabic","alefhamzaabovefinalarabic","alefhamzabelowarabic","alefhamzabelowfinalarabic","alefhebrew","aleflamedhebrew","alefmaddaabovearabic","alefmaddaabovefinalarabic","alefmaksuraarabic","alefmaksurafinalarabic","alefmaksurainitialarabic","alefmaksuramedialarabic","alefpatahhebrew","alefqamatshebrew","aleph","allequal","alphatonos","amacron","amonospace","ampersand","ampersandmonospace","ampersandsmall","amsquare","anbopomofo","angbopomofo","angbracketleft","angbracketright","angkhankhuthai","anglebracketleft","anglebracketleftvertical","anglebracketright","anglebracketrightvertical","angleleft","angleright","angstrom","anoteleia","anudattadeva","anusvarabengali","anusvaradeva","anusvaragujarati","aogonek","apaatosquare","aparen","apostrophearmenian","apostrophemod","apple","approaches","approxequal","approxequalorimage","approximatelyequal","araeaekorean","araeakorean","arc","arighthalfring","aring","aringacute","aringbelow","arrowboth","arrowdashdown","arrowdashleft","arrowdashright","arrowdashup","arrowdblboth","arrowdbldown","arrowdblleft","arrowdblright","arrowdblup","arrowdown","arrowdownleft","arrowdownright","arrowdownwhite","arrowheaddownmod","arrowheadleftmod","arrowheadrightmod","arrowheadupmod","arrowhorizex","arrowleft","arrowleftdbl","arrowleftdblstroke","arrowleftoverright","arrowleftwhite","arrowright","arrowrightdblstroke","arrowrightheavy","arrowrightoverleft","arrowrightwhite","arrowtableft","arrowtabright","arrowup","arrowupdn","arrowupdnbse","arrowupdownbase","arrowupleft","arrowupleftofdown","arrowupright","arrowupwhite","arrowvertex","asciicircum","asciicircummonospace","asciitilde","asciitildemonospace","ascript","ascriptturned","asmallhiragana","asmallkatakana","asmallkatakanahalfwidth","asterisk","asteriskaltonearabic","asteriskarabic","asteriskmath","asteriskmonospace","asterisksmall","asterism","asuperior","asymptoticallyequal","atilde","atmonospace","atsmall","aturned","aubengali","aubopomofo","audeva","augujarati","augurmukhi","aulengthmarkbengali","aumatragurmukhi","auvowelsignbengali","auvowelsigndeva","auvowelsigngujarati","avagrahadeva","aybarmenian","ayin","ayinaltonehebrew","ayinhebrew","babengali","backslash","backslashmonospace","badeva","bagujarati","bagurmukhi","bahiragana","bahtthai","bakatakana","bar","barmonospace","bbopomofo","bcircle","bdotaccent","bdotbelow","beamedsixteenthnotes","because","becyrillic","beharabic","behfinalarabic","behinitialarabic","behiragana","behmedialarabic","behmeeminitialarabic","behmeemisolatedarabic","behnoonfinalarabic","bekatakana","benarmenian","bet","betasymbolgreek","betdagesh","betdageshhebrew","bethebrew","betrafehebrew","bhabengali","bhadeva","bhagujarati","bhagurmukhi","bhook","bihiragana","bikatakana","bilabialclick","bindigurmukhi","birusquare","blackcircle","blackdiamond","blackdownpointingtriangle","blackleftpointingpointer","blackleftpointingtriangle","blacklenticularbracketleft","blacklenticularbracketleftvertical","blacklenticularbracketright","blacklenticularbracketrightvertical","blacklowerlefttriangle","blacklowerrighttriangle","blackrectangle","blackrightpointingpointer","blackrightpointingtriangle","blacksmallsquare","blacksmilingface","blacksquare","blackstar","blackupperlefttriangle","blackupperrighttriangle","blackuppointingsmalltriangle","blackuppointingtriangle","blank","blinebelow","bmonospace","bobaimaithai","bohiragana","bokatakana","bparen","bqsquare","braceex","braceleft","braceleftbt","braceleftmid","braceleftmonospace","braceleftsmall","bracelefttp","braceleftvertical","braceright","bracerightbt","bracerightmid","bracerightmonospace","bracerightsmall","bracerighttp","bracerightvertical","bracketleft","bracketleftbt","bracketleftex","bracketleftmonospace","bracketlefttp","bracketright","bracketrightbt","bracketrightex","bracketrightmonospace","bracketrighttp","breve","brevebelowcmb","brevecmb","breveinvertedbelowcmb","breveinvertedcmb","breveinverteddoublecmb","bridgebelowcmb","bridgeinvertedbelowcmb","brokenbar","bstroke","bsuperior","btopbar","buhiragana","bukatakana","bullet","bulletinverse","bulletoperator","bullseye","caarmenian","cabengali","cacute","cadeva","cagujarati","cagurmukhi","calsquare","candrabindubengali","candrabinducmb","candrabindudeva","candrabindugujarati","capslock","careof","caron","caronbelowcmb","caroncmb","carriagereturn","cbopomofo","ccaron","ccedilla","ccedillaacute","ccircle","ccircumflex","ccurl","cdot","cdotaccent","cdsquare","cedilla","cedillacmb","cent","centigrade","centinferior","centmonospace","centoldstyle","centsuperior","chaarmenian","chabengali","chadeva","chagujarati","chagurmukhi","chbopomofo","cheabkhasiancyrillic","checkmark","checyrillic","chedescenderabkhasiancyrillic","chedescendercyrillic","chedieresiscyrillic","cheharmenian","chekhakassiancyrillic","cheverticalstrokecyrillic","chi","chieuchacirclekorean","chieuchaparenkorean","chieuchcirclekorean","chieuchkorean","chieuchparenkorean","chochangthai","chochanthai","chochingthai","chochoethai","chook","cieucacirclekorean","cieucaparenkorean","cieuccirclekorean","cieuckorean","cieucparenkorean","cieucuparenkorean","circle","circlecopyrt","circlemultiply","circleot","circleplus","circlepostalmark","circlewithlefthalfblack","circlewithrighthalfblack","circumflex","circumflexbelowcmb","circumflexcmb","clickalveolar","clickdental","clicklateral","clickretroflex","club","clubsuitblack","clubsuitwhite","cmcubedsquare","cmonospace","cmsquaredsquare","coarmenian","colon","colonmonetary","colonmonospace","colonsign","colonsmall","colontriangularhalfmod","colontriangularmod","comma","commaabovecmb","commaaboverightcmb","commaaccent","commaarabic","commaarmenian","commainferior","commamonospace","commareversedabovecmb","commareversedmod","commasmall","commasuperior","commaturnedabovecmb","commaturnedmod","compass","congruent","contourintegral","control","controlACK","controlBEL","controlBS","controlCAN","controlCR","controlDC1","controlDC2","controlDC3","controlDC4","controlDEL","controlDLE","controlEM","controlENQ","controlEOT","controlESC","controlETB","controlETX","controlFF","controlFS","controlGS","controlHT","controlLF","controlNAK","controlNULL","controlRS","controlSI","controlSO","controlSOT","controlSTX","controlSUB","controlSYN","controlUS","controlVT","copyright","copyrightsans","copyrightserif","cornerbracketleft","cornerbracketlefthalfwidth","cornerbracketleftvertical","cornerbracketright","cornerbracketrighthalfwidth","cornerbracketrightvertical","corporationsquare","cosquare","coverkgsquare","cparen","cruzeiro","cstretched","curlyand","curlyor","currency","cyrBreve","cyrFlex","cyrbreve","cyrflex","daarmenian","dabengali","dadarabic","dadeva","dadfinalarabic","dadinitialarabic","dadmedialarabic","dagesh","dageshhebrew","dagger","daggerdbl","dagujarati","dagurmukhi","dahiragana","dakatakana","dalarabic","dalet","daletdagesh","daletdageshhebrew","dalethebrew","dalfinalarabic","dammaarabic","dammalowarabic","dammatanaltonearabic","dammatanarabic","danda","dargahebrew","dargalefthebrew","dasiapneumatacyrilliccmb","dblGrave","dblanglebracketleft","dblanglebracketleftvertical","dblanglebracketright","dblanglebracketrightvertical","dblarchinvertedbelowcmb","dblarrowleft","dblarrowright","dbldanda","dblgrave","dblgravecmb","dblintegral","dbllowline","dbllowlinecmb","dbloverlinecmb","dblprimemod","dblverticalbar","dblverticallineabovecmb","dbopomofo","dbsquare","dcaron","dcedilla","dcircle","dcircumflexbelow","dcroat","ddabengali","ddadeva","ddagujarati","ddagurmukhi","ddalarabic","ddalfinalarabic","dddhadeva","ddhabengali","ddhadeva","ddhagujarati","ddhagurmukhi","ddotaccent","ddotbelow","decimalseparatorarabic","decimalseparatorpersian","decyrillic","degree","dehihebrew","dehiragana","deicoptic","dekatakana","deleteleft","deleteright","deltaturned","denominatorminusonenumeratorbengali","dezh","dhabengali","dhadeva","dhagujarati","dhagurmukhi","dhook","dialytikatonos","dialytikatonoscmb","diamond","diamondsuitwhite","dieresis","dieresisacute","dieresisbelowcmb","dieresiscmb","dieresisgrave","dieresistonos","dihiragana","dikatakana","dittomark","divide","divides","divisionslash","djecyrillic","dkshade","dlinebelow","dlsquare","dmacron","dmonospace","dnblock","dochadathai","dodekthai","dohiragana","dokatakana","dollar","dollarinferior","dollarmonospace","dollaroldstyle","dollarsmall","dollarsuperior","dong","dorusquare","dotaccent","dotaccentcmb","dotbelowcmb","dotbelowcomb","dotkatakana","dotlessi","dotlessj","dotlessjstrokehook","dotmath","dottedcircle","doubleyodpatah","doubleyodpatahhebrew","downtackbelowcmb","downtackmod","dparen","dsuperior","dtail","dtopbar","duhiragana","dukatakana","dz","dzaltone","dzcaron","dzcurl","dzeabkhasiancyrillic","dzecyrillic","dzhecyrillic","eacute","earth","ebengali","ebopomofo","ebreve","ecandradeva","ecandragujarati","ecandravowelsigndeva","ecandravowelsigngujarati","ecaron","ecedillabreve","echarmenian","echyiwnarmenian","ecircle","ecircumflex","ecircumflexacute","ecircumflexbelow","ecircumflexdotbelow","ecircumflexgrave","ecircumflexhookabove","ecircumflextilde","ecyrillic","edblgrave","edeva","edieresis","edot","edotaccent","edotbelow","eegurmukhi","eematragurmukhi","efcyrillic","egrave","egujarati","eharmenian","ehbopomofo","ehiragana","ehookabove","eibopomofo","eight","eightarabic","eightbengali","eightcircle","eightcircleinversesansserif","eightdeva","eighteencircle","eighteenparen","eighteenperiod","eightgujarati","eightgurmukhi","eighthackarabic","eighthangzhou","eighthnotebeamed","eightideographicparen","eightinferior","eightmonospace","eightoldstyle","eightparen","eightperiod","eightpersian","eightroman","eightsuperior","eightthai","einvertedbreve","eiotifiedcyrillic","ekatakana","ekatakanahalfwidth","ekonkargurmukhi","ekorean","elcyrillic","elevencircle","elevenparen","elevenperiod","elevenroman","ellipsis","ellipsisvertical","emacron","emacronacute","emacrongrave","emcyrillic","emdash","emdashvertical","emonospace","emphasismarkarmenian","emptyset","enbopomofo","encyrillic","endash","endashvertical","endescendercyrillic","eng","engbopomofo","enghecyrillic","enhookcyrillic","enspace","eogonek","eokorean","eopen","eopenclosed","eopenreversed","eopenreversedclosed","eopenreversedhook","eparen","epsilontonos","equal","equalmonospace","equalsmall","equalsuperior","equivalence","erbopomofo","ercyrillic","ereversed","ereversedcyrillic","escyrillic","esdescendercyrillic","esh","eshcurl","eshortdeva","eshortvowelsigndeva","eshreversedloop","eshsquatreversed","esmallhiragana","esmallkatakana","esmallkatakanahalfwidth","estimated","esuperior","eta","etarmenian","etatonos","eth","etilde","etildebelow","etnahtafoukhhebrew","etnahtafoukhlefthebrew","etnahtahebrew","etnahtalefthebrew","eturned","eukorean","euro","evowelsignbengali","evowelsigndeva","evowelsigngujarati","exclam","exclamarmenian","exclamdbl","exclamdown","exclamdownsmall","exclammonospace","exclamsmall","existential","ezh","ezhcaron","ezhcurl","ezhreversed","ezhtail","fadeva","fagurmukhi","fahrenheit","fathaarabic","fathalowarabic","fathatanarabic","fbopomofo","fcircle","fdotaccent","feharabic","feharmenian","fehfinalarabic","fehinitialarabic","fehmedialarabic","feicoptic","female","ff","f_f","ffi","ffl","fi","fifteencircle","fifteenparen","fifteenperiod","figuredash","filledbox","filledrect","finalkaf","finalkafdagesh","finalkafdageshhebrew","finalkafhebrew","finalmem","finalmemhebrew","finalnun","finalnunhebrew","finalpe","finalpehebrew","finaltsadi","finaltsadihebrew","firsttonechinese","fisheye","fitacyrillic","five","fivearabic","fivebengali","fivecircle","fivecircleinversesansserif","fivedeva","fiveeighths","fivegujarati","fivegurmukhi","fivehackarabic","fivehangzhou","fiveideographicparen","fiveinferior","fivemonospace","fiveoldstyle","fiveparen","fiveperiod","fivepersian","fiveroman","fivesuperior","fivethai","fl","florin","fmonospace","fmsquare","fofanthai","fofathai","fongmanthai","forall","four","fourarabic","fourbengali","fourcircle","fourcircleinversesansserif","fourdeva","fourgujarati","fourgurmukhi","fourhackarabic","fourhangzhou","fourideographicparen","fourinferior","fourmonospace","fournumeratorbengali","fouroldstyle","fourparen","fourperiod","fourpersian","fourroman","foursuperior","fourteencircle","fourteenparen","fourteenperiod","fourthai","fourthtonechinese","fparen","fraction","franc","gabengali","gacute","gadeva","gafarabic","gaffinalarabic","gafinitialarabic","gafmedialarabic","gagujarati","gagurmukhi","gahiragana","gakatakana","gammalatinsmall","gammasuperior","gangiacoptic","gbopomofo","gbreve","gcaron","gcedilla","gcircle","gcircumflex","gcommaaccent","gdot","gdotaccent","gecyrillic","gehiragana","gekatakana","geometricallyequal","gereshaccenthebrew","gereshhebrew","gereshmuqdamhebrew","germandbls","gershayimaccenthebrew","gershayimhebrew","getamark","ghabengali","ghadarmenian","ghadeva","ghagujarati","ghagurmukhi","ghainarabic","ghainfinalarabic","ghaininitialarabic","ghainmedialarabic","ghemiddlehookcyrillic","ghestrokecyrillic","gheupturncyrillic","ghhadeva","ghhagurmukhi","ghook","ghzsquare","gihiragana","gikatakana","gimarmenian","gimel","gimeldagesh","gimeldageshhebrew","gimelhebrew","gjecyrillic","glottalinvertedstroke","glottalstop","glottalstopinverted","glottalstopmod","glottalstopreversed","glottalstopreversedmod","glottalstopreversedsuperior","glottalstopstroke","glottalstopstrokereversed","gmacron","gmonospace","gohiragana","gokatakana","gparen","gpasquare","gradient","grave","gravebelowcmb","gravecmb","gravecomb","gravedeva","gravelowmod","gravemonospace","gravetonecmb","greater","greaterequal","greaterequalorless","greatermonospace","greaterorequivalent","greaterorless","greateroverequal","greatersmall","gscript","gstroke","guhiragana","guillemotleft","guillemotright","guilsinglleft","guilsinglright","gukatakana","guramusquare","gysquare","haabkhasiancyrillic","haaltonearabic","habengali","hadescendercyrillic","hadeva","hagujarati","hagurmukhi","haharabic","hahfinalarabic","hahinitialarabic","hahiragana","hahmedialarabic","haitusquare","hakatakana","hakatakanahalfwidth","halantgurmukhi","hamzaarabic","hamzalowarabic","hangulfiller","hardsigncyrillic","harpoonleftbarbup","harpoonrightbarbup","hasquare","hatafpatah","hatafpatah16","hatafpatah23","hatafpatah2f","hatafpatahhebrew","hatafpatahnarrowhebrew","hatafpatahquarterhebrew","hatafpatahwidehebrew","hatafqamats","hatafqamats1b","hatafqamats28","hatafqamats34","hatafqamatshebrew","hatafqamatsnarrowhebrew","hatafqamatsquarterhebrew","hatafqamatswidehebrew","hatafsegol","hatafsegol17","hatafsegol24","hatafsegol30","hatafsegolhebrew","hatafsegolnarrowhebrew","hatafsegolquarterhebrew","hatafsegolwidehebrew","hbar","hbopomofo","hbrevebelow","hcedilla","hcircle","hcircumflex","hdieresis","hdotaccent","hdotbelow","he","heart","heartsuitblack","heartsuitwhite","hedagesh","hedageshhebrew","hehaltonearabic","heharabic","hehebrew","hehfinalaltonearabic","hehfinalalttwoarabic","hehfinalarabic","hehhamzaabovefinalarabic","hehhamzaaboveisolatedarabic","hehinitialaltonearabic","hehinitialarabic","hehiragana","hehmedialaltonearabic","hehmedialarabic","heiseierasquare","hekatakana","hekatakanahalfwidth","hekutaarusquare","henghook","herutusquare","het","hethebrew","hhook","hhooksuperior","hieuhacirclekorean","hieuhaparenkorean","hieuhcirclekorean","hieuhkorean","hieuhparenkorean","hihiragana","hikatakana","hikatakanahalfwidth","hiriq","hiriq14","hiriq21","hiriq2d","hiriqhebrew","hiriqnarrowhebrew","hiriqquarterhebrew","hiriqwidehebrew","hlinebelow","hmonospace","hoarmenian","hohipthai","hohiragana","hokatakana","hokatakanahalfwidth","holam","holam19","holam26","holam32","holamhebrew","holamnarrowhebrew","holamquarterhebrew","holamwidehebrew","honokhukthai","hookabovecomb","hookcmb","hookpalatalizedbelowcmb","hookretroflexbelowcmb","hoonsquare","horicoptic","horizontalbar","horncmb","hotsprings","house","hparen","hsuperior","hturned","huhiragana","huiitosquare","hukatakana","hukatakanahalfwidth","hungarumlaut","hungarumlautcmb","hv","hyphen","hypheninferior","hyphenmonospace","hyphensmall","hyphensuperior","hyphentwo","iacute","iacyrillic","ibengali","ibopomofo","ibreve","icaron","icircle","icircumflex","icyrillic","idblgrave","ideographearthcircle","ideographfirecircle","ideographicallianceparen","ideographiccallparen","ideographiccentrecircle","ideographicclose","ideographiccomma","ideographiccommaleft","ideographiccongratulationparen","ideographiccorrectcircle","ideographicearthparen","ideographicenterpriseparen","ideographicexcellentcircle","ideographicfestivalparen","ideographicfinancialcircle","ideographicfinancialparen","ideographicfireparen","ideographichaveparen","ideographichighcircle","ideographiciterationmark","ideographiclaborcircle","ideographiclaborparen","ideographicleftcircle","ideographiclowcircle","ideographicmedicinecircle","ideographicmetalparen","ideographicmoonparen","ideographicnameparen","ideographicperiod","ideographicprintcircle","ideographicreachparen","ideographicrepresentparen","ideographicresourceparen","ideographicrightcircle","ideographicsecretcircle","ideographicselfparen","ideographicsocietyparen","ideographicspace","ideographicspecialparen","ideographicstockparen","ideographicstudyparen","ideographicsunparen","ideographicsuperviseparen","ideographicwaterparen","ideographicwoodparen","ideographiczero","ideographmetalcircle","ideographmooncircle","ideographnamecircle","ideographsuncircle","ideographwatercircle","ideographwoodcircle","ideva","idieresis","idieresisacute","idieresiscyrillic","idotbelow","iebrevecyrillic","iecyrillic","ieungacirclekorean","ieungaparenkorean","ieungcirclekorean","ieungkorean","ieungparenkorean","igrave","igujarati","igurmukhi","ihiragana","ihookabove","iibengali","iicyrillic","iideva","iigujarati","iigurmukhi","iimatragurmukhi","iinvertedbreve","iishortcyrillic","iivowelsignbengali","iivowelsigndeva","iivowelsigngujarati","ij","ikatakana","ikatakanahalfwidth","ikorean","ilde","iluyhebrew","imacron","imacroncyrillic","imageorapproximatelyequal","imatragurmukhi","imonospace","increment","infinity","iniarmenian","integral","integralbottom","integralbt","integralex","integraltop","integraltp","intersection","intisquare","invbullet","invcircle","invsmileface","iocyrillic","iogonek","iota","iotadieresis","iotadieresistonos","iotalatin","iotatonos","iparen","irigurmukhi","ismallhiragana","ismallkatakana","ismallkatakanahalfwidth","issharbengali","istroke","isuperior","iterationhiragana","iterationkatakana","itilde","itildebelow","iubopomofo","iucyrillic","ivowelsignbengali","ivowelsigndeva","ivowelsigngujarati","izhitsacyrillic","izhitsadblgravecyrillic","jaarmenian","jabengali","jadeva","jagujarati","jagurmukhi","jbopomofo","jcaron","jcircle","jcircumflex","jcrossedtail","jdotlessstroke","jecyrillic","jeemarabic","jeemfinalarabic","jeeminitialarabic","jeemmedialarabic","jeharabic","jehfinalarabic","jhabengali","jhadeva","jhagujarati","jhagurmukhi","jheharmenian","jis","jmonospace","jparen","jsuperior","kabashkircyrillic","kabengali","kacute","kacyrillic","kadescendercyrillic","kadeva","kaf","kafarabic","kafdagesh","kafdageshhebrew","kaffinalarabic","kafhebrew","kafinitialarabic","kafmedialarabic","kafrafehebrew","kagujarati","kagurmukhi","kahiragana","kahookcyrillic","kakatakana","kakatakanahalfwidth","kappa","kappasymbolgreek","kapyeounmieumkorean","kapyeounphieuphkorean","kapyeounpieupkorean","kapyeounssangpieupkorean","karoriisquare","kashidaautoarabic","kashidaautonosidebearingarabic","kasmallkatakana","kasquare","kasraarabic","kasratanarabic","kastrokecyrillic","katahiraprolongmarkhalfwidth","kaverticalstrokecyrillic","kbopomofo","kcalsquare","kcaron","kcedilla","kcircle","kcommaaccent","kdotbelow","keharmenian","kehiragana","kekatakana","kekatakanahalfwidth","kenarmenian","kesmallkatakana","kgreenlandic","khabengali","khacyrillic","khadeva","khagujarati","khagurmukhi","khaharabic","khahfinalarabic","khahinitialarabic","khahmedialarabic","kheicoptic","khhadeva","khhagurmukhi","khieukhacirclekorean","khieukhaparenkorean","khieukhcirclekorean","khieukhkorean","khieukhparenkorean","khokhaithai","khokhonthai","khokhuatthai","khokhwaithai","khomutthai","khook","khorakhangthai","khzsquare","kihiragana","kikatakana","kikatakanahalfwidth","kiroguramusquare","kiromeetorusquare","kirosquare","kiyeokacirclekorean","kiyeokaparenkorean","kiyeokcirclekorean","kiyeokkorean","kiyeokparenkorean","kiyeoksioskorean","kjecyrillic","klinebelow","klsquare","kmcubedsquare","kmonospace","kmsquaredsquare","kohiragana","kohmsquare","kokaithai","kokatakana","kokatakanahalfwidth","kooposquare","koppacyrillic","koreanstandardsymbol","koroniscmb","kparen","kpasquare","ksicyrillic","ktsquare","kturned","kuhiragana","kukatakana","kukatakanahalfwidth","kvsquare","kwsquare","labengali","lacute","ladeva","lagujarati","lagurmukhi","lakkhangyaothai","lamaleffinalarabic","lamalefhamzaabovefinalarabic","lamalefhamzaaboveisolatedarabic","lamalefhamzabelowfinalarabic","lamalefhamzabelowisolatedarabic","lamalefisolatedarabic","lamalefmaddaabovefinalarabic","lamalefmaddaaboveisolatedarabic","lamarabic","lambda","lambdastroke","lamed","lameddagesh","lameddageshhebrew","lamedhebrew","lamfinalarabic","lamhahinitialarabic","laminitialarabic","lamjeeminitialarabic","lamkhahinitialarabic","lamlamhehisolatedarabic","lammedialarabic","lammeemhahinitialarabic","lammeeminitialarabic","largecircle","lbar","lbelt","lbopomofo","lcaron","lcedilla","lcircle","lcircumflexbelow","lcommaaccent","ldot","ldotaccent","ldotbelow","ldotbelowmacron","leftangleabovecmb","lefttackbelowcmb","less","lessequal","lessequalorgreater","lessmonospace","lessorequivalent","lessorgreater","lessoverequal","lesssmall","lezh","lfblock","lhookretroflex","lira","liwnarmenian","lj","ljecyrillic","lladeva","llagujarati","llinebelow","llladeva","llvocalicbengali","llvocalicdeva","llvocalicvowelsignbengali","llvocalicvowelsigndeva","lmiddletilde","lmonospace","lmsquare","lochulathai","logicaland","logicalnot","logicalnotreversed","logicalor","lolingthai","longs","lowlinecenterline","lowlinecmb","lowlinedashed","lozenge","lparen","lslash","lsquare","lsuperior","ltshade","luthai","lvocalicbengali","lvocalicdeva","lvocalicvowelsignbengali","lvocalicvowelsigndeva","lxsquare","mabengali","macron","macronbelowcmb","macroncmb","macronlowmod","macronmonospace","macute","madeva","magujarati","magurmukhi","mahapakhhebrew","mahapakhlefthebrew","mahiragana","maichattawalowleftthai","maichattawalowrightthai","maichattawathai","maichattawaupperleftthai","maieklowleftthai","maieklowrightthai","maiekthai","maiekupperleftthai","maihanakatleftthai","maihanakatthai","maitaikhuleftthai","maitaikhuthai","maitholowleftthai","maitholowrightthai","maithothai","maithoupperleftthai","maitrilowleftthai","maitrilowrightthai","maitrithai","maitriupperleftthai","maiyamokthai","makatakana","makatakanahalfwidth","male","mansyonsquare","maqafhebrew","mars","masoracirclehebrew","masquare","mbopomofo","mbsquare","mcircle","mcubedsquare","mdotaccent","mdotbelow","meemarabic","meemfinalarabic","meeminitialarabic","meemmedialarabic","meemmeeminitialarabic","meemmeemisolatedarabic","meetorusquare","mehiragana","meizierasquare","mekatakana","mekatakanahalfwidth","mem","memdagesh","memdageshhebrew","memhebrew","menarmenian","merkhahebrew","merkhakefulahebrew","merkhakefulalefthebrew","merkhalefthebrew","mhook","mhzsquare","middledotkatakanahalfwidth","middot","mieumacirclekorean","mieumaparenkorean","mieumcirclekorean","mieumkorean","mieumpansioskorean","mieumparenkorean","mieumpieupkorean","mieumsioskorean","mihiragana","mikatakana","mikatakanahalfwidth","minus","minusbelowcmb","minuscircle","minusmod","minusplus","minute","miribaarusquare","mirisquare","mlonglegturned","mlsquare","mmcubedsquare","mmonospace","mmsquaredsquare","mohiragana","mohmsquare","mokatakana","mokatakanahalfwidth","molsquare","momathai","moverssquare","moverssquaredsquare","mparen","mpasquare","mssquare","msuperior","mturned","mu1","muasquare","muchgreater","muchless","mufsquare","mugreek","mugsquare","muhiragana","mukatakana","mukatakanahalfwidth","mulsquare","multiply","mumsquare","munahhebrew","munahlefthebrew","musicalnote","musicalnotedbl","musicflatsign","musicsharpsign","mussquare","muvsquare","muwsquare","mvmegasquare","mvsquare","mwmegasquare","mwsquare","nabengali","nabla","nacute","nadeva","nagujarati","nagurmukhi","nahiragana","nakatakana","nakatakanahalfwidth","napostrophe","nasquare","nbopomofo","nbspace","ncaron","ncedilla","ncircle","ncircumflexbelow","ncommaaccent","ndotaccent","ndotbelow","nehiragana","nekatakana","nekatakanahalfwidth","newsheqelsign","nfsquare","ngabengali","ngadeva","ngagujarati","ngagurmukhi","ngonguthai","nhiragana","nhookleft","nhookretroflex","nieunacirclekorean","nieunaparenkorean","nieuncieuckorean","nieuncirclekorean","nieunhieuhkorean","nieunkorean","nieunpansioskorean","nieunparenkorean","nieunsioskorean","nieuntikeutkorean","nihiragana","nikatakana","nikatakanahalfwidth","nikhahitleftthai","nikhahitthai","nine","ninearabic","ninebengali","ninecircle","ninecircleinversesansserif","ninedeva","ninegujarati","ninegurmukhi","ninehackarabic","ninehangzhou","nineideographicparen","nineinferior","ninemonospace","nineoldstyle","nineparen","nineperiod","ninepersian","nineroman","ninesuperior","nineteencircle","nineteenparen","nineteenperiod","ninethai","nj","njecyrillic","nkatakana","nkatakanahalfwidth","nlegrightlong","nlinebelow","nmonospace","nmsquare","nnabengali","nnadeva","nnagujarati","nnagurmukhi","nnnadeva","nohiragana","nokatakana","nokatakanahalfwidth","nonbreakingspace","nonenthai","nonuthai","noonarabic","noonfinalarabic","noonghunnaarabic","noonghunnafinalarabic","nooninitialarabic","noonjeeminitialarabic","noonjeemisolatedarabic","noonmedialarabic","noonmeeminitialarabic","noonmeemisolatedarabic","noonnoonfinalarabic","notcontains","notelement","notelementof","notequal","notgreater","notgreaternorequal","notgreaternorless","notidentical","notless","notlessnorequal","notparallel","notprecedes","notsubset","notsucceeds","notsuperset","nowarmenian","nparen","nssquare","nsuperior","ntilde","nuhiragana","nukatakana","nukatakanahalfwidth","nuktabengali","nuktadeva","nuktagujarati","nuktagurmukhi","numbersign","numbersignmonospace","numbersignsmall","numeralsigngreek","numeralsignlowergreek","numero","nun","nundagesh","nundageshhebrew","nunhebrew","nvsquare","nwsquare","nyabengali","nyadeva","nyagujarati","nyagurmukhi","oacute","oangthai","obarred","obarredcyrillic","obarreddieresiscyrillic","obengali","obopomofo","obreve","ocandradeva","ocandragujarati","ocandravowelsigndeva","ocandravowelsigngujarati","ocaron","ocircle","ocircumflex","ocircumflexacute","ocircumflexdotbelow","ocircumflexgrave","ocircumflexhookabove","ocircumflextilde","ocyrillic","odblacute","odblgrave","odeva","odieresis","odieresiscyrillic","odotbelow","oe","oekorean","ogonek","ogonekcmb","ograve","ogujarati","oharmenian","ohiragana","ohookabove","ohorn","ohornacute","ohorndotbelow","ohorngrave","ohornhookabove","ohorntilde","ohungarumlaut","oi","oinvertedbreve","okatakana","okatakanahalfwidth","okorean","olehebrew","omacron","omacronacute","omacrongrave","omdeva","omega","omega1","omegacyrillic","omegalatinclosed","omegaroundcyrillic","omegatitlocyrillic","omegatonos","omgujarati","omicron","omicrontonos","omonospace","one","onearabic","onebengali","onecircle","onecircleinversesansserif","onedeva","onedotenleader","oneeighth","onefitted","onegujarati","onegurmukhi","onehackarabic","onehalf","onehangzhou","oneideographicparen","oneinferior","onemonospace","onenumeratorbengali","oneoldstyle","oneparen","oneperiod","onepersian","onequarter","oneroman","onesuperior","onethai","onethird","oogonek","oogonekmacron","oogurmukhi","oomatragurmukhi","oopen","oparen","openbullet","ordfeminine","ordmasculine","orthogonal","oshortdeva","oshortvowelsigndeva","oslash","oslashacute","osmallhiragana","osmallkatakana","osmallkatakanahalfwidth","ostrokeacute","osuperior","otcyrillic","otilde","otildeacute","otildedieresis","oubopomofo","overline","overlinecenterline","overlinecmb","overlinedashed","overlinedblwavy","overlinewavy","overscore","ovowelsignbengali","ovowelsigndeva","ovowelsigngujarati","paampssquare","paasentosquare","pabengali","pacute","padeva","pagedown","pageup","pagujarati","pagurmukhi","pahiragana","paiyannoithai","pakatakana","palatalizationcyrilliccmb","palochkacyrillic","pansioskorean","paragraph","parallel","parenleft","parenleftaltonearabic","parenleftbt","parenleftex","parenleftinferior","parenleftmonospace","parenleftsmall","parenleftsuperior","parenlefttp","parenleftvertical","parenright","parenrightaltonearabic","parenrightbt","parenrightex","parenrightinferior","parenrightmonospace","parenrightsmall","parenrightsuperior","parenrighttp","parenrightvertical","partialdiff","paseqhebrew","pashtahebrew","pasquare","patah","patah11","patah1d","patah2a","patahhebrew","patahnarrowhebrew","patahquarterhebrew","patahwidehebrew","pazerhebrew","pbopomofo","pcircle","pdotaccent","pe","pecyrillic","pedagesh","pedageshhebrew","peezisquare","pefinaldageshhebrew","peharabic","peharmenian","pehebrew","pehfinalarabic","pehinitialarabic","pehiragana","pehmedialarabic","pekatakana","pemiddlehookcyrillic","perafehebrew","percent","percentarabic","percentmonospace","percentsmall","period","periodarmenian","periodcentered","periodhalfwidth","periodinferior","periodmonospace","periodsmall","periodsuperior","perispomenigreekcmb","perpendicular","perthousand","peseta","pfsquare","phabengali","phadeva","phagujarati","phagurmukhi","phi","phi1","phieuphacirclekorean","phieuphaparenkorean","phieuphcirclekorean","phieuphkorean","phieuphparenkorean","philatin","phinthuthai","phisymbolgreek","phook","phophanthai","phophungthai","phosamphaothai","pieupacirclekorean","pieupaparenkorean","pieupcieuckorean","pieupcirclekorean","pieupkiyeokkorean","pieupkorean","pieupparenkorean","pieupsioskiyeokkorean","pieupsioskorean","pieupsiostikeutkorean","pieupthieuthkorean","pieuptikeutkorean","pihiragana","pikatakana","pisymbolgreek","piwrarmenian","plus","plusbelowcmb","pluscircle","plusminus","plusmod","plusmonospace","plussmall","plussuperior","pmonospace","pmsquare","pohiragana","pointingindexdownwhite","pointingindexleftwhite","pointingindexrightwhite","pointingindexupwhite","pokatakana","poplathai","postalmark","postalmarkface","pparen","precedes","prescription","primemod","primereversed","product","projective","prolongedkana","propellor","propersubset","propersuperset","proportion","proportional","psi","psicyrillic","psilipneumatacyrilliccmb","pssquare","puhiragana","pukatakana","pvsquare","pwsquare","qadeva","qadmahebrew","qafarabic","qaffinalarabic","qafinitialarabic","qafmedialarabic","qamats","qamats10","qamats1a","qamats1c","qamats27","qamats29","qamats33","qamatsde","qamatshebrew","qamatsnarrowhebrew","qamatsqatanhebrew","qamatsqatannarrowhebrew","qamatsqatanquarterhebrew","qamatsqatanwidehebrew","qamatsquarterhebrew","qamatswidehebrew","qarneyparahebrew","qbopomofo","qcircle","qhook","qmonospace","qof","qofdagesh","qofdageshhebrew","qofhebrew","qparen","quarternote","qubuts","qubuts18","qubuts25","qubuts31","qubutshebrew","qubutsnarrowhebrew","qubutsquarterhebrew","qubutswidehebrew","question","questionarabic","questionarmenian","questiondown","questiondownsmall","questiongreek","questionmonospace","questionsmall","quotedbl","quotedblbase","quotedblleft","quotedblmonospace","quotedblprime","quotedblprimereversed","quotedblright","quoteleft","quoteleftreversed","quotereversed","quoteright","quoterightn","quotesinglbase","quotesingle","quotesinglemonospace","raarmenian","rabengali","racute","radeva","radical","radicalex","radoverssquare","radoverssquaredsquare","radsquare","rafe","rafehebrew","ragujarati","ragurmukhi","rahiragana","rakatakana","rakatakanahalfwidth","ralowerdiagonalbengali","ramiddlediagonalbengali","ramshorn","ratio","rbopomofo","rcaron","rcedilla","rcircle","rcommaaccent","rdblgrave","rdotaccent","rdotbelow","rdotbelowmacron","referencemark","reflexsubset","reflexsuperset","registered","registersans","registerserif","reharabic","reharmenian","rehfinalarabic","rehiragana","rekatakana","rekatakanahalfwidth","resh","reshdageshhebrew","reshhebrew","reversedtilde","reviahebrew","reviamugrashhebrew","revlogicalnot","rfishhook","rfishhookreversed","rhabengali","rhadeva","rho","rhook","rhookturned","rhookturnedsuperior","rhosymbolgreek","rhotichookmod","rieulacirclekorean","rieulaparenkorean","rieulcirclekorean","rieulhieuhkorean","rieulkiyeokkorean","rieulkiyeoksioskorean","rieulkorean","rieulmieumkorean","rieulpansioskorean","rieulparenkorean","rieulphieuphkorean","rieulpieupkorean","rieulpieupsioskorean","rieulsioskorean","rieulthieuthkorean","rieultikeutkorean","rieulyeorinhieuhkorean","rightangle","righttackbelowcmb","righttriangle","rihiragana","rikatakana","rikatakanahalfwidth","ring","ringbelowcmb","ringcmb","ringhalfleft","ringhalfleftarmenian","ringhalfleftbelowcmb","ringhalfleftcentered","ringhalfright","ringhalfrightbelowcmb","ringhalfrightcentered","rinvertedbreve","rittorusquare","rlinebelow","rlongleg","rlonglegturned","rmonospace","rohiragana","rokatakana","rokatakanahalfwidth","roruathai","rparen","rrabengali","rradeva","rragurmukhi","rreharabic","rrehfinalarabic","rrvocalicbengali","rrvocalicdeva","rrvocalicgujarati","rrvocalicvowelsignbengali","rrvocalicvowelsigndeva","rrvocalicvowelsigngujarati","rsuperior","rtblock","rturned","rturnedsuperior","ruhiragana","rukatakana","rukatakanahalfwidth","rupeemarkbengali","rupeesignbengali","rupiah","ruthai","rvocalicbengali","rvocalicdeva","rvocalicgujarati","rvocalicvowelsignbengali","rvocalicvowelsigndeva","rvocalicvowelsigngujarati","sabengali","sacute","sacutedotaccent","sadarabic","sadeva","sadfinalarabic","sadinitialarabic","sadmedialarabic","sagujarati","sagurmukhi","sahiragana","sakatakana","sakatakanahalfwidth","sallallahoualayhewasallamarabic","samekh","samekhdagesh","samekhdageshhebrew","samekhhebrew","saraaathai","saraaethai","saraaimaimalaithai","saraaimaimuanthai","saraamthai","saraathai","saraethai","saraiileftthai","saraiithai","saraileftthai","saraithai","saraothai","saraueeleftthai","saraueethai","saraueleftthai","sarauethai","sarauthai","sarauuthai","sbopomofo","scaron","scarondotaccent","scedilla","schwa","schwacyrillic","schwadieresiscyrillic","schwahook","scircle","scircumflex","scommaaccent","sdotaccent","sdotbelow","sdotbelowdotaccent","seagullbelowcmb","secondtonechinese","section","seenarabic","seenfinalarabic","seeninitialarabic","seenmedialarabic","segol","segol13","segol1f","segol2c","segolhebrew","segolnarrowhebrew","segolquarterhebrew","segoltahebrew","segolwidehebrew","seharmenian","sehiragana","sekatakana","sekatakanahalfwidth","semicolon","semicolonarabic","semicolonmonospace","semicolonsmall","semivoicedmarkkana","semivoicedmarkkanahalfwidth","sentisquare","sentosquare","seven","sevenarabic","sevenbengali","sevencircle","sevencircleinversesansserif","sevendeva","seveneighths","sevengujarati","sevengurmukhi","sevenhackarabic","sevenhangzhou","sevenideographicparen","seveninferior","sevenmonospace","sevenoldstyle","sevenparen","sevenperiod","sevenpersian","sevenroman","sevensuperior","seventeencircle","seventeenparen","seventeenperiod","seventhai","sfthyphen","shaarmenian","shabengali","shacyrillic","shaddaarabic","shaddadammaarabic","shaddadammatanarabic","shaddafathaarabic","shaddakasraarabic","shaddakasratanarabic","shade","shadedark","shadelight","shademedium","shadeva","shagujarati","shagurmukhi","shalshelethebrew","shbopomofo","shchacyrillic","sheenarabic","sheenfinalarabic","sheeninitialarabic","sheenmedialarabic","sheicoptic","sheqel","sheqelhebrew","sheva","sheva115","sheva15","sheva22","sheva2e","shevahebrew","shevanarrowhebrew","shevaquarterhebrew","shevawidehebrew","shhacyrillic","shimacoptic","shin","shindagesh","shindageshhebrew","shindageshshindot","shindageshshindothebrew","shindageshsindot","shindageshsindothebrew","shindothebrew","shinhebrew","shinshindot","shinshindothebrew","shinsindot","shinsindothebrew","shook","sigma1","sigmafinal","sigmalunatesymbolgreek","sihiragana","sikatakana","sikatakanahalfwidth","siluqhebrew","siluqlefthebrew","similar","sindothebrew","siosacirclekorean","siosaparenkorean","sioscieuckorean","sioscirclekorean","sioskiyeokkorean","sioskorean","siosnieunkorean","siosparenkorean","siospieupkorean","siostikeutkorean","six","sixarabic","sixbengali","sixcircle","sixcircleinversesansserif","sixdeva","sixgujarati","sixgurmukhi","sixhackarabic","sixhangzhou","sixideographicparen","sixinferior","sixmonospace","sixoldstyle","sixparen","sixperiod","sixpersian","sixroman","sixsuperior","sixteencircle","sixteencurrencydenominatorbengali","sixteenparen","sixteenperiod","sixthai","slash","slashmonospace","slong","slongdotaccent","smileface","smonospace","sofpasuqhebrew","softhyphen","softsigncyrillic","sohiragana","sokatakana","sokatakanahalfwidth","soliduslongoverlaycmb","solidusshortoverlaycmb","sorusithai","sosalathai","sosothai","sosuathai","space","spacehackarabic","spade","spadesuitblack","spadesuitwhite","sparen","squarebelowcmb","squarecc","squarecm","squarediagonalcrosshatchfill","squarehorizontalfill","squarekg","squarekm","squarekmcapital","squareln","squarelog","squaremg","squaremil","squaremm","squaremsquared","squareorthogonalcrosshatchfill","squareupperlefttolowerrightfill","squareupperrighttolowerleftfill","squareverticalfill","squarewhitewithsmallblack","srsquare","ssabengali","ssadeva","ssagujarati","ssangcieuckorean","ssanghieuhkorean","ssangieungkorean","ssangkiyeokkorean","ssangnieunkorean","ssangpieupkorean","ssangsioskorean","ssangtikeutkorean","ssuperior","sterling","sterlingmonospace","strokelongoverlaycmb","strokeshortoverlaycmb","subset","subsetnotequal","subsetorequal","succeeds","suchthat","suhiragana","sukatakana","sukatakanahalfwidth","sukunarabic","summation","sun","superset","supersetnotequal","supersetorequal","svsquare","syouwaerasquare","tabengali","tackdown","tackleft","tadeva","tagujarati","tagurmukhi","taharabic","tahfinalarabic","tahinitialarabic","tahiragana","tahmedialarabic","taisyouerasquare","takatakana","takatakanahalfwidth","tatweelarabic","tau","tav","tavdages","tavdagesh","tavdageshhebrew","tavhebrew","tbar","tbopomofo","tcaron","tccurl","tcedilla","tcheharabic","tchehfinalarabic","tchehinitialarabic","tchehmedialarabic","tcircle","tcircumflexbelow","tcommaaccent","tdieresis","tdotaccent","tdotbelow","tecyrillic","tedescendercyrillic","teharabic","tehfinalarabic","tehhahinitialarabic","tehhahisolatedarabic","tehinitialarabic","tehiragana","tehjeeminitialarabic","tehjeemisolatedarabic","tehmarbutaarabic","tehmarbutafinalarabic","tehmedialarabic","tehmeeminitialarabic","tehmeemisolatedarabic","tehnoonfinalarabic","tekatakana","tekatakanahalfwidth","telephone","telephoneblack","telishagedolahebrew","telishaqetanahebrew","tencircle","tenideographicparen","tenparen","tenperiod","tenroman","tesh","tet","tetdagesh","tetdageshhebrew","tethebrew","tetsecyrillic","tevirhebrew","tevirlefthebrew","thabengali","thadeva","thagujarati","thagurmukhi","thalarabic","thalfinalarabic","thanthakhatlowleftthai","thanthakhatlowrightthai","thanthakhatthai","thanthakhatupperleftthai","theharabic","thehfinalarabic","thehinitialarabic","thehmedialarabic","thereexists","therefore","theta","theta1","thetasymbolgreek","thieuthacirclekorean","thieuthaparenkorean","thieuthcirclekorean","thieuthkorean","thieuthparenkorean","thirteencircle","thirteenparen","thirteenperiod","thonangmonthothai","thook","thophuthaothai","thorn","thothahanthai","thothanthai","thothongthai","thothungthai","thousandcyrillic","thousandsseparatorarabic","thousandsseparatorpersian","three","threearabic","threebengali","threecircle","threecircleinversesansserif","threedeva","threeeighths","threegujarati","threegurmukhi","threehackarabic","threehangzhou","threeideographicparen","threeinferior","threemonospace","threenumeratorbengali","threeoldstyle","threeparen","threeperiod","threepersian","threequarters","threequartersemdash","threeroman","threesuperior","threethai","thzsquare","tihiragana","tikatakana","tikatakanahalfwidth","tikeutacirclekorean","tikeutaparenkorean","tikeutcirclekorean","tikeutkorean","tikeutparenkorean","tilde","tildebelowcmb","tildecmb","tildecomb","tildedoublecmb","tildeoperator","tildeoverlaycmb","tildeverticalcmb","timescircle","tipehahebrew","tipehalefthebrew","tippigurmukhi","titlocyrilliccmb","tiwnarmenian","tlinebelow","tmonospace","toarmenian","tohiragana","tokatakana","tokatakanahalfwidth","tonebarextrahighmod","tonebarextralowmod","tonebarhighmod","tonebarlowmod","tonebarmidmod","tonefive","tonesix","tonetwo","tonos","tonsquare","topatakthai","tortoiseshellbracketleft","tortoiseshellbracketleftsmall","tortoiseshellbracketleftvertical","tortoiseshellbracketright","tortoiseshellbracketrightsmall","tortoiseshellbracketrightvertical","totaothai","tpalatalhook","tparen","trademark","trademarksans","trademarkserif","tretroflexhook","triagdn","triaglf","triagrt","triagup","ts","tsadi","tsadidagesh","tsadidageshhebrew","tsadihebrew","tsecyrillic","tsere","tsere12","tsere1e","tsere2b","tserehebrew","tserenarrowhebrew","tserequarterhebrew","tserewidehebrew","tshecyrillic","tsuperior","ttabengali","ttadeva","ttagujarati","ttagurmukhi","tteharabic","ttehfinalarabic","ttehinitialarabic","ttehmedialarabic","tthabengali","tthadeva","tthagujarati","tthagurmukhi","tturned","tuhiragana","tukatakana","tukatakanahalfwidth","tusmallhiragana","tusmallkatakana","tusmallkatakanahalfwidth","twelvecircle","twelveparen","twelveperiod","twelveroman","twentycircle","twentyhangzhou","twentyparen","twentyperiod","two","twoarabic","twobengali","twocircle","twocircleinversesansserif","twodeva","twodotenleader","twodotleader","twodotleadervertical","twogujarati","twogurmukhi","twohackarabic","twohangzhou","twoideographicparen","twoinferior","twomonospace","twonumeratorbengali","twooldstyle","twoparen","twoperiod","twopersian","tworoman","twostroke","twosuperior","twothai","twothirds","uacute","ubar","ubengali","ubopomofo","ubreve","ucaron","ucircle","ucircumflex","ucircumflexbelow","ucyrillic","udattadeva","udblacute","udblgrave","udeva","udieresis","udieresisacute","udieresisbelow","udieresiscaron","udieresiscyrillic","udieresisgrave","udieresismacron","udotbelow","ugrave","ugujarati","ugurmukhi","uhiragana","uhookabove","uhorn","uhornacute","uhorndotbelow","uhorngrave","uhornhookabove","uhorntilde","uhungarumlaut","uhungarumlautcyrillic","uinvertedbreve","ukatakana","ukatakanahalfwidth","ukcyrillic","ukorean","umacron","umacroncyrillic","umacrondieresis","umatragurmukhi","umonospace","underscore","underscoredbl","underscoremonospace","underscorevertical","underscorewavy","union","universal","uogonek","uparen","upblock","upperdothebrew","upsilon","upsilondieresis","upsilondieresistonos","upsilonlatin","upsilontonos","uptackbelowcmb","uptackmod","uragurmukhi","uring","ushortcyrillic","usmallhiragana","usmallkatakana","usmallkatakanahalfwidth","ustraightcyrillic","ustraightstrokecyrillic","utilde","utildeacute","utildebelow","uubengali","uudeva","uugujarati","uugurmukhi","uumatragurmukhi","uuvowelsignbengali","uuvowelsigndeva","uuvowelsigngujarati","uvowelsignbengali","uvowelsigndeva","uvowelsigngujarati","vadeva","vagujarati","vagurmukhi","vakatakana","vav","vavdagesh","vavdagesh65","vavdageshhebrew","vavhebrew","vavholam","vavholamhebrew","vavvavhebrew","vavyodhebrew","vcircle","vdotbelow","vecyrillic","veharabic","vehfinalarabic","vehinitialarabic","vehmedialarabic","vekatakana","venus","verticalbar","verticallineabovecmb","verticallinebelowcmb","verticallinelowmod","verticallinemod","vewarmenian","vhook","vikatakana","viramabengali","viramadeva","viramagujarati","visargabengali","visargadeva","visargagujarati","vmonospace","voarmenian","voicediterationhiragana","voicediterationkatakana","voicedmarkkana","voicedmarkkanahalfwidth","vokatakana","vparen","vtilde","vturned","vuhiragana","vukatakana","wacute","waekorean","wahiragana","wakatakana","wakatakanahalfwidth","wakorean","wasmallhiragana","wasmallkatakana","wattosquare","wavedash","wavyunderscorevertical","wawarabic","wawfinalarabic","wawhamzaabovearabic","wawhamzaabovefinalarabic","wbsquare","wcircle","wcircumflex","wdieresis","wdotaccent","wdotbelow","wehiragana","weierstrass","wekatakana","wekorean","weokorean","wgrave","whitebullet","whitecircle","whitecircleinverse","whitecornerbracketleft","whitecornerbracketleftvertical","whitecornerbracketright","whitecornerbracketrightvertical","whitediamond","whitediamondcontainingblacksmalldiamond","whitedownpointingsmalltriangle","whitedownpointingtriangle","whiteleftpointingsmalltriangle","whiteleftpointingtriangle","whitelenticularbracketleft","whitelenticularbracketright","whiterightpointingsmalltriangle","whiterightpointingtriangle","whitesmallsquare","whitesmilingface","whitesquare","whitestar","whitetelephone","whitetortoiseshellbracketleft","whitetortoiseshellbracketright","whiteuppointingsmalltriangle","whiteuppointingtriangle","wihiragana","wikatakana","wikorean","wmonospace","wohiragana","wokatakana","wokatakanahalfwidth","won","wonmonospace","wowaenthai","wparen","wring","wsuperior","wturned","wynn","xabovecmb","xbopomofo","xcircle","xdieresis","xdotaccent","xeharmenian","xi","xmonospace","xparen","xsuperior","yaadosquare","yabengali","yacute","yadeva","yaekorean","yagujarati","yagurmukhi","yahiragana","yakatakana","yakatakanahalfwidth","yakorean","yamakkanthai","yasmallhiragana","yasmallkatakana","yasmallkatakanahalfwidth","yatcyrillic","ycircle","ycircumflex","ydieresis","ydotaccent","ydotbelow","yeharabic","yehbarreearabic","yehbarreefinalarabic","yehfinalarabic","yehhamzaabovearabic","yehhamzaabovefinalarabic","yehhamzaaboveinitialarabic","yehhamzaabovemedialarabic","yehinitialarabic","yehmedialarabic","yehmeeminitialarabic","yehmeemisolatedarabic","yehnoonfinalarabic","yehthreedotsbelowarabic","yekorean","yen","yenmonospace","yeokorean","yeorinhieuhkorean","yerahbenyomohebrew","yerahbenyomolefthebrew","yericyrillic","yerudieresiscyrillic","yesieungkorean","yesieungpansioskorean","yesieungsioskorean","yetivhebrew","ygrave","yhook","yhookabove","yiarmenian","yicyrillic","yikorean","yinyang","yiwnarmenian","ymonospace","yod","yoddagesh","yoddageshhebrew","yodhebrew","yodyodhebrew","yodyodpatahhebrew","yohiragana","yoikorean","yokatakana","yokatakanahalfwidth","yokorean","yosmallhiragana","yosmallkatakana","yosmallkatakanahalfwidth","yotgreek","yoyaekorean","yoyakorean","yoyakthai","yoyingthai","yparen","ypogegrammeni","ypogegrammenigreekcmb","yr","yring","ysuperior","ytilde","yturned","yuhiragana","yuikorean","yukatakana","yukatakanahalfwidth","yukorean","yusbigcyrillic","yusbigiotifiedcyrillic","yuslittlecyrillic","yuslittleiotifiedcyrillic","yusmallhiragana","yusmallkatakana","yusmallkatakanahalfwidth","yuyekorean","yuyeokorean","yyabengali","yyadeva","zaarmenian","zacute","zadeva","zagurmukhi","zaharabic","zahfinalarabic","zahinitialarabic","zahiragana","zahmedialarabic","zainarabic","zainfinalarabic","zakatakana","zaqefgadolhebrew","zaqefqatanhebrew","zarqahebrew","zayin","zayindagesh","zayindageshhebrew","zayinhebrew","zbopomofo","zcaron","zcircle","zcircumflex","zcurl","zdot","zdotaccent","zdotbelow","zecyrillic","zedescendercyrillic","zedieresiscyrillic","zehiragana","zekatakana","zero","zeroarabic","zerobengali","zerodeva","zerogujarati","zerogurmukhi","zerohackarabic","zeroinferior","zeromonospace","zerooldstyle","zeropersian","zerosuperior","zerothai","zerowidthjoiner","zerowidthnonjoiner","zerowidthspace","zeta","zhbopomofo","zhearmenian","zhebrevecyrillic","zhecyrillic","zhedescendercyrillic","zhedieresiscyrillic","zihiragana","zikatakana","zinorhebrew","zlinebelow","zmonospace","zohiragana","zokatakana","zparen","zretroflexhook","zstroke","zuhiragana","zukatakana","angbracketleftbig","angbracketleftBig","angbracketleftbigg","angbracketleftBigg","angbracketrightBig","angbracketrightbig","angbracketrightBigg","angbracketrightbigg","arrowhookleft","arrowhookright","arrowlefttophalf","arrowleftbothalf","arrownortheast","arrownorthwest","arrowrighttophalf","arrowrightbothalf","arrowsoutheast","arrowsouthwest","backslashbig","backslashBig","backslashBigg","backslashbigg","bardbl","bracehtipdownleft","bracehtipdownright","bracehtipupleft","bracehtipupright","braceleftBig","braceleftbig","braceleftbigg","braceleftBigg","bracerightBig","bracerightbig","bracerightbigg","bracerightBigg","bracketleftbig","bracketleftBig","bracketleftbigg","bracketleftBigg","bracketrightBig","bracketrightbig","bracketrightbigg","bracketrightBigg","ceilingleftbig","ceilingleftBig","ceilingleftBigg","ceilingleftbigg","ceilingrightbig","ceilingrightBig","ceilingrightbigg","ceilingrightBigg","circledotdisplay","circledottext","circlemultiplydisplay","circlemultiplytext","circleplusdisplay","circleplustext","contintegraldisplay","contintegraltext","coproductdisplay","coproducttext","floorleftBig","floorleftbig","floorleftbigg","floorleftBigg","floorrightbig","floorrightBig","floorrightBigg","floorrightbigg","hatwide","hatwider","hatwidest","intercal","integraldisplay","integraltext","intersectiondisplay","intersectiontext","logicalanddisplay","logicalandtext","logicalordisplay","logicalortext","parenleftBig","parenleftbig","parenleftBigg","parenleftbigg","parenrightBig","parenrightbig","parenrightBigg","parenrightbigg","prime","productdisplay","producttext","radicalbig","radicalBig","radicalBigg","radicalbigg","radicalbt","radicaltp","radicalvertex","slashbig","slashBig","slashBigg","slashbigg","summationdisplay","summationtext","tildewide","tildewider","tildewidest","uniondisplay","unionmultidisplay","unionmultitext","unionsqdisplay","unionsqtext","uniontext","vextenddouble","vextendsingle","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","ArialNarrow","ArialBlack","Arial","ArialMT","CourierNew","CourierNewPSMT","Helvetica","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","Calibri","CenturyGothic","ComicSansMS","LucidaConsole","NuptialScript","SegoeUISymbol","Wingdings","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","Dingbats","ZapfDingbats","getSpecialPUASymbols","hexStr","nameLen","toUpperCase","UnicodeRanges","isRTLRangeFor","charsLength","getLong","getUshort","getSubroutineBias","numSubrs","parseCmap","idDelta","idOffset","groups","parseCff","gsubrs","isCFFCIDFont","parseGlyfTable","lookupCmap","codePointAt","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","points","startPoint","contour","compileCharString","charStringCode","bezierCurveTo","stems","xb","yb","y3","subrCode","stackClean","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","Type2Compiled","cffInfo","HINTING_ENABLED","Type1CharString","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","lsb","flexing","encoded","wx","sbx","executeCommand","dy","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","encrypted","isBinary","readNumberArray","getToken","readInt","readBoolean","readCharStrings","lenIV","program","blueArray","charString","charStringObject","encodingArg","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","getPattern","ctx","Shadings","RadialAxial","Mesh","Dummy","xstep","ystep","paintType","tilingType","SMALL_NUMBER","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","NUMBER_OF_SAMPLES","colorStops","cssColor","makeCssRgb","background","r0","singularValueDecompose2dScale","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","decodeType4Shading","mesh","coords","operators","ps","verticesLeft","hasData","readFlag","coord","readCoordinate","readComponents","align","figures","decodeType5Shading","verticesPerRow","bitsPerFlag","bitsPerCoordinate","yi","ci","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","getB","buildB","lut","t_","buildFigureFromPatch","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","bounds","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","decodeType6Shading","tmp4","decodeType7Shading","updateBounds","packData","coordsPacked","xy","colorsPacked","decodeContext","patchMesh","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","temp","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","Courier","PostScriptCompiler","PostScriptEvaluator","_ps_parser","PDFFunction","parseArray","toNumberArray","CONSTRUCT_SAMPLED","CONSTRUCT_INTERPOLATED","CONSTRUCT_STICHED","CONSTRUCT_POSTSCRIPT","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","typeFn","constructSampledFromIR","constructInterpolatedFromIR","constructStichedFromIR","constructPostScriptFromIR","toMultiArray","domain","inputSize","encode","samples","getSampleArray","interpolate","xmin","xmax","ymin","ymax","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","fnRefs","fns","dmin","dmax","rmin","rmax","PostScriptLexer","PostScriptParser","numOutputs","numInputs","MAX_CACHE_SIZE","cache_available","cachedValue","execute","stackIndex","bound","fnDict","PostScriptStack","MAX_STACK_SIZE","initialStack","copy","roll","operator","counter","atan","cos","LN10","sin","AstNode","AstArgument","AstLiteral","AstBinaryOperation","AstMin","AstVariable","AstVariableDefinition","variable","ExpressionBuilderVisitor","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","visit","visitArgument","visitLiteral","visitBinaryOperation","visitMin","visitVariable","visitVariableDefinition","literal","definition","ast1","ast2","tmpVar","instructions","lastRegister","instruction","statementBuilder","expr","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","opValue","getOperator","SEED","MASK_HIGH","MASK_LOW","seed","blockCounts","tailLength","dataUint32","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","decodeAndClamp","addend","coefficient","resizeImageMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","imageData","smaskData","maskData","computedLength","haveFullData","bufferPos","buf","rowComps","loop1End","loop2End","remainingBits","rgbaBuf","alphaBuf","sw","fillGrayBuffer","opacity","imageOffset","maskOffset","matteRgb","matteR","matteG","matteB","forceRGBA","getImageBytes","newArray","imageLength","maybeUndoPreblend","getComponents","fillOpacity","decodeBuffer","fillRgb","undoPreblend","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","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","addEventListener","ah","_postMessage","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","isClosed","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","success","_deleteStreamController","removeEventListener","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","readers","_isRangeSupported","_isStreamingSupported","_reader","_headersReady","render","_vm","_h","$createElement","_c","_self","staticClass","_v","_t","$route","meta","subTitle","vesselName","attrs","_m","staticRenderFns","Vessels","getModule","VesselsModule","store","FeatureNotAvailable","vessel","currentVessel","Boolean","$slots","text","Vue","Component","staticStyle","$event","pdfScale","formatZoom","scopedSlots","_u","downloadPdf","_g","_b","pdfFullscreen","_l","pdfSrc","_e","pdfErrorMessage","model","$$v","expression","pdfTitle","pdfFullscreenScale","resizeScale","props","initial","default","methods","expand","shrink","watch","deep","scroll","beforeDestroy","mounted","removeOnresizeEvent","loadingTask","createLoadingTask","resizeSensor","resize","internalSrc","pdf","pdfViewer","loading","eventBus","externalLinkTarget","linkService","textLayer","annotationLayer","container","defaultViewport","textLayerFactory","annotationLayerFactory","scrollPageIntoView","calculateScale","calculateScaleHeight","drawScaled","newScale","PdfViewer","pdfUrl","pdfLoaded","pdfError","pdfFullscreenSettingsbar","createPdf","setPdfHeight","pdfSheet","document","querySelector","pdfHeight","innerHeight","getBoundingClientRect","pdfLoading","pdfvuer","pdfO","net","fileDownload","downloadUrl","__decorate","Prop","PropSync","Watch","Pdf","VAlert","VBtn","VCard","VCardText","VCardTitle","VCol","VContainer","VDialog","VIcon","VProgressLinear","VRow","VSheet","VToolbar","VTooltip","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","pow","write","LN2","_display_utils","addLinkAttributes","getFilenameFromUrl","LinkTarget","loadScript","PDFDateString","RenderingCancelledException","_api","build","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","_annotation_layer","AnnotationLayer","_api_compatibility","apiCompatibilityParams","_worker_options","GlobalWorkerOptions","_text_layer","renderTextLayer","_svg","SVGGraphics","PDFNodeStream","setPDFNetworkStreamFactory","PDFNetworkStream","PDFFetchStream","isFetchSupported","isValidFetchUrl","deprecated","StatTimer","DOMSVGFactory","DOMCMapReaderFactory","DOMCanvasFactory","DEFAULT_LINK_REL","PageViewport","SVG_NS","canvas","createElement","getContext","canvasAndContext","isCompressed","baseURI","response","ok","statusText","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","responseText","svg","createElementNS","setAttribute","viewBox","rotation","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","topLeft","bottomRight","applyInverseTransform","SELF","BLANK","PARENT","TOP","link","target","rel","enabled","urlNullRemoved","onclick","targetStr","anchor","query","lastIndexOf","started","times","outBuf","longest","time","duration","padEnd","Response","script","onload","onerror","documentElement","appendChild","pdfDateStringRegex","matches","year","month","day","hour","universalTimeRelation","offsetHour","offsetMinute","UTC","PDFPageProxy","PDFDocumentProxy","_font_loader","_canvas","_metadata","_transport_stream","_webgl","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","createPDFNetworkStream","pdfNetworkStreamFactory","PDFDocumentLoadingTask","rangeTransport","worker","pdfBytes","CMapReaderFactory","stopAtErrors","pdfBug","disableRange","disableStream","workerParams","workerPort","fromPort","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","httpHeaders","withCredentials","workerId","messageHandler","transport","WorkerTransport","_transport","pdfDataRangeTransport","nextDocumentId","onPassword","onUnsupportedFeature","transportDestroyed","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","listener","_pdfInfo","pageNumber","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getOutline","getPermissions","getMetadata","downloadInfoCapability","getStats","startCleanup","loadingParams","_pageIndex","_pageInfo","_stats","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","intentStates","annotationsPromise","annotationsIntent","getAnnotations","canvasContext","viewport","enableWebGL","imageLayer","canvasFactory","renderingIntent","intentState","streamReaderCancelTimeout","clearTimeout","canvasFactoryInstance","webGLContext","WebGLContext","enable","displayReadyCapability","_pumpOperatorList","complete","renderTasks","internalRenderTask","_tryCleanup","_abortOperatorList","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","initializeGraphics","operatorListChanged","opListReadCapability","opListTask","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","highWaterMark","streamTextContent","pageCache","force","renderCompleted","resetStats","some","operatorListChunk","streamReader","_renderPageChunk","defer","_listeners","_defer","_deferred","cloneValue","cloned","transferable","byteOffset","desc","getOwnPropertyDescriptor","getPrototypeOf","WeakMap","PDFWorkerClosure","pdfWorkerPorts","isWorkerDisabled","fallbackWorkerSrc","nextFakeWorkerId","fakeWorkerCapability","pdfjsFilePath","currentScript","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","mainWorkerMessageHandler","globalThis","setupFakeWorkerGlobal","loader","eval","createCDNWrapper","wrapper","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","Worker","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","workerHandler","delete","fontLoader","FontLoader","_onUnsupportedFeature","_params","cMapUrl","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","_destroy","evt","headersCapability","fullReader","_numPages","exception","_startRenderPage","exportedData","exportedError","fontRegistry","FontInspector","fontAdded","FontFaceObject","finally","pageProxy","MAX_IMAGE_SIZE_TO_STORE","fetched","results","Metadata","contentDispositionFilename","cleanupSuccessful","_objs","resolved","_ensureObj","RenderTask","_internalRenderTask","onContinue","canvasInRendering","WeakSet","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","BaseFontLoader","nativeFontFaces","styleElement","nativeFontFace","fonts","rule","getElementsByTagName","styleSheet","sheet","insertRule","cssRules","attached","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","supported","rules","fontsToLoad","loadingContext","requests","nextRequestId","loadTestFontId","navigator","userAgent","completeRequest","otherRequest","getLoadTestFont","atob","spliceString","insert","chunk1","chunk2","called","isFontReady","fillText","getImageData","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","btoa","div","visibility","span","body","removeChild","translatedData","FontFace","registerFont","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","ad_bc","bc_ad","cosValue","sinValue","CachedCanvases","getCanvas","trackTransform","canvasEntry","compileType3Glyph","POINT_TO_PROCESS_LIMIT","width1","POINT_TYPES","lineSize","data0","elem","steps","outlines","pp","drawOutline","beginPath","CanvasExtraState","alphaIsShape","fontSizeScale","textMatrixScale","lineX","lineY","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","setCurrentPoint","EXECUTION_TIME","EXECUTION_STEPS","canvasCtx","pendingClip","pendingEOFill","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","ImageData","putImageData","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","g0","alpha_","composeSMaskAlpha","layerData","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","composeFn","hasBackdrop","PIXELS_TO_PROCESS","chunkHeight","composeSMask","isEnabled","composed","layer","drawImage","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","breakIt","depObjId","objsPool","endSMaskGroup","endLayout","dashPhase","flatness","states","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","consumePath","isPatternFill","needRestore","paths","pendingTextPaths","addToPath","spacing","fontRefName","fontObj","fontDirection","typeface","browserFontSize","rise","patternTransform","fillStrokeMode","getPathGenerator","strokeText","showType3Text","glyphsLength","spacingDir","widthAdvanceScale","simpleFillText","scaledX","scaledY","scaledAccentX","scaledAccentY","vx","vy","charWidth","restoreNeeded","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","paintChar","spacingLength","isTextInvisible","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","inv","bl","br","ul","ur","canvasBounds","imageSmoothingEnabled","mozImageSmoothingEnabled","maskCanvas","imgToPaint","tmpCanvas","widthScale","heightScale","HTMLElement","tmpCtx","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getCanvasPosition","appendImage","inverse","ShadingIRs","applyBoundingBox","Path2D","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","x3","car","cag","cab","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","x1_","x2_","drawFigure","cols","combinesScale","backgroundColor","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","drawFigures","shadingIR","owner","matrixScale","temporaryPatternCanvas","createPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","curMatrixScale","combinedScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","clipBbox","realOutputSize","maxSize","bboxWidth","bboxHeight","_xml_parser","_repair","SimpleXMLParser","xmlDocument","parseFromString","_metadataMap","_parse","rdf","nodeName","firstChild","nextSibling","hasChildNodes","childNodes","trim","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","isWhitespaceString","XMLParserBase","entity","onResolveEntity","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","_resolveEntities","parsed","attrStart","ch2","onError","onEndElement","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","_parseContent","onBeginElement","onText","SimpleDOMNode","nodeValue","parentNode","child","_currentFragment","_stack","_errorCode","parseXml","lastElement","_queuedChunks","_progressiveDone","_pdfDataRangeTransport","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","_begin","_loaded","firstReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","requestDataRange","_done","_requests","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","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","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","deleteTexture","deleteBuffer","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","scaleLocation","offsetLocation","colorLocation","coordsMap","colorsMap","pIndex","cIndex","coordsBuffer","colorsBuffer","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","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","borderWidth","horizontalRadius","verticalRadius","borderRadius","borderBottomStyle","borderColor","trigger","popupElement","PopupElement","hideWrapper","popup","className","externalLinkRel","externalLinkEnabled","_bindNamedAction","_bindLink","destination","getDestinationHash","navigateTo","getAnchorUrl","executeNamedAction","dataset","l10nId","l10nArgs","_createPopup","TEXT_ALIGNMENT","disabled","maxLength","fieldWidth","combWidth","classList","letterSpacing","verticalAlign","display","_setTextStyle","textAlign","direction","fontWeight","fontStyle","selectElement","multiple","optionElement","IGNORE_TYPES","selector","parentElement","parentLeft","parentWidth","pinned","BACKGROUND_ENLIGHT","hideElement","dateObject","toDateObject","date","toLocaleDateString","toLocaleTimeString","_formatContents","_toggle","_show","_hide","createTextNode","pin","hasAttribute","removeAttribute","zIndex","unpin","append","square","containerClassName","svgElementName","coordinate","polyline","inkList","dispatch","_download","downloadData","sortedAnnotations","popupAnnotations","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","isAllWhitespace","appendText","geom","textDiv","textDivProperties","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_textDivProperties","_viewport","atan2","PI","fontHeight","fontAscent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","_canceled","textDivs","textDivsLength","_renderingDone","findPositiveMin","expanded","expandBounds","divProperties","boxScale","boxes","x1New","x2New","expandBoundsLTR","fakeBoundary","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","renderParameters","_render","timeout","styleCache","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","from","maxBlockLength","deflateBlocks","idat","adler","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","activeClipUrl","clipGroup","maskId","opListToTree","opTree","opListElement","pf","toFixed","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","xscale","yscale","txstep","tystep","tiling","shadingId","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","host","isHttp","isFsUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","createRequestOptions","headers","auth","hostname","handleResponse","statusCode","_setReadableStream","getResponseHeader","allowRangeRequests","validateRangeRequestCapabilities","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","stat","createReadStream","createResponseStatusError","validateResponseStatus","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","textdecode","TextDecoder","fatal","contentDispositionStr","iter","quot","part","quotindex","extvalue","encodingend","langvalue","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","NetworkManager","getXhr","currXhrId","listeners","xhrId","pendingRequest","setRequestHeader","expectedStatus","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","ok_response_on_range_request","rangeHeader","abortRequest","_source","_manager","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_onRangeRequestReaderClosed","_onHeadersReceived","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","getRequestXhr","lengthComputable","isPendingRequest","_requestId","_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","l10n","_cancelled","pdfjsLib","isValidRotation","isValidScrollMode","isValidSpreadMode","isPortraitOrientation","clamp","getPDFFileNameFromURL","noContextMenuHandler","parseQueryString","backtrackBeforeAllVisibleElements","getVisibleElements","roundToDivide","getPageSizeInches","approximateFraction","getOutputScale","scrollIntoView","watchScroll","binarySearchFirstItem","normalizeWheelEventDelta","waitOnEventOrTimeout","moveToEndOfArray","WaitOnType","animationStarted","SpreadMode","ScrollMode","TextLayerMode","RendererType","PresentationModeState","VERTICAL_PADDING","SCROLLBAR_PADDING","MAX_AUTO_SCALE","UNKNOWN_SCALE","MAX_SCALE","MIN_SCALE","DEFAULT_SCALE","DEFAULT_SCALE_VALUE","CSS_UNITS","AutoPrintRegExp","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","VERTICAL","HORIZONTAL","WRAPPED","ODD","EVEN","formatL10nValue","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","pixelRatio","spot","skipOverflowHiddenElements","offsetParent","offsetTop","clientTop","offsetLeft","clientLeft","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflow","_scaleY","_scaleX","scrollLeft","scrollTop","viewAreaElement","debounceScroll","rAF","lastX","lastY","down","_eventHandler","param","condition","minIndex","maxIndex","currentItem","xinv","x_","changeOrientation","views","elt","pageTop","scrollEl","sortByVisibility","horizontal","isElementBottomAfterViewTop","elementBottom","isElementRightAfterViewLeft","elementRight","visible","numViews","firstVisibleElementInd","lastEdge","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","hiddenWidth","preventDefault","isDataSchema","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","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","ignoreDestinationZoom","_ignoreDestinationZoom","pdfHistory","_pagesRefCache","currentPageNumber","pagesRotation","goToDestination","namedDest","explicitDest","destRef","_cachedPageNumber","cachePageRef","pagesCount","pushCurrentPosition","destArray","phraseSearch","phrase","zoomArgs","zoom","zoomArg","zoomArgNumber","allowNegativeOffset","pagemode","nameddest","isValidExplicitDestination","back","forward","pageNum","refStr","isPageVisible","destLength","allowNull","EXPAND_DIVS_TIMEOUT","textLayerDiv","findController","renderingDone","pageIdx","textLayerRenderTask","_onUpdateTextLayerMatches","_bindMouse","endOfContent","numTextDivs","textLayerFrag","createDocumentFragment","_finishRendering","_updateMatches","matchesLength","iIndex","queryLen","matchIdx","divIdx","isSelectedPage","selected","selectedMatchIdx","highlightAll","prevEnd","appendTextToDiv","fromOffset","toOffset","isSelected","highlightSuffix","scrollMatchIntoView","matchIndex","clearedUntilDivIdx","highlightMatches","pageMatches","pageMatchesLength","_convertMatches","_renderMatches","expandDivsTimer","adjustTop","getPropertyValue","divBounds","pageY","_viewer_compatibility","DISABLE_CREATE_OBJECT_URL","viewerCompatibilityParams","disableCreateObjectURL","download","blobUrl","click","msSaveBlob","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","getAttribute","xhrLoadText","overrideMimeType","ontimeout","parseResource","successCallback","failureCallback","baseURL","evalString","parseProperties","parsedPropertiesCallback","reBlank","reComment","reSection","reImport","reSplit","parseRawLines","rawText","extendedSyntax","parsedRawLinesCallback","currentLang","genericLang","skipLang","nextEntry","loadImport","loadLocale","langLinks","langCount","onResourceLoaded","gResourceCount","resource","L10nResourceLink","locales","default_locale","defaultLocale","anyCaseLang","getPluralRules","locales2rules","isIn","list","isBetween","pluralRules","getL10nData","rv","substIndexes","substArguments","reIndex","reMatch","macroName","paramName","macro","reArgs","matched_text","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","prevElem","matchLength","startIdx","getCharacterType","endIdx","pageContent","entireWord","_isEntireWord","queryArray","subquery","subqueryLen","_prepareMatches","_query","caseSensitive","_calculatePhraseMatch","_calculateWordMatch","_updatePage","_nextPageMatch","pageMatchesCount","_updateUIResultsCount","extractTextCapability","findPrevious","_calculateMatch","numPageMatches","_updateMatch","_advanceOffsetPage","numMatches","_matchesReady","previousPage","matchesCount","_requestMatchesCount","CharacterType","ALPHA_LETTER","PUNCT","HAN_LETTER","KATAKANA_LETTER","HIRAGANA_LETTER","HALFWIDTH_KATAKANA_LETTER","THAI_LETTER","isAlphabeticalScript","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","history","_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","renderingId","pageLabel","pdfPageRotate","hasRestrictedScaling","textLayerMode","useOnlyCssZoom","renderingQueue","paintTask","paintedViewportMap","renderingState","RenderingStates","INITIAL","resume","zoomLayer","totalRotation","getViewport","removeFromDOM","zoomLayerCanvas","keepZoomLayer","keepAnnotations","cancelRendering","currentZoomLayerNode","currentAnnotationNode","hide","_resetZoomLayer","loadingIconDiv","cssTransform","timestamp","isScalingRestricted","outputScale","redrawAnnotations","relativeRotation","absRotation","textLayerViewport","textRelativeRotation","textAbsRotation","transX","transY","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","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","_getCurrentVisiblePage","visiblePages","DEFAULT_CACHE_SIZE","PDFPageViewBuffer","newSize","pagesToKeep","pageIdsToKeep","iMax","isSameScale","oldScale","_name","firstElementChild","removePageBorders","enablePrintAutoRotate","defaultRenderingQueue","setViewer","presentationModeState","_onBeforeDraw","_onAfterDraw","_pagesCapability","settled","resetCurrentPageView","_resetCurrentPageView","_pageLabels","_currentScale","_setScale","_currentScaleValue","_pagesRotation","_onePageRenderedCapability","_getVisiblePages","_cancelRendering","setDocument","firstPagePromise","_buffer","firstPdfPage","currentScale","_viewerElement","firstPageView","setPdfPage","_spreadMode","_updateSpreadMode","_onePageRenderedOrForceFetch","getPagesLeft","setPageLabel","_location","_pagesRequests","_scrollMode","_updateScrollMode","newValue","noScroll","preset","presetValue","isInPresentationMode","isChangingPresentationMode","_setScaleUpdatePages","currentPage","noPadding","hPadding","vPadding","_isScrollModeHorizontal","pageWidthScale","pageHeightScale","horizontalScale","pageWidth","pageHeight","currentScaleValue","boundingRect","convertToViewportPoint","firstPage","normalizedScaleValue","currentPageView","getPagePoint","intLeft","intTop","numVisiblePages","newCacheSize","_updateHelper","_updateLocation","focus","scrollAhead","getHighestPriority","_ensurePdfPageLoaded","renderView","pagesOverview","isFirstPagePortrait","scrollMode","toggle","pages","parity","spread","currentId","stillFullyVisible","base64","ieee754","typedArraySupport","__proto__","foo","kMaxLength","TYPED_ARRAY_SUPPORT","that","RangeError","encodingOrOffset","allocUnsafe","TypeError","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","string","isEncoding","actual","fromArrayLike","isBuffer","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","valLength","readUInt16BE","foundIndex","hexWrite","remaining","strLen","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","global","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","isFinite","toJSON","_arr","MAX_ARGUMENTS_LENGTH","codePoints","ret","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","leadSurrogate","byteArray","hi","lo","normalizeArray","allowAboveRoot","basename","matchedSlash","xs","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","relative","to","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","extname","startDot","startPart","preDotState"],"mappings":"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S,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAA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,EAAGG,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGD,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGA,GAAe,CAAC,EAAGD,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,GAAc,CAAC,EAAGA,IAC/wEQ,EAAc,CAAC,EAAE,GAAI,GAAI,CAAC,GAAIZ,GAAW,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAC9Wa,EAAc,CAAC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,KAAM,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IACx3IC,EAAc,CAAC,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAId,GAAW,CAAC,GAAIA,GAAW,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,EAAE,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAC53Ce,EAAc,CAAC,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,GAAI,KAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,IAAK,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC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M,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,IACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,EACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,EACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,MACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,GACX,CACDH,GAAI,KACJC,KAAM,GACNC,KAAM,GACNC,WAAY,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EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,UAAY,WAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,UAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,YAAa,IAAIA,EAAO,WAAY,WAAa,IAAIA,EAA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,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,KACphDmE,KAAK8yE,OAAS,IAAIj3E,WAAW,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,MACxhDmE,KAAK+yE,KAAO,IAAI5yD,YAAY,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,aACjhGngB,KAAKgzE,QAAU,IAAIn3E,WAAW,KAE9B,IAAK,IAAIG,EAAI,EAAGA,EAAI,IAAKA,IAErBgE,KAAKgzE,QAAQh3E,GADXA,EAAI,IACYA,GAAK,EAELA,GAAK,EAAI,GAI/BgE,KAAKogB,OAAS,IAAIvkB,WAAW,IAC7BmE,KAAKizE,eAAiB,EAGxB,WAAWC,IACT,EAAI/wE,EAAM6L,aAAa,8CAGzB,SAAS0kC,EAAOlxC,GACd,IAAIL,EAAGotE,EAAGrtD,EACV,MAAMwmB,EAAQ,IAAI7rC,WAAW,IAC7B6rC,EAAM3nB,IAAI2yB,GAEV,IAAK,IAAIvf,EAAI,EAAGud,EAAI1wC,KAAKmzE,SAAUhgD,EAAI,KAAMA,IAAKud,EAChDhJ,EAAMvU,IAAM3xB,EAAIkvC,GAGlB,IAAK,IAAI10C,EAAIgE,KAAKozE,oBAAsB,EAAGp3E,GAAK,IAAKA,EAAG,CACtDmF,EAAIumC,EAAM,IACVA,EAAM,IAAMA,EAAM,GAClBA,EAAM,GAAKA,EAAM,GACjBA,EAAM,GAAKA,EAAM,GACjBA,EAAM,GAAKvmC,EACXA,EAAIumC,EAAM,IACV6mC,EAAI7mC,EAAM,IACVA,EAAM,IAAMA,EAAM,GAClBA,EAAM,IAAMA,EAAM,GAClBA,EAAM,GAAKvmC,EACXumC,EAAM,GAAK6mC,EACXptE,EAAIumC,EAAM,IACV6mC,EAAI7mC,EAAM,IACVxmB,EAAIwmB,EAAM,GACVA,EAAM,IAAMA,EAAM,GAClBA,EAAM,IAAMvmC,EACZumC,EAAM,GAAK6mC,EACX7mC,EAAM,GAAKxmB,EAEX,IAAK,IAAIiS,EAAI,EAAGA,EAAI,KAAMA,EACxBuU,EAAMvU,GAAKnzB,KAAK8yE,OAAOprC,EAAMvU,IAG/B,IAAK,IAAIA,EAAI,EAAGud,EAAQ,GAAJ10C,EAAQm3B,EAAI,KAAMA,IAAKud,EACzChJ,EAAMvU,IAAM3xB,EAAIkvC,GAGlB,IAAK,IAAIvd,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC9B,MAAMkgD,EAAKrzE,KAAK+yE,KAAKrrC,EAAMvU,IACrBmgD,EAAKtzE,KAAK+yE,KAAKrrC,EAAMvU,EAAI,IACzBsuB,EAAKzhD,KAAK+yE,KAAKrrC,EAAMvU,EAAI,IACzBogD,EAAKvzE,KAAK+yE,KAAKrrC,EAAMvU,EAAI,IAC/BhyB,EAAIkyE,EAAKC,IAAO,EAAIA,GAAM,GAAK7xB,IAAO,GAAKA,GAAM,GAAK8xB,IAAO,GAAKA,GAAM,EACxE7rC,EAAMvU,GAAKhyB,IAAM,GAAK,IACtBumC,EAAMvU,EAAI,GAAKhyB,GAAK,GAAK,IACzBumC,EAAMvU,EAAI,GAAKhyB,GAAK,EAAI,IACxBumC,EAAMvU,EAAI,GAAS,IAAJhyB,GAInBA,EAAIumC,EAAM,IACVA,EAAM,IAAMA,EAAM,GAClBA,EAAM,GAAKA,EAAM,GACjBA,EAAM,GAAKA,EAAM,GACjBA,EAAM,GAAKvmC,EACXA,EAAIumC,EAAM,IACV6mC,EAAI7mC,EAAM,IACVA,EAAM,IAAMA,EAAM,GAClBA,EAAM,IAAMA,EAAM,GAClBA,EAAM,GAAKvmC,EACXumC,EAAM,GAAK6mC,EACXptE,EAAIumC,EAAM,IACV6mC,EAAI7mC,EAAM,IACVxmB,EAAIwmB,EAAM,GACVA,EAAM,IAAMA,EAAM,GAClBA,EAAM,IAAMvmC,EACZumC,EAAM,GAAK6mC,EACX7mC,EAAM,GAAKxmB,EAEX,IAAK,IAAIiS,EAAI,EAAGA,EAAI,KAAMA,EACxBuU,EAAMvU,GAAKnzB,KAAK8yE,OAAOprC,EAAMvU,IAC7BuU,EAAMvU,IAAM3xB,EAAI2xB,GAGlB,OAAOuU,EAGT,SAASgL,EAAOlxC,GACd,MAAMO,EAAI/B,KAAK6yE,GACf,IAAI1xE,EAAGotE,EAAGrtD,EACV,MAAMwmB,EAAQ,IAAI7rC,WAAW,IAC7B6rC,EAAM3nB,IAAI2yB,GAEV,IAAK,IAAIvf,EAAI,EAAGA,EAAI,KAAMA,EACxBuU,EAAMvU,IAAM3xB,EAAI2xB,GAGlB,IAAK,IAAIn3B,EAAI,EAAGA,EAAIgE,KAAKozE,oBAAqBp3E,IAAK,CACjD,IAAK,IAAIm3B,EAAI,EAAGA,EAAI,KAAMA,EACxBuU,EAAMvU,GAAKpxB,EAAE2lC,EAAMvU,IAGrBjS,EAAIwmB,EAAM,GACVA,EAAM,GAAKA,EAAM,GACjBA,EAAM,GAAKA,EAAM,GACjBA,EAAM,GAAKA,EAAM,IACjBA,EAAM,IAAMxmB,EACZA,EAAIwmB,EAAM,GACV6mC,EAAI7mC,EAAM,GACVA,EAAM,GAAKA,EAAM,IACjBA,EAAM,GAAKA,EAAM,IACjBA,EAAM,IAAMxmB,EACZwmB,EAAM,IAAM6mC,EACZrtD,EAAIwmB,EAAM,GACV6mC,EAAI7mC,EAAM,GACVvmC,EAAIumC,EAAM,IACVA,EAAM,GAAKA,EAAM,IACjBA,EAAM,GAAKxmB,EACXwmB,EAAM,IAAM6mC,EACZ7mC,EAAM,IAAMvmC,EAEZ,IAAK,IAAIgyB,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC9B,MAAMkgD,EAAK3rC,EAAMvU,EAAI,GACfmgD,EAAK5rC,EAAMvU,EAAI,GACfsuB,EAAK/Z,EAAMvU,EAAI,GACfogD,EAAK7rC,EAAMvU,EAAI,GACrBhyB,EAAIkyE,EAAKC,EAAK7xB,EAAK8xB,EACnB7rC,EAAMvU,EAAI,IAAMhyB,EAAInB,KAAKgzE,QAAQK,EAAKC,GACtC5rC,EAAMvU,EAAI,IAAMhyB,EAAInB,KAAKgzE,QAAQM,EAAK7xB,GACtC/Z,EAAMvU,EAAI,IAAMhyB,EAAInB,KAAKgzE,QAAQvxB,EAAK8xB,GACtC7rC,EAAMvU,EAAI,IAAMhyB,EAAInB,KAAKgzE,QAAQO,EAAKF,GAGxC,IAAK,IAAIlgD,EAAI,EAAGud,EAAQ,GAAJ10C,EAAQm3B,EAAI,KAAMA,IAAKud,EACzChJ,EAAMvU,IAAM3xB,EAAIkvC,GAIpB,IAAK,IAAIvd,EAAI,EAAGA,EAAI,KAAMA,EACxBuU,EAAMvU,GAAKpxB,EAAE2lC,EAAMvU,IAGrBjS,EAAIwmB,EAAM,GACVA,EAAM,GAAKA,EAAM,GACjBA,EAAM,GAAKA,EAAM,GACjBA,EAAM,GAAKA,EAAM,IACjBA,EAAM,IAAMxmB,EACZA,EAAIwmB,EAAM,GACV6mC,EAAI7mC,EAAM,GACVA,EAAM,GAAKA,EAAM,IACjBA,EAAM,GAAKA,EAAM,IACjBA,EAAM,IAAMxmB,EACZwmB,EAAM,IAAM6mC,EACZrtD,EAAIwmB,EAAM,GACV6mC,EAAI7mC,EAAM,GACVvmC,EAAIumC,EAAM,IACVA,EAAM,GAAKA,EAAM,IACjBA,EAAM,GAAKxmB,EACXwmB,EAAM,IAAM6mC,EACZ7mC,EAAM,IAAMvmC,EAEZ,IAAK,IAAIgyB,EAAI,EAAGud,EAAI1wC,KAAKmzE,SAAUhgD,EAAI,KAAMA,IAAKud,EAChDhJ,EAAMvU,IAAM3xB,EAAIkvC,GAGlB,OAAOhJ,EAGT,eAAexkC,EAAMswE,GACnB,MAAMC,EAAevwE,EAAKhH,OAC1B,IAAIkkB,EAASpgB,KAAKogB,OACdwtB,EAAe5tC,KAAKizE,eACxB,MAAMhxD,EAAS,GACf,IAAIyxD,EAAK1zE,KAAK0zE,GAEd,IAAK,IAAI13E,EAAI,EAAGA,EAAIy3E,IAAgBz3E,EAAG,CAIrC,GAHAokB,EAAOwtB,GAAgB1qC,EAAKlH,KAC1B4xC,EAEEA,EAAe,GACjB,SAGF,MAAM+lC,EAAQ3zE,KAAK4zE,SAASxzD,EAAQpgB,KAAK6zE,MAEzC,IAAK,IAAI1gD,EAAI,EAAGA,EAAI,KAAMA,EACxBwgD,EAAMxgD,IAAMugD,EAAGvgD,GAGjBugD,EAAKtzD,EACL6B,EAAO3kB,KAAKq2E,GACZvzD,EAAS,IAAIvkB,WAAW,IACxB+xC,EAAe,EAOjB,GAJA5tC,KAAKogB,OAASA,EACdpgB,KAAK4tC,aAAeA,EACpB5tC,KAAK0zE,GAAKA,EAEY,IAAlBzxD,EAAO/lB,OACT,OAAO,IAAIL,WAAW,GAGxB,IAAIi4E,EAAe,GAAK7xD,EAAO/lB,OAE/B,GAAIs3E,EAAU,CACZ,MAAMO,EAAY9xD,EAAOA,EAAO/lB,OAAS,GACzC,IAAI83E,EAAQD,EAAU,IAEtB,GAAIC,GAAS,GAAI,CACf,IAAK,IAAIh4E,EAAI,GAAIsnB,EAAK,GAAK0wD,EAAOh4E,GAAKsnB,IAAMtnB,EAC3C,GAAI+3E,EAAU/3E,KAAOg4E,EAAO,CAC1BA,EAAQ,EACR,MAIJF,GAAgBE,EAChB/xD,EAAOA,EAAO/lB,OAAS,GAAK63E,EAAUr0D,SAAS,EAAG,GAAKs0D,IAI3D,MAAM32E,EAAS,IAAIxB,WAAWi4E,GAE9B,IAAK,IAAI93E,EAAI,EAAGm3B,EAAI,EAAG7P,EAAKrB,EAAO/lB,OAAQF,EAAIsnB,IAAMtnB,EAAGm3B,GAAK,GAC3D91B,EAAO0iB,IAAIkC,EAAOjmB,GAAIm3B,GAGxB,OAAO91B,EAGT,aAAa6F,EAAMswE,EAAUE,EAAK,MAChC,MAAMD,EAAevwE,EAAKhH,OACpBkkB,EAASpgB,KAAKogB,OACpB,IAAIwtB,EAAe5tC,KAAKizE,eAExB,GAAIS,EACF1zE,KAAK0zE,GAAKA,MACL,CACL,IAAK,IAAI13E,EAAI,EAAG4xC,EAAe,IAAM5xC,EAAIy3E,IAAgBz3E,IAAK4xC,EAC5DxtB,EAAOwtB,GAAgB1qC,EAAKlH,GAG9B,GAAI4xC,EAAe,GAEjB,OADA5tC,KAAK4tC,aAAeA,EACb,IAAI/xC,WAAW,GAGxBmE,KAAK0zE,GAAKtzD,EACVld,EAAOA,EAAKwc,SAAS,IAMvB,OAHA1f,KAAKogB,OAAS,IAAIvkB,WAAW,IAC7BmE,KAAK4tC,aAAe,EACpB5tC,KAAKgwE,aAAehwE,KAAKi0E,eAClBj0E,KAAKgwE,aAAa9sE,EAAMswE,GAGjC,QAAQtwE,EAAMwwE,GACZ,MAAMD,EAAevwE,EAAKhH,OAC1B,IAAIkkB,EAASpgB,KAAKogB,OACdwtB,EAAe5tC,KAAKizE,eACxB,MAAMhxD,EAAS,GAEVyxD,IACHA,EAAK,IAAI73E,WAAW,KAGtB,IAAK,IAAIG,EAAI,EAAGA,EAAIy3E,IAAgBz3E,EAAG,CAIrC,GAHAokB,EAAOwtB,GAAgB1qC,EAAKlH,KAC1B4xC,EAEEA,EAAe,GACjB,SAGF,IAAK,IAAIza,EAAI,EAAGA,EAAI,KAAMA,EACxB/S,EAAO+S,IAAMugD,EAAGvgD,GAGlB,MAAM+gD,EAASl0E,KAAKm0E,SAAS/zD,EAAQpgB,KAAK6zE,MAE1CH,EAAKQ,EACLjyD,EAAO3kB,KAAK42E,GACZ9zD,EAAS,IAAIvkB,WAAW,IACxB+xC,EAAe,EAOjB,GAJA5tC,KAAKogB,OAASA,EACdpgB,KAAK4tC,aAAeA,EACpB5tC,KAAK0zE,GAAKA,EAEY,IAAlBzxD,EAAO/lB,OACT,OAAO,IAAIL,WAAW,GAGxB,MAAMi4E,EAAe,GAAK7xD,EAAO/lB,OAC3BmB,EAAS,IAAIxB,WAAWi4E,GAE9B,IAAK,IAAI93E,EAAI,EAAGm3B,EAAI,EAAG7P,EAAKrB,EAAO/lB,OAAQF,EAAIsnB,IAAMtnB,EAAGm3B,GAAK,GAC3D91B,EAAO0iB,IAAIkC,EAAOjmB,GAAIm3B,GAGxB,OAAO91B,GAKX,MAAMuyE,UAAqBgD,EACzB,YAAYpxE,GACVod,QACA5e,KAAKozE,oBAAsB,GAC3BpzE,KAAKmzE,SAAW,IAChBnzE,KAAKo0E,MAAQ,IAAIv4E,WAAW,CAAC,IAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,MACvhDmE,KAAK6zE,KAAO7zE,KAAKq0E,WAAW7yE,GAG9B,WAAW0xE,GACT,MAAM1yD,EAAI,IACJze,EAAI/B,KAAK6yE,GACTyB,EAAOt0E,KAAKo0E,MACZnyD,EAAS,IAAIpmB,WAAW2kB,GAC9ByB,EAAOlC,IAAImzD,GAEX,IAAK,IAAI//C,EAAI,GAAIn3B,EAAI,EAAGm3B,EAAI3S,IAAKxkB,EAAG,CAClC,IAAIu2E,EAAKtwD,EAAOkR,EAAI,GAChBuuB,EAAKz/B,EAAOkR,EAAI,GAChBohD,EAAKtyD,EAAOkR,EAAI,GAChBqhD,EAAKvyD,EAAOkR,EAAI,GACpBo/C,EAAKxwE,EAAEwwE,GACP7wB,EAAK3/C,EAAE2/C,GACP6yB,EAAKxyE,EAAEwyE,GACPC,EAAKzyE,EAAEyyE,GACPjC,GAAU+B,EAAKt4E,GAEf,IAAK,IAAI0F,EAAI,EAAGA,EAAI,IAAKA,EACvBugB,EAAOkR,GAAKo/C,GAAMtwD,EAAOkR,EAAI,IAC7BA,IACAlR,EAAOkR,GAAKuuB,GAAMz/B,EAAOkR,EAAI,IAC7BA,IACAlR,EAAOkR,GAAKohD,GAAMtyD,EAAOkR,EAAI,IAC7BA,IACAlR,EAAOkR,GAAKqhD,GAAMvyD,EAAOkR,EAAI,IAC7BA,IAIJ,OAAOlR,GAKX3mB,EAAQs0E,aAAeA,EAEvB,MAAMD,UAAqBiD,EACzB,YAAYpxE,GACVod,QACA5e,KAAKozE,oBAAsB,GAC3BpzE,KAAKmzE,SAAW,IAChBnzE,KAAK6zE,KAAO7zE,KAAKq0E,WAAW7yE,GAG9B,WAAW0xE,GACT,MAAM1yD,EAAI,IACJze,EAAI/B,KAAK6yE,GACT5wD,EAAS,IAAIpmB,WAAW2kB,GAC9ByB,EAAOlC,IAAImzD,GACX,IACIX,EAAI7wB,EAAI6yB,EAAIC,EADZzzE,EAAI,EAGR,IAAK,IAAIoyB,EAAI,GAAIn3B,EAAI,EAAGm3B,EAAI3S,IAAKxkB,EAAG,CAC9Bm3B,EAAI,KAAO,IACbo/C,EAAKxwE,EAAEwwE,GACP7wB,EAAK3/C,EAAE2/C,GACP6yB,EAAKxyE,EAAEwyE,GACPC,EAAKzyE,EAAEyyE,IACErhD,EAAI,KAAO,IACpBo/C,EAAKtwD,EAAOkR,EAAI,GAChBuuB,EAAKz/B,EAAOkR,EAAI,GAChBohD,EAAKtyD,EAAOkR,EAAI,GAChBqhD,EAAKvyD,EAAOkR,EAAI,GAChBo/C,EAAKxwE,EAAEwwE,GACP7wB,EAAK3/C,EAAE2/C,GACP6yB,EAAKxyE,EAAEwyE,GACPC,EAAKzyE,EAAEyyE,GACPjC,GAAUxxE,GAELA,IAAM,IAAM,MACfA,EAAiB,KAAR,GAAJA,KAIT,IAAK,IAAIW,EAAI,EAAGA,EAAI,IAAKA,EACvBugB,EAAOkR,GAAKo/C,GAAMtwD,EAAOkR,EAAI,IAC7BA,IACAlR,EAAOkR,GAAKuuB,GAAMz/B,EAAOkR,EAAI,IAC7BA,IACAlR,EAAOkR,GAAKohD,GAAMtyD,EAAOkR,EAAI,IAC7BA,IACAlR,EAAOkR,GAAKqhD,GAAMvyD,EAAOkR,EAAI,IAC7BA,IAIJ,OAAOlR,GAKX3mB,EAAQq0E,aAAeA,EAEvB,IAAIF,EAAQ,WACV,SAASgF,EAAkBC,EAAQC,GACjC,GAAID,EAAOx4E,SAAWy4E,EAAOz4E,OAC3B,OAAO,EAGT,IAAK,IAAIF,EAAI,EAAGA,EAAI04E,EAAOx4E,OAAQF,IACjC,GAAI04E,EAAO14E,KAAO24E,EAAO34E,GACvB,OAAO,EAIX,OAAO,EAGT,SAASyzE,KAoCT,OAlCAA,EAAM1xE,UAAY,CAChB62E,mBAAoB,SAAkCjvE,EAAUkvE,EAAqBC,EAAWC,GAC9F,IAAIC,EAAW,IAAIn5E,WAAW8J,EAASzJ,OAAS,IAChD84E,EAASj1D,IAAIpa,EAAU,GACvBqvE,EAASj1D,IAAI80D,EAAqBlvE,EAASzJ,QAC3C84E,EAASj1D,IAAI+0D,EAAWnvE,EAASzJ,OAAS24E,EAAoB34E,QAC9D,IAAI+lB,EAASstD,EAAgByF,EAAU,EAAGA,EAAS94E,QACnD,OAAOu4E,EAAkBxyD,EAAQ8yD,IAEnCE,kBAAmB,SAAiCtvE,EAAUuvE,EAAoBC,GAChF,IAAIH,EAAW,IAAIn5E,WAAW8J,EAASzJ,OAAS,GAChD84E,EAASj1D,IAAIpa,EAAU,GACvBqvE,EAASj1D,IAAIm1D,EAAoBvvE,EAASzJ,QAC1C,IAAI+lB,EAASstD,EAAgByF,EAAU,EAAGA,EAAS94E,QACnD,OAAOu4E,EAAkBxyD,EAAQkzD,IAEnCC,YAAa,SAA2BzvE,EAAU0vE,EAAcP,EAAWQ,GACzE,IAAIN,EAAW,IAAIn5E,WAAW8J,EAASzJ,OAAS,IAChD84E,EAASj1D,IAAIpa,EAAU,GACvBqvE,EAASj1D,IAAIs1D,EAAc1vE,EAASzJ,QACpC84E,EAASj1D,IAAI+0D,EAAWnvE,EAASzJ,OAASm5E,EAAan5E,QACvD,IAAIsF,EAAM+tE,EAAgByF,EAAU,EAAGA,EAAS94E,QAC5Cg4E,EAAS,IAAIvE,EAAanuE,GAC9B,OAAO0yE,EAAOlE,aAAasF,GAAiB,EAAO,IAAIz5E,WAAW,MAEpE05E,WAAY,SAA0B5vE,EAAU6vE,EAAaC,GAC3D,IAAIT,EAAW,IAAIn5E,WAAW8J,EAASzJ,OAAS,GAChD84E,EAASj1D,IAAIpa,EAAU,GACvBqvE,EAASj1D,IAAIy1D,EAAa7vE,EAASzJ,QACnC,IAAIsF,EAAM+tE,EAAgByF,EAAU,EAAGA,EAAS94E,QAC5Cg4E,EAAS,IAAIvE,EAAanuE,GAC9B,OAAO0yE,EAAOlE,aAAayF,GAAgB,EAAO,IAAI55E,WAAW,OAG9D4zE,EAnDG,GAsDZn0E,EAAQm0E,MAAQA,EAEhB,IAAID,EAAQ,WACV,SAASkG,EAAahB,EAAQC,GAC5B,IAAIxzE,EAAI,IAAItF,WAAW64E,EAAOx4E,OAASy4E,EAAOz4E,QAG9C,OAFAiF,EAAE4e,IAAI20D,EAAQ,GACdvzE,EAAE4e,IAAI40D,EAAQD,EAAOx4E,QACdiF,EAGT,SAASw0E,EAAmBhwE,EAAU+sC,EAAOoiC,GAC3C,IAAIpkC,EAAI6+B,EAAgB78B,EAAO,EAAGA,EAAMx2C,QAAQwjB,SAAS,EAAG,IACxD9X,EAAI,CAAC,GACL5L,EAAI,EAER,MAAOA,EAAI,IAAM4L,EAAEA,EAAE1L,OAAS,GAAKF,EAAI,GAAI,CACzC,IAAI45E,EAAcjwE,EAASzJ,OAASw0C,EAAEx0C,OAAS44E,EAAU54E,OACrD25E,EAAK,IAAIh6E,WAAyB,GAAd+5E,GACpBzuC,EAAQuuC,EAAa/vE,EAAU+qC,GACnCvJ,EAAQuuC,EAAavuC,EAAO2tC,GAE5B,IAAK,IAAI3hD,EAAI,EAAGvT,EAAM,EAAGuT,EAAI,GAAIA,IAAKvT,GAAOg2D,EAC3CC,EAAG91D,IAAIonB,EAAOvnB,GAGhB,IAAIs0D,EAAS,IAAItE,EAAal/B,EAAEhxB,SAAS,EAAG,KAC5C9X,EAAIssE,EAAOz8C,QAAQo+C,EAAInlC,EAAEhxB,SAAS,GAAI,KAGtC,IAFA,IAAIo2D,EAAY,EAEPxkB,EAAI,EAAGA,EAAI,GAAIA,IACtBwkB,GAAa,EACbA,GAAa,EACbA,IAAcluE,EAAE0pD,KAAO,GAAK,EAC5BwkB,GAAa,EAGG,IAAdA,EACFplC,EAAI6+B,EAAgB3nE,EAAG,EAAGA,EAAE1L,QACL,IAAd45E,EACTplC,EAAI4+B,EAAgB1nE,EAAG,EAAGA,EAAE1L,QACL,IAAd45E,IACTplC,EAAI2+B,EAAgBznE,EAAG,EAAGA,EAAE1L,SAG9BF,IAGF,OAAO00C,EAAEhxB,SAAS,EAAG,IAGvB,SAAS8vD,KAET,SAASiF,EAAkBC,EAAQC,GACjC,GAAID,EAAOx4E,SAAWy4E,EAAOz4E,OAC3B,OAAO,EAGT,IAAK,IAAIF,EAAI,EAAGA,EAAI04E,EAAOx4E,OAAQF,IACjC,GAAI04E,EAAO14E,KAAO24E,EAAO34E,GACvB,OAAO,EAIX,OAAO,EAwCT,OArCAwzE,EAAMzxE,UAAY,CAChBq4B,KAAM,SAAoBzwB,EAAUowE,EAAajB,GAC/C,OAAOa,EAAmBhwE,EAAUowE,EAAajB,IAEnDF,mBAAoB,SAAkCjvE,EAAUkvE,EAAqBC,EAAWC,GAC9F,IAAIC,EAAW,IAAIn5E,WAAW8J,EAASzJ,OAAS,IAChD84E,EAASj1D,IAAIpa,EAAU,GACvBqvE,EAASj1D,IAAI80D,EAAqBlvE,EAASzJ,QAC3C84E,EAASj1D,IAAI+0D,EAAWnvE,EAASzJ,OAAS24E,EAAoB34E,QAC9D,IAAI+lB,EAAS0zD,EAAmBhwE,EAAUqvE,EAAUF,GACpD,OAAOL,EAAkBxyD,EAAQ8yD,IAEnCE,kBAAmB,SAAiCtvE,EAAUuvE,EAAoBC,GAChF,IAAIH,EAAW,IAAIn5E,WAAW8J,EAASzJ,OAAS,GAChD84E,EAASj1D,IAAIpa,EAAU,GACvBqvE,EAASj1D,IAAIm1D,EAAoBvvE,EAASzJ,QAC1C,IAAI+lB,EAAS0zD,EAAmBhwE,EAAUqvE,EAAU,IACpD,OAAOP,EAAkBxyD,EAAQkzD,IAEnCC,YAAa,SAA2BzvE,EAAU0vE,EAAcP,EAAWQ,GACzE,IAAIN,EAAW,IAAIn5E,WAAW8J,EAASzJ,OAAS,IAChD84E,EAASj1D,IAAIpa,EAAU,GACvBqvE,EAASj1D,IAAIs1D,EAAc1vE,EAASzJ,QACpC84E,EAASj1D,IAAI+0D,EAAWnvE,EAASzJ,OAASm5E,EAAan5E,QACvD,IAAIsF,EAAMm0E,EAAmBhwE,EAAUqvE,EAAUF,GAC7CZ,EAAS,IAAIvE,EAAanuE,GAC9B,OAAO0yE,EAAOlE,aAAasF,GAAiB,EAAO,IAAIz5E,WAAW,MAEpE05E,WAAY,SAA0B5vE,EAAU6vE,EAAaC,GAC3D,IAAIT,EAAW,IAAIn5E,WAAW8J,EAASzJ,OAAS,GAChD84E,EAASj1D,IAAIpa,EAAU,GACvBqvE,EAASj1D,IAAIy1D,EAAa7vE,EAASzJ,QACnC,IAAIsF,EAAMm0E,EAAmBhwE,EAAUqvE,EAAU,IAC7Cd,EAAS,IAAIvE,EAAanuE,GAC9B,OAAO0yE,EAAOlE,aAAayF,GAAgB,EAAO,IAAI55E,WAAW,OAG9D2zE,EArGG,GAwGZl0E,EAAQk0E,MAAQA,EAEhB,IAAIwG,EAAkB,WACpB,SAASA,EAAgBC,EAAyBC,GAChDl2E,KAAKm2E,wBAA0BF,EAC/Bj2E,KAAKo2E,wBAA0BF,EAiBjC,OAdAF,EAAgBj4E,UAAY,CAC1BorC,aAAc,SAAsC5/B,EAAQrN,GAC1D,IAAIg4E,EAAS,IAAIl0E,KAAKo2E,wBACtB,OAAO,IAAI3uD,EAAQ6lB,cAAc/jC,EAAQrN,GAAQ,SAAsCgH,EAAMswE,GAC3F,OAAOU,EAAOlE,aAAa9sE,EAAMswE,OAGrCnsC,cAAe,SAAuCtlC,GACpD,IAAImyE,EAAS,IAAIl0E,KAAKm2E,wBAClBjzE,GAAO,EAAIf,EAAMyL,eAAe7L,GAEpC,OADAmB,EAAOgxE,EAAOlE,aAAa9sE,GAAM,IAC1B,EAAIf,EAAM6K,eAAe9J,KAG7B8yE,EApBa,GAuBlB51C,EAAyB,WAC3B,IAAIi2C,EAAuB,IAAIx6E,WAAW,CAAC,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,GAAM,GAAM,IAAM,IAAM,EAAM,EAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,MAErO,SAASy6E,EAAsBC,EAAU5wE,EAAUovE,EAAeF,EAAqBQ,EAAcmB,EAAQrB,EAAcD,EAAoBM,EAAaF,EAAiBG,EAAgBgB,GAC3L,GAAI9wE,EAAU,CACZ,IAAI+wE,EAAiBjvE,KAAK+X,IAAI,IAAK7Z,EAASzJ,QAC5CyJ,EAAWA,EAAS+Z,SAAS,EAAGg3D,QAEhC/wE,EAAW,GAGb,IAAIgxE,EAQJ,OALEA,EADe,IAAbJ,EACa,IAAI/G,EAEJ,IAAIC,EAGjBkH,EAAa1B,kBAAkBtvE,EAAUuvE,EAAoBC,GACxDwB,EAAapB,WAAW5vE,EAAU6vE,EAAaC,GAC7C9vE,EAASzJ,QAAUy6E,EAAa/B,mBAAmBjvE,EAAUkvE,EAAqB2B,EAAQzB,GAC5F4B,EAAavB,YAAYzvE,EAAU0vE,EAAcmB,EAAQlB,GAG3D,KAGT,SAASsB,EAAez2C,EAAQx6B,EAAUovE,EAAeI,EAAc38C,EAAO+9C,EAAU1G,EAAWn4C,GACjG,IAGIvE,EACAzxB,EAJAm1E,EAAe,GAAK9B,EAAc74E,OAASikC,EAAOjkC,OAClD84E,EAAW,IAAIn5E,WAAWg7E,GAC1B76E,EAAI,EAIR,GAAI2J,EAGF,IAFAjE,EAAI+F,KAAK+X,IAAI,GAAI7Z,EAASzJ,QAEnBF,EAAI0F,IAAK1F,EACdg5E,EAASh5E,GAAK2J,EAAS3J,GAI3Bm3B,EAAI,EAEJ,MAAOn3B,EAAI,GACTg5E,EAASh5E,KAAOq6E,EAAqBljD,KAGvC,IAAKA,EAAI,EAAGzxB,EAAIqzE,EAAc74E,OAAQi3B,EAAIzxB,IAAKyxB,EAC7C6hD,EAASh5E,KAAO+4E,EAAc5hD,GAQhC,IALA6hD,EAASh5E,KAAe,IAARw8B,EAChBw8C,EAASh5E,KAAOw8B,GAAS,EAAI,IAC7Bw8C,EAASh5E,KAAOw8B,GAAS,GAAK,IAC9Bw8C,EAASh5E,KAAOw8B,IAAU,GAAK,IAE1BrF,EAAI,EAAGzxB,EAAIy+B,EAAOjkC,OAAQi3B,EAAIzxB,IAAKyxB,EACtC6hD,EAASh5E,KAAOmkC,EAAOhN,GAGrBojD,GAAY,IAAM7+C,IACpBs9C,EAASh5E,KAAO,IAChBg5E,EAASh5E,KAAO,IAChBg5E,EAASh5E,KAAO,IAChBg5E,EAASh5E,KAAO,KAGlB,IAAIo6B,EAAOE,EAAa0+C,EAAU,EAAGh5E,GACjC86E,EAAmBjH,GAAa,EAEpC,GAAI0G,GAAY,EACd,IAAKpjD,EAAI,EAAGA,EAAI,KAAMA,EACpBiD,EAAOE,EAAaF,EAAM,EAAG0gD,GAIjC,IACI5C,EAAQ6C,EADRC,EAAgB5gD,EAAK1W,SAAS,EAAGo3D,GAGrC,GAAIP,GAAY,EAAG,CACjB,IAAKv6E,EAAI,EAAGA,EAAI,KAAMA,EACpBg5E,EAASh5E,GAAKq6E,EAAqBr6E,GAGrC,IAAKm3B,EAAI,EAAGzxB,EAAIy+B,EAAOjkC,OAAQi3B,EAAIzxB,IAAKyxB,EACtC6hD,EAASh5E,KAAOmkC,EAAOhN,GAGzB+gD,EAAS,IAAIxE,EAAcsH,GAC3BD,EAAY7C,EAAOpE,aAAax5C,EAAa0+C,EAAU,EAAGh5E,IAC1D0F,EAAIs1E,EAAc96E,OAClB,IACIw0C,EADAumC,EAAa,IAAIp7E,WAAW6F,GAGhC,IAAKyxB,EAAI,EAAGA,GAAK,KAAMA,EAAG,CACxB,IAAKud,EAAI,EAAGA,EAAIhvC,IAAKgvC,EACnBumC,EAAWvmC,GAAKsmC,EAActmC,GAAKvd,EAGrC+gD,EAAS,IAAIxE,EAAcuH,GAC3BF,EAAY7C,EAAOpE,aAAaiH,GAGlC,IAAK5jD,EAAI,EAAGzxB,EAAIq1E,EAAU76E,OAAQi3B,EAAIzxB,IAAKyxB,EACzC,GAAIgiD,EAAahiD,KAAO4jD,EAAU5jD,GAChC,OAAO,UAOX,IAHA+gD,EAAS,IAAIxE,EAAcsH,GAC3BD,EAAY7C,EAAOpE,aAAauG,GAE3BljD,EAAI,EAAGzxB,EAAIq1E,EAAU76E,OAAQi3B,EAAIzxB,IAAKyxB,EACzC,GAAIgiD,EAAahiD,KAAO4jD,EAAU5jD,GAChC,OAAO,KAKb,OAAO6jD,EAGT,SAASE,EAAmBvxE,EAAUovE,EAAewB,EAAU1G,GAC7D,IAEI18C,EACAzxB,EAHAszE,EAAW,IAAIn5E,WAAW,IAC1BG,EAAI,EAKR,IAFA0F,EAAI+F,KAAK+X,IAAI,GAAI7Z,EAASzJ,QAEnBF,EAAI0F,IAAK1F,EACdg5E,EAASh5E,GAAK2J,EAAS3J,GAGzBm3B,EAAI,EAEJ,MAAOn3B,EAAI,GACTg5E,EAASh5E,KAAOq6E,EAAqBljD,KAGvC,IASI+gD,EAAQiB,EATR/+C,EAAOE,EAAa0+C,EAAU,EAAGh5E,GACjC86E,EAAmBjH,GAAa,EAEpC,GAAI0G,GAAY,EACd,IAAKpjD,EAAI,EAAGA,EAAI,KAAMA,EACpBiD,EAAOE,EAAaF,EAAM,EAAGA,EAAKl6B,QAMtC,GAAIq6E,GAAY,EAAG,CACjBpB,EAAeJ,EACf,IACIrkC,EADAumC,EAAa,IAAIp7E,WAAWi7E,GAGhC,IAAK3jD,EAAI,GAAIA,GAAK,EAAGA,IAAK,CACxB,IAAKud,EAAI,EAAGA,EAAIomC,IAAoBpmC,EAClCumC,EAAWvmC,GAAKta,EAAKsa,GAAKvd,EAG5B+gD,EAAS,IAAIxE,EAAcuH,GAC3B9B,EAAejB,EAAOpE,aAAaqF,SAGrCjB,EAAS,IAAIxE,EAAct5C,EAAK1W,SAAS,EAAGo3D,IAC5C3B,EAAejB,EAAOpE,aAAaiF,GAGrC,OAAOI,EAGT,IAAIgC,EAAe/0E,EAAYuiB,KAAK7jB,IAAI,YAExC,SAASs/B,EAAuBzZ,EAAMwZ,EAAQx6B,GAC5C,IAAIwsB,EAASxL,EAAK7lB,IAAI,UAEtB,KAAK,EAAIsB,EAAYiiB,QAAQ8N,EAAQ,YACnC,MAAM,IAAIhwB,EAAMiM,YAAY,6BAG9BpO,KAAK2mB,KAAOA,EACZ,IAAIywD,EAAYzwD,EAAK7lB,IAAI,KAEzB,IAAKyc,OAAOC,UAAU45D,IAA4B,IAAdA,GAAiC,IAAdA,GAAiC,IAAdA,GAAiC,IAAdA,EAC3F,MAAM,IAAIj1E,EAAMiM,YAAY,oCAG9BpO,KAAKo3E,UAAYA,EACjB,IAAIvH,EAAYlpD,EAAK7lB,IAAI,UAEzB,IAAK+uE,EACH,GAAIuH,GAAa,EACfvH,EAAY,OACP,CACL,IAAIwH,EAAS1wD,EAAK7lB,IAAI,MAClBw2E,EAAmB3wD,EAAK7lB,IAAI,QAEhC,IAAI,EAAIsB,EAAYgiB,QAAQizD,KAAW,EAAIj1E,EAAYiiB,QAAQizD,GAAmB,CAChFD,EAAO7xD,oBAAqB,EAC5B,IAAI+xD,EAAcF,EAAOv2E,IAAIw2E,EAAiBv4E,MAC9C8wE,EAAY0H,GAAeA,EAAYz2E,IAAI,WAAa,IAEpD+uE,EAAY,KACdA,IAAc,IAMtB,IAAKtyD,OAAOC,UAAUqyD,IAAcA,EAAY,IAAMA,EAAY,IAAM,EACtE,MAAM,IAAI1tE,EAAMiM,YAAY,sBAG9B,IAAI2mE,GAAgB,EAAI5yE,EAAMyL,eAAe+Y,EAAK7lB,IAAI,MAAM4e,SAAS,EAAG,IACpEy1D,GAAe,EAAIhzE,EAAMyL,eAAe+Y,EAAK7lB,IAAI,MAAM4e,SAAS,EAAG,IACnE8Y,EAAQ7R,EAAK7lB,IAAI,KACjBy1E,EAAW5vD,EAAK7lB,IAAI,KACpB42B,GAAiC,IAAd0/C,GAAiC,IAAdA,KAAoD,IAAhCzwD,EAAK7lB,IAAI,mBACvEd,KAAK03B,gBAAkBA,EACvB,IACI8/C,EAcAR,EAfAS,GAAc,EAAIt1E,EAAMyL,eAAeuyB,GAG3C,GAAIx6B,EAAU,CACZ,GAAiB,IAAb4wE,EACF,IACE5wE,GAAW,EAAIxD,EAAM4L,oBAAoBpI,GACzC,MAAOC,IACP,EAAIzD,EAAMgF,MAAM,oEAIpBqwE,GAAgB,EAAIr1E,EAAMyL,eAAejI,GAK3C,GAAkB,IAAdyxE,EACFJ,EAAgBJ,EAAea,EAAaD,EAAezC,EAAeI,EAAc38C,EAAO+9C,EAAU1G,EAAWn4C,OAC/G,CACL,IAAIm9C,GAAsB,EAAI1yE,EAAMyL,eAAe+Y,EAAK7lB,IAAI,MAAM4e,SAAS,GAAI,IAC3E21D,GAAe,EAAIlzE,EAAMyL,eAAe+Y,EAAK7lB,IAAI,MAAM4e,SAAS,GAAI,IACpE82D,GAAS,EAAIr0E,EAAMyL,eAAe+Y,EAAK7lB,IAAI,MAAM4e,SAAS,EAAG,IAC7Dw1D,GAAqB,EAAI/yE,EAAMyL,eAAe+Y,EAAK7lB,IAAI,MAAM4e,SAAS,GAAI,IAC1E81D,GAAc,EAAIrzE,EAAMyL,eAAe+Y,EAAK7lB,IAAI,MAAM4e,SAAS,GAAI,IACnE41D,GAAkB,EAAInzE,EAAMyL,eAAe+Y,EAAK7lB,IAAI,OACpD20E,GAAiB,EAAItzE,EAAMyL,eAAe+Y,EAAK7lB,IAAI,OACnD21E,GAAQ,EAAIt0E,EAAMyL,eAAe+Y,EAAK7lB,IAAI,UAC9Ck2E,EAAgBV,EAAsBC,EAAUiB,EAAezC,EAAeF,EAAqBQ,EAAcmB,EAAQrB,EAAcD,EAAoBM,EAAaF,EAAiBG,EAAgBgB,GAG3M,IAAKO,IAAkBrxE,EACrB,MAAM,IAAIxD,EAAMgG,kBAAkB,oBAAqBhG,EAAMsM,kBAAkB2O,eAC1E,IAAK45D,GAAiBrxE,EAAU,CACrC,IAAI+xE,EAAkBR,EAAmBM,EAAezC,EAAewB,EAAU1G,GACjFmH,EAAgBJ,EAAea,EAAaC,EAAiB3C,EAAeI,EAAc38C,EAAO+9C,EAAU1G,EAAWn4C,GAGxH,IAAKs/C,EACH,MAAM,IAAI70E,EAAMgG,kBAAkB,qBAAsBhG,EAAMsM,kBAAkB4O,oBAKlF,GAFArd,KAAKg3E,cAAgBA,EAEjBI,GAAa,EAAG,CAClB,IAAIO,EAAKhxD,EAAK7lB,IAAI,OAEd,EAAIsB,EAAYgiB,QAAQuzD,KAC1BA,EAAGnyD,oBAAqB,GAG1BxlB,KAAK23E,GAAKA,EACV33E,KAAK43E,KAAOjxD,EAAK7lB,IAAI,SAAWq2E,EAChCn3E,KAAK63E,KAAOlxD,EAAK7lB,IAAI,SAAWq2E,EAChCn3E,KAAK83E,IAAMnxD,EAAK7lB,IAAI,QAAUd,KAAK43E,MAIvC,SAASG,EAAe/6E,EAAKkN,EAAK8sE,EAAegB,GAC/C,IACIh8E,EACA0F,EAFAF,EAAM,IAAI3F,WAAWm7E,EAAc96E,OAAS,GAIhD,IAAKF,EAAI,EAAG0F,EAAIs1E,EAAc96E,OAAQF,EAAI0F,IAAK1F,EAC7CwF,EAAIxF,GAAKg7E,EAAch7E,GAGzBwF,EAAIxF,KAAa,IAANgB,EACXwE,EAAIxF,KAAOgB,GAAO,EAAI,IACtBwE,EAAIxF,KAAOgB,GAAO,GAAK,IACvBwE,EAAIxF,KAAa,IAANkO,EACX1I,EAAIxF,KAAOkO,GAAO,EAAI,IAElB8tE,IACFx2E,EAAIxF,KAAO,IACXwF,EAAIxF,KAAO,GACXwF,EAAIxF,KAAO,IACXwF,EAAIxF,KAAO,IAGb,IAAIo6B,EAAOE,EAAa90B,EAAK,EAAGxF,GAChC,OAAOo6B,EAAK1W,SAAS,EAAGjY,KAAK+X,IAAIw3D,EAAc96E,OAAS,EAAG,KAG7D,SAAS+7E,EAAuBN,EAAI54E,EAAM/B,EAAKkN,EAAK1I,GAClD,KAAK,EAAIY,EAAYiiB,QAAQtlB,GAC3B,MAAM,IAAIoD,EAAMiM,YAAY,8BAG9B,IACI8pE,EADAC,EAAcR,EAAG72E,IAAI/B,EAAKA,MAO9B,GAJoB,OAAhBo5E,QAAwCj5D,IAAhBi5D,IAC1BD,EAAMC,EAAYr3E,IAAI,SAGnBo3E,GAAoB,SAAbA,EAAIn5E,KACd,OAAO,WACL,OAAO,IAAI4zE,GAIf,GAAiB,OAAbuF,EAAIn5E,KACN,OAAO,WACL,OAAO,IAAI2wE,EAAcqI,EAAe/6E,EAAKkN,EAAK1I,GAAK,KAI3D,GAAiB,UAAb02E,EAAIn5E,KACN,OAAO,WACL,OAAO,IAAI6wE,EAAamI,EAAe/6E,EAAKkN,EAAK1I,GAAK,KAI1D,GAAiB,UAAb02E,EAAIn5E,KACN,OAAO,WACL,OAAO,IAAI4wE,EAAanuE,IAI5B,MAAM,IAAIW,EAAMiM,YAAY,yBAkB9B,OAfAgyB,EAAuBriC,UAAY,CACjC4mC,sBAAuB,SAAsD3nC,EAAKkN,GAChF,GAAuB,IAAnBlK,KAAKo3E,WAAsC,IAAnBp3E,KAAKo3E,UAC/B,OAAO,IAAIpB,EAAgBiC,EAAuBj4E,KAAK23E,GAAI33E,KAAK43E,KAAM56E,EAAKkN,EAAKlK,KAAKg3E,eAAgBiB,EAAuBj4E,KAAK23E,GAAI33E,KAAK63E,KAAM76E,EAAKkN,EAAKlK,KAAKg3E,gBAGjK,IAAIx1E,EAAMu2E,EAAe/6E,EAAKkN,EAAKlK,KAAKg3E,eAAe,GAEnDoB,EAAoB,WACtB,OAAO,IAAI1I,EAAcluE,IAG3B,OAAO,IAAIw0E,EAAgBoC,EAAmBA,KAG3Ch4C,EAvWoB,GA0W7B9kC,EAAQ8kC,uBAAyBA,GAI3B,SAAUrgC,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQs9B,gBAAa,EAErB,IAAIz2B,EAAQhC,EAAoB,GAE5BiC,EAAcjC,EAAoB,GAEtC,SAASk4E,EAAe9e,EAAKniC,EAAMkhD,EAAIpI,EAAIqI,EAAIpI,EAAIzH,GACjD,MAAM8P,EAAa,EACnB9P,EAAsB,IAAZA,EAAgB,EAAIA,EAC9B,MAAM+P,EAASH,EAAKC,EACdG,EAASxI,EAAKC,EACpB,IACIwI,EADAC,EAAW,EAEf,MAAMC,EAAU,IAAIplC,YAAY8kC,GAC1BO,EAAaR,EAAKE,EAExB,IAAK,IAAIx8E,EAAI,EAAGA,EAAIu8E,EAAIv8E,IACtB68E,EAAQ78E,GAAKyL,KAAK+hB,MAAMxtB,EAAIy8E,GAAUD,EAGxC,IAAK,IAAIx8E,EAAI,EAAGA,EAAIm0E,EAAIn0E,IAAK,CAC3B,MAAMulE,EAAK95D,KAAK+hB,MAAMxtB,EAAI08E,GAAUI,EAEpC,IAAK,IAAI3lD,EAAI,EAAGA,EAAIolD,EAAIplD,IACtBwlD,EAAWpX,EAAKsX,EAAQ1lD,GACxBiE,EAAKwhD,KAAcrf,EAAIof,KACvBvhD,EAAKwhD,KAAcrf,EAAIof,KACvBvhD,EAAKwhD,KAAcrf,EAAIof,KACvBC,GAAYlQ,GAKlB,MAAM9vC,EACJ,YAAY75B,EAAMg6E,GACZ/4E,KAAK2e,cAAgBia,IACvB,EAAIz2B,EAAM6L,aAAa,iCAGzBhO,KAAKjB,KAAOA,EACZiB,KAAK+4E,SAAWA,EAGlB,OAAOxf,EAAKyf,GACV,MAAMlgD,EAAM,IAAI5O,kBAAkB,GAElC,OADAlqB,KAAKi5E,WAAW1f,EAAKyf,EAAWlgD,EAAK,GAC9BA,EAGT,WAAWygC,EAAKyf,EAAW5hD,EAAM8hD,IAC/B,EAAI/2E,EAAM6L,aAAa,yCAGzB,aAAaurD,EAAKyf,EAAWtgD,EAAOtB,EAAM8hD,EAAYjqC,EAAMy5B,IAC1D,EAAIvmE,EAAM6L,aAAa,2CAGzB,gBAAgBmrE,EAAazQ,IAC3B,EAAIvmE,EAAM6L,aAAa,8CAGzB,cAAcihC,GACZ,OAAO,EAGT,gBAAgBmqC,EAAWC,GACzB,OAAOzgD,EAAW0gD,gBAAgBF,EAAWp5E,KAAK+4E,UAGpD,QAAQ3hD,EAAMmiD,EAAeC,EAAgBx/B,EAAOC,EAAQw/B,EAAcJ,EAAKK,EAAOhR,GACpF,MAAMhwC,EAAQ6gD,EAAgBC,EAC9B,IAAIl5D,EAAS,KACb,MAAMq5D,EAAqB,GAAKN,EAC1BO,EAAgBJ,IAAmBv/B,GAAUs/B,IAAkBv/B,EAErE,GAAIh6C,KAAK65E,cAAcR,GACrB/4D,EAASo5D,OACJ,GAAsB,IAAlB15E,KAAK+4E,UAAkBrgD,EAAQihD,GAAoC,eAAd35E,KAAKjB,MAAuC,cAAdiB,KAAKjB,KAAsB,CACvH,MAAM+6E,EAAYT,GAAO,EAAI,IAAIx9E,WAAW89E,GAAsB,IAAIlmC,YAAYkmC,GAElF,IAAK,IAAI39E,EAAI,EAAGA,EAAI29E,EAAoB39E,IACtC89E,EAAU99E,GAAKA,EAGjB,MAAM+9E,EAAW,IAAI7vD,kBAAuC,EAArByvD,GAGvC,GAFA35E,KAAKg6E,aAAaF,EAAW,EAAGH,EAAoBI,EAAU,EAAGV,EAAK,GAEjEO,EAUE,CACLt5D,EAAS,IAAIzkB,WAAmB,EAAR68B,GACxB,IAAIuhD,EAAS,EAEb,IAAK,IAAIj+E,EAAI,EAAGA,EAAI08B,IAAS18B,EAAG,CAC9B,MAAMwF,EAAiB,EAAXk4E,EAAM19E,GAClBskB,EAAO25D,KAAYF,EAASv4E,GAC5B8e,EAAO25D,KAAYF,EAASv4E,EAAM,GAClC8e,EAAO25D,KAAYF,EAASv4E,EAAM,QAlBlB,CAClB,IAAI04E,EAAU,EAEd,IAAK,IAAIl+E,EAAI,EAAGA,EAAI08B,IAAS18B,EAAG,CAC9B,MAAMwF,EAAiB,EAAXk4E,EAAM19E,GAClBo7B,EAAK8iD,KAAaH,EAASv4E,GAC3B41B,EAAK8iD,KAAaH,EAASv4E,EAAM,GACjC41B,EAAK8iD,KAAaH,EAASv4E,EAAM,GACjC04E,GAAWxR,SAcVkR,GAGHt5D,EAAS,IAAI4J,kBAA0B,EAARwO,GAC/B14B,KAAKg6E,aAAaN,EAAO,EAAGhhD,EAAOpY,EAAQ,EAAG+4D,EAAK,IAHnDr5E,KAAKg6E,aAAaN,EAAO,EAAG1/B,EAAQy/B,EAAcriD,EAAM,EAAGiiD,EAAK3Q,GAOpE,GAAIpoD,EACF,GAAIs5D,EACFvB,EAAe/3D,EAAQ8W,EAAMmiD,EAAeC,EAAgBx/B,EAAOC,EAAQyuB,OACtE,CACL,IAAIwR,EAAU,EACVD,EAAS,EAEb,IAAK,IAAIj+E,EAAI,EAAGsnB,EAAK02B,EAAQy/B,EAAcz9E,EAAIsnB,EAAItnB,IACjDo7B,EAAK8iD,KAAa55D,EAAO25D,KACzB7iD,EAAK8iD,KAAa55D,EAAO25D,KACzB7iD,EAAK8iD,KAAa55D,EAAO25D,KACzBC,GAAWxR,GAMnB,yBACE,OAAO,EAAIvmE,EAAMuL,QAAQ1N,KAAM,sBAAsB,GAGvD,aAAam6E,EAAI3vE,EAAM4vE,EAAKhrD,GAC1B,MAAMirD,EAAKr6E,KAAKs6E,UAAUH,EAAI3vE,EAAM4vE,EAAKhrD,GACzC,OAAOpvB,KAAKu6E,OAAOF,GAGrB,cAAcA,GACZ,MAAMt7E,EAAOjD,MAAMmqB,QAAQo0D,GAAMA,EAAG,GAAKA,EACzC,IAAIG,EAAYC,EAAYtL,EAE5B,OAAQpwE,GACN,IAAK,eACH,OAAOiB,KAAK64B,WAAW6hD,KAEzB,IAAK,cACH,OAAO16E,KAAK64B,WAAWC,IAEzB,IAAK,eACH,OAAO94B,KAAK64B,WAAW8hD,KAEzB,IAAK,YAIH,OAHAH,EAAaH,EAAG,GAChBI,EAAaJ,EAAG,GAChBlL,EAAQkL,EAAG,GACJ,IAAIO,EAAUJ,EAAYC,EAAYtL,GAE/C,IAAK,WACHqL,EAAaH,EAAG,GAChBI,EAAaJ,EAAG,GAChBlL,EAAQkL,EAAG,GACX,MAAMQ,EAASR,EAAG,GAClB,OAAO,IAAIS,EAASN,EAAYC,EAAYtL,EAAO0L,GAErD,IAAK,YACH,IAAIE,EAAgBV,EAAG,GAMvB,OAJIU,IACFA,EAAgB/6E,KAAKu6E,OAAOQ,IAGvB,IAAIC,EAAUD,GAEvB,IAAK,YACH,MAAME,EAAgBZ,EAAG,GACnBa,EAAQb,EAAG,GACX3+E,EAAS2+E,EAAG,GAClB,OAAO,IAAIc,EAAUn7E,KAAKu6E,OAAOU,GAAgBC,EAAOx/E,GAE1D,IAAK,cACH,MAAMq9E,EAAWsB,EAAG,GACde,EAAMf,EAAG,GACTgB,EAAShB,EAAG,GAClB,OAAO,IAAIiB,EAAYvC,EAAU/4E,KAAKu6E,OAAOa,GAAMC,GAErD,IAAK,QACHb,EAAaH,EAAG,GAChBI,EAAaJ,EAAG,GAChB,MAAMtuD,EAAQsuD,EAAG,GACjB,OAAO,IAAIkB,EAAMf,EAAYC,EAAY1uD,GAE3C,QACE,MAAM,IAAI5pB,EAAMiM,YAAY,4BAA4BrP,IAI9D,iBAAiBo7E,EAAI3vE,EAAM4vE,EAAM,KAAMhrD,GAGrC,GAFA+qD,EAAK3vE,EAAKwlB,WAAWmqD,IAEjB,EAAI/3E,EAAYiiB,QAAQ81D,GAC1B,OAAQA,EAAGp7E,MACT,IAAK,aACL,IAAK,IACH,MAAO,eAET,IAAK,YACL,IAAK,MACH,MAAO,cAET,IAAK,aACL,IAAK,OACH,MAAO,eAET,IAAK,UACH,MAAO,CAAC,YAAa,MAEvB,QACE,IAAI,EAAIqD,EAAYgiB,QAAQg2D,GAAM,CAChC,MAAMoB,EAAcpB,EAAIt5E,IAAI,cAE5B,IAAI,EAAIsB,EAAYgiB,QAAQo3D,GAAc,CACxC,MAAMC,EAAQD,EAAY16E,IAAIq5E,EAAGp7E,MAEjC,GAAI08E,EAAO,CACT,IAAI,EAAIr5E,EAAYiiB,QAAQo3D,GAC1B,OAAOz7E,KAAKs6E,UAAUmB,EAAOjxE,EAAM4vE,EAAKhrD,GAG1C+qD,EAAKsB,EACL,QAKN,MAAM,IAAIt5E,EAAMiM,YAAY,2BAA2B+rE,EAAGp7E,MAIhE,GAAIjD,MAAMmqB,QAAQk0D,GAAK,CACrB,MAAM/4E,EAAOoJ,EAAKwlB,WAAWmqD,EAAG,IAAIp7E,KACpC,IAAIg6E,EAAUx6C,EAAQ68C,EAAKZ,EAAYC,EAAYtL,EAEnD,OAAQ/tE,GACN,IAAK,aACL,IAAK,IACH,MAAO,eAET,IAAK,YACL,IAAK,MACH,MAAO,cAET,IAAK,aACL,IAAK,OACH,MAAO,eAET,IAAK,UAKH,OAJAm9B,EAAS/zB,EAAKwlB,WAAWmqD,EAAG,IAC5BK,EAAaj8C,EAAOnR,SAAS,cAC7BqtD,EAAal8C,EAAOnR,SAAS,cAC7B+hD,EAAQ5wC,EAAOz9B,IAAI,SACZ,CAAC,YAAa05E,EAAYC,EAAYtL,GAE/C,IAAK,SACH5wC,EAAS/zB,EAAKwlB,WAAWmqD,EAAG,IAC5BK,EAAaj8C,EAAOnR,SAAS,cAC7BqtD,EAAal8C,EAAOnR,SAAS,cAC7B+hD,EAAQ5wC,EAAOnR,SAAS,SACxB,MAAMytD,EAASt8C,EAAOnR,SAAS,UAC/B,MAAO,CAAC,WAAYotD,EAAYC,EAAYtL,EAAO0L,GAErD,IAAK,WACH,MAAMtxE,EAASiB,EAAKwlB,WAAWmqD,EAAG,IAC5BxzD,EAAOpd,EAAOod,KAIpB,GAHAoyD,EAAWpyD,EAAK7lB,IAAI,KACpBs6E,EAAMz0D,EAAK7lB,IAAI,aAEXs6E,EAAK,CACP,MAAMM,EAAQ17E,KAAKs6E,UAAUc,EAAK5wE,EAAM4vE,EAAKhrD,GACvCusD,EAAQ37E,KAAKu6E,OAAOmB,EAAOtsD,GAEjC,GAAIusD,EAAM5C,WAAaA,EACrB,OAAO2C,GAGT,EAAIv5E,EAAMgF,MAAM,8DAGlB,GAAiB,IAAb4xE,EACF,MAAO,eACF,GAAiB,IAAbA,EACT,MAAO,cACF,GAAiB,IAAbA,EACT,MAAO,eAGT,MAEF,IAAK,UACH,IAAIgC,EAAgBZ,EAAG,IAAM,KAM7B,OAJIY,IACFA,EAAgB/6E,KAAKs6E,UAAUS,EAAevwE,EAAM4vE,EAAKhrD,IAGpD,CAAC,YAAa2rD,GAEvB,IAAK,UACL,IAAK,IACH,MAAME,EAAgBj7E,KAAKs6E,UAAUH,EAAG,GAAI3vE,EAAM4vE,EAAKhrD,GACjD8rD,EAAQ1wE,EAAKwlB,WAAWmqD,EAAG,IAAM,EACvC,IAAIz+E,EAAS8O,EAAKwlB,WAAWmqD,EAAG,IAMhC,OAJI,EAAI/3E,EAAYoiB,UAAU9oB,KAC5BA,EAASA,EAAO4rB,YAGX,CAAC,YAAa2zD,EAAeC,EAAOx/E,GAE7C,IAAK,aACL,IAAK,UACH,MAAMqD,EAAOyL,EAAKwlB,WAAWmqD,EAAG,IAChCpB,EAAWj9E,MAAMmqB,QAAQlnB,GAAQA,EAAK7C,OAAS,EAC/Ck/E,EAAMp7E,KAAKs6E,UAAUH,EAAG,GAAI3vE,EAAM4vE,EAAKhrD,GACvC,MAAMisD,EAASjsD,EAAmB7tB,OAAOiJ,EAAKwlB,WAAWmqD,EAAG,KAC5D,MAAO,CAAC,cAAepB,EAAUqC,EAAKC,GAExC,IAAK,MACH98C,EAAS/zB,EAAKwlB,WAAWmqD,EAAG,IAC5BK,EAAaj8C,EAAOnR,SAAS,cAC7BqtD,EAAal8C,EAAOnR,SAAS,cAC7B,MAAMrB,EAAQwS,EAAOnR,SAAS,SAC9B,MAAO,CAAC,QAASotD,EAAYC,EAAY1uD,GAE3C,QACE,MAAM,IAAI5pB,EAAMiM,YAAY,qCAAqChN,OAIvE,MAAM,IAAIe,EAAMiM,YAAY,qCAAqC+rE,MAGnE,uBAAuB57B,EAAQw6B,GAC7B,IAAKj9E,MAAMmqB,QAAQs4B,GACjB,OAAO,EAGT,GAAe,EAAXw6B,IAAiBx6B,EAAOriD,OAE1B,OADA,EAAIiG,EAAMgF,MAAM,6CACT,EAGT,IAAK,IAAInL,EAAI,EAAGsnB,EAAKi7B,EAAOriD,OAAQF,EAAIsnB,EAAItnB,GAAK,EAC/C,GAAkB,IAAduiD,EAAOviD,IAA8B,IAAlBuiD,EAAOviD,EAAI,GAChC,OAAO,EAIX,OAAO,EAGT,wBACE,OAAO,EAAImG,EAAMuL,QAAQ1N,KAAM,aAAc,CAC3C,WACE,OAAO,EAAImC,EAAMuL,QAAQ1N,KAAM,OAAQ,IAAI47E,IAG7C,UACE,OAAO,EAAIz5E,EAAMuL,QAAQ1N,KAAM,MAAO,IAAI67E,IAG5C,WACE,OAAO,EAAI15E,EAAMuL,QAAQ1N,KAAM,OAAQ,IAAI87E,OAQnDxgF,EAAQs9B,WAAaA,EAErB,MAAM0iD,UAAoB1iD,EACxB,YAAYmgD,EAAUh7D,EAAMs9D,GAC1Bz8D,MAAM,YAAam6D,GACnB/4E,KAAK+d,KAAOA,EACZ/d,KAAKq7E,OAASA,EACdr7E,KAAK+7E,OAAS,IAAIvU,aAAazpD,EAAKg7D,UAGtC,WAAWxf,EAAKyf,EAAW5hD,EAAM8hD,GAC/B,MAAM6C,EAAS/7E,KAAK+7E,OACpB/7E,KAAKq7E,OAAO9hB,EAAKyf,EAAW+C,EAAQ,GACpC/7E,KAAK+d,KAAKk7D,WAAW8C,EAAQ,EAAG3kD,EAAM8hD,GAGxC,aAAa3f,EAAKyf,EAAWtgD,EAAOtB,EAAM8hD,EAAYjqC,EAAMy5B,GAC1D,MAAM2S,EAASr7E,KAAKq7E,OACdt9D,EAAO/d,KAAK+d,KACZ6kD,EAAQ,IAAM,GAAK3zB,GAAQ,GAC3B+sC,EAAej+D,EAAKg7D,SACpBkD,EAAqBl+D,EAAKk+D,mBAC1BpC,GAAiB97D,EAAK87D,cAAc,KAAOoC,IAAmC,IAAZvT,EACxE,IAAI9oD,EAAMi6D,EAAgBX,EAAa,EACvC,MAAMgD,EAAUrC,EAAgBziD,EAAO,IAAIlN,kBAAkB8xD,EAAetjD,GACtEqgD,EAAW/4E,KAAK+4E,SAChBoD,EAAS,IAAI3U,aAAauR,GAC1BqD,EAAS,IAAI5U,aAAawU,GAChC,IAAIhgF,EAAGm3B,EAEP,IAAKn3B,EAAI,EAAGA,EAAI08B,EAAO18B,IAAK,CAC1B,IAAKm3B,EAAI,EAAGA,EAAI4lD,EAAU5lD,IACxBgpD,EAAOhpD,GAAKomC,EAAIyf,KAAepW,EAKjC,GAFAyY,EAAOc,EAAQ,EAAGC,EAAQ,GAEtBH,EACF,IAAK9oD,EAAI,EAAGA,EAAI6oD,EAAc7oD,IAC5B+oD,EAAQt8D,KAAqB,IAAZw8D,EAAOjpD,QAG1BpV,EAAKk7D,WAAWmD,EAAQ,EAAGF,EAASt8D,GACpCA,GAAOo8D,EAINnC,GACH97D,EAAKi8D,aAAakC,EAAS,EAAGxjD,EAAOtB,EAAM8hD,EAAY,EAAGxQ,GAI9D,gBAAgByQ,EAAazQ,GAC3B,OAAO1oE,KAAK+d,KAAKs+D,gBAAgBlD,EAAcn5E,KAAK+d,KAAKg7D,SAAW/4E,KAAK+4E,SAAUrQ,IAKvF,MAAMsS,UAAkBpiD,EACtB,YAAY0jD,GACV19D,MAAM,UAAW,MACjB5e,KAAK+d,KAAOu+D,EAGd,gBAAgBlD,EAAWC,IACzB,EAAIl3E,EAAM6L,aAAa,8CAK3B,MAAMmtE,UAAkBviD,EACtB,YAAY7a,EAAMw+D,EAAS7gF,GACzBkjB,MAAM,UAAW,GACjB5e,KAAK+d,KAAOA,EACZ/d,KAAKu8E,QAAUA,EACf,MAAMP,EAAej+D,EAAKg7D,SACpB78E,EAAS8/E,EAAeO,EAE9B,IAAI,EAAIn6E,EAAYoiB,UAAU9oB,GAAS,CACrCsE,KAAKtE,OAAS,IAAIG,WAAWK,GAC7B,MAAMsN,EAAQ9N,EAAO4rB,SAASprB,GAC9B8D,KAAKtE,OAAOqkB,IAAIvW,QACX,IAAI,EAAIrH,EAAMmL,UAAU5R,GAAS,CACtCsE,KAAKtE,OAAS,IAAIG,WAAWK,GAE7B,IAAK,IAAIF,EAAI,EAAGA,EAAIE,IAAUF,EAC5BgE,KAAKtE,OAAOM,GAAKN,EAAOS,WAAWH,OAEhC,MAAIN,aAAkBG,YAG3B,MAAM,IAAIsG,EAAMiM,YAAY,8BAA8B1S,GAF1DsE,KAAKtE,OAASA,GAMlB,WAAW69D,EAAKyf,EAAW5hD,EAAM8hD,GAC/B,MAAMH,EAAW/4E,KAAK+d,KAAKg7D,SACrB57E,EAAQo8D,EAAIyf,GAAaD,EAC/B/4E,KAAK+d,KAAKi8D,aAAah6E,KAAKtE,OAAQyB,EAAO,EAAGi6B,EAAM8hD,EAAY,EAAG,GAGrE,aAAa3f,EAAKyf,EAAWtgD,EAAOtB,EAAM8hD,EAAYjqC,EAAMy5B,GAC1D,MAAM3qD,EAAO/d,KAAK+d,KACZg7D,EAAWh7D,EAAKg7D,SAChByD,EAAcz+D,EAAKs+D,gBAAgBtD,EAAUrQ,GAC7ChtE,EAASsE,KAAKtE,OAEpB,IAAK,IAAIM,EAAI,EAAGA,EAAI08B,IAAS18B,EAAG,CAC9B,MAAMygF,EAAYljB,EAAIyf,KAAeD,EACrCh7D,EAAKi8D,aAAat+E,EAAQ+gF,EAAW,EAAGrlD,EAAM8hD,EAAY,EAAGxQ,GAC7DwQ,GAAcsD,GAIlB,gBAAgBrD,EAAazQ,GAC3B,OAAO1oE,KAAK+d,KAAKs+D,gBAAgBlD,EAAcn5E,KAAK+d,KAAKg7D,SAAUrQ,GAGrE,gBAAgB0Q,EAAWC,GACzB,OAAKv9E,MAAMmqB,QAAQmzD,KAIM,IAArBA,EAAUl9E,SACZ,EAAIiG,EAAMgF,MAAM,qCACT,IAGJoW,OAAOC,UAAU67D,IAAQA,EAAM,IAClC,EAAIl3E,EAAMgF,MAAM,sCACT,GAGe,IAAjBiyE,EAAU,IAAYA,EAAU,MAAQ,GAAKC,GAAO,IAK/D,MAAMuC,UAAqBhjD,EACzB,cACEha,MAAM,aAAc,GAGtB,WAAW26C,EAAKyf,EAAW5hD,EAAM8hD,GAC/B,MAAM34E,EAAqB,IAAjBg5D,EAAIyf,GACd5hD,EAAK8hD,GAAc9hD,EAAK8hD,EAAa,GAAK9hD,EAAK8hD,EAAa,GAAK34E,EAGnE,aAAag5D,EAAKyf,EAAWtgD,EAAOtB,EAAM8hD,EAAYjqC,EAAMy5B,GAC1D,MAAM9F,EAAQ,MAAQ,GAAK3zB,GAAQ,GACnC,IAAI9b,EAAI6lD,EACJjlC,EAAImlC,EAER,IAAK,IAAIl9E,EAAI,EAAGA,EAAI08B,IAAS18B,EAAG,CAC9B,MAAMuE,EAAIqiE,EAAQrJ,EAAIpmC,KACtBiE,EAAK2c,KAAOxzC,EACZ62B,EAAK2c,KAAOxzC,EACZ62B,EAAK2c,KAAOxzC,EACZwzC,GAAK20B,GAIT,gBAAgByQ,EAAazQ,GAC3B,OAAOyQ,GAAe,EAAIzQ,IAK9B,MAAMmT,UAAoBjjD,EACxB,cACEha,MAAM,YAAa,GAGrB,WAAW26C,EAAKyf,EAAW5hD,EAAM8hD,GAC/B9hD,EAAK8hD,GAA+B,IAAjB3f,EAAIyf,GACvB5hD,EAAK8hD,EAAa,GAA0B,IAArB3f,EAAIyf,EAAY,GACvC5hD,EAAK8hD,EAAa,GAA0B,IAArB3f,EAAIyf,EAAY,GAGzC,aAAazf,EAAKyf,EAAWtgD,EAAOtB,EAAM8hD,EAAYjqC,EAAMy5B,GAC1D,GAAa,IAATz5B,GAA0B,IAAZy5B,EAEhB,YADAtxC,EAAKrX,IAAIw5C,EAAI75C,SAASs5D,EAAWA,EAAoB,EAARtgD,GAAYwgD,GAI3D,MAAMtW,EAAQ,MAAQ,GAAK3zB,GAAQ,GACnC,IAAI9b,EAAI6lD,EACJjlC,EAAImlC,EAER,IAAK,IAAIl9E,EAAI,EAAGA,EAAI08B,IAAS18B,EAC3Bo7B,EAAK2c,KAAO6uB,EAAQrJ,EAAIpmC,KACxBiE,EAAK2c,KAAO6uB,EAAQrJ,EAAIpmC,KACxBiE,EAAK2c,KAAO6uB,EAAQrJ,EAAIpmC,KACxB4gB,GAAK20B,EAIT,gBAAgByQ,EAAazQ,GAC3B,OAAOyQ,GAAe,EAAIzQ,GAAW,EAAI,EAG3C,cAAcz5B,GACZ,OAAgB,IAATA,GAKX,MAAM6sC,EAAe,WACnB,SAASY,EAAanjB,EAAKyf,EAAW2D,EAAUvlD,EAAM8hD,GACpD,MAAM34E,EAAIg5D,EAAIyf,GAAa2D,EACrBr8E,EAAIi5D,EAAIyf,EAAY,GAAK2D,EACzBljC,EAAI8f,EAAIyf,EAAY,GAAK2D,EACzBjsC,EAAI6oB,EAAIyf,EAAY,GAAK2D,EAC/BvlD,EAAK8hD,GAAc,IAAM34E,IAAM,kBAAoBA,EAAI,kBAAoBD,EAAI,kBAAoBm5C,EAAI,mBAAqB/I,EAAK,mBAAqBpwC,GAAK,mBAAqBA,EAAI,mBAAqBm5C,GAAK,mBAAqB/I,EAAI,mBAAqB+I,IAAM,mBAAqBA,EAAI,mBAAqB/I,EAAI,kBAAoBA,IAAM,kBAAoBA,EAAI,oBACtWtZ,EAAK8hD,EAAa,GAAK,IAAM34E,GAAK,kBAAoBA,EAAI,mBAAqBD,EAAI,kBAAoBm5C,EAAI,mBAAqB/I,EAAK,kBAAoBpwC,IAAM,mBAAqBA,EAAI,mBAAqBm5C,EAAI,mBAAqB/I,EAAI,mBAAqB+I,GAAK,kBAAoBA,EAAI,gBAAkB/I,EAAI,mBAAqBA,IAAM,mBAAqBA,EAAI,oBACtWtZ,EAAK8hD,EAAa,GAAK,IAAM34E,GAAK,kBAAqBA,EAAI,kBAAoBD,EAAI,kBAAoBm5C,EAAI,mBAAsB/I,EAAK,oBAAsBpwC,GAAK,kBAAoBA,EAAI,kBAAoBm5C,EAAI,mBAAqB/I,EAAI,oBAAsB+I,GAAK,mBAAsBA,EAAI,mBAAqB/I,EAAK,oBAAsBA,IAAM,kBAAoBA,EAAI,oBAG/W,MAAMorC,UAAqBljD,EACzB,cACEha,MAAM,aAAc,GAGtB,WAAW26C,EAAKyf,EAAW5hD,EAAM8hD,GAC/BwD,EAAanjB,EAAKyf,EAAW,EAAG5hD,EAAM8hD,GAGxC,aAAa3f,EAAKyf,EAAWtgD,EAAOtB,EAAM8hD,EAAYjqC,EAAMy5B,GAC1D,MAAM9F,EAAQ,IAAM,GAAK3zB,GAAQ,GAEjC,IAAK,IAAIjzC,EAAI,EAAGA,EAAI08B,EAAO18B,IACzB0gF,EAAanjB,EAAKyf,EAAWpW,EAAOxrC,EAAM8hD,GAC1CF,GAAa,EACbE,GAAc,EAAIxQ,EAItB,gBAAgByQ,EAAazQ,GAC3B,OAAOyQ,EAAc,GAAK,EAAIzQ,GAAW,GAK7C,OAAOoT,EApCY,GAuCflB,EAAY,WAChB,SAAS8B,EAAavC,EAAI5gB,EAAKyf,EAAW5hD,EAAM8hD,EAAYtW,GAC1D,MAAMga,EAAIrjB,EAAIyf,GAAapW,EACrBia,EAAKD,GAAKzC,EAAG2C,EACbC,EAAI5C,EAAG6C,GAAKH,EACZntC,EAAMjoC,KAAKC,IAAI,MAAQq1E,GAAK,kBAAuB,KAAM,GAC/D3lD,EAAK8hD,GAAcxpC,EACnBtY,EAAK8hD,EAAa,GAAKxpC,EACvBtY,EAAK8hD,EAAa,GAAKxpC,EAGzB,MAAMkrC,UAAkBhiD,EACtB,YAAY4hD,EAAYC,EAAYtL,GAGlC,GAFAvwD,MAAM,UAAW,IAEZ47D,EACH,MAAM,IAAIr4E,EAAMiM,YAAY,yDAa9B,GAVAqsE,EAAaA,GAAc,CAAC,EAAG,EAAG,GAClCtL,EAAQA,GAAS,EACjBnvE,KAAKi9E,GAAKzC,EAAW,GACrBx6E,KAAKg9E,GAAKxC,EAAW,GACrBx6E,KAAKk9E,GAAK1C,EAAW,GACrBx6E,KAAKm9E,GAAK1C,EAAW,GACrBz6E,KAAKo9E,GAAK3C,EAAW,GACrBz6E,KAAKq9E,GAAK5C,EAAW,GACrBz6E,KAAK88E,EAAI3N,EAELnvE,KAAKi9E,GAAK,GAAKj9E,KAAKk9E,GAAK,GAAiB,IAAZl9E,KAAKg9E,GACrC,MAAM,IAAI76E,EAAMiM,YAAY,qCAAqCpO,KAAKjB,KAAS,4BAG7EiB,KAAKm9E,GAAK,GAAKn9E,KAAKo9E,GAAK,GAAKp9E,KAAKq9E,GAAK,MAC1C,EAAIl7E,EAAMiJ,MAAM,0BAA0BpL,KAAKjB,kCAC/CiB,KAAKm9E,GAAKn9E,KAAKo9E,GAAKp9E,KAAKq9E,GAAK,GAGhB,IAAZr9E,KAAKm9E,IAAwB,IAAZn9E,KAAKo9E,IAAwB,IAAZp9E,KAAKq9E,KACzC,EAAIl7E,EAAMgF,MAAM,GAAGnH,KAAKjB,yBAAyBiB,KAAKm9E,WAAWn9E,KAAKo9E,WAAgBp9E,KAAKq9E,0CAGzFr9E,KAAK88E,EAAI,KACX,EAAI36E,EAAMiJ,MAAM,kBAAkBpL,KAAK88E,SAAS98E,KAAKjB,kCACrDiB,KAAK88E,EAAI,GAIb,WAAWvjB,EAAKyf,EAAW5hD,EAAM8hD,GAC/BwD,EAAa18E,KAAMu5D,EAAKyf,EAAW5hD,EAAM8hD,EAAY,GAGvD,aAAa3f,EAAKyf,EAAWtgD,EAAOtB,EAAM8hD,EAAYjqC,EAAMy5B,GAC1D,MAAM9F,EAAQ,IAAM,GAAK3zB,GAAQ,GAEjC,IAAK,IAAIjzC,EAAI,EAAGA,EAAI08B,IAAS18B,EAC3B0gF,EAAa18E,KAAMu5D,EAAKyf,EAAW5hD,EAAM8hD,EAAYtW,GACrDoW,GAAa,EACbE,GAAc,EAAIxQ,EAItB,gBAAgByQ,EAAazQ,GAC3B,OAAOyQ,GAAe,EAAIzQ,IAK9B,OAAOkS,EApES,GAuEZE,EAAW,WACf,MAAMwC,EAAwB,IAAI9V,aAAa,CAAC,MAAQ,OAAS,OAAS,MAAQ,OAAQ,MAAQ,OAAS,MAAQ,SAC7G+V,EAAgC,IAAI/V,aAAa,CAAC,UAAY,SAAW,SAAW,SAAW,SAAW,UAAY,SAAW,SAAW,WAC5IgW,EAA6B,IAAIhW,aAAa,CAAC,WAAY,WAAY,UAAY,QAAW,UAAW,QAAW,UAAY,SAAW,YAC3IiW,EAAyB,IAAIjW,aAAa,CAAC,EAAG,EAAG,IACjDkW,EAAsB,IAAIlW,aAAa,GACvCmW,EAAqB,IAAInW,aAAa,GACtCoW,EAAqB,IAAIpW,aAAa,GACtCqW,GAAqB,GAAW,MAAQ,EAAI,EAElD,SAASC,EAAc18D,EAAGZ,EAAGyB,GAC3BA,EAAO,GAAKb,EAAE,GAAKZ,EAAE,GAAKY,EAAE,GAAKZ,EAAE,GAAKY,EAAE,GAAKZ,EAAE,GACjDyB,EAAO,GAAKb,EAAE,GAAKZ,EAAE,GAAKY,EAAE,GAAKZ,EAAE,GAAKY,EAAE,GAAKZ,EAAE,GACjDyB,EAAO,GAAKb,EAAE,GAAKZ,EAAE,GAAKY,EAAE,GAAKZ,EAAE,GAAKY,EAAE,GAAKZ,EAAE,GAGnD,SAASu9D,EAAcC,EAAkBC,EAAKh8D,GAC5CA,EAAO,GAAc,EAATg8D,EAAI,GAASD,EAAiB,GAC1C/7D,EAAO,GAAc,EAATg8D,EAAI,GAASD,EAAiB,GAC1C/7D,EAAO,GAAc,EAATg8D,EAAI,GAASD,EAAiB,GAG5C,SAASE,EAAaF,EAAkBC,EAAKh8D,GAC3C,MAAMk8D,EAAO,OACPC,EAAO,EACPC,EAAO,QACbp8D,EAAO,GAAKg8D,EAAI,GAAKE,EAAOH,EAAiB,GAC7C/7D,EAAO,GAAKg8D,EAAI,GAAKG,EAAOJ,EAAiB,GAC7C/7D,EAAO,GAAKg8D,EAAI,GAAKI,EAAOL,EAAiB,GAG/C,SAASM,EAAqB7lD,GAC5B,OACS8lD,EAAc,EAAG,EADtB9lD,GAAS,SACgB,MAAQA,EAGV,MAAcA,IAAU,EAAI,KAAO,MAGhE,SAAS8lD,EAAc/+D,EAAK9X,EAAKxG,GAC/B,OAAOuG,KAAKC,IAAI8X,EAAK/X,KAAK+X,IAAI9X,EAAKxG,IAGrC,SAASs9E,EAAQzB,GACf,OAAIA,EAAI,GACEyB,GAASzB,GAGfA,EAAI,IACGA,EAAI,IAAM,MAAQ,EAGtBA,EAAIc,EAGb,SAASY,EAAqBC,EAAkBC,EAAU18D,GACxD,GAA4B,IAAxBy8D,EAAiB,IAAoC,IAAxBA,EAAiB,IAAoC,IAAxBA,EAAiB,GAI7E,OAHAz8D,EAAO,GAAK08D,EAAS,GACrB18D,EAAO,GAAK08D,EAAS,QACrB18D,EAAO,GAAK08D,EAAS,IAIvB,MAAMC,EAAcJ,EAAQ,GACtBK,EAAQD,EACRE,EAAQN,EAAQE,EAAiB,IACjCK,EAAQH,EACRI,EAAQR,EAAQE,EAAiB,IACjCO,EAAQL,EACRM,EAAQV,EAAQE,EAAiB,IACjCS,GAAW,EAAIN,IAAU,EAAIC,GAC7BM,EAAW,EAAID,EACfE,GAAW,EAAIN,IAAU,EAAIC,GAC7BM,EAAW,EAAID,EACfE,GAAW,EAAIN,IAAU,EAAIC,GAC7BM,EAAW,EAAID,EACrBt9D,EAAO,GAAK08D,EAAS,GAAKQ,EAAUC,EACpCn9D,EAAO,GAAK08D,EAAS,GAAKU,EAAUC,EACpCr9D,EAAO,GAAK08D,EAAS,GAAKY,EAAUC,EAGtC,SAASC,EAA0BzB,EAAkB0B,EAAQz9D,GAC3D,GAA4B,IAAxB+7D,EAAiB,IAAoC,IAAxBA,EAAiB,GAIhD,OAHA/7D,EAAO,GAAKy9D,EAAO,GACnBz9D,EAAO,GAAKy9D,EAAO,QACnBz9D,EAAO,GAAKy9D,EAAO,IAIrB,MAAMzB,EAAMh8D,EACZ67D,EAAcR,EAAuBoC,EAAQzB,GAC7C,MAAM0B,EAAWjC,EACjBK,EAAcC,EAAkBC,EAAK0B,GACrC7B,EAAcP,EAA+BoC,EAAU19D,GAGzD,SAAS29D,EAAyB5B,EAAkB0B,EAAQz9D,GAC1D,MAAMg8D,EAAMh8D,EACZ67D,EAAcR,EAAuBoC,EAAQzB,GAC7C,MAAM4B,EAAUnC,EAChBQ,EAAaF,EAAkBC,EAAK4B,GACpC/B,EAAcP,EAA+BsC,EAAS59D,GAGxD,SAASy6D,EAAavC,EAAI5gB,EAAKyf,EAAW5hD,EAAM8hD,EAAYtW,GAC1D,MAAMga,EAAI2B,EAAc,EAAG,EAAGhlB,EAAIyf,GAAapW,GACzCkd,EAAIvB,EAAc,EAAG,EAAGhlB,EAAIyf,EAAY,GAAKpW,GAC7Cmd,EAAIxB,EAAc,EAAG,EAAGhlB,EAAIyf,EAAY,GAAKpW,GAC7Cod,EAAMpD,GAAKzC,EAAG8F,GACdC,EAAMJ,GAAK3F,EAAGgG,GACdC,EAAML,GAAK5F,EAAGkG,GACdC,EAAInG,EAAGoG,IAAMP,EAAM7F,EAAGqG,IAAMN,EAAM/F,EAAGsG,IAAML,EAC3CloB,EAAIiiB,EAAGuG,IAAMV,EAAM7F,EAAGwG,IAAMT,EAAM/F,EAAGyG,IAAMR,EAC3CS,EAAI1G,EAAG2G,IAAMd,EAAM7F,EAAG4G,IAAMb,EAAM/F,EAAG6G,IAAMZ,EAC3Ca,EAAMtD,EACZsD,EAAI,GAAKX,EACTW,EAAI,GAAK/oB,EACT+oB,EAAI,GAAKJ,EACT,MAAMlC,EAAWf,EACjB6B,EAA0BtF,EAAGK,WAAYyG,EAAKtC,GAC9C,MAAMuC,EAAYvD,EAClBc,EAAqBtE,EAAGM,WAAYkE,EAAUuC,GAC9C,MAAMC,EAAUvD,EAChBgC,EAAyBnC,EAAwByD,EAAWC,GAC5D,MAAMC,EAAOzD,EACbG,EAAcN,EAA4B2D,EAASC,GACnDhqD,EAAK8hD,GAA8C,IAAhCoF,EAAqB8C,EAAK,IAC7ChqD,EAAK8hD,EAAa,GAAqC,IAAhCoF,EAAqB8C,EAAK,IACjDhqD,EAAK8hD,EAAa,GAAqC,IAAhCoF,EAAqB8C,EAAK,IAGnD,MAAMtG,UAAiBliD,EACrB,YAAY4hD,EAAYC,EAAYtL,EAAO0L,GAGzC,GAFAj8D,MAAM,SAAU,IAEX47D,EACH,MAAM,IAAIr4E,EAAMiM,YAAY,wDAG9BqsE,EAAaA,GAAc,IAAIjT,aAAa,GAC5C2H,EAAQA,GAAS,IAAI3H,aAAa,CAAC,EAAG,EAAG,IACzCqT,EAASA,GAAU,IAAIrT,aAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAC7D,MAAMyV,EAAKzC,EAAW,GAChBwC,EAAKxC,EAAW,GAChB0C,EAAK1C,EAAW,GACtBx6E,KAAKw6E,WAAaA,EAClB,MAAM2C,EAAK1C,EAAW,GAChB2C,EAAK3C,EAAW,GAChB4C,EAAK5C,EAAW,GAetB,GAdAz6E,KAAKy6E,WAAaA,EAClBz6E,KAAKigF,GAAK9Q,EAAM,GAChBnvE,KAAKmgF,GAAKhR,EAAM,GAChBnvE,KAAKqgF,GAAKlR,EAAM,GAChBnvE,KAAKugF,IAAM1F,EAAO,GAClB76E,KAAK0gF,IAAM7F,EAAO,GAClB76E,KAAK8gF,IAAMjG,EAAO,GAClB76E,KAAKwgF,IAAM3F,EAAO,GAClB76E,KAAK2gF,IAAM9F,EAAO,GAClB76E,KAAK+gF,IAAMlG,EAAO,GAClB76E,KAAKygF,IAAM5F,EAAO,GAClB76E,KAAK4gF,IAAM/F,EAAO,GAClB76E,KAAKghF,IAAMnG,EAAO,GAEdoC,EAAK,GAAKC,EAAK,GAAY,IAAPF,EACtB,MAAM,IAAI76E,EAAMiM,YAAY,qCAAqCpO,KAAKjB,KAAS,4BAG7Eo+E,EAAK,GAAKC,EAAK,GAAKC,EAAK,MAC3B,EAAIl7E,EAAMiJ,MAAM,0BAA0BpL,KAAKjB,SAASo+E,MAAOC,MAAOC,gCACtEr9E,KAAKy6E,WAAa,IAAIjT,aAAa,KAGjCxnE,KAAKigF,GAAK,GAAKjgF,KAAKmgF,GAAK,GAAKngF,KAAKqgF,GAAK,MAC1C,EAAIl+E,EAAMiJ,MAAM,kBAAkBpL,KAAKigF,OAAOjgF,KAAKmgF,OAAOngF,KAAKqgF,WAAgBrgF,KAAKjB,KAAR,8BAC5EiB,KAAKigF,GAAKjgF,KAAKmgF,GAAKngF,KAAKqgF,GAAK,GAIlC,WAAW9mB,EAAKyf,EAAW5hD,EAAM8hD,GAC/BwD,EAAa18E,KAAMu5D,EAAKyf,EAAW5hD,EAAM8hD,EAAY,GAGvD,aAAa3f,EAAKyf,EAAWtgD,EAAOtB,EAAM8hD,EAAYjqC,EAAMy5B,GAC1D,MAAM9F,EAAQ,IAAM,GAAK3zB,GAAQ,GAEjC,IAAK,IAAIjzC,EAAI,EAAGA,EAAI08B,IAAS18B,EAC3B0gF,EAAa18E,KAAMu5D,EAAKyf,EAAW5hD,EAAM8hD,EAAYtW,GACrDoW,GAAa,EACbE,GAAc,EAAIxQ,EAItB,gBAAgByQ,EAAazQ,GAC3B,OAAOyQ,GAAe,EAAIzQ,GAAW,EAAI,GAK7C,OAAOoS,EAtMQ,GAyMXS,EAAQ,WACZ,SAAS8F,EAAKtzD,GACZ,IAAI9L,EAQJ,OALEA,EADE8L,GAAK,EAAI,GACFA,EAAIA,EAAIA,EAER,IAAM,KAAOA,EAAI,EAAI,IAGzB9L,EAGT,SAASs8B,EAAOr9C,EAAOogF,EAAOC,EAAMC,GAClC,OAAOD,EAAOrgF,GAASsgF,EAAQD,GAAQD,EAGzC,SAAS5E,EAAavC,EAAI5gB,EAAKyf,EAAWyI,EAAQrqD,EAAM8hD,GACtD,IAAIwI,EAAKnoB,EAAIyf,GACT2I,EAAKpoB,EAAIyf,EAAY,GACrB4I,EAAKroB,EAAIyf,EAAY,IAEV,IAAXyI,IACFC,EAAKnjC,EAAOmjC,EAAID,EAAQ,EAAG,KAC3BE,EAAKpjC,EAAOojC,EAAIF,EAAQtH,EAAG0H,KAAM1H,EAAG2H,MACpCF,EAAKrjC,EAAOqjC,EAAIH,EAAQtH,EAAG4H,KAAM5H,EAAG6H,OAGlCL,EAAKxH,EAAG2H,KACVH,EAAKxH,EAAG2H,KACCH,EAAKxH,EAAG0H,OACjBF,EAAKxH,EAAG0H,MAGND,EAAKzH,EAAG6H,KACVJ,EAAKzH,EAAG6H,KACCJ,EAAKzH,EAAG4H,OACjBH,EAAKzH,EAAG4H,MAGV,MAAME,GAAKP,EAAK,IAAM,IAChB3E,EAAIkF,EAAIN,EAAK,IACbO,EAAID,EAAIL,EAAK,IACbtB,EAAInG,EAAG8C,GAAKoE,EAAKtE,GACjB7kB,EAAIiiB,EAAG6C,GAAKqE,EAAKY,GACjBpB,EAAI1G,EAAG+C,GAAKmE,EAAKa,GACvB,IAAInhF,EAAGwf,EAAGC,EAEN25D,EAAG+C,GAAK,GACVn8E,EAAQ,OAAJu/E,GAAkB,MAALpoB,GAAkB,MAAL2oB,EAC9BtgE,GAAS,MAAL+/D,EAAkB,MAAJpoB,EAAgB,MAAJ2oB,EAC9BrgE,EAAQ,KAAJ8/D,GAAiB,KAALpoB,EAAiB,OAAJ2oB,IAE7B9/E,EAAQ,OAAJu/E,GAAkB,OAALpoB,GAAmB,MAAL2oB,EAC/BtgE,GAAS,MAAL+/D,EAAkB,OAAJpoB,EAAiB,MAAJ2oB,EAC/BrgE,EAAQ,MAAJ8/D,GAAkB,KAALpoB,EAAiB,MAAJ2oB,GAGhCzpD,EAAK8hD,GAA6B,IAAfzxE,KAAK8Z,KAAKxgB,GAC7Bq2B,EAAK8hD,EAAa,GAAoB,IAAfzxE,KAAK8Z,KAAKhB,GACjC6W,EAAK8hD,EAAa,GAAoB,IAAfzxE,KAAK8Z,KAAKf,GAGnC,MAAM+6D,UAAc3iD,EAClB,YAAY4hD,EAAYC,EAAY1uD,GAGlC,GAFAnN,MAAM,MAAO,IAER47D,EACH,MAAM,IAAIr4E,EAAMiM,YAAY,qDAgB9B,GAbAqsE,EAAaA,GAAc,CAAC,EAAG,EAAG,GAClC1uD,EAAQA,GAAS,EAAE,IAAK,KAAM,IAAK,KACnC/rB,KAAKi9E,GAAKzC,EAAW,GACrBx6E,KAAKg9E,GAAKxC,EAAW,GACrBx6E,KAAKk9E,GAAK1C,EAAW,GACrBx6E,KAAK6hF,KAAO91D,EAAM,GAClB/rB,KAAK8hF,KAAO/1D,EAAM,GAClB/rB,KAAK+hF,KAAOh2D,EAAM,GAClB/rB,KAAKgiF,KAAOj2D,EAAM,GAClB/rB,KAAKm9E,GAAK1C,EAAW,GACrBz6E,KAAKo9E,GAAK3C,EAAW,GACrBz6E,KAAKq9E,GAAK5C,EAAW,GAEjBz6E,KAAKi9E,GAAK,GAAKj9E,KAAKk9E,GAAK,GAAiB,IAAZl9E,KAAKg9E,GACrC,MAAM,IAAI76E,EAAMiM,YAAY,yDAG1BpO,KAAKm9E,GAAK,GAAKn9E,KAAKo9E,GAAK,GAAKp9E,KAAKq9E,GAAK,MAC1C,EAAIl7E,EAAMiJ,MAAM,+CAChBpL,KAAKm9E,GAAKn9E,KAAKo9E,GAAKp9E,KAAKq9E,GAAK,IAG5Br9E,KAAK6hF,KAAO7hF,KAAK8hF,MAAQ9hF,KAAK+hF,KAAO/hF,KAAKgiF,SAC5C,EAAI7/E,EAAMiJ,MAAM,2CAChBpL,KAAK6hF,MAAQ,IACb7hF,KAAK8hF,KAAO,IACZ9hF,KAAK+hF,MAAQ,IACb/hF,KAAKgiF,KAAO,KAIhB,WAAWzoB,EAAKyf,EAAW5hD,EAAM8hD,GAC/BwD,EAAa18E,KAAMu5D,EAAKyf,GAAW,EAAO5hD,EAAM8hD,GAGlD,aAAa3f,EAAKyf,EAAWtgD,EAAOtB,EAAM8hD,EAAYjqC,EAAMy5B,GAC1D,MAAM+Y,GAAU,GAAKxyC,GAAQ,EAE7B,IAAK,IAAIjzC,EAAI,EAAGA,EAAI08B,EAAO18B,IACzB0gF,EAAa18E,KAAMu5D,EAAKyf,EAAWyI,EAAQrqD,EAAM8hD,GACjDF,GAAa,EACbE,GAAc,EAAIxQ,EAItB,gBAAgByQ,EAAazQ,GAC3B,OAAOyQ,GAAe,EAAIzQ,GAAW,EAAI,EAG3C,gBAAgB0Q,EAAWC,GACzB,OAAO,EAGT,yBACE,OAAO,EAAIl3E,EAAMuL,QAAQ1N,KAAM,sBAAsB,IAKzD,OAAOu7E,EAlIK,IAuIR,SAAUx7E,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQi8B,iBAAmBj8B,EAAQ6mF,qBAAkB,EAErD,IAAIhgF,EAAQhC,EAAoB,GAE5BiC,EAAcjC,EAAoB,GAEtC,MAAMgiF,EACJ,cACEniF,KAAKoiF,YAAc,IAAI9qD,IACvBt3B,KAAKqiF,UAAY,IAAI/qD,IACrBt3B,KAAKsiF,YAAc,IAAIlgF,EAAYqiB,YAGrC,UAAU1lB,GACR,MAAM+K,EAAM9J,KAAKoiF,YAAYthF,IAAI/B,GAEjC,OAAI+K,EACK9J,KAAKuiF,SAASz4E,GAGhB9J,KAAKqiF,UAAUvhF,IAAI/B,IAAS,KAGrC,SAAS+K,GACP,OAAO9J,KAAKsiF,YAAYxhF,IAAIgJ,IAAQ,KAGtC,IAAI/K,EAAM+K,EAAM,KAAM5G,GACpB,IAAKnE,EACH,MAAM,IAAIzC,MAAM,mDAGlB,GAAIwN,EAAK,CACP,GAAI9J,KAAKsiF,YAAYj8D,IAAIvc,GACvB,OAOF,OAJA9J,KAAKoiF,YAAYriE,IAAIhhB,EAAM+K,QAE3B9J,KAAKsiF,YAAYv7D,IAAIjd,EAAK5G,GAKxBlD,KAAKqiF,UAAUh8D,IAAItnB,IAIvBiB,KAAKqiF,UAAUtiE,IAAIhhB,EAAMmE,IAK7B5H,EAAQ6mF,gBAAkBA,EAE1B,MAAM5qD,EACJ,iCACE,OAAO,EAAIp1B,EAAMuL,QAAQ1N,KAAM,sBAAuB,GAGxD,iCACE,OAAO,EAAImC,EAAMuL,QAAQ1N,KAAM,sBAAuB,IAGxD,cACEA,KAAKwiF,UAAY,IAAIpgF,EAAYqiB,YACjCzkB,KAAKsiF,YAAc,IAAIlgF,EAAYqiB,YAGrC,YAAY3a,EAAKJ,GACf,MAAM+4E,EAAeziF,KAAKwiF,UAAU1hF,IAAIgJ,GAElC5E,EAAWu9E,EAAeA,EAAav0C,MAAQu0C,EAAap8D,IAAI3c,GAAa,EAAI,GAAK,EAE5F,QAAIxE,EAAWqyB,EAAiBmrD,yBAI3B1iF,KAAKsiF,YAAYj8D,IAAIvc,IAAQ9J,KAAKsiF,YAAYp0C,MAAQ3W,EAAiBorD,qBAO9E,aAAa74E,EAAKJ,GAChB,IAAI+4E,EAAeziF,KAAKwiF,UAAU1hF,IAAIgJ,GAEjC24E,IACHA,EAAe,IAAIG,IAEnB5iF,KAAKwiF,UAAUz7D,IAAIjd,EAAK24E,IAG1BA,EAAajR,IAAI9nE,GAGnB,QAAQI,EAAKJ,GACX,IAAK1J,KAAKwiF,UAAUn8D,IAAIvc,GACtB,OAAO,KAGT,MAAM24E,EAAeziF,KAAKwiF,UAAU1hF,IAAIgJ,GAExC,OAAI24E,EAAav0C,KAAO3W,EAAiBmrD,oBAChC,KAGJ1iF,KAAKsiF,YAAYj8D,IAAIvc,IAI1B24E,EAAajR,IAAI9nE,GACV1J,KAAKsiF,YAAYxhF,IAAIgJ,IAJnB,KAOX,QAAQA,EAAK5G,GACX,IAAKlD,KAAKwiF,UAAUn8D,IAAIvc,GACtB,MAAM,IAAIxN,MAAM,2EAGd0D,KAAKsiF,YAAYj8D,IAAIvc,KAIrB9J,KAAKsiF,YAAYp0C,MAAQ3W,EAAiBorD,qBAC5C,EAAIxgF,EAAMiJ,MAAM,wEAIlBpL,KAAKsiF,YAAYv7D,IAAIjd,EAAK5G,IAG5B,MAAM2/E,GAAW,GACVA,GACH7iF,KAAKwiF,UAAUr7D,QAGjBnnB,KAAKsiF,YAAYn7D,SAKrB7rB,EAAQi8B,iBAAmBA,GAIrB,SAAUx3B,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQwnF,cAAgBA,EACxBxnF,EAAQynF,iBAAmBznF,EAAQ42B,kBAAoB52B,EAAQ0nF,sBAAwB1nF,EAAQ2nF,gBAAa,EAE5G,IAAI9gF,EAAQhC,EAAoB,GAE5BguB,EAAOhuB,EAAoB,IAE3BiC,EAAcjC,EAAoB,GAElC82B,EAAc92B,EAAoB,IAElCsC,EAActC,EAAoB,GAElCouB,EAAiBpuB,EAAoB,IAErCsnB,EAAUtnB,EAAoB,IAElC,MAAM+xB,EACJ,cAAc1nB,EAAMV,EAAKpG,EAAY6rB,GACnC,OAAO7rB,EAAWkG,OAAO5J,KAAM,UAAW,CAACwK,EAAMV,EAAKpG,EAAY6rB,IAGpE,eAAe/kB,EAAMV,EAAKpG,EAAY6rB,GACpC,MAAM5I,EAAOnc,EAAKwlB,WAAWlmB,GAE7B,KAAK,EAAI1H,EAAYgiB,QAAQuC,GAC3B,OAGF,MAAMpc,GAAK,EAAInI,EAAYkiB,OAAOxa,GAAOA,EAAIlB,WAAa,SAAS2mB,EAAU2zD,cAC7E,IAAItrD,EAAUjR,EAAK7lB,IAAI,WACvB82B,GAAU,EAAIx1B,EAAYiiB,QAAQuT,GAAWA,EAAQ74B,KAAO,KAC5D,MAAMokF,EAAa,CACjB34E,OACAmc,OACAiR,UACArtB,KACA7G,cAGF,OAAQk0B,GACN,IAAK,OACH,OAAO,IAAIwrD,EAAeD,GAE5B,IAAK,OACH,OAAO,IAAIE,EAAeF,GAE5B,IAAK,SACH,IAAIG,GAAY,EAAI7gF,EAAYkqB,wBAAwB,CACtDhG,OACAnlB,IAAK,OAIP,OAFA8hF,GAAY,EAAIlhF,EAAYiiB,QAAQi/D,GAAaA,EAAUvkF,KAAO,KAE1DukF,GACN,IAAK,KACH,OAAO,IAAIC,EAAqBJ,GAElC,IAAK,MACH,OAAO,IAAIK,EAAuBL,GAEpC,IAAK,KACH,OAAO,IAAIM,EAAuBN,GAItC,OADA,EAAIhhF,EAAMgF,MAAM,oCAAsCm8E,EAAtC,uCACT,IAAII,EAAiBP,GAE9B,IAAK,QACH,OAAO,IAAIQ,EAAgBR,GAE7B,IAAK,WACH,OAAO,IAAIS,EAAmBT,GAEhC,IAAK,OACH,OAAO,IAAIU,EAAeV,GAE5B,IAAK,SACH,OAAO,IAAIW,EAAiBX,GAE9B,IAAK,SACH,OAAO,IAAIY,EAAiBZ,GAE9B,IAAK,WACH,OAAO,IAAIa,EAAmBb,GAEhC,IAAK,UACH,OAAO,IAAIc,EAAkBd,GAE/B,IAAK,QACH,OAAO,IAAIe,EAAgBf,GAE7B,IAAK,MACH,OAAO,IAAIgB,EAAchB,GAE3B,IAAK,YACH,OAAO,IAAIiB,EAAoBjB,GAEjC,IAAK,YACH,OAAO,IAAIkB,EAAoBlB,GAEjC,IAAK,WACH,OAAO,IAAImB,EAAmBnB,GAEhC,IAAK,YACH,OAAO,IAAIoB,EAAoBpB,GAEjC,IAAK,QACH,OAAO,IAAIqB,EAAgBrB,GAE7B,IAAK,iBACH,OAAO,IAAIsB,EAAyBtB,GAEtC,QAOE,OANKvrD,GAGH,EAAIz1B,EAAMgF,MAAM,kCAAoCywB,EAApC,wCAFhB,EAAIz1B,EAAMgF,MAAM,gDAKX,IAAI87E,EAAWE,KAQ9B,SAASL,EAAcn8D,EAAMjF,GAC3B,IAAKiF,EAAKN,IAAI,cACZ,OAAO,KAGT,MAAMq+D,EAAa/9D,EAAKyG,SAAS,cAEjC,IAAKtxB,MAAMmqB,QAAQy+D,IAAeA,EAAWxoF,OAAS,EAAI,EACxD,OAAO,KAGT,MAAMyoF,EAAkB,GAExB,IAAK,IAAI3oF,EAAI,EAAGsnB,EAAKohE,EAAWxoF,OAAS,EAAGF,EAAIsnB,EAAItnB,IAAK,CACvD2oF,EAAgBrnF,KAAK,IAErB,IAAK,IAAI61B,EAAQ,EAAJn3B,EAAOg/B,EAAS,EAAJh/B,EAAQ,EAAGm3B,EAAI6H,EAAI7H,GAAK,EAAG,CAClD,MAAMpF,EAAI22D,EAAWvxD,GACfsmB,EAAIirC,EAAWvxD,EAAI,GAEzB,GAAIpF,EAAIrM,EAAK,IAAMqM,EAAIrM,EAAK,IAAM+3B,EAAI/3B,EAAK,IAAM+3B,EAAI/3B,EAAK,GACxD,OAAO,KAGTijE,EAAgB3oF,GAAGsB,KAAK,CACtBywB,IACA0rB,OAKN,OAAOkrC,EAGT,SAASC,EAAmBljE,EAAMmjE,EAAMhK,GACtC,MAAOr/B,EAAME,EAAMD,EAAMqpC,GAAQ3iF,EAAMkM,KAAK02E,2BAA2BF,EAAMhK,GAE7E,GAAIr/B,IAASC,GAAQC,IAASopC,EAC5B,MAAO,CAAC,EAAG,EAAG,EAAG,EAAGpjE,EAAK,GAAIA,EAAK,IAGpC,MAAM+2D,GAAU/2D,EAAK,GAAKA,EAAK,KAAO+5B,EAAOD,GACvCk9B,GAAUh3D,EAAK,GAAKA,EAAK,KAAOojE,EAAOppC,GAC7C,MAAO,CAAC+8B,EAAQ,EAAG,EAAGC,EAAQh3D,EAAK,GAAK85B,EAAOi9B,EAAQ/2D,EAAK,GAAKg6B,EAAOg9B,GA7C1Ep9E,EAAQ42B,kBAAoBA,EAgD5B,MAAM+wD,EACJ,YAAY1kD,GACV,MAAM5X,EAAO4X,EAAO5X,KACpB3mB,KAAKglF,YAAYr+D,EAAK7lB,IAAI,aAC1Bd,KAAKilF,oBAAoBt+D,EAAK7lB,IAAI,MAClCd,KAAKklF,SAASv+D,EAAK7lB,IAAI,MACvBd,KAAKmlF,aAAax+D,EAAKyG,SAAS,SAChCptB,KAAKolF,SAASz+D,EAAKyG,SAAS,MAC5BptB,KAAKqlF,eAAe1+D,GACpB3mB,KAAKslF,cAAc3+D,GACnB3mB,KAAKkD,KAAO,CACVqiF,gBAAiBvlF,KAAKw4B,MACtBgtD,YAAaxlF,KAAKwlF,YAClB/sD,MAAOz4B,KAAKy4B,MACZgtD,SAAUzlF,KAAKylF,SACfC,gBAAiB1lF,KAAK2lF,WACtBp7E,GAAIg0B,EAAOh0B,GACXq7E,iBAAkB5lF,KAAK4lF,iBACvBlkE,KAAM1hB,KAAK0X,UACXkgB,QAAS2G,EAAO3G,SAIpB,SAASY,EAAOqtD,GACd,SAAUrtD,EAAQqtD,GAGpB,YAAYrtD,GACV,OAAQx4B,KAAK8lF,SAASttD,EAAOr2B,EAAM+M,eAAekB,aAAepQ,KAAK8lF,SAASttD,EAAOr2B,EAAM+M,eAAegE,UAAYlT,KAAK8lF,SAASttD,EAAOr2B,EAAM+M,eAAemE,QAGnK,aAAamlB,GACX,OAAOx4B,KAAK8lF,SAASttD,EAAOr2B,EAAM+M,eAAeO,SAAWzP,KAAK8lF,SAASttD,EAAOr2B,EAAM+M,eAAekB,aAAepQ,KAAK8lF,SAASttD,EAAOr2B,EAAM+M,eAAegE,QAGjK,eACE,OAAmB,IAAflT,KAAKw4B,OAIFx4B,KAAK+lF,YAAY/lF,KAAKw4B,OAG/B,gBACE,OAAmB,IAAfx4B,KAAKw4B,OAIFx4B,KAAKgmF,aAAahmF,KAAKw4B,OAGhC,YAAYitD,GACVzlF,KAAKylF,UAAW,EAAItjF,EAAM0L,mBAAmB43E,GAAY,IAG3D,oBAAoBG,GAClB5lF,KAAK4lF,kBAAmB,EAAIzjF,EAAMmL,UAAUs4E,GAAoBA,EAAmB,KAGrF,SAASptD,GACPx4B,KAAKw4B,MAAQjb,OAAOC,UAAUgb,IAAUA,EAAQ,EAAIA,EAAQ,EAG9D,QAAQqtD,GACN,OAAO7lF,KAAK8lF,SAAS9lF,KAAKw4B,MAAOqtD,GAGnC,aAAanuE,GACP5b,MAAMmqB,QAAQvO,IAAmC,IAArBA,EAAUxb,OACxC8D,KAAK0X,UAAYvV,EAAMkM,KAAK6T,cAAcxK,GAE1C1X,KAAK0X,UAAY,CAAC,EAAG,EAAG,EAAG,GAI/B,SAAS+gB,GACP,MAAME,EAAW,IAAIzO,kBAAkB,GAEvC,GAAKpuB,MAAMmqB,QAAQwS,GAKnB,OAAQA,EAAMv8B,QACZ,KAAK,EACH8D,KAAKy4B,MAAQ,KACb,MAEF,KAAK,EACHxB,EAAY2B,WAAWC,WAAW6hD,KAAKzB,WAAWxgD,EAAO,EAAGE,EAAU,GAEtE34B,KAAKy4B,MAAQE,EACb,MAEF,KAAK,EACH1B,EAAY2B,WAAWC,WAAWC,IAAImgD,WAAWxgD,EAAO,EAAGE,EAAU,GAErE34B,KAAKy4B,MAAQE,EACb,MAEF,KAAK,EACH1B,EAAY2B,WAAWC,WAAW8hD,KAAK1B,WAAWxgD,EAAO,EAAGE,EAAU,GAEtE34B,KAAKy4B,MAAQE,EACb,MAEF,QACE34B,KAAKy4B,MAAQE,EACb,WA7BF34B,KAAKy4B,MAAQE,EAiCjB,eAAe6sD,GAGb,GAFAxlF,KAAKwlF,YAAc,IAAIxC,GAElB,EAAI5gF,EAAYgiB,QAAQohE,GAI7B,GAAIA,EAAYn/D,IAAI,MAAO,CACzB,MAAMM,EAAO6+D,EAAY1kF,IAAI,MACvBmlF,EAAWt/D,EAAK7lB,IAAI,QAErBmlF,KAAY,EAAI7jF,EAAYiiB,QAAQ4hE,EAAU,YACjDjmF,KAAKwlF,YAAYU,SAASv/D,EAAK7lB,IAAI,KAAMd,KAAK0X,WAC9C1X,KAAKwlF,YAAYW,SAASx/D,EAAK7lB,IAAI,MACnCd,KAAKwlF,YAAYY,aAAaz/D,EAAKyG,SAAS,YAEzC,GAAIo4D,EAAYn/D,IAAI,UAAW,CACpC,MAAM8gB,EAAQq+C,EAAYp4D,SAAS,UAE/BtxB,MAAMmqB,QAAQkhB,IAAUA,EAAMjrC,QAAU,IAC1C8D,KAAKwlF,YAAYa,0BAA0Bl/C,EAAM,IACjDnnC,KAAKwlF,YAAYc,wBAAwBn/C,EAAM,IAC/CnnC,KAAKwlF,YAAYU,SAAS/+C,EAAM,GAAInnC,KAAK0X,WAEpB,IAAjByvB,EAAMjrC,QACR8D,KAAKwlF,YAAYY,aAAaj/C,EAAM,UAIxCnnC,KAAKwlF,YAAYU,SAAS,GAI9B,cAAcv/D,GACZ3mB,KAAK2lF,WAAa,KAClB,MAAMY,EAAmB5/D,EAAK7lB,IAAI,MAElC,KAAK,EAAIsB,EAAYgiB,QAAQmiE,GAC3B,OAGF,MAAMC,EAAwBD,EAAiBzlF,IAAI,KAEnD,IAAI,EAAIsB,EAAYoiB,UAAUgiE,GAE5B,YADAxmF,KAAK2lF,WAAaa,GAIpB,KAAK,EAAIpkF,EAAYgiB,QAAQoiE,GAC3B,OAGF,MAAM7E,EAAKh7D,EAAK7lB,IAAI,OAEf,EAAIsB,EAAYiiB,QAAQs9D,IAAQ6E,EAAsBngE,IAAIs7D,EAAG5iF,QAIlEiB,KAAK2lF,WAAaa,EAAsB1lF,IAAI6gF,EAAG5iF,OAGjD,cAAcqnB,GACZ,OAAOpmB,KAAK2lF,WAAWh/D,KAAKyX,SAAS,aAAah4B,KAAKiqB,IACrD,IAAKA,EACH,OAGF,MAAMF,EAAe,IAAIhC,EAAKiC,aAAaC,EAAWjK,EAAMiK,EAAU7lB,MACtE,OAAO2lB,EAAaG,OAAOlqB,MAAK,WAC9B,OAAOiqB,OAKb,gBAAgBo2D,EAAW/hF,EAAMgiF,GAC/B,IAAK1mF,KAAK2lF,WACR,OAAOzhF,QAAQ9E,QAAQ,IAAImvB,EAAeyC,cAG5C,MAAM9tB,EAAOlD,KAAKkD,KACZyjF,EAAiB3mF,KAAK2lF,WAAWh/D,KACjC0I,EAAmBrvB,KAAKwwB,cAAc,CAAC,YAAa,aAAc,UAAW,UAAW,UAAW,SACnGq0D,EAAO8B,EAAev5D,SAAS,SAAW,CAAC,EAAG,EAAG,EAAG,GACpDytD,EAAS8L,EAAev5D,SAAS,WAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9DjW,EAAYytE,EAAmB1hF,EAAKwe,KAAMmjE,EAAMhK,GACtD,OAAOxrD,EAAiBjpB,KAAKiqB,IAC3B,MAAMU,EAAS,IAAIxC,EAAeyC,aAElC,OADAD,EAAOY,MAAMxvB,EAAMkN,IAAIkM,gBAAiB,CAACrY,EAAKwe,KAAMvK,EAAW0jE,IACxD4L,EAAUx7E,gBAAgB,CAC/B1B,OAAQvJ,KAAK2lF,WACbjhF,OACA2rB,YACAc,aAAcJ,IACb3qB,KAAK,KACN2qB,EAAOY,MAAMxvB,EAAMkN,IAAImM,cAAe,IACtCxb,KAAK2lF,WAAWzxD,QACTnD,OAOfz1B,EAAQ2nF,WAAaA,EAErB,MAAMD,EACJ,cACEhjF,KAAKg6C,MAAQ,EACbh6C,KAAKg6B,MAAQ73B,EAAMiN,0BAA0BwF,MAC7C5U,KAAK4mF,UAAY,CAAC,GAClB5mF,KAAK6mF,uBAAyB,EAC9B7mF,KAAK8mF,qBAAuB,EAG9B,SAAS9sC,EAAOt4B,EAAO,CAAC,EAAG,EAAG,EAAG,IAC/B,IAAI,EAAItf,EAAYiiB,QAAQ21B,GAC1Bh6C,KAAKg6C,MAAQ,OAIf,GAAIz8B,OAAOC,UAAUw8B,GAAQ,CAC3B,GAAIA,EAAQ,EAAG,CACb,MAAM8H,GAAYpgC,EAAK,GAAKA,EAAK,IAAM,EACjCqlE,GAAarlE,EAAK,GAAKA,EAAK,IAAM,EAEpCogC,EAAW,GAAKilC,EAAY,IAAM/sC,EAAQ8H,GAAY9H,EAAQ+sC,MAChE,EAAI5kF,EAAMgF,MAAM,oDAAoD6yC,GACpEA,EAAQ,GAIZh6C,KAAKg6C,MAAQA,GAIjB,SAAShgB,GACP,IAAK,EAAI53B,EAAYiiB,QAAQ2V,GAI7B,OAAQA,EAAMj7B,MACZ,IAAK,IACHiB,KAAKg6B,MAAQ73B,EAAMiN,0BAA0BwF,MAC7C,MAEF,IAAK,IACH5U,KAAKg6B,MAAQ73B,EAAMiN,0BAA0ByF,OAC7C,MAEF,IAAK,IACH7U,KAAKg6B,MAAQ73B,EAAMiN,0BAA0B0F,QAC7C,MAEF,IAAK,IACH9U,KAAKg6B,MAAQ73B,EAAMiN,0BAA0B2F,MAC7C,MAEF,IAAK,IACH/U,KAAKg6B,MAAQ73B,EAAMiN,0BAA0BmC,UAC7C,MAEF,QACE,OAIN,aAAaq1E,GACX,GAAI9qF,MAAMmqB,QAAQ2gE,IAAcA,EAAU1qF,OAAS,EAAG,CACpD,IAAIqgC,GAAU,EACVyqD,GAAW,EAEf,IAAK,MAAMpkE,KAAWgkE,EAAW,CAC/B,MAAMK,GAAerkE,GAAW,EAEhC,IAAKqkE,EAAa,CAChB1qD,GAAU,EACV,MACS3Z,EAAU,IACnBokE,GAAW,GAIXzqD,IAAYyqD,EACdhnF,KAAK4mF,UAAYA,EAEjB5mF,KAAKg6C,MAAQ,OAEN4sC,IACT5mF,KAAKg6C,MAAQ,GAIjB,0BAA0BktC,GACpB3pE,OAAOC,UAAU0pE,KACnBlnF,KAAK6mF,uBAAyBK,GAIlC,wBAAwBA,GAClB3pE,OAAOC,UAAU0pE,KACnBlnF,KAAK8mF,qBAAuBI,IAMlC5rF,EAAQ0nF,sBAAwBA,EAEhC,MAAMD,UAAyBE,EAC7B,YAAYE,GACVvkE,MAAMukE,GACN,MAAMx8D,EAAOw8D,EAAWx8D,KAExB,GAAIA,EAAKN,IAAI,OAAQ,CACnB,MAAM8gE,EAASxgE,EAAKT,OAAO,OAC3BlmB,KAAKkD,KAAKkkF,WAAY,EAAIhlF,EAAYkiB,OAAO6iE,GAAUA,EAAOv+E,WAAa,KAC3E,MAAMy+E,EAAK1gE,EAAK7lB,IAAI,MACpBd,KAAKkD,KAAKokF,WAAY,EAAIllF,EAAYiiB,QAAQgjE,GAAMA,EAAGtoF,KAAOoD,EAAM6M,oBAAoBiE,MAG1F,GAAIjT,KAAKkD,KAAKokF,YAAcnlF,EAAM6M,oBAAoBgE,MAAO,CAC3D,MAAMilB,EAAStR,EAAK7lB,IAAI,OACxBd,KAAKkD,KAAKzE,OAAQ,EAAI0D,EAAM0L,mBAAmBoqB,EAAOn3B,IAAI,MAAQ,IAClEd,KAAKglF,YAAY/sD,EAAOn3B,IAAI,aAC5Bd,KAAKkD,KAAKuiF,SAAWzlF,KAAKylF,SAErBxtD,EAAO5R,IAAI,iBAGdrmB,KAAKunF,gBAAgBtvD,EAAOn3B,IAAI,iBAChCd,KAAKkD,KAAKskF,aAAexnF,KAAKwnF,cAH9BxnF,KAAKkD,KAAKskF,aAAe,KAMtBvvD,EAAO5R,IAAI,MAGdrmB,KAAKilF,oBAAoBhtD,EAAOn3B,IAAI,MACpCd,KAAKkD,KAAK0iF,iBAAmB5lF,KAAK4lF,kBAHlC5lF,KAAKkD,KAAK0iF,iBAAmB,KAM/B5lF,KAAKkD,KAAKukF,SAAWxvD,EAAO5R,IAAI,SAE3B4R,EAAO5R,IAAI,MAGdrmB,KAAKolF,SAASntD,EAAO7K,SAAS,MAC9BptB,KAAKkD,KAAKu1B,MAAQz4B,KAAKy4B,OAHvBz4B,KAAKkD,KAAKu1B,MAAQ,UAMpBz4B,KAAKkD,KAAKzE,OAAQ,EAAI0D,EAAM0L,mBAAmB8Y,EAAK7lB,IAAI,MAAQ,IAChEd,KAAKunF,gBAAgB5gE,EAAK7lB,IAAI,iBAC9Bd,KAAKkD,KAAKskF,aAAexnF,KAAKwnF,aAC9BxnF,KAAKkD,KAAKukF,SAAW9gE,EAAKN,IAAI,SAEzBM,EAAKN,IAAI,OACZrmB,KAAKkD,KAAKu1B,MAAQ,MAKxB,gBAAgB+uD,GACdxnF,KAAKwnF,cAAe,EAAIrlF,EAAMmL,UAAUk6E,GAAgBA,EAAe,MAK3ElsF,EAAQynF,iBAAmBA,EAE3B,MAAMW,UAAyBT,EAC7B,YAAY1kD,GACV3f,MAAM2f,GACN,MAAM5X,EAAO4X,EAAO5X,KACdzjB,EAAOlD,KAAKkD,KAClBA,EAAKwkF,eAAiBvlF,EAAM0M,eAAeoD,OAC3C/O,EAAKykF,UAAY3nF,KAAK4nF,oBAAoBjhE,GAC1CzjB,EAAK2kF,YAAa,EAAIplF,EAAYkqB,wBAAwB,CACxDhG,OACAnlB,IAAK,IACL4rB,UAAU,IAEZlqB,EAAK4kF,iBAAkB,EAAI3lF,EAAM0L,mBAAmB8Y,EAAK7lB,IAAI,OAAS,IACtEoC,EAAK6kF,mBAAoB,EAAItlF,EAAYkqB,wBAAwB,CAC/DhG,OACAnlB,IAAK,QACD,GACN,MAAM8hF,GAAY,EAAI7gF,EAAYkqB,wBAAwB,CACxDhG,OACAnlB,IAAK,OAEP0B,EAAKogF,WAAY,EAAIlhF,EAAYiiB,QAAQi/D,GAAaA,EAAUvkF,KAAO,KACvEiB,KAAKgoF,gBAAiB,EAAIvlF,EAAYkqB,wBAAwB,CAC5DhG,OACAnlB,IAAK,QACDY,EAAYwiB,KAAK2B,MACvBrjB,EAAK+kF,YAAa,EAAIxlF,EAAYkqB,wBAAwB,CACxDhG,OACAnlB,IAAK,SAGF+b,OAAOC,UAAUta,EAAK+kF,aAAe/kF,EAAK+kF,WAAa,KAC1D/kF,EAAK+kF,WAAa,GAGpB/kF,EAAKglF,SAAWloF,KAAKmoF,aAAahmF,EAAMgN,oBAAoBmE,UAErC,QAAnBpQ,EAAKogF,YACPpgF,EAAK2kF,WAAa,KAClB7nF,KAAKklF,SAAS/iF,EAAM+M,eAAegE,SAIvC,oBAAoByT,GAClB,IAAKA,EAAKN,IAAI,OAASM,EAAKN,IAAI,UAE9B,OADA,EAAIlkB,EAAMgF,MAAM,yDACT,GAGT,IAAKwf,EAAKN,IAAI,UACZ,OAAO,EAAIlkB,EAAM0L,mBAAmB8Y,EAAK7lB,IAAI,MAG/C,MAAM6mF,EAAY,GAEdhhE,EAAKN,IAAI,MACXshE,EAAUS,SAAQ,EAAIjmF,EAAM0L,mBAAmB8Y,EAAK7lB,IAAI,OAG1D,IAAIunF,EAAW1hE,EAEf,MAAO0hE,EAAShiE,IAAI,UAAW,CAG7B,GAFAgiE,EAAWA,EAASvnF,IAAI,YAEnB,EAAIsB,EAAYgiB,QAAQikE,GAC3B,MAGEA,EAAShiE,IAAI,MACfshE,EAAUS,SAAQ,EAAIjmF,EAAM0L,mBAAmBw6E,EAASvnF,IAAI,OAIhE,OAAO6mF,EAAUpqF,KAAK,KAGxB,aAAasoF,GACX,SAAU7lF,KAAKkD,KAAK+kF,WAAapC,GAGnC,gBAAgBY,EAAW/hF,EAAMgiF,GAC/B,OAAIA,EACKxiF,QAAQ9E,QAAQ,IAAImvB,EAAeyC,cAGrCpS,MAAM3T,gBAAgBw7E,EAAW/hF,EAAMgiF,IAKlD,MAAMnD,UAA6BG,EACjC,YAAYnlD,GACV3f,MAAM2f,GACN,MAAM5X,EAAO4X,EAAO5X,KACpB3mB,KAAKkD,KAAK2kF,YAAa,EAAI1lF,EAAM0L,mBAAmB7N,KAAKkD,KAAK2kF,YAAc,IAC5E,IAAIS,GAAY,EAAI7lF,EAAYkqB,wBAAwB,CACtDhG,OACAnlB,IAAK,QAGF+b,OAAOC,UAAU8qE,IAAcA,EAAY,GAAKA,EAAY,KAC/DA,EAAY,MAGdtoF,KAAKkD,KAAKqlF,cAAgBD,EAC1B,IAAIE,GAAgB,EAAI/lF,EAAYkqB,wBAAwB,CAC1DhG,OACAnlB,IAAK,aAGF+b,OAAOC,UAAUgrE,IAAkBA,EAAgB,KACtDA,EAAgB,MAGlBxoF,KAAKkD,KAAKmsC,OAASm5C,EACnBxoF,KAAKkD,KAAKulF,UAAYzoF,KAAKmoF,aAAahmF,EAAMgN,oBAAoByE,WAClE5T,KAAKkD,KAAKwlF,KAAO1oF,KAAKmoF,aAAahmF,EAAMgN,oBAAoBqF,QAAUxU,KAAKmoF,aAAahmF,EAAMgN,oBAAoByE,aAAe5T,KAAKmoF,aAAahmF,EAAMgN,oBAAoB0E,YAAc7T,KAAKmoF,aAAahmF,EAAMgN,oBAAoBiF,aAAoC,OAArBpU,KAAKkD,KAAKmsC,OAGnQ,gBAAgBo3C,EAAW/hF,EAAMgiF,GAC/B,GAAIA,GAAe1mF,KAAK2lF,WACtB,OAAO/mE,MAAM3T,gBAAgBw7E,EAAW/hF,EAAMgiF,GAGhD,MAAMv1D,EAAe,IAAI5C,EAAeyC,aAExC,IAAKhxB,KAAKkD,KAAK6kF,kBACb,OAAO7jF,QAAQ9E,QAAQ+xB,GAGzB,MAAM5nB,EAAS,IAAIke,EAAQQ,QAAO,EAAI9lB,EAAMyL,eAAe5N,KAAKkD,KAAK6kF,oBACrE,OAAOtB,EAAUx7E,gBAAgB,CAC/B1B,SACA7E,OACA2rB,UAAWrwB,KAAKgoF,eAChB72D,iBACC/qB,MAAK,WACN,OAAO+qB,MAMb,MAAMqyD,UAA+BE,EACnC,YAAYnlD,GACV3f,MAAM2f,GACNv+B,KAAKkD,KAAKylF,UAAY3oF,KAAKmoF,aAAahmF,EAAMgN,oBAAoB4E,SAAW/T,KAAKmoF,aAAahmF,EAAMgN,oBAAoB6E,YACzHhU,KAAKkD,KAAK0lF,YAAc5oF,KAAKmoF,aAAahmF,EAAMgN,oBAAoB4E,SAAW/T,KAAKmoF,aAAahmF,EAAMgN,oBAAoB6E,YAC3HhU,KAAKkD,KAAK2lF,WAAa7oF,KAAKmoF,aAAahmF,EAAMgN,oBAAoB6E,YAE/DhU,KAAKkD,KAAKylF,SACZ3oF,KAAK8oF,iBAAiBvqD,GACbv+B,KAAKkD,KAAK0lF,YACnB5oF,KAAK+oF,oBAAoBxqD,GAChBv+B,KAAKkD,KAAK2lF,WACnB7oF,KAAKgpF,mBAAmBzqD,IAExB,EAAIp8B,EAAMgF,MAAM,oDAIpB,iBAAiBo3B,IACX,EAAIn8B,EAAYiiB,QAAQrkB,KAAKkD,KAAK2kF,cACpC7nF,KAAKkD,KAAK2kF,WAAa7nF,KAAKkD,KAAK2kF,WAAW9oF,MAG9C,MAAMkqF,EAAmB1qD,EAAO5X,KAAK7lB,IAAI,MAEzC,KAAK,EAAIsB,EAAYgiB,QAAQ6kE,GAC3B,OAGF,MAAMC,EAAyBD,EAAiBnoF,IAAI,KAEpD,KAAK,EAAIsB,EAAYgiB,QAAQ8kE,GAC3B,OAGF,MAAMC,EAAeD,EAAuB/iE,UACtCijE,EAAgD,IAAxBD,EAAajtF,OAEtCktF,IAILppF,KAAKkD,KAAKmmF,YAAkC,QAApBF,EAAa,GAAeA,EAAa,GAAKA,EAAa,IAGrF,oBAAoB5qD,GAClBv+B,KAAKkD,KAAK2kF,WAAa7nF,KAAKkD,KAAKomF,YAAc,KAC/C,MAAMC,EAAchrD,EAAO5X,KAAK7lB,IAAI,UAEpC,IAAI,EAAIsB,EAAYgiB,QAAQmlE,IAAgBA,EAAYljE,IAAI,KAAM,CAChE,MAAMmjE,EAAmBD,EAAYzoF,IAAI,MAErC,EAAIsB,EAAYiiB,QAAQmlE,KAC1BxpF,KAAKkD,KAAK2kF,WAAa2B,EAAiBzqF,MAI5C,MAAMwnF,EAAmBhoD,EAAO5X,KAAK7lB,IAAI,MAEzC,KAAK,EAAIsB,EAAYgiB,QAAQmiE,GAC3B,OAGF,MAAMC,EAAwBD,EAAiBzlF,IAAI,KAEnD,IAAK,EAAIsB,EAAYgiB,QAAQoiE,GAI7B,IAAK,MAAMhlF,KAAOglF,EAAsBrgE,UACtC,GAAY,QAAR3kB,EAAe,CACjBxB,KAAKkD,KAAKomF,YAAc9nF,EACxB,OAKN,mBAAmB+8B,GACZA,EAAO5X,KAAKN,IAAI,KAKrB8H,EAAK2G,QAAQuD,oBAAoB,CAC/BC,SAAUiG,EAAO5X,KACjB4R,UAAWv4B,KAAKkD,KAChBmB,WAAYk6B,EAAO76B,WAAWW,cAP9B,EAAIlC,EAAMgF,MAAM,+DAatB,MAAMs8E,UAA+BC,EACnC,YAAYnlD,GACV3f,MAAM2f,GACNv+B,KAAKkD,KAAKytB,QAAU,GACpB,MAAMA,GAAU,EAAIluB,EAAYkqB,wBAAwB,CACtDhG,KAAM4X,EAAO5X,KACbnlB,IAAK,QAGP,GAAI1F,MAAMmqB,QAAQ0K,GAAU,CAC1B,MAAMnmB,EAAO+zB,EAAO/zB,KAEpB,IAAK,IAAIxO,EAAI,EAAGsnB,EAAKqN,EAAQz0B,OAAQF,EAAIsnB,EAAItnB,IAAK,CAChD,MAAMytF,EAASj/E,EAAKwlB,WAAWW,EAAQ30B,IACjC0tF,EAAgB5tF,MAAMmqB,QAAQwjE,GACpCzpF,KAAKkD,KAAKytB,QAAQ30B,GAAK,CACrBqtF,YAAaK,EAAgBl/E,EAAKwlB,WAAWy5D,EAAO,IAAMA,EAC1DE,cAAc,EAAIxnF,EAAM0L,mBAAmB67E,EAAgBl/E,EAAKwlB,WAAWy5D,EAAO,IAAMA,KAKzF3tF,MAAMmqB,QAAQjmB,KAAKkD,KAAK2kF,cAC3B7nF,KAAKkD,KAAK2kF,WAAa,CAAC7nF,KAAKkD,KAAK2kF,aAGpC7nF,KAAKkD,KAAK0mF,MAAQ5pF,KAAKmoF,aAAahmF,EAAMgN,oBAAoB8E,OAC9DjU,KAAKkD,KAAK2mF,YAAc7pF,KAAKmoF,aAAahmF,EAAMgN,oBAAoBkF,cAKxE,MAAMgvE,UAAuBN,EAC3B,YAAYI,GACV,MAAM2G,EAAoB,GAC1BlrE,MAAMukE,GACN,MAAMx8D,EAAOw8D,EAAWx8D,KACxB3mB,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAeiC,KAE5C9Q,KAAKkD,KAAKwiF,cACZ1lF,KAAKkD,KAAKnE,KAAO,UAEjBiB,KAAKkD,KAAKwe,KAAK,GAAK1hB,KAAKkD,KAAKwe,KAAK,GAAKooE,EACxC9pF,KAAKkD,KAAKwe,KAAK,GAAK1hB,KAAKkD,KAAKwe,KAAK,GAAKooE,EACxC9pF,KAAKkD,KAAKnE,KAAO4nB,EAAKN,IAAI,QAAUM,EAAK7lB,IAAI,QAAQ/B,KAAO,QAG1D4nB,EAAKN,IAAI,UACXrmB,KAAKkD,KAAKwkC,MAAQ/gB,EAAK7lB,IAAI,UAAY,KACvCd,KAAKkD,KAAK6mF,WAAapjE,EAAK7lB,IAAI,eAAiB,OAEjDd,KAAKkD,KAAKwkC,MAAQ,KAClB1nC,KAAKkD,KAAK6mF,WAAa,OAM7B,MAAM3G,UAAuBH,EAC3B,YAAY1kD,GACV3f,MAAM2f,GACNv+B,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAekC,KAChD,MAAM2zE,EAAa5B,EAAcvkD,EAAO5X,KAAM3mB,KAAK0X,WAE/CgtE,IACF1kF,KAAKkD,KAAKwhF,WAAaA,GAGzBv2D,EAAK2G,QAAQuD,oBAAoB,CAC/BC,SAAUiG,EAAO5X,KACjB4R,UAAWv4B,KAAKkD,KAChBmB,WAAYk6B,EAAO76B,WAAWW,cAMpC,MAAMs/E,UAAwBV,EAC5B,YAAYE,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAegD,MAChD,IAAIm4E,EAAa7G,EAAWx8D,KAAK7lB,IAAI,UAErC,IAAKkpF,EAEH,YADA,EAAI7nF,EAAMgF,MAAM,gEAIlB,MAAM8iF,EAAgBD,EAAWlpF,IAAI,WACrCd,KAAKkD,KAAKgnF,YAAa,EAAI9nF,EAAYiiB,QAAQ4lE,GAAiBA,EAAclrF,KAAO,KACrF,MAAMorF,EAAYhH,EAAWx8D,KAAKT,OAAO,UACzClmB,KAAKkD,KAAKknF,UAAW,EAAIhoF,EAAYkiB,OAAO6lE,GAAaA,EAAUvhF,WAAa,KAChF,MAAMy+E,EAAK2C,EAAWlpF,IAAI,MAoB1B,IAlBI,EAAIsB,EAAYiiB,QAAQgjE,EAAIllF,EAAM6M,oBAAoBgE,SACxDg3E,EAAaA,EAAWlpF,IAAI,QAGzBkpF,EAAW3jE,IAAI,MAGlBrmB,KAAKilF,oBAAoB+E,EAAWlpF,IAAI,MACxCd,KAAKkD,KAAK0iF,iBAAmB5lF,KAAK4lF,kBAHlC5lF,KAAKkD,KAAK0iF,iBAAmB,KAM1BoE,EAAW3jE,IAAI,MAGlBrmB,KAAKolF,SAAS4E,EAAW58D,SAAS,MAClCptB,KAAKkD,KAAKu1B,MAAQz4B,KAAKy4B,OAHvBz4B,KAAKkD,KAAKu1B,MAAQ,MAMfz4B,KAAK8uB,SAAU,CAClB,MAAMu7D,EAAcL,EAAWlpF,IAAI,KAE/Bd,KAAK+lF,YAAYsE,IACnBrqF,KAAKklF,SAASmF,GAIlBrqF,KAAKkD,KAAKzE,OAAQ,EAAI0D,EAAM0L,mBAAmBm8E,EAAWlpF,IAAI,MAAQ,IACtEd,KAAKkD,KAAKuiF,UAAW,EAAItjF,EAAM0L,mBAAmBm8E,EAAWlpF,IAAI,aAAe,KAKpF,MAAM8iF,UAA2Bb,EAC/B,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAemC,UAKpD,MAAM6yE,UAAuBd,EAC3B,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAeoC,KAChDjR,KAAKkD,KAAKonF,gBAAkBnoF,EAAMkM,KAAK6T,cAAcihE,EAAWx8D,KAAKyG,SAAS,OAKlF,MAAM02D,UAAyBf,EAC7B,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAeqC,QAKpD,MAAM6yE,UAAyBhB,EAC7B,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAesC,QAKpD,MAAM6yE,UAA2BjB,EAC/B,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAewC,SAChD,MAAMk5E,EAAcpH,EAAWx8D,KAAKyG,SAAS,YAC7CptB,KAAKkD,KAAKsnF,SAAW,GAErB,IAAK,IAAIxuF,EAAI,EAAGsnB,EAAKinE,EAAYruF,OAAQF,EAAIsnB,EAAItnB,GAAK,EACpDgE,KAAKkD,KAAKsnF,SAASltF,KAAK,CACtBywB,EAAGw8D,EAAYvuF,GACfy9C,EAAG8wC,EAAYvuF,EAAI,MAO3B,MAAMioF,UAA0BD,EAC9B,YAAYb,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAeuC,SAKpD,MAAM8yE,UAAwBnB,EAC5B,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAe8C,OAKpD,MAAMwyE,UAAsBpB,EAC1B,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAe+C,IAChD,MAAMpH,EAAO24E,EAAW34E,KAClBigF,EAAmBtH,EAAWx8D,KAAKyG,SAAS,WAClDptB,KAAKkD,KAAKwnF,SAAW,GAErB,IAAK,IAAI1uF,EAAI,EAAGsnB,EAAKmnE,EAAiBvuF,OAAQF,EAAIsnB,IAAMtnB,EAAG,CACzDgE,KAAKkD,KAAKwnF,SAASptF,KAAK,IAExB,IAAK,IAAI61B,EAAI,EAAG6H,EAAKyvD,EAAiBzuF,GAAGE,OAAQi3B,EAAI6H,EAAI7H,GAAK,EAC5DnzB,KAAKkD,KAAKwnF,SAAS1uF,GAAGsB,KAAK,CACzBywB,EAAGvjB,EAAKwlB,WAAWy6D,EAAiBzuF,GAAGm3B,IACvCsmB,EAAGjvC,EAAKwlB,WAAWy6D,EAAiBzuF,GAAGm3B,EAAI,QAQrD,MAAMixD,UAA4BrB,EAChC,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAeyC,UAChD,MAAMozE,EAAa5B,EAAcK,EAAWx8D,KAAM3mB,KAAK0X,WAEnDgtE,IACF1kF,KAAKkD,KAAKwhF,WAAaA,IAM7B,MAAML,UAA4BtB,EAChC,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAe0C,UAChD,MAAMmzE,EAAa5B,EAAcK,EAAWx8D,KAAM3mB,KAAK0X,WAEnDgtE,IACF1kF,KAAKkD,KAAKwhF,WAAaA,IAM7B,MAAMJ,UAA2BvB,EAC/B,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAe2C,SAChD,MAAMkzE,EAAa5B,EAAcK,EAAWx8D,KAAM3mB,KAAK0X,WAEnDgtE,IACF1kF,KAAKkD,KAAKwhF,WAAaA,IAM7B,MAAMH,UAA4BxB,EAChC,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAe4C,UAChD,MAAMizE,EAAa5B,EAAcK,EAAWx8D,KAAM3mB,KAAK0X,WAEnDgtE,IACF1kF,KAAKkD,KAAKwhF,WAAaA,IAM7B,MAAMF,UAAwBzB,EAC5B,YAAYI,GACVvkE,MAAMukE,GACNnjF,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAe6C,OAKpD,MAAM+yE,UAAiC1B,EACrC,YAAYI,GACVvkE,MAAMukE,GACN,MAAMwH,EAAO,IAAIx8D,EAAK6I,SAASmsD,EAAWx8D,KAAK7lB,IAAI,MAAOqiF,EAAW34E,MACrExK,KAAKkD,KAAKwkF,eAAiBvlF,EAAM0M,eAAeiD,eAChD9R,KAAKkD,KAAKynF,KAAOA,EAAK9tD,gBAOpB,SAAU98B,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQ01B,kBAAe,EAEvB,IAAI7uB,EAAQhC,EAAoB,GAE5ByqF,EAAiB,WACnB,SAASC,EAASC,EAAaC,EAASC,EAASC,EAAWC,GAG1D,IAFA,IAAIxjD,EAAQojD,EAEH9uF,EAAI,EAAGsnB,EAAKynE,EAAQ7uF,OAAS,EAAGF,EAAIsnB,EAAItnB,IAAK,CACpD,IAAI6jB,EAAOkrE,EAAQ/uF,GACnB0rC,EAAQA,EAAM7nB,KAAU6nB,EAAM7nB,GAAQ,IAGxC6nB,EAAMqjD,EAAQA,EAAQ7uF,OAAS,IAAM,CACnC8uF,UACAC,YACAC,aAIJ,SAASC,EAA+BC,EAAY1yD,EAAO2yD,EAASC,GAGlE,IAFA,IAAIC,EAAcH,EAAa,EAEtBpvF,EAAI,EAAGA,EAAI08B,EAAO18B,IAAK,CAC9B,IAAIo3B,EAAMk4D,EAAUC,EAAc,EAAIvvF,GAClCwvF,EAA2B,IAAfp4D,EAAIl3B,QAAgBk3B,EAAI,GAExC,IAAIo4D,GAAiC,IAApBA,EAAUxxC,OAAoC,IAArBwxC,EAAUvxC,QAAkBuxC,EAAUtoF,KAAKhH,SAAoC,IAA1BsvF,EAAUtoF,KAAKhH,QAAsC,IAAtBsvF,EAAUtoF,KAAK,IAK7I,MAJEmoF,EAAQE,EAAc,EAAIvvF,GAAKmG,EAAMkN,IAAI4M,yBAO7C,OAAOyc,EAAQ18B,EAGjB,IAAIyvF,EAAe,GAwWnB,SAASb,EAAe5yD,GACtBh4B,KAAKg4B,MAAQA,EACbh4B,KAAK0nC,MAAQ,KACb1nC,KAAKg7D,QAAU,CACb0wB,MAAO,EACPL,QAASrzD,EAAMqzD,QACfC,UAAWtzD,EAAMszD,WAEnBtrF,KAAK2rF,MAAQ,KACb3rF,KAAK4rF,cAAgB,EAsFvB,OAtcAf,EAASY,EAAc,CAACtpF,EAAMkN,IAAI4H,KAAM9U,EAAMkN,IAAI8H,UAAWhV,EAAMkN,IAAIwM,wBAAyB1Z,EAAMkN,IAAI6H,SAAU,MAAM,SAAiC8jD,EAASh/D,GAClK,IAAIqvF,EAAUrwB,EAAQqwB,QAClBD,EAAapwB,EAAQ0wB,MAAQ,EAC7B9rE,GAAO5jB,EAAIovF,GAAc,EAE7B,OAAQxrE,GACN,KAAK,EACH,OAAOyrE,EAAQrvF,KAAOmG,EAAMkN,IAAI4H,KAElC,KAAK,EACH,OAAOo0E,EAAQrvF,KAAOmG,EAAMkN,IAAI8H,UAElC,KAAK,EACH,OAAOk0E,EAAQrvF,KAAOmG,EAAMkN,IAAIwM,wBAElC,KAAK,EACH,OAAOwvE,EAAQrvF,KAAOmG,EAAMkN,IAAI6H,QAGpC,MAAM,IAAI5a,MAAM,0CAA0CsjB,MACzD,SAA+Bo7C,EAASh/D,GACzC,IAAI6vF,EAAoC,GACpCC,EAAoC,IACpCC,EAAY,IACZC,EAAgB,EAChBX,EAAUrwB,EAAQqwB,QAClBC,EAAYtwB,EAAQswB,UACpBW,EAAOjxB,EAAQ0wB,MACfN,EAAaa,EAAO,EACpBC,EAAkBD,EAAO,EACzBE,EAAcF,EAAO,EACrBvzD,EAAQjxB,KAAK+X,IAAI/X,KAAK+hB,OAAOxtB,EAAIovF,GAAc,GAAIU,GAEvD,GAAIpzD,EAAQmzD,EACV,OAAO7vF,GAAKA,EAAIovF,GAAc,EAGhC,IAKIr3C,EALA0H,EAAO,EACP2wC,EAAM,GACNC,EAAgB,EAChBC,EAAWN,EACXO,EAAWP,EAGf,IAAKj4C,EAAI,EAAGA,EAAIrb,EAAOqb,IAAK,CAC1B,IAAI58B,EAAYm0E,EAAUY,GAAmBn4C,GAAK,IAC9Cy4C,EAAMlB,EAAUa,GAAep4C,GAAK,IAAI,GAExCu4C,EAAWE,EAAIxyC,MAAQ+xC,IACzBtwC,EAAOh0C,KAAKC,IAAI+zC,EAAM6wC,GACtBC,GAAYF,EAAgB,EAAIL,EAChCM,EAAW,EACXD,EAAgB,GAGlBD,EAAI9uF,KAAK,CACP6Z,YACA4W,EAAGu+D,EACH7yC,EAAG8yC,EACHhc,EAAGic,EAAIxyC,MACPoY,EAAGo6B,EAAIvyC,SAETqyC,GAAYE,EAAIxyC,MAAQ,EAAIgyC,EAC5BK,EAAgB5kF,KAAKC,IAAI2kF,EAAeG,EAAIvyC,QAG9C,IAAIwyC,EAAWhlF,KAAKC,IAAI+zC,EAAM6wC,GAAYN,EACtCU,EAAYH,EAAWF,EAAgBL,EACvC7jC,EAAU,IAAIj+B,kBAAkBuiE,EAAWC,EAAY,GACvDhzB,EAAa+yB,GAAY,EAE7B,IAAK14C,EAAI,EAAGA,EAAIrb,EAAOqb,IAAK,CAC1B,IAAI7wC,EAAOooF,EAAUa,GAAep4C,GAAK,IAAI,GAAG7wC,KAC5C6mD,EAAUqiC,EAAIr4C,GAAGw8B,GAAK,EACtBoc,EAAa,EACb3+D,EAASo+D,EAAIr4C,GAAGhmB,EAAIq+D,EAAIr4C,GAAG0F,EAAIgzC,GAAY,EAC/CtkC,EAAQpoC,IAAI7c,EAAKwc,SAAS,EAAGqqC,GAAU/7B,EAAS0rC,GAEhD,IAAK,IAAIhpB,EAAI,EAAGoB,EAAKs6C,EAAIr4C,GAAGqe,EAAG1hB,EAAIoB,EAAIpB,IACrCyX,EAAQpoC,IAAI7c,EAAKwc,SAASitE,EAAYA,EAAa5iC,GAAU/7B,GAC7D2+D,GAAc5iC,EACd/7B,GAAU0rC,EAGZvR,EAAQpoC,IAAI7c,EAAKwc,SAASitE,EAAa5iC,EAAS4iC,GAAa3+D,GAE7D,MAAOA,GAAU,EACf9qB,EAAK8qB,EAAS,GAAK9qB,EAAK8qB,GACxB9qB,EAAK8qB,EAAS,GAAK9qB,EAAK8qB,EAAS,GACjC9qB,EAAK8qB,EAAS,GAAK9qB,EAAK8qB,EAAS,GACjC9qB,EAAK8qB,EAAS,GAAK9qB,EAAK8qB,EAAS,GACjC9qB,EAAK8qB,EAAS+7B,GAAW7mD,EAAK8qB,EAAS+7B,EAAU,GACjD7mD,EAAK8qB,EAAS+7B,EAAU,GAAK7mD,EAAK8qB,EAAS+7B,EAAU,GACrD7mD,EAAK8qB,EAAS+7B,EAAU,GAAK7mD,EAAK8qB,EAAS+7B,EAAU,GACrD7mD,EAAK8qB,EAAS+7B,EAAU,GAAK7mD,EAAK8qB,EAAS+7B,EAAU,GACrD/7B,GAAU0rC,EAWd,OAPA2xB,EAAQxmF,OAAOumF,EAAoB,EAAR1yD,EAAWv2B,EAAMkN,IAAIyM,8BAChDwvE,EAAUzmF,OAAOumF,EAAoB,EAAR1yD,EAAW,CAAC,CACvCshB,MAAOyyC,EACPxyC,OAAQyyC,EACRE,KAAMzqF,EAAMwM,UAAUkC,WACtB3N,KAAMilD,GACLikC,IACIhB,EAAa,KAEtBP,EAASY,EAAc,CAACtpF,EAAMkN,IAAI4H,KAAM9U,EAAMkN,IAAI8H,UAAWhV,EAAMkN,IAAIqM,sBAAuBvZ,EAAMkN,IAAI6H,SAAU,MAAM,SAA+B8jD,EAASh/D,GAC9J,IAAIqvF,EAAUrwB,EAAQqwB,QAClBD,EAAapwB,EAAQ0wB,MAAQ,EAC7B9rE,GAAO5jB,EAAIovF,GAAc,EAE7B,OAAQxrE,GACN,KAAK,EACH,OAAOyrE,EAAQrvF,KAAOmG,EAAMkN,IAAI4H,KAElC,KAAK,EACH,OAAOo0E,EAAQrvF,KAAOmG,EAAMkN,IAAI8H,UAElC,KAAK,EACH,OAAOk0E,EAAQrvF,KAAOmG,EAAMkN,IAAIqM,sBAElC,KAAK,EACH,OAAO2vE,EAAQrvF,KAAOmG,EAAMkN,IAAI6H,QAGpC,MAAM,IAAI5a,MAAM,wCAAwCsjB,MACvD,SAA6Bo7C,EAASh/D,GACvC,IAgBI+3C,EAhBA84C,EAA4B,GAC5BC,EAA4B,IAC5BC,EAAiC,IACjC1B,EAAUrwB,EAAQqwB,QAClBC,EAAYtwB,EAAQswB,UACpBW,EAAOjxB,EAAQ0wB,MACfN,EAAaa,EAAO,EACpBC,EAAkBD,EAAO,EACzBV,EAAcU,EAAO,EACrBvzD,EAAQjxB,KAAK+hB,OAAOxtB,EAAIovF,GAAc,GAG1C,GAFA1yD,EAAQyyD,EAA+BC,EAAY1yD,EAAO2yD,EAASC,GAE/D5yD,EAAQm0D,EACV,OAAO7wF,GAAKA,EAAIovF,GAAc,EAIhC,IACI4B,EAAYC,EADZC,GAAc,EAEdC,EAAiB7B,EAAUC,GAAa,GAE5C,GAAsC,IAAlCD,EAAUY,GAAiB,IAA8C,IAAlCZ,EAAUY,GAAiB,GAAU,CAC9EgB,GAAc,EACd,IAAIE,EAAqB9B,EAAUY,GAAiB,GAChDmB,EAAqB/B,EAAUY,GAAiB,GACpDc,EAAad,EAAkB,EAC/B,IAAIoB,EAAS/B,EAAc,EAE3B,IAAKx3C,EAAI,EAAGA,EAAIrb,EAAOqb,IAAKi5C,GAAc,EAAGM,GAAU,EAGrD,GAFAL,EAAgB3B,EAAU0B,GAEtB1B,EAAUgC,GAAQ,KAAOH,GAAkBF,EAAc,KAAOG,GAA2C,IAArBH,EAAc,IAAiC,IAArBA,EAAc,IAAYA,EAAc,KAAOI,EAAoB,CACjLt5C,EAAI84C,EACNK,GAAc,EAEdx0D,EAAQqb,EAGV,OAKN,GAAIm5C,EAAa,CACfx0D,EAAQjxB,KAAK+X,IAAIkZ,EAAOq0D,GACxB,IAAIQ,EAAY,IAAI/lB,aAAqB,EAAR9uC,GAGjC,IAFAs0D,EAAad,EAERn4C,EAAI,EAAGA,EAAIrb,EAAOqb,IAAKi5C,GAAc,EACxCC,EAAgB3B,EAAU0B,GAC1BO,EAAUx5C,GAAK,GAAKk5C,EAAc,GAClCM,EAAqB,GAAVx5C,GAAK,IAAUk5C,EAAc,GAG1C5B,EAAQxmF,OAAOumF,EAAoB,EAAR1yD,EAAWv2B,EAAMkN,IAAI2M,6BAChDsvE,EAAUzmF,OAAOumF,EAAoB,EAAR1yD,EAAW,CAACy0D,EAAgBC,EAAoBC,EAAoBE,QAC5F,CACL70D,EAAQjxB,KAAK+X,IAAIkZ,EAAOo0D,GACxB,IAAIU,EAAS,GAEb,IAAKz5C,EAAI,EAAGA,EAAIrb,EAAOqb,IAAK,CAC1Bk5C,EAAgB3B,EAAUY,GAAmBn4C,GAAK,IAClD,IAAI05C,EAAanC,EAAUC,GAAex3C,GAAK,IAAI,GACnDy5C,EAAOlwF,KAAK,CACV4F,KAAMuqF,EAAWvqF,KACjB82C,MAAOyzC,EAAWzzC,MAClBC,OAAQwzC,EAAWxzC,OACnB9iC,UAAW81E,IAIf5B,EAAQxmF,OAAOumF,EAAoB,EAAR1yD,EAAWv2B,EAAMkN,IAAIsM,4BAChD2vE,EAAUzmF,OAAOumF,EAAoB,EAAR1yD,EAAW,CAAC80D,IAG3C,OAAOpC,EAAa,KAEtBP,EAASY,EAAc,CAACtpF,EAAMkN,IAAI4H,KAAM9U,EAAMkN,IAAI8H,UAAWhV,EAAMkN,IAAIuM,kBAAmBzZ,EAAMkN,IAAI6H,UAAU,SAAU8jD,GACtH,IAAIswB,EAAYtwB,EAAQswB,UACpBY,EAAkBlxB,EAAQ0wB,MAAQ,EACtC,OAAyC,IAAlCJ,EAAUY,GAAiB,IAA8C,IAAlCZ,EAAUY,GAAiB,MACxE,SAA2BlxB,EAASh/D,GACrC,IAAIqvF,EAAUrwB,EAAQqwB,QAClBC,EAAYtwB,EAAQswB,UACpBF,EAAapwB,EAAQ0wB,MAAQ,EAC7B9rE,GAAO5jB,EAAIovF,GAAc,EAE7B,OAAQxrE,GACN,KAAK,EACH,OAAOyrE,EAAQrvF,KAAOmG,EAAMkN,IAAI4H,KAElC,KAAK,EACH,GAAIo0E,EAAQrvF,KAAOmG,EAAMkN,IAAI8H,UAC3B,OAAO,EAGT,IAAI+0E,EAAkBlxB,EAAQ0wB,MAAQ,EAClC0B,EAAqB9B,EAAUY,GAAiB,GAChDmB,EAAqB/B,EAAUY,GAAiB,GAEpD,OAAIZ,EAAUtvF,GAAG,KAAOoxF,GAA0C,IAApB9B,EAAUtvF,GAAG,IAAgC,IAApBsvF,EAAUtvF,GAAG,IAAYsvF,EAAUtvF,GAAG,KAAOqxF,EAMtH,KAAK,EACH,GAAIhC,EAAQrvF,KAAOmG,EAAMkN,IAAIuM,kBAC3B,OAAO,EAGT,IAAI8xE,EAAa1yB,EAAQ0wB,MAAQ,EAC7BiC,EAAgBrC,EAAUoC,GAAY,GAE1C,OAAIpC,EAAUtvF,GAAG,KAAO2xF,EAM1B,KAAK,EACH,OAAOtC,EAAQrvF,KAAOmG,EAAMkN,IAAI6H,QAGpC,MAAM,IAAI5a,MAAM,oCAAoCsjB,MACnD,SAAUo7C,EAASh/D,GACpB,IAAI4xF,EAAsB,EACtBC,EAAsB,IACtBxC,EAAUrwB,EAAQqwB,QAClBC,EAAYtwB,EAAQswB,UACpBW,EAAOjxB,EAAQ0wB,MACfN,EAAaa,EAAO,EACpBC,EAAkBD,EAAO,EACzByB,EAAazB,EAAO,EACpB0B,EAAgBrC,EAAUoC,GAAY,GACtCN,EAAqB9B,EAAUY,GAAiB,GAChDmB,EAAqB/B,EAAUY,GAAiB,GAChDxzD,EAAQjxB,KAAK+X,IAAI/X,KAAK+hB,OAAOxtB,EAAIovF,GAAc,GAAIyC,GAEvD,GAAIn1D,EAAQk1D,EACV,OAAO5xF,GAAKA,EAAIovF,GAAc,EAMhC,IAHA,IAAImC,EAAY,IAAI/lB,aAAqB,EAAR9uC,GAC7Bs0D,EAAad,EAERn4C,EAAI,EAAGA,EAAIrb,EAAOqb,IAAKi5C,GAAc,EAAG,CAC/C,IAAIC,EAAgB3B,EAAU0B,GAC9BO,EAAUx5C,GAAK,GAAKk5C,EAAc,GAClCM,EAAqB,GAAVx5C,GAAK,IAAUk5C,EAAc,GAG1C,IAAInvF,EAAO,CAAC6vF,EAAeP,EAAoBC,EAAoBE,GAGnE,OAFAlC,EAAQxmF,OAAOumF,EAAoB,EAAR1yD,EAAWv2B,EAAMkN,IAAI0M,yBAChDuvE,EAAUzmF,OAAOumF,EAAoB,EAAR1yD,EAAW56B,GACjCstF,EAAa,KAEtBP,EAASY,EAAc,CAACtpF,EAAMkN,IAAIiJ,UAAWnW,EAAMkN,IAAIuJ,QAASzW,EAAMkN,IAAI4J,cAAe9W,EAAMkN,IAAI8J,SAAUhX,EAAMkN,IAAIkJ,SAAU,MAAM,SAA8ByiD,EAASh/D,GAC5K,IAAIqvF,EAAUrwB,EAAQqwB,QAClBC,EAAYtwB,EAAQswB,UACpBF,EAAapwB,EAAQ0wB,MAAQ,EAC7B9rE,GAAO5jB,EAAIovF,GAAc,EAE7B,OAAQxrE,GACN,KAAK,EACH,OAAOyrE,EAAQrvF,KAAOmG,EAAMkN,IAAIiJ,UAElC,KAAK,EACH,OAAO+yE,EAAQrvF,KAAOmG,EAAMkN,IAAIuJ,QAElC,KAAK,EACH,OAAOyyE,EAAQrvF,KAAOmG,EAAMkN,IAAI4J,cAElC,KAAK,EACH,GAAIoyE,EAAQrvF,KAAOmG,EAAMkN,IAAI8J,SAC3B,OAAO,EAGT,IAAI20E,EAAgB9yB,EAAQ0wB,MAAQ,EAChCqC,EAAmBzC,EAAUwC,GAAe,GAC5CE,EAAmB1C,EAAUwC,GAAe,GAEhD,OAAIxC,EAAUtvF,GAAG,KAAO+xF,GAAoBzC,EAAUtvF,GAAG,KAAOgyF,EAMlE,KAAK,EACH,OAAO3C,EAAQrvF,KAAOmG,EAAMkN,IAAIkJ,QAGpC,MAAM,IAAIjc,MAAM,uCAAuCsjB,MACtD,SAAUo7C,EAASh/D,GACpB,IAAIiyF,EAAqB,EACrBC,EAAqB,IACrB7C,EAAUrwB,EAAQqwB,QAClBC,EAAYtwB,EAAQswB,UACpBW,EAAOjxB,EAAQ0wB,MACfyC,EAAkBlC,EAAO,EACzB6B,EAAgB7B,EAAO,EACvBmC,EAAsBnC,EAAO,EAC7BoC,EAAiBpC,EAAO,EACxBqC,EAAgBrC,EAChB8B,EAAmBzC,EAAUwC,GAAe,GAC5CE,EAAmB1C,EAAUwC,GAAe,GAC5Cp1D,EAAQjxB,KAAK+X,IAAI/X,KAAK+hB,OAAOxtB,EAAImyF,GAAmB,GAAID,GAE5D,GAAIx1D,EAAQu1D,EACV,OAAOjyF,GAAKA,EAAImyF,GAAmB,EAGrC,IAAII,EAASJ,EAETA,GAAmB,GAAK9C,EAAQ8C,EAAkB,KAAO9C,EAAQyC,IAAkBzC,EAAQ8C,EAAkB,KAAO9C,EAAQ+C,IAAwB/C,EAAQ8C,EAAkB,KAAO9C,EAAQgD,IAAmBhD,EAAQ8C,EAAkB,KAAO9C,EAAQiD,IAAkBhD,EAAU6C,EAAkB,GAAG,KAAOJ,GAAoBzC,EAAU6C,EAAkB,GAAG,KAAOH,IAC7Wt1D,IACA61D,GAAU,GAKZ,IAFA,IAAIC,EAAWD,EAAS,EAEfx6C,EAAI,EAAGA,EAAIrb,EAAOqb,IACzBs3C,EAAQxmF,OAAO2pF,EAAU,GACzBlD,EAAUzmF,OAAO2pF,EAAU,GAC3BA,GAAY,EAGd,OAAOA,EAAW,KAepB5D,EAAe7sF,UAAY,CACzB,YACE,MAAMstF,EAAUrrF,KAAKg4B,MAAMqzD,QAC3B,IAAIrvF,EAAIgE,KAAK4rF,cACTtoE,EAAK+nE,EAAQnvF,OACbwrC,EAAQ1nC,KAAK0nC,MACbikD,EAAQ3rF,KAAK2rF,MAEjB,IAAKjkD,IAAUikD,GAAS3vF,EAAI,IAAMsnB,IAAOmoE,EAAaJ,EAAQrvF,IAE5D,YADAgE,KAAK4rF,cAAgBtoE,GAIvB,MAAM03C,EAAUh7D,KAAKg7D,QAErB,MAAOh/D,EAAIsnB,EAAI,CACb,GAAIqoE,EAAO,CACT,MAAMzd,GAAU,EAAIyd,EAAMV,WAAWjwB,EAASh/D,GAE9C,GAAIkyE,EAAS,CACXlyE,IACA,SAQF,GALAA,GAAI,EAAI2vF,EAAMT,WAAWlwB,EAASh/D,EAAI,GACtCsnB,EAAK+nE,EAAQnvF,OACbyvF,EAAQ,KACRjkD,EAAQ,KAEJ1rC,GAAKsnB,EACP,MAIJokB,GAASA,GAAS+jD,GAAcJ,EAAQrvF,IAEnC0rC,IAAS5rC,MAAMmqB,QAAQyhB,IAK5BszB,EAAQ0wB,MAAQ1vF,EAChBA,KAEI0rC,EAAMsjD,UAAY,EAAItjD,EAAMsjD,SAAShwB,IAKzC2wB,EAAQjkD,EACRA,EAAQ,MALNA,EAAQ,MARR1rC,IAgBJgE,KAAK0nC,MAAQA,EACb1nC,KAAK2rF,MAAQA,EACb3rF,KAAK4rF,cAAgB5vF,GAGvB,KAAK6B,EAAIC,GACPkC,KAAKg4B,MAAMqzD,QAAQ/tF,KAAKO,GACxBmC,KAAKg4B,MAAMszD,UAAUhuF,KAAKQ,GAE1BkC,KAAKyuF,aAGP,QACE,MAAOzuF,KAAK2rF,MAAO,CACjB,MAAMzvF,EAAS8D,KAAKg4B,MAAMqzD,QAAQnvF,OAClC8D,KAAK4rF,eAAgB,EAAI5rF,KAAK2rF,MAAMT,WAAWlrF,KAAKg7D,QAAS9+D,GAC7D8D,KAAK2rF,MAAQ,KACb3rF,KAAK0nC,MAAQ,KAEb1nC,KAAKyuF,cAIT,QACEzuF,KAAK0nC,MAAQ,KACb1nC,KAAK2rF,MAAQ,KACb3rF,KAAK4rF,cAAgB,IAIlBhB,EAzeY,GA4ejB8D,EAAgB,WAClB,SAASA,EAAc12D,GACrBh4B,KAAKg4B,MAAQA,EAcf,OAXA02D,EAAc3wF,UAAY,CACxB,KAAKF,EAAIC,GACPkC,KAAKg4B,MAAMqzD,QAAQ/tF,KAAKO,GACxBmC,KAAKg4B,MAAMszD,UAAUhuF,KAAKQ,IAG5B,UAEA,WAGK4wF,EAhBW,GAmBhB19D,EAAe,WACjB,IAAI29D,EAAa,IACbC,EAAmBD,EAAa,EAEpC,SAAS39D,EAAatmB,EAAQmkF,EAAYnlF,GACxC1J,KAAK8uF,YAAcD,EACnB7uF,KAAKqrF,QAAU,GACfrrF,KAAKsrF,UAAY,GAGftrF,KAAK+uF,UADHF,GAAyB,WAAXnkF,EACC,IAAIkgF,EAAe5qF,MAEnB,IAAI0uF,EAAc1uF,MAGrCA,KAAKgvF,aAAeruF,OAAOY,OAAO,MAClCvB,KAAKivF,aAAe,EACpBjvF,KAAK0J,UAAYA,EACjB1J,KAAK0K,OAASA,EACd1K,KAAKkvF,OAAS,EACdlvF,KAAKmvF,UAAYN,EAAa,KAAO3qF,QAAQ9E,UAgH/C,OA7GA4xB,EAAajzB,UAAY,CACvB,aACE,OAAOiC,KAAKsrF,UAAUpvF,QAGxB,YACE,OAAO8D,KAAKmvF,WAAanvF,KAAK8uF,YAAYM,OAG5C,kBACE,OAAOpvF,KAAKivF,aAAejvF,KAAK9D,QAGlC,MAAM2B,EAAIC,GACRkC,KAAK+uF,UAAUzxF,KAAKO,EAAIC,GACxBkC,KAAKkvF,SAEDlvF,KAAK8uF,cACH9uF,KAAKkvF,QAAUP,GAER3uF,KAAKkvF,QAAUN,IAAqB/wF,IAAOsE,EAAMkN,IAAI6H,SAAWrZ,IAAOsE,EAAMkN,IAAIkJ,WAD1FvY,KAAKuxB,SAOX,cAAc/a,GACRA,KAAcxW,KAAKgvF,eAIvBhvF,KAAKgvF,aAAax4E,IAAc,EAChCxW,KAAK2xB,MAAMxvB,EAAMkN,IAAImH,WAAY,CAACA,MAGpC,gBAAgBw4E,GACd,IAAK,IAAIxtF,KAAOwtF,EACdhvF,KAAKqvF,cAAc7tF,IAIvB,UAAUuvB,GACR,GAAMA,aAAkBC,EAAxB,CAKArwB,OAAOixE,OAAO5xE,KAAKgvF,aAAcj+D,EAAOi+D,cAExC,IAAK,IAAIhzF,EAAI,EAAGsnB,EAAKyN,EAAO70B,OAAQF,EAAIsnB,EAAItnB,IAC1CgE,KAAK2xB,MAAMZ,EAAOs6D,QAAQrvF,GAAI+0B,EAAOu6D,UAAUtvF,SAP/C,EAAImG,EAAMgF,MAAM,qDAWpB,QACE,MAAO,CACLkkF,QAASrrF,KAAKqrF,QACdC,UAAWtrF,KAAKsrF,UAChBpvF,OAAQ8D,KAAK9D,SAIjB,iBACE,MAAMozF,EAAY,IACZ,QACJjE,EAAO,UACPC,EAAS,OACTpvF,GACE8D,KAEJ,IAAK,IAAIhE,EAAI,EAAGA,EAAIE,EAAQF,IAC1B,OAAQqvF,EAAQrvF,IACd,KAAKmG,EAAMkN,IAAIwM,wBACf,KAAK1Z,EAAMkN,IAAIyM,6BACf,KAAK3Z,EAAMkN,IAAIqM,sBACb,MAAM0X,EAAMk4D,EAAUtvF,GAAG,GAGpBo3B,EAAIm8D,QACPD,EAAUhyF,KAAK81B,EAAIlwB,KAAKkd,QAG1B,MAIN,OAAOkvE,GAGT,MAAM9iE,GAAY,GAChBxsB,KAAK+uF,UAAUx9D,QACf,MAAMr1B,EAAS8D,KAAK9D,OACpB8D,KAAKivF,cAAgB/yF,EAErB8D,KAAK8uF,YAAYU,QAAQ,CACvBnE,QAASrrF,KAAKqrF,QACdC,UAAWtrF,KAAKsrF,UAChB9+D,YACAtwB,UACC,EAAG8D,KAAKyvF,YAEXzvF,KAAKgvF,aAAeruF,OAAOY,OAAO,MAClCvB,KAAKqrF,QAAQnvF,OAAS,EACtB8D,KAAKsrF,UAAUpvF,OAAS,EACxB8D,KAAKkvF,OAAS,EACdlvF,KAAK+uF,UAAU76D,UAIZlD,EApIU,GAuInB11B,EAAQ01B,aAAeA,GAIjB,SAAUjxB,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQo1B,sBAAmB,EAE3B,IAAIvuB,EAAQhC,EAAoB,GAE5BuvF,EAAQvvF,EAAoB,IAE5BiC,EAAcjC,EAAoB,GAElCwvF,EAASxvF,EAAoB,IAE7ByvF,EAAazvF,EAAoB,IAEjCsC,EAActC,EAAoB,GAElC0vF,EAAW1vF,EAAoB,IAE/B2vF,EAAkB3vF,EAAoB,IAEtC4vF,EAAW5vF,EAAoB,IAE/BmuB,EAAUnuB,EAAoB,IAE9B6vF,EAAQ7vF,EAAoB,IAE5B82B,EAAc92B,EAAoB,IAElCsnB,EAAUtnB,EAAoB,IAE9B8vF,EAAa9vF,EAAoB,IAEjC+vF,EAAW/vF,EAAoB,IAE/BsuB,EAAYtuB,EAAoB,IAEhC+2B,EAAe/2B,EAAoB,IAEnCgwF,EAAchwF,EAAoB,IAElCouB,EAAiBpuB,EAAoB,IAErCiwF,EAASjwF,EAAoB,IAE7BuwB,EAAmB,WACrB,MAAM2/D,EAAiC,CACrCrnF,cAAe,EACfC,iBAAiB,EACjBC,cAAc,EACdC,iBAAiB,EACjBC,qBAAqB,GAGvB,SAASsnB,GAAiB,KACxBlmB,EAAI,QACJ1H,EAAO,UACP4G,EAAS,UACT6lB,EAAS,UACTN,EAAS,iBACTC,EAAgB,iBAChBC,EAAgB,QAChBwB,EAAU,KAAI,mBACdvB,IAEApvB,KAAKwK,KAAOA,EACZxK,KAAK8C,QAAUA,EACf9C,KAAK0J,UAAYA,EACjB1J,KAAKuvB,UAAYA,EACjBvvB,KAAKivB,UAAYA,EACjBjvB,KAAKkvB,iBAAmBA,EACxBlvB,KAAKmvB,iBAAmBA,EACxBnvB,KAAK2wB,QAAUA,GAAW0/D,EAC1BrwF,KAAKovB,mBAAqBA,EAC1BpvB,KAAKswF,kBAAmB,EAExBtwF,KAAKuwF,iBAAmBzrF,UACtB,GAAI9E,KAAKkvB,iBAAiB7I,IAAItnB,GAC5B,OAAOiB,KAAKkvB,iBAAiBpuB,IAAI/B,GAGnC,MAAMyxF,EAAiBxwF,KAAK8C,QAAQ2tF,eAAe,mBAAoB,CACrE1xF,SAEI2qD,EAAS8mC,EAAeE,YACxBxtF,QAAa,IAAIgB,SAAQ,SAAU9E,EAASyG,GAChD,SAAS8qF,IACPjnC,EAAO/hD,OAAOvB,MAAK,UAAU,MAC3BlF,EAAK,KACLoG,IAEIA,IAIJlI,EAAQ8B,GACRyvF,OACC9qF,GAGL8qF,OAOF,OAJIztF,EAAK0tF,kBAAoBzuF,EAAMuM,oBAAoBqE,MACrD/S,KAAKkvB,iBAAiBnP,IAAIhhB,EAAMmE,GAG3BA,GAIX,IAAI2tF,EAAwB,GACxBC,EAAmB,IAEvB,SAASC,IACP/wF,KAAKk0B,QAkBP,SAAS88D,EAAmB9vF,EAAO+vF,GAAe,GAChD,GAAIn1F,MAAMmqB,QAAQ/kB,GAAQ,CACxB,IAAK,IAAIlF,EAAI,EAAGsnB,EAAKpiB,EAAMhF,OAAQF,EAAIsnB,EAAItnB,IAAK,CAC9C,MAAMk1F,EAAUF,EAAmB9vF,EAAMlF,IAAI,GAE7C,GAAIk1F,EACF,OAAOA,EAKX,OADA,EAAI/uF,EAAMgF,MAAM,iCAAiCjG,GAC1C,cAGT,KAAK,EAAIkB,EAAYiiB,QAAQnjB,GAC3B,OAAI+vF,EACK,KAGF,cAGT,OAAQ/vF,EAAMnC,MACZ,IAAK,SACL,IAAK,aACH,MAAO,cAET,IAAK,WACH,MAAO,WAET,IAAK,SACH,MAAO,SAET,IAAK,UACH,MAAO,UAET,IAAK,SACH,MAAO,SAET,IAAK,UACH,MAAO,UAET,IAAK,aACH,MAAO,cAET,IAAK,YACH,MAAO,aAET,IAAK,YACH,MAAO,aAET,IAAK,YACH,MAAO,aAET,IAAK,aACH,MAAO,aAET,IAAK,YACH,MAAO,YAET,IAAK,MACH,MAAO,MAET,IAAK,aACH,MAAO,aAET,IAAK,QACH,MAAO,QAET,IAAK,aACH,MAAO,aAGX,OAAIkyF,EACK,OAGT,EAAI9uF,EAAMgF,MAAM,2BAA2BjG,EAAMnC,MAC1C,eA7FTgyF,EAAgBhzF,UAAY,CAC1B6yC,MAAO,WACL,UAAM5wC,KAAKmxF,QAAUL,KAIrB9wF,KAAKmxF,QAAU,EACRnxF,KAAKoxF,SAAWrmF,KAAKC,QAE9BkpB,MAAO,WACLl0B,KAAKoxF,QAAUrmF,KAAKC,MAAQ6lF,EAC5B7wF,KAAKmxF,QAAU,IAqFnB,IAAIE,EAAWntF,QAAQ9E,UACnBkyF,EAAiB,EACjBC,EAAkB,EAqlFtB,OAplFA7gE,EAAiB3yB,UAAY,CAC3B,MAAMyzF,EAAanB,GACjB,IAAIoB,EAAe9wF,OAAOY,OAAOvB,MAEjC,OADAyxF,EAAa9gE,QAAU6gE,EAChBC,GAGTvgE,cAAe,SAAwCb,GACrD,KAAMA,aAAqBjuB,EAAYwiB,MACrC,OAAO,EAGT,IAAIsT,EAAYv3B,OAAOY,OAAO,MAE1B8uB,EAAU9K,QACZ2S,EAAU7H,EAAU9K,QAAS,GAG/B,IAAImsE,EAAQ,CAACrhE,GACT7lB,EAAOxK,KAAKwK,KAEhB,MAAOknF,EAAMx1F,OAAQ,CACnB,IAAIiiC,EAAOuzD,EAAMvzF,QACbwzF,EAAgBxzD,EAAKr9B,IAAI,aAE7B,GAAI6wF,aAAyBvvF,EAAYwiB,KAAM,CAC7C,IAAIgtE,EAAoBD,EAAcxrE,UAEtC,IAAK,IAAInqB,EAAI,EAAGsnB,EAAKsuE,EAAkB11F,OAAQF,EAAIsnB,EAAItnB,IAAK,CAC1D,MAAMwF,EAAMowF,EAAkB51F,GAC9B,IAAI61F,EAAeF,EAAczrE,OAAO1kB,GAExC,GAAIqwF,aAAwBzvF,EAAY6H,IAAK,CAC3C,GAAIiuB,EAAU25D,EAAajpF,YACzB,SAGF,IACEipF,EAAernF,EAAKub,MAAM8rE,GAC1B,MAAOjsF,GACP,GAAIA,aAAcnD,EAAY+lB,qBAC5B,MAAM5iB,EAGR,GAAI5F,KAAK2wB,QAAQznB,aAAc,CACzB2oF,aAAwBzvF,EAAY6H,MACtCiuB,EAAU25D,EAAajpF,aAAc,GAGvC5I,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqBmR,kBAExC,EAAIva,EAAMgF,MAAM,wCAAwCvB,OACxD,SAGF,MAAMA,GAIV,KAAMisF,aAAwBzvF,EAAYwiB,MACxC,SAGEitE,EAAatsE,QACf2S,EAAU25D,EAAatsE,QAAS,GAGlC,MAAMusE,EAAKD,EAAa/wF,IAAI,MAE5B,GAAIgxF,aAAc1vF,EAAYuiB,MAC5B,GAAgB,WAAZmtE,EAAG/yF,KACL,OAAO,OAMX,QAAWmgB,IAAP4yE,GAAoBh2F,MAAMmqB,QAAQ6rE,GACpC,IAAK,IAAI3+D,EAAI,EAAG6H,EAAK82D,EAAG51F,OAAQi3B,EAAI6H,EAAI7H,IACtC,GAAI2+D,EAAG3+D,aAAc/wB,EAAYuiB,MAAuB,WAAfmtE,EAAG3+D,GAAGp0B,KAC7C,OAAO,GAOjB,IAAIgzF,EAAW5zD,EAAKr9B,IAAI,WAExB,GAAMixF,aAAoB3vF,EAAYwiB,KAAtC,CAIA,IAAIotE,EAAeD,EAAS5rE,UAE5B,IAAK,IAAInqB,EAAI,EAAGsnB,EAAK0uE,EAAa91F,OAAQF,EAAIsnB,EAAItnB,IAAK,CACrD,MAAMwF,EAAMwwF,EAAah2F,GACzB,IAAIi2F,EAAUF,EAAS7rE,OAAO1kB,GAE9B,GAAIywF,aAAmB7vF,EAAY6H,IAAK,CACtC,GAAIiuB,EAAU+5D,EAAQrpF,YACpB,SAGF,IACEqpF,EAAUznF,EAAKub,MAAMksE,GACrB,MAAOrsF,GACP,GAAIA,aAAcnD,EAAY+lB,qBAC5B,MAAM5iB,EAGR,GAAI5F,KAAK2wB,QAAQznB,aAAc,CACzB+oF,aAAmB7vF,EAAY6H,MACjCiuB,EAAU+5D,EAAQrpF,aAAc,GAGlC5I,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqBoR,gBAExC,EAAIxa,EAAMgF,MAAM,sCAAsCvB,OACtD,SAGF,MAAMA,GAIV,IAAK,EAAIxD,EAAYoiB,UAAUytE,GAA/B,CAIA,GAAIA,EAAQtrE,KAAKpB,MAAO,CACtB,GAAI2S,EAAU+5D,EAAQtrE,KAAKpB,OACzB,SAGF2S,EAAU+5D,EAAQtrE,KAAKpB,QAAS,EAGlC,IAAI2sE,EAAaD,EAAQtrE,KAAK7lB,IAAI,eAE9BoxF,aAAsB9vF,EAAYwiB,OAAUstE,EAAW3sE,OAAU2S,EAAUg6D,EAAW3sE,SACxFmsE,EAAMp0F,KAAK40F,GAEPA,EAAW3sE,QACb2S,EAAUg6D,EAAW3sE,QAAS,OAMtC,OAAO,GAGT,uBAAuB8K,EAAW8hE,EAAM71E,EAAO6U,EAAczsB,EAAM0tF,GACjE,IAAIzrE,EAAOwrE,EAAKxrE,KACZk0D,EAASl0D,EAAKyG,SAAS,UACvBy3D,EAAOl+D,EAAKyG,SAAS,QAGvBy3D,EADE/oF,MAAMmqB,QAAQ4+D,IAAyB,IAAhBA,EAAK3oF,OACvBiG,EAAMkM,KAAK6T,cAAc2iE,GAEzB,KAGT,IAAIwN,EAAQ1rE,EAAK7lB,IAAI,SAErB,GAAIuxF,EAAO,CACT,IAAIC,EAAe,CACjBzX,SACAgK,OACAvoE,QACAi2E,UAAU,EACVC,UAAU,GAERC,EAAeJ,EAAMvxF,IAAI,KACzB4xF,EAAa,MAEb,EAAItwF,EAAYiiB,QAAQouE,EAAc,kBACxCH,EAAaC,SAAWF,EAAMvxF,IAAI,OAAQ,EAC1CwxF,EAAaE,SAAWH,EAAMvxF,IAAI,OAAQ,EAEtCuxF,EAAMhsE,IAAI,QACZqsE,QAAmB1yF,KAAK2yF,gBAAgB,CACtCxY,GAAIkY,EAAMvxF,IAAI,MACduvB,gBAKF/T,GAASA,EAAMs2E,WACjBF,EAAaA,GAAcz7D,EAAY2B,WAAWC,WAAWC,IAC7Dxc,EAAMs2E,SAAWF,EAAW35D,OAAOzc,EAAMs2E,SAAU,IAGrDzhE,EAAaQ,MAAMxvB,EAAMkN,IAAI8L,WAAY,CAACm3E,IAI5C,OADAnhE,EAAaQ,MAAMxvB,EAAMkN,IAAI4L,sBAAuB,CAAC4/D,EAAQgK,IACtD7kF,KAAKiL,gBAAgB,CAC1B1B,OAAQ4oF,EACRztF,OACA2rB,UAAW1J,EAAK7lB,IAAI,cAAgBuvB,EACpCc,eACAihE,iBACChsF,MAAK,WACN+qB,EAAaQ,MAAMxvB,EAAMkN,IAAI6L,oBAAqB,IAE9Cm3E,GACFlhE,EAAaQ,MAAMxvB,EAAMkN,IAAI+L,SAAU,CAACk3E,QAK9C,8BAA6B,UAC3BjiE,EAAS,MACTwiE,EAAK,SACLC,GAAW,EAAK,aAChB3hE,EAAY,SACZ2X,EAAQ,gBACRiqD,IAEA,IAAIpsE,EAAOksE,EAAMlsE,KACjB,MAAMqsE,EAAWrsE,EAAKpB,MACtB,IAAIgrD,EAAI5pD,EAAK7lB,IAAI,QAAS,KACtBsxD,EAAIzrC,EAAK7lB,IAAI,SAAU,KAE3B,IAAMyvE,KAAK,EAAIpuE,EAAMkL,OAAOkjE,KAASne,KAAK,EAAIjwD,EAAMkL,OAAO+kD,GAEzD,YADA,EAAIjwD,EAAMgF,MAAM,iDAIlB,IAAI6B,EAAehJ,KAAK2wB,QAAQ3nB,aAEhC,IAAsB,IAAlBA,GAAuBunE,EAAIne,EAAIppD,EAEjC,YADA,EAAI7G,EAAMgF,MAAM,wDAIlB,IACIghD,EAASrqD,EADT0tF,EAAY7kE,EAAK7lB,IAAI,YAAa,QAAS,EAG/C,GAAI0qF,EAAW,CACb,IAAIxxC,EAAQrzB,EAAK7lB,IAAI,QAAS,KAC1Bm5C,EAAStzB,EAAK7lB,IAAI,SAAU,KAC5BmyF,EAAkBj5C,EAAQ,GAAK,EAC/Bk5C,EAAWL,EAAMvrE,SAAS2rE,EAAkBh5C,GAAQ,GACpDsE,EAAS53B,EAAKyG,SAAS,SAAU,KAmBrC,OAlBA+6B,EAAUioC,EAAO+C,SAASC,WAAW,CACnCF,WACAl5C,QACAC,SACAo5C,wBAAyBR,aAAiBprE,EAAQ4lB,aAClDimD,gBAAiB/0C,GAAUA,EAAO,GAAK,IAEzC4J,EAAQonC,SAAWzmD,EACnBhrC,EAAO,CAACqqD,GACRh3B,EAAaQ,MAAMxvB,EAAMkN,IAAIqM,sBAAuB5d,QAEhDgrC,GACFiqD,EAAgBhzE,IAAI+oB,EAAUkqD,EAAU,CACtCn1F,GAAIsE,EAAMkN,IAAIqM,sBACd5d,UAON,IAAIy1F,EAAW5sE,EAAK7lB,IAAI,QAAS,QAAS,EACtCsnD,EAAOzhC,EAAK7lB,IAAI,UAAW,EAC3B0yF,EAAyB,IAE7B,GAAIV,IAAaS,IAAanrC,GAAQmoB,EAAIne,EAAIohC,EAAwB,CACpE,MAAMC,EAAW,IAAIrD,EAAO+C,SAAS,CACnC3oF,KAAMxK,KAAKwK,KACX4vE,IAAK/pD,EACLwiE,QACAC,WACA1jE,mBAAoBpvB,KAAKovB,qBAI3B,OAFA+4B,EAAUsrC,EAASC,iBAAgB,QACnCviE,EAAaQ,MAAMxvB,EAAMkN,IAAIwM,wBAAyB,CAACssC,IAIzD,IAAI5iC,EAAQ,OAAOvlB,KAAKuvB,UAAU2zD,cAC9ByQ,GAAgB,EAEhB3zF,KAAKswF,iBACP/qE,EAAQ,GAAGvlB,KAAKuvB,UAAUqkE,uBAAuBruE,IACxCytE,IACTW,EAAgB3zF,KAAKmvB,iBAAiB0kE,YAAYb,EAAUhzF,KAAK0J,WAE7DiqF,IACFpuE,EAAQ,GAAGvlB,KAAKuvB,UAAUqkE,cAAcruE,MAI5C4L,EAAak+D,cAAc9pE,GAC3BznB,EAAO,CAACynB,EAAOgrD,EAAGne,GAElB,MAAM0hC,EAAa1D,EAAO+C,SAASY,WAAW,CAC5CvpF,KAAMxK,KAAKwK,KACX4vE,IAAK/pD,EACLwiE,QACAC,WACA1jE,mBAAoBpvB,KAAKovB,qBACxBhpB,KAAKqtF,IAGN,GAFAtrC,EAAUsrC,EAASC,iBAAgB,GAE/B1zF,KAAKswF,iBACP,OAAOtwF,KAAK8C,QAAQsF,gBAAgB,YAAa,CAACmd,EAAO,eAAgB4iC,GAAU,CAACA,EAAQjlD,KAAKkd,SACxFuzE,EACT3zF,KAAK8C,QAAQK,KAAK,YAAa,CAACoiB,EAAO,QAAS4iC,GAAU,CAACA,EAAQjlD,KAAKkd,SAI1EpgB,KAAK8C,QAAQK,KAAK,MAAO,CAACoiB,EAAOvlB,KAAK0J,UAAW,QAASy+C,GAAU,CAACA,EAAQjlD,KAAKkd,WAEjFvZ,MAAMC,IAGP,IAFA,EAAI3E,EAAMgF,MAAM,2BAA6BL,GAEzC9G,KAAKswF,iBACP,OAAOtwF,KAAK8C,QAAQsF,gBAAgB,YAAa,CAACmd,EAAO,eAAgB,OAChEouE,EACT3zF,KAAK8C,QAAQK,KAAK,YAAa,CAACoiB,EAAO,QAAS,OAIlDvlB,KAAK8C,QAAQK,KAAK,MAAO,CAACoiB,EAAOvlB,KAAK0J,UAAW,QAAS,SAIxD1J,KAAKswF,wBACDwD,EAGR3iE,EAAaQ,MAAMxvB,EAAMkN,IAAIuM,kBAAmB9d,GAE5CgrC,IACFiqD,EAAgBhzE,IAAI+oB,EAAUkqD,EAAU,CACtCn1F,GAAIsE,EAAMkN,IAAIuM,kBACd9d,SAGEk1F,KACF,EAAI7wF,EAAM4K,SAAS+lF,EAAU,0CAC7B9yF,KAAKmvB,iBAAiB6kE,aAAahB,EAAUhzF,KAAK0J,WAE9CiqF,GACF3zF,KAAKmvB,iBAAiB8kE,QAAQjB,EAAU,CACtCztE,QACA1nB,GAAIsE,EAAMkN,IAAIuM,kBACd9d,YASVo2F,YAAa,SAAsC53E,EAAO+T,EAAWc,EAAczsB,EAAMyvF,GACvF,IAAIC,EAAe93E,EAAMxb,IAAI,KACzBuzF,EAAe,CACjBz8D,QAAStb,EAAMxb,IAAI,KAAK/B,KACxB6zF,SAAUt2E,EAAMxb,IAAI,OAElBwzF,EAAch4E,EAAMxb,IAAI,MAE5B,IAAI,EAAI2tB,EAAU8lE,eAAeD,GAAc,CAC7C,MAAME,EAAax0F,KAAKovB,mBAAmB7tB,OAAO+yF,GAIlD,IAHA,IAAIG,EAAc,IAAI54F,WAAW,KAC7Be,EAAM,IAAI4qE,aAAa,GAElBxrE,EAAI,EAAGA,EAAI,IAAKA,IACvBY,EAAI,GAAKZ,EAAI,IACbw4F,EAAW53F,EAAK,EAAGA,EAAK,GACxB63F,EAAYz4F,GAAc,IAATY,EAAI,GAAW,EAGlCy3F,EAAaI,YAAcA,EAG7B,OAAOz0F,KAAK00F,iBAAiBrkE,EAAW+jE,EAAcC,EAAcljE,EAAczsB,EAAMyvF,EAAazsD,MAAMitD,UAG7G,iBAAiB92F,EAAIC,EAAMuyB,EAAW06D,EAAS6J,EAAazjE,EAAczsB,GACxE,MAAMmwF,EAAe,IAAItmE,EAAeyC,aAClC8jE,EAAiB,CAACF,EAAY9zF,IAAI,aAAcuvB,GAEhD0kE,EAAmB3yF,EAAYwiB,KAAK4B,MAAMxmB,KAAKwK,KAAMsqF,GAE3D,OAAO90F,KAAKiL,gBAAgB,CAC1B1B,OAAQwhF,EACRrmF,OACA2rB,UAAW0kE,EACX5jE,aAAc0jE,IACbzuF,MAAK,WACN,OAAO,EAAI2pF,EAASiF,oBAAoB,CACtC3J,QAASwJ,EAAaxJ,QACtBC,UAAWuJ,EAAavJ,WACvBsJ,EAAa92F,MACfsI,MAAK,SAAU6uF,GAChB9jE,EAAa+jE,gBAAgBL,EAAa7F,cAC1C79D,EAAaQ,MAAM9zB,EAAIo3F,KACtBnuF,IACD,KAAIA,aAAkB3E,EAAMmH,gBAA5B,CAIA,GAAItJ,KAAK2wB,QAAQznB,aAKf,OAJAlJ,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqBkR,0BAExC,EAAIta,EAAMgF,MAAM,yCAAyCL,OAI3D,MAAMA,MAIVquF,cAAe,SAAwC9kE,EAAW+kE,EAAUC,EAASlkE,EAAczsB,EAAMgjC,GACvG,IAAI4tD,EAOJ,OALIF,IACFA,EAAWA,EAASp3F,QACpBs3F,EAAWF,EAAS,GAAGr2F,MAGlBiB,KAAKu1F,SAASD,EAAUD,EAAShlE,GAAWjqB,KAAKk3B,GACjDA,EAAW9gB,KAAKg5E,YAIdl4D,EAAWm4D,cAAcz1F,KAAMqwB,EAAWc,EAAczsB,GAAM0B,MAAK,WACxE,OAAOk3B,KACNz2B,MAAMC,IACP9G,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqBqR,qBAEjC,IAAI84E,EAAe,CACxBt4D,WAAY,eACZ5gB,KAAM,IAAImzE,EAAOgG,UAAU,0BAA0B7uF,GACrD6f,KAAM2W,EAAW9gB,KACjBo5E,gBAAiB51F,KAAK2wB,QAAQvnB,wBAbzBk0B,GAgBRl3B,KAAKk3B,IACNoK,EAAMlrB,KAAO8gB,EAAW9gB,KACxB8gB,EAAWn6B,KAAKnD,KAAK8C,SACdw6B,EAAWF,cAItB,WAAWy4D,EAAOnuD,GAChB,MAAMlrB,EAAOkrB,EAAMlrB,KACbs5E,EAASt5E,EAAKu5E,cAAcF,GAElC,GAAIr5E,EAAKtZ,KAAM,CACb,MAAM8yF,KAAoBtuD,EAAMuuD,kBAAoB9zF,EAAMmM,kBAAkBoC,mBAExEslF,GAAgD,YAA9BtuD,EAAMwuD,eAAen3F,MAAsByd,EAAKvT,iBAAmBjJ,KAAK2wB,QAAQ1nB,kBACpGynB,EAAiBylE,eAAe35E,EAAMs5E,EAAQ91F,KAAK8C,SAIvD,OAAOgzF,GAGT,gBAAgBpuD,GACd,GAAIA,EAAMlrB,KACR,OAGF,MAAM1V,EAAS,IAAI3E,EAAMiM,YAAY,iEAErC,GAAIpO,KAAK2wB,QAAQznB,aAKf,OAJAlJ,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqBsR,sBAExC,EAAI1a,EAAMgF,MAAM,qBAAqBL,OAIvC,MAAMA,GAGRkQ,UAAW,SAAoCqZ,EAAW+lE,EAAQjlE,EAAczsB,EAAMyvF,GAKpF,IAJA,IAAIkC,EAAY,GACZC,EAAaF,EAAOjwE,UACpBtjB,EAAUqB,QAAQ9E,UAEbpD,EAAI,EAAGsnB,EAAKgzE,EAAWp6F,OAAQF,EAAIsnB,EAAItnB,IAAK,CACnD,MAAMwF,EAAM80F,EAAWt6F,GACjBkF,EAAQk1F,EAAOt1F,IAAIU,GAEzB,OAAQA,GACN,IAAK,OACH,MAEF,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH60F,EAAU/4F,KAAK,CAACkE,EAAKN,IACrB,MAEF,IAAK,OACH2B,EAAUA,EAAQuD,KAAK,IACdpG,KAAKm1F,cAAc9kE,EAAW,KAAMnvB,EAAM,GAAIiwB,EAAczsB,EAAMyvF,EAAazsD,OAAOthC,MAAK,SAAUg3B,GAC1GjM,EAAak+D,cAAcjyD,GAC3Bi5D,EAAU/4F,KAAK,CAACkE,EAAK,CAAC47B,EAAYl8B,EAAM,UAG5C,MAEF,IAAK,KACHm1F,EAAU/4F,KAAK,CAACkE,EAAKwvF,EAAmB9vF,KACxC,MAEF,IAAK,QACH,IAAI,EAAIkB,EAAYiiB,QAAQnjB,EAAO,QAAS,CAC1Cm1F,EAAU/4F,KAAK,CAACkE,GAAK,IACrB,OAGE,EAAIY,EAAYgiB,QAAQljB,IAC1B2B,EAAUA,EAAQuD,KAAK,IACdpG,KAAKk0F,YAAYhzF,EAAOmvB,EAAWc,EAAczsB,EAAMyvF,IAEhEkC,EAAU/4F,KAAK,CAACkE,GAAK,MAErB,EAAIW,EAAMgF,MAAM,0BAGlB,MAEF,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,KACL,IAAK,MACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACH,EAAIhF,EAAMiJ,MAAM,0BAA4B5J,GAC5C,MAEF,SACE,EAAIW,EAAMiJ,MAAM,kCAAoC5J,GACpD,OAIN,OAAOqB,EAAQuD,MAAK,WACdiwF,EAAUn6F,OAAS,GACrBi1B,EAAaQ,MAAMxvB,EAAMkN,IAAI2H,UAAW,CAACq/E,QAI/Cd,SAAU,SAAmCD,EAAU94E,EAAM6T,GAC3D,MAAMkmE,EAAY,IACTryF,QAAQ9E,QAAQ,IAAIs2F,EAAe,CACxCt4D,WAAY,eACZ5gB,KAAM,IAAImzE,EAAOgG,UAAU,SAASL,wBACpC3uE,KAAMnK,EACNo5E,gBAAiB51F,KAAK2wB,QAAQvnB,uBAIlC,IAAIisF,EACA7qF,EAAOxK,KAAKwK,KAEhB,GAAIgS,EAAM,CACR,KAAK,EAAIpa,EAAYkiB,OAAO9H,GAC1B,MAAM,IAAIra,EAAMiM,YAAY,4CAG9BinF,EAAU74E,MACL,CACL,IAAIg6E,EAAUnmE,EAAUvvB,IAAI,QAExB01F,IACFnB,EAAUmB,EAAQtwE,OAAOovE,IAI7B,IAAKD,EAAS,CACZ,MAAMtiC,EAAa,SAASuiC,GAAY94E,GAAQA,EAAK5T,+BAErD,IAAK5I,KAAK2wB,QAAQznB,eAAiBlJ,KAAKswF,iBAEtC,OADA,EAAInuF,EAAMgF,MAAS4rD,EAAH,KACTwjC,IAGTv2F,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqBuR,oBAExC,EAAI3a,EAAMgF,MAAS4rD,EAAH,iDAChBsiC,EAAU3kE,EAAiB+lE,sBAG7B,GAAIz2F,KAAKivB,UAAU5I,IAAIgvE,GACrB,OAAOr1F,KAAKivB,UAAUnuB,IAAIu0F,GAK5B,GAFA74E,EAAOhS,EAAKwlB,WAAWqlE,KAElB,EAAIjzF,EAAYgiB,QAAQ5H,GAC3B,OAAO+5E,IAGT,GAAI/5E,EAAK8gB,WACP,OAAO9gB,EAAK8gB,WAGd,IAAIo5D,GAAiB,EAAIv0F,EAAMS,2BAC3B+zF,EAAmB32F,KAAK42F,gBAAgBp6E,GAC5C,MAAM,WACJq6E,EAAU,KACVzgE,GACEugE,EACJ,IACIG,EA8CAC,EA/CAC,GAAe,EAAI50F,EAAYkiB,OAAO+wE,GAO1C,GAJI2B,IACFF,EAASzB,EAAQzsF,YAGfwtB,IAAQ,EAAIh0B,EAAYgiB,QAAQyyE,GAAa,CAC1CA,EAAWI,cACdJ,EAAWI,YAAct2F,OAAOY,OAAO,OAGzC,IAAI01F,EAAcJ,EAAWI,YAE7B,GAAIA,EAAY7gE,GAAO,CACrB,IAAI8gE,EAAeD,EAAY7gE,GAAMlP,SAErC,GAAI8vE,GAAgBE,GAAgBl3F,KAAKivB,UAAU5I,IAAI6wE,GAErD,OADAl3F,KAAKivB,UAAUhI,SAASouE,EAAS6B,GAC1Bl3F,KAAKivB,UAAUnuB,IAAIu0F,QAG5B4B,EAAY7gE,GAAQ,CAClB0gE,OAAQnH,EAAOwH,KAAKC,aAIpBJ,IACFC,EAAY7gE,GAAMlP,SAAWmuE,GAG/ByB,EAASG,EAAY7gE,GAAM0gE,OAGzBE,EACFh3F,KAAKivB,UAAUlI,IAAIsuE,EAASqB,EAAe7zF,UAEtCi0F,IACHA,EAAS92F,KAAKuvB,UAAU2zD,eAG1BljF,KAAKivB,UAAUlI,IAAI,MAAM+vE,EAAUJ,EAAe7zF,WAGpD,EAAIV,EAAM4K,QAAQ+pF,EAAQ,iCAC1Bt6E,EAAK4gB,WAAa,GAAGp9B,KAAKuvB,UAAUqkE,eAAekD,IACnDt6E,EAAK8gB,WAAao5D,EAAe7zF,QAGjC,IACEk0F,EAAoB/2F,KAAKq3F,cAAcV,GACvC,MAAO/uF,GACPmvF,EAAoB7yF,QAAQ2B,OAAO+B,GAmCrC,OAhCAmvF,EAAkB3wF,KAAK+2B,IACrB,QAAgCje,IAA5Bie,EAAem6D,SAAwB,CACzC,IAAIC,EAAgB/sF,EAAKC,MAAMo1B,UAC/B03D,EAAcp6D,EAAem6D,WAAY,EAG3CZ,EAAet3F,QAAQ,IAAIs2F,EAAe,CACxCt4D,WAAY5gB,EAAK4gB,WACjB5gB,KAAM2gB,EACNxW,KAAMnK,EACNo5E,gBAAiB51F,KAAK2wB,QAAQvnB,yBAE/BvC,MAAMC,IACP9G,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqBwR,qBAGxC,IACE,IAAIy6E,EAAYX,GAAcA,EAAW/1F,IAAI,aACzC82B,EAAU4/D,GAAaA,EAAU12F,IAAI,WACrCw2F,GAAW,EAAI3H,EAAO8H,aAAad,EAAiBtzE,KAAMuU,GAAWA,EAAQ74B,MAC7Ew4F,EAAgB/sF,EAAKC,MAAMo1B,UAC/B03D,EAAcD,IAAY,EAC1B,MAAO1xF,IAET8wF,EAAet3F,QAAQ,IAAIs2F,EAAe,CACxCt4D,WAAY5gB,EAAK4gB,WACjB5gB,KAAM,IAAImzE,EAAOgG,UAAU7uF,aAAkBxK,MAAQwK,EAAO6B,QAAU7B,GACtE6f,KAAMnK,EACNo5E,gBAAiB51F,KAAK2wB,QAAQvnB,yBAG3BstF,EAAe7zF,SAGxB,UAAUsuB,EAActzB,EAAIC,EAAM45F,GAAc,GAC9C,IAAIC,EAAYxmE,EAAaj1B,OAAS,EAMtC,GAJK4B,IACHA,EAAO,IAGL65F,EAAY,GAAKxmE,EAAak6D,QAAQsM,KAAex1F,EAAMkN,IAAI6M,cAC7Dw7E,KACF,EAAIv1F,EAAMgF,MAAM,8BAA8BtJ,+BAC9CszB,EAAaQ,MAAMxvB,EAAMkN,IAAI4H,KAAM,OAGrCka,EAAaQ,MAAMxvB,EAAMkN,IAAI6M,cAAe,CAAC,CAACre,GAAKC,IAE/C45F,GACFvmE,EAAaQ,MAAMxvB,EAAMkN,IAAI6H,QAAS,UAEnC,CACL,IAAI0gF,EAASzmE,EAAam6D,UAAUqM,GACpCC,EAAO,GAAGt6F,KAAKO,GACf/B,MAAMiC,UAAUT,KAAKe,MAAMu5F,EAAO,GAAI95F,KAI1C,iBAAgB,GACdq8E,EAAE,UACF9pD,IAEA,OAAO,IAAInsB,QAAQ9E,IACjBA,EAAQ63B,EAAY2B,WAAW/D,MAAMslD,EAAIn6E,KAAKwK,KAAM6lB,EAAWrwB,KAAKovB,uBACnEvoB,MAAMC,IACP,GAAIA,aAAkB3E,EAAMmH,eAC1B,OAAO,KAGT,GAAItJ,KAAK2wB,QAAQznB,aAKf,OAJAlJ,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqByR,mBAExC,EAAI7a,EAAMgF,MAAM,2CAA2CL,OACpD,KAGT,MAAMA,KAIV,mBAAmBqqB,EAActzB,EAAIC,EAAMq8E,EAAI73B,EAAUjyB,EAAW3rB,GAClE,IACIqmF,EADA8M,EAAc/5F,EAAKA,EAAK5B,OAAS,GAGrC,IAAI,EAAIkG,EAAYiiB,QAAQwzE,KAAiB9M,EAAUzoC,EAASxhD,IAAI+2F,EAAY94F,OAAQ,CACtF,IAAI4nB,GAAO,EAAIvkB,EAAYoiB,UAAUumE,GAAWA,EAAQpkE,KAAOokE,EAC3D+M,EAAUnxE,EAAK7lB,IAAI,eAEvB,GAAIg3F,IAAYxG,EAAgB,CAC9B,IAAI74D,EAAQ0hD,EAAGp8D,KAAOo8D,EAAGp8D,KAAKgb,OAAOj7B,EAAM,GAAK,KAChD,OAAOkC,KAAK+3F,iBAAiBl6F,EAAI46B,EAAOpI,EAAW06D,EAASpkE,EAAMwK,EAAczsB,GAC3E,GAAIozF,IAAYvG,EAAiB,CACtC,IAAIyG,EAAUrxE,EAAK7lB,IAAI,WACnB+5E,EAASl0D,EAAKyG,SAAS,UAG3B,OAFA29D,EAAUgF,EAASkI,QAAQC,aAAaF,EAASnd,EAAQ76E,KAAKwK,KAAM6lB,EAAWrwB,KAAK8C,QAAS9C,KAAKovB,yBAClG+B,EAAaQ,MAAM9zB,EAAIktF,EAAQoN,SAIjC,MAAM,IAAIh2F,EAAMiM,YAAY,wBAAwB0pF,GAGtD,MAAM,IAAI31F,EAAMiM,YAAY,wBAAwBypF,IAGtD,iBAAgB,OACdtuF,EAAM,KACN7E,EAAI,UACJ2rB,EAAS,aACTc,EAAY,aACZihE,EAAe,OAKf,GAHA/hE,EAAYA,GAAajuB,EAAYwiB,KAAK2B,MAC1C6rE,EAAeA,GAAgB,IAAIgG,GAE9BjnE,EACH,MAAM,IAAI70B,MAAM,qDAGlB,IAAIuQ,EAAO7M,KACPwK,EAAOxK,KAAKwK,KAChB,IAAIktF,GAAc,EAClB,MAAM3E,EAAkB,IAAI77D,EAAairD,gBAEzC,IAAIkW,EAAQhoE,EAAUvvB,IAAI,YAAcsB,EAAYwiB,KAAK2B,MAErD+7B,EAAWjyB,EAAUvvB,IAAI,YAAcsB,EAAYwiB,KAAK2B,MAExD4tE,EAAe,IAAImE,EAAalG,GAChCmG,EAAe,IAAIC,EAAsBjvF,EAAQiB,EAAM2pF,GACvDsE,EAAkB,IAAI1H,EAE1B,SAAS2H,EAAuBC,GAC9B,IAAK,IAAI38F,EAAI,EAAGsnB,EAAKi1E,EAAaK,iBAAkB58F,EAAIsnB,EAAItnB,IAC1Dm1B,EAAaQ,MAAMxvB,EAAMkN,IAAI6H,QAAS,IAI1C,OAAO,IAAIhT,SAAQ,SAAS20F,EAAYz5F,EAASyG,GAC/C,MAAM63B,EAAO,SAAU76B,GACrBqB,QAAQkB,IAAI,CAACvC,EAASsuB,EAAai+D,QAAQhpF,MAAK,WAC9C,IACEyyF,EAAYz5F,EAASyG,GACrB,MAAOD,GACPC,EAAOD,MAERC,IAGLnB,EAAKF,sBACLi0F,EAAgBvkE,QAChB,IAAI4kE,EAEA98F,EACAsnB,EACA62D,EAHA4e,EAAY,GAKhB,QAASD,EAAOL,EAAgB7nD,SAAU,CAGxC,GAFAmoD,EAAUj7F,KAAO,MAEZy6F,EAAa5wF,KAAKoxF,GACrB,MAGF,IAAIj7F,EAAOi7F,EAAUj7F,KACjBD,EAAKk7F,EAAUl7F,GAEnB,OAAa,EAALA,GACN,KAAKsE,EAAMkN,IAAIoL,aACb,IAAI1b,EAAOjB,EAAK,GAAGiB,KAEnB,GAAIA,EAAM,CACR,MAAMi6F,EAAajG,EAAgBkG,UAAUl6F,GAE7C,GAAIi6F,EAAY,CACd7nE,EAAaQ,MAAMqnE,EAAWn7F,GAAIm7F,EAAWl7F,MAC7CA,EAAO,KACP,UAsFJ,YAlFA4/B,EAAK,IAAIx5B,SAAQ,SAAUg1F,EAAgBC,GACzC,IAAKp6F,EACH,MAAM,IAAIoD,EAAMiM,YAAY,wCAG9B,IAAI+jF,EAAOkG,EAAMnyE,OAAOnnB,GAExB,GAAIozF,aAAgB/vF,EAAY6H,IAAK,CACnC,MAAM+uF,EAAajG,EAAgBxQ,SAAS4P,GAE5C,GAAI6G,EAGF,OAFA7nE,EAAaQ,MAAMqnE,EAAWn7F,GAAIm7F,EAAWl7F,WAC7Co7F,IAIF,MAAME,EAAcvsF,EAAKsiB,iBAAiB8+B,QAAQkkC,EAAMtlF,EAAKnD,WAE7D,GAAI0vF,EAIF,OAHAjoE,EAAak+D,cAAc+J,EAAY7zE,OACvC4L,EAAaQ,MAAMynE,EAAYv7F,GAAIu7F,EAAYt7F,WAC/Co7F,IAIF/G,EAAO3nF,EAAKub,MAAMosE,GAGpB,IAAKA,EAGH,OAFAhhE,EAAaQ,MAAM9zB,EAAIC,QACvBo7F,IAIF,KAAK,EAAI92F,EAAYoiB,UAAU2tE,GAC7B,MAAM,IAAIhwF,EAAMiM,YAAY,8BAG9B,MAAMiV,EAAO8uE,EAAKxrE,KAAK7lB,IAAI,WAE3B,KAAK,EAAIsB,EAAYiiB,QAAQhB,GAC3B,MAAM,IAAIlhB,EAAMiM,YAAY,sCAG9B,GAAkB,SAAdiV,EAAKtkB,KAMP,OALAo1F,EAAal9E,YACbpK,EAAK6nF,iBAAiBrkE,EAAW8hE,EAAM,KAAMhhE,EAAczsB,EAAMyvF,EAAazsD,MAAMitD,SAASvuF,MAAK,WAChG+tF,EAAaj9E,UACbgiF,MACCC,GAEE,GAAkB,UAAd91E,EAAKtkB,KAAT,CASA,GAAkB,OAAdskB,EAAKtkB,KAGd,MAAM,IAAIoD,EAAMiM,YAAY,6BAA6BiV,EAAKtkB,OAF9D,EAAIoD,EAAMiJ,MAAM,8BAKlB8tF,SAdErsF,EAAKwsF,uBAAuB,CAC1BhpE,YACAwiE,MAAOV,EACPhhE,eACA2X,SAAU/pC,EACVg0F,oBACC3sF,KAAK8yF,EAAgBC,MASzBtyF,OAAM,SAAUC,GACjB,KAAIA,aAAkB3E,EAAMmH,gBAA5B,CAIA,GAAIuD,EAAK8jB,QAAQznB,aAKf,OAJA2D,EAAK/J,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqBoR,oBAExC,EAAIxa,EAAMgF,MAAM,wCAAwCL,OAI1D,MAAMA,OAIV,KAAK3E,EAAMkN,IAAIuJ,QACb,IAAI0gF,EAAWx7F,EAAK,GAKpB,YAJA4/B,EAAK7wB,EAAKsoF,cAAc9kE,EAAWvyB,EAAM,KAAMqzB,EAAczsB,EAAMyvF,EAAazsD,OAAOthC,MAAK,SAAUg3B,GACpGjM,EAAak+D,cAAcjyD,GAC3BjM,EAAaQ,MAAMxvB,EAAMkN,IAAIuJ,QAAS,CAACwkB,EAAYk8D,QAIvD,KAAKn3F,EAAMkN,IAAIiJ,UACbo/E,GAAc,EACd,MAEF,KAAKv1F,EAAMkN,IAAIkJ,QACbm/E,GAAc,EACd,MAEF,KAAKv1F,EAAMkN,IAAImL,eACb,IAAIsuB,EAAWhrC,EAAK,GAAGgrC,SAEvB,GAAIA,EAAU,CACZ,MAAMkwD,EAAajG,EAAgBkG,UAAUnwD,GAE7C,GAAIkwD,EAAY,CACd7nE,EAAaQ,MAAMqnE,EAAWn7F,GAAIm7F,EAAWl7F,MAC7CA,EAAO,KACP,UAYJ,YARA4/B,EAAK7wB,EAAKwsF,uBAAuB,CAC/BhpE,YACAwiE,MAAO/0F,EAAK,GACZg1F,UAAU,EACV3hE,eACA2X,WACAiqD,qBAIJ,KAAK5wF,EAAMkN,IAAI8J,SACb,IAAKg7E,EAAazsD,MAAMlrB,KAAM,CAC5B3P,EAAK0sF,gBAAgBpF,EAAazsD,OAClC,SAGF5pC,EAAK,GAAK+O,EAAK2sF,WAAW17F,EAAK,GAAIq2F,EAAazsD,OAChD,MAEF,KAAKvlC,EAAMkN,IAAI+J,eACb,IAAK+6E,EAAazsD,MAAMlrB,KAAM,CAC5B3P,EAAK0sF,gBAAgBpF,EAAazsD,OAClC,SAGF,IAAI7qC,EAAMiB,EAAK,GACX27F,EAAiB,GACjBC,EAAY78F,EAAIX,OAChBwrC,EAAQysD,EAAazsD,MAEzB,IAAK1rC,EAAI,EAAGA,EAAI09F,IAAa19F,EAAG,CAC9B,IAAI29F,EAAU98F,EAAIb,IAEd,EAAImG,EAAMmL,UAAUqsF,GACtB79F,MAAMiC,UAAUT,KAAKe,MAAMo7F,EAAgB5sF,EAAK2sF,WAAWG,EAASjyD,KAC3D,EAAIvlC,EAAMkL,OAAOssF,IAC1BF,EAAen8F,KAAKq8F,GAIxB77F,EAAK,GAAK27F,EACV57F,EAAKsE,EAAMkN,IAAI8J,SACf,MAEF,KAAKhX,EAAMkN,IAAIgK,iBACb,IAAK86E,EAAazsD,MAAMlrB,KAAM,CAC5B3P,EAAK0sF,gBAAgBpF,EAAazsD,OAClC,SAGFvW,EAAaQ,MAAMxvB,EAAMkN,IAAI6J,UAC7Bpb,EAAK,GAAK+O,EAAK2sF,WAAW17F,EAAK,GAAIq2F,EAAazsD,OAChD7pC,EAAKsE,EAAMkN,IAAI8J,SACf,MAEF,KAAKhX,EAAMkN,IAAIiK,2BACb,IAAK66E,EAAazsD,MAAMlrB,KAAM,CAC5B3P,EAAK0sF,gBAAgBpF,EAAazsD,OAClC,SAGFvW,EAAaQ,MAAMxvB,EAAMkN,IAAI6J,UAC7BiY,EAAaQ,MAAMxvB,EAAMkN,IAAIoJ,eAAgB,CAAC3a,EAAKK,UACnDgzB,EAAaQ,MAAMxvB,EAAMkN,IAAImJ,eAAgB,CAAC1a,EAAKK,UACnDL,EAAK,GAAK+O,EAAK2sF,WAAW17F,EAAK,GAAIq2F,EAAazsD,OAChD7pC,EAAKsE,EAAMkN,IAAI8J,SACf,MAEF,KAAKhX,EAAMkN,IAAIwJ,qBACbs7E,EAAazsD,MAAMuuD,kBAAoBn4F,EAAK,GAC5C,MAEF,KAAKqE,EAAMkN,IAAIqK,kBASb,YARAgkB,EAAK7wB,EAAK8lF,gBAAgB,CACxBxY,GAAIr8E,EAAK,GACTuyB,cACCjqB,MAAK,SAAUssF,GACZA,IACFyB,EAAazsD,MAAMwuD,eAAiBxD,OAK1C,KAAKvwF,EAAMkN,IAAIoK,oBASb,YARAikB,EAAK7wB,EAAK8lF,gBAAgB,CACxBxY,GAAIr8E,EAAK,GACTuyB,cACCjqB,MAAK,SAAUssF,GACZA,IACFyB,EAAazsD,MAAMkyD,iBAAmBlH,OAK5C,KAAKvwF,EAAMkN,IAAIwK,aACbsgE,EAAKga,EAAazsD,MAAMwuD,eACxBp4F,EAAOq8E,EAAGphD,OAAOj7B,EAAM,GACvBD,EAAKsE,EAAMkN,IAAI6K,gBACf,MAEF,KAAK/X,EAAMkN,IAAIsK,eACbwgE,EAAKga,EAAazsD,MAAMkyD,iBACxB97F,EAAOq8E,EAAGphD,OAAOj7B,EAAM,GACvBD,EAAKsE,EAAMkN,IAAI4K,kBACf,MAEF,KAAK9X,EAAMkN,IAAI2K,YACbm6E,EAAazsD,MAAMwuD,eAAiBj/D,EAAY2B,WAAWC,WAAW6hD,KACtE58E,EAAOm5B,EAAY2B,WAAWC,WAAW6hD,KAAK3hD,OAAOj7B,EAAM,GAC3DD,EAAKsE,EAAMkN,IAAI6K,gBACf,MAEF,KAAK/X,EAAMkN,IAAI0K,cACbo6E,EAAazsD,MAAMkyD,iBAAmB3iE,EAAY2B,WAAWC,WAAW6hD,KACxE58E,EAAOm5B,EAAY2B,WAAWC,WAAW6hD,KAAK3hD,OAAOj7B,EAAM,GAC3DD,EAAKsE,EAAMkN,IAAI4K,kBACf,MAEF,KAAK9X,EAAMkN,IAAI+K,iBACb+5E,EAAazsD,MAAMwuD,eAAiBj/D,EAAY2B,WAAWC,WAAW8hD,KACtE78E,EAAOm5B,EAAY2B,WAAWC,WAAW8hD,KAAK5hD,OAAOj7B,EAAM,GAC3DD,EAAKsE,EAAMkN,IAAI6K,gBACf,MAEF,KAAK/X,EAAMkN,IAAI8K,mBACbg6E,EAAazsD,MAAMkyD,iBAAmB3iE,EAAY2B,WAAWC,WAAW8hD,KACxE78E,EAAOm5B,EAAY2B,WAAWC,WAAW8hD,KAAK5hD,OAAOj7B,EAAM,GAC3DD,EAAKsE,EAAMkN,IAAI4K,kBACf,MAEF,KAAK9X,EAAMkN,IAAI6K,gBACbi6E,EAAazsD,MAAMwuD,eAAiBj/D,EAAY2B,WAAWC,WAAWC,IACtEh7B,EAAOm5B,EAAY2B,WAAWC,WAAWC,IAAIC,OAAOj7B,EAAM,GAC1D,MAEF,KAAKqE,EAAMkN,IAAI4K,kBACbk6E,EAAazsD,MAAMkyD,iBAAmB3iE,EAAY2B,WAAWC,WAAWC,IACxEh7B,EAAOm5B,EAAY2B,WAAWC,WAAWC,IAAIC,OAAOj7B,EAAM,GAC1D,MAEF,KAAKqE,EAAMkN,IAAIyK,cAGb,GAFAqgE,EAAKga,EAAazsD,MAAMwuD,eAER,YAAZ/b,EAAGp7E,KAEL,YADA2+B,EAAK7wB,EAAKgtF,aAAa1oE,EAAchvB,EAAMkN,IAAIyK,cAAehc,EAAMq8E,EAAI73B,EAAUjyB,EAAW3rB,IAI/F5G,EAAOq8E,EAAGphD,OAAOj7B,EAAM,GACvBD,EAAKsE,EAAMkN,IAAI6K,gBACf,MAEF,KAAK/X,EAAMkN,IAAIuK,gBAGb,GAFAugE,EAAKga,EAAazsD,MAAMkyD,iBAER,YAAZzf,EAAGp7E,KAEL,YADA2+B,EAAK7wB,EAAKgtF,aAAa1oE,EAAchvB,EAAMkN,IAAIuK,gBAAiB9b,EAAMq8E,EAAI73B,EAAUjyB,EAAW3rB,IAIjG5G,EAAOq8E,EAAGphD,OAAOj7B,EAAM,GACvBD,EAAKsE,EAAMkN,IAAI4K,kBACf,MAEF,KAAK9X,EAAMkN,IAAIgL,YACb,IAAIy/E,EAAazpE,EAAUvvB,IAAI,WAE/B,IAAKg5F,EACH,MAAM,IAAI33F,EAAMiM,YAAY,6BAG9B,IAAI4pF,EAAU8B,EAAWh5F,IAAIhD,EAAK,GAAGiB,MAErC,IAAKi5F,EACH,MAAM,IAAI71F,EAAMiM,YAAY,2BAG9B,IAAIiM,EAAc01E,EAASkI,QAAQC,aAAaF,EAAS,KAAMxtF,EAAM6lB,EAAWxjB,EAAK/J,QAAS+J,EAAKuiB,oBAE/F2qE,EAAY1/E,EAAY89E,QAC5Br6F,EAAO,CAACi8F,GACRl8F,EAAKsE,EAAMkN,IAAIgL,YACf,MAEF,KAAKlY,EAAMkN,IAAI2H,UACb,IAAIgjF,EAAWl8F,EAAK,GAChBm8F,EAAY5pE,EAAUvvB,IAAI,aAE9B,KAAK,EAAIsB,EAAYgiB,QAAQ61E,KAAeA,EAAU5zE,IAAI2zE,EAASj7F,MACjE,MAGF,IAAIq3F,EAAS6D,EAAUn5F,IAAIk5F,EAASj7F,MAEpC,YADA2+B,EAAK7wB,EAAKmK,UAAUqZ,EAAW+lE,EAAQjlE,EAAczsB,EAAMyvF,IAG7D,KAAKhyF,EAAMkN,IAAI+H,OACf,KAAKjV,EAAMkN,IAAIgI,OACf,KAAKlV,EAAMkN,IAAIiI,QACf,KAAKnV,EAAMkN,IAAIkI,SACf,KAAKpV,EAAMkN,IAAImI,SACf,KAAKrV,EAAMkN,IAAIoI,UACf,KAAKtV,EAAMkN,IAAIqI,UACb7K,EAAKqtF,UAAU/oE,EAActzB,EAAIC,EAAM45F,GACvC,SAEF,KAAKv1F,EAAMkN,IAAIqL,UACf,KAAKvY,EAAMkN,IAAIsL,eACf,KAAKxY,EAAMkN,IAAIuL,mBACf,KAAKzY,EAAMkN,IAAIwL,wBACf,KAAK1Y,EAAMkN,IAAIyL,iBACf,KAAK3Y,EAAMkN,IAAI0L,YACf,KAAK5Y,EAAMkN,IAAI2L,UACb,SAEF,QACE,GAAa,OAATld,EAAe,CACjB,IAAK9B,EAAI,EAAGsnB,EAAKxlB,EAAK5B,OAAQF,EAAIsnB,EAAItnB,IACpC,GAAI8B,EAAK9B,aAAcoG,EAAYwiB,KACjC,MAIJ,GAAI5oB,EAAIsnB,EAAI,EACV,EAAInhB,EAAMgF,MAAM,wCAA0CtJ,GAC1D,WAMRszB,EAAaQ,MAAM9zB,EAAIC,GAGrBg7F,EACFp7D,EAAK2zD,IAIPqH,IACAt5F,QACCyH,MAAMC,IACP,KAAIA,aAAkB3E,EAAMmH,gBAA5B,CAIA,GAAItJ,KAAK2wB,QAAQznB,aAMf,OALAlJ,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqBC,qBAExC,EAAIrJ,EAAMgF,MAAM,6CAA6CzC,EAAK3F,gBAAqB+H,YACvF4xF,IAIF,MAAM5xF,MAIV,gBAAe,OACbyC,EAAM,KACN7E,EAAI,UACJ2rB,EAAS,aACT8jE,EAAe,KAAI,oBACnBroF,GAAsB,EAAK,iBAC3BC,GAAmB,EAAK,KACxBnB,EAAI,WACJuvF,EAAax5F,OAAOY,OAAO,QAE3B8uB,EAAYA,GAAajuB,EAAYwiB,KAAK2B,MAC1C4tE,EAAeA,GAAgB,IAAImE,EAAa,IAAI8B,GACpD,IAAIC,EAAmB,MACnBC,EAAc,CAChBviE,MAAO,GACPwiE,OAAQ55F,OAAOY,OAAO,OAEpBi5F,EAAkB,CACpBhoD,aAAa,EACbxzB,IAAK,GACLg7B,MAAO,EACPC,OAAQ,EACRwgD,UAAU,EACVC,iBAAkB,EAClBC,kBAAmB,EACnBC,iBAAkB,EAClBC,WAAY,EACZC,aAAcC,IACdC,kBAAmBD,IACnBE,mBAAoB,EACpBC,qBAAqB,EACrB/jF,UAAW,KACXm+E,SAAU,MAER6F,EAAe,GACfC,EAAqB,IACrBC,EAAyB,EACzBxuF,EAAO7M,KACPwK,EAAOxK,KAAKwK,KACZ6tF,EAAQ,KACZ,MAAMiD,EAAoB,IAAIpkE,EAAairD,gBAC3C,IACIoZ,EADAhD,EAAe,IAAIC,EAAsBjvF,EAAQiB,EAAM2pF,GAG3D,SAASqH,IACP,GAAIhB,EAAgBhoD,YAClB,OAAOgoD,EAGT,IAAIh+E,EAAO++E,EAAU/+E,KAEfA,EAAK4gB,cAAc+8D,IACvBA,EAAW39E,EAAK4gB,aAAc,EAC9Bk9D,EAAYC,OAAO/9E,EAAK4gB,YAAc,CACpCq+D,WAAYj/E,EAAKk/E,aACjBC,OAAQn/E,EAAKm/E,OACbC,QAASp/E,EAAKo/E,QACdnB,SAAUj+E,EAAKi+E,WAInBD,EAAgBlF,SAAW94E,EAAK4gB,WAChC,IAAIy+D,EAAM,CAACN,EAAUjC,SAAWiC,EAAUO,WAAY,EAAG,EAAGP,EAAUjC,SAAU,EAAGiC,EAAUQ,UAE7F,GAAIv/E,EAAKg5E,aAAe+F,EAAUjC,UAAY,KAAM,EAAIn3F,EAAM+K,cAAcquF,EAAUS,WAAY75F,EAAMoN,sBAAuB,CAC7H,MAAM0sF,EAAcz/E,EAAKqoE,KAAK,GAAKroE,EAAKqoE,KAAK,GAEzCoX,EAAc,IAChBJ,EAAI,IAAMI,EAAcV,EAAUS,WAAW,IAIjD,IAAIE,EAAM/5F,EAAMkM,KAAK8I,UAAUokF,EAAUY,IAAKh6F,EAAMkM,KAAK8I,UAAUokF,EAAUa,WAAYP,IAEzFrB,EAAgBrjF,UAAY+kF,EAEvB1/E,EAAKi+E,UAKRD,EAAgBxgD,MAAQvyC,KAAK8Z,KAAK26E,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IACjE1B,EAAgBvgD,OAAS,EACzBugD,EAAgBC,UAAW,IAN3BD,EAAgBxgD,MAAQ,EACxBwgD,EAAgBvgD,OAASxyC,KAAK8Z,KAAK26E,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAClE1B,EAAgBC,UAAW,GAO7B,IAAIr5E,EAAIm6E,EAAUc,eAAe,GAC7B77E,EAAI+6E,EAAUc,eAAe,GAC7BC,EAAa70F,KAAK8Z,KAAKH,EAAIA,EAAIZ,EAAIA,GACvCY,EAAIm6E,EAAUY,IAAI,GAClB37E,EAAI+6E,EAAUY,IAAI,GAClB,IAAII,EAAY90F,KAAK8Z,KAAKH,EAAIA,EAAIZ,EAAIA,GACtCg6E,EAAgBI,iBAAmB2B,EAAYD,EAC/C9B,EAAgBE,iBAAmB,EACnCF,EAAgBG,kBAAoB,EACpC,IAAIE,EAAar+E,EAAKq+E,WAAa,IAAOU,EAAUjC,SAiBpD,OAfIuB,GACFL,EAAgBK,WAAaA,EAC7BL,EAAgBM,aAAeD,EAAaM,EAC5CX,EAAgBQ,kBAAoBH,EAAaO,EACjDZ,EAAgBS,kBAAoBJ,EAAaQ,EACjDb,EAAgBU,qBAAuB1+E,EAAKggF,cAE5ChC,EAAgBK,WAAa,EAC7BL,EAAgBM,aAAeC,IAC/BP,EAAgBQ,kBAAoBD,IACpCP,EAAgBS,kBAAoB,EACpCT,EAAgBU,qBAAsB,GAGxCV,EAAgBhoD,aAAc,EACvBgoD,EAGT,SAASiC,EAAkBz9E,GACzB,IAEIjjB,EAFAC,EAAI,EACJsnB,EAAKtE,EAAI9iB,OAGb,MAAOF,EAAIsnB,IAAOvnB,EAAOijB,EAAI7iB,WAAWH,KAAO,IAAQD,GAAQ,IAC7DC,IAGF,OAAOA,EAAIsnB,EAAKtE,EAAIC,QAAQo7E,EAAkB,KAAOr7E,EAGvD,SAAS09E,EAAiBC,GACxB,IAAI39E,EAAM29E,EAAU39E,IAAIzhB,KAAK,IACzBq/F,GAAa,EAAI5M,EAAM6M,MAAM79E,GAAM,EAAG29E,EAAUlC,UACpD,MAAO,CACLz7E,IAAKlT,EAAsB2wF,EAAkBG,EAAW59E,KAAO49E,EAAW59E,IAC1E7f,IAAKy9F,EAAWz9F,IAChB66C,MAAO2iD,EAAU3iD,MACjBC,OAAQ0iD,EAAU1iD,OAClB9iC,UAAWwlF,EAAUxlF,UACrBm+E,SAAUqH,EAAUrH,UAIxB,SAASH,EAAcG,EAAUD,GAC/B,OAAOxoF,EAAK0oF,SAASD,EAAUD,EAAShlE,GAAWjqB,MAAK,SAAUk3B,GAChEi+D,EAAU/+E,KAAO8gB,EAAW9gB,KAC5B++E,EAAUS,WAAa1+D,EAAW9gB,KAAKw/E,YAAc75F,EAAMoN,wBAI/D,SAASutF,EAAqBjH,GAO5B,IANA,IAAIr5E,EAAO++E,EAAU/+E,KACjBmgF,EAAYnB,IACZxhD,EAAQ,EACRC,EAAS,EACT67C,EAASt5E,EAAKu5E,cAAcF,GAEvB75F,EAAI,EAAGA,EAAI85F,EAAO55F,OAAQF,IAAK,CACtC,IAAI+gG,EAAQjH,EAAO95F,GACfghG,EAAa,KAGfA,EADExgF,EAAKi+E,UAAYsC,EAAME,QACZF,EAAME,QAAQ,GAEdF,EAAM/iD,MAGrB,IAAIkjD,EAAeH,EAAMI,QACrBC,GAAqB,EAAIvN,EAASwN,8BAEGn+E,IAArCk+E,EAAmBF,KACrBA,EAAeE,EAAmBF,IAGpCA,GAAe,EAAIrN,EAASyN,cAAcJ,GAC1C,IAAIK,EAAchC,EAAUgC,YAE5B,GAAIR,EAAMS,QAAS,CACjB,IAAIC,EAAclC,EAAUkC,YAC5BF,GAAeE,EAEXA,EAAc,GAChBC,EAAcD,EAAad,EAAU39E,KAIzC,IAAI2+E,EAAK,EACLC,EAAK,EAET,GAAKphF,EAAKi+E,SAIH,CACL,IAAIniB,EAAK0kB,EAAazB,EAAUS,WAAW,GAC3C4B,EAAKtlB,EAAKijB,EAAUjC,SAAWiE,EAC/BtjD,GAAU2jD,MAPQ,CAClB,IAAIC,EAAKb,EAAazB,EAAUS,WAAW,GAC3C2B,GAAME,EAAKtC,EAAUjC,SAAWiE,GAAehC,EAAUO,WACzD9hD,GAAS2jD,EAOXpC,EAAUuC,oBAAoBH,EAAIC,GAClCjB,EAAU39E,IAAI1hB,KAAK4/F,GAWrB,OARK1gF,EAAKi+E,UAIRkC,EAAUhC,kBAAoB1gD,EAC9B0iD,EAAU1iD,QAAUxyC,KAAKs2F,IAAI9jD,KAJ7B0iD,EAAUjC,iBAAmB1gD,EAC7B2iD,EAAU3iD,OAASA,GAMd2iD,EAGT,SAASe,EAAc1jD,EAAO16B,GAC5B,KAAI06B,EAAQwgD,EAAgBM,cAI5B,GAAI9gD,EAAQwgD,EAAgBQ,kBAC1B17E,EAAOhiB,KAAK,SADd,CAKA,IAAI0gG,EAAav2F,KAAKw2F,MAAMjkD,EAAQwgD,EAAgBK,YAEpD,MAAOmD,KAAe,EACpB1+E,EAAOhiB,KAAK,MAIhB,SAAS4gG,IACF1D,EAAgBhoD,cAIhBgoD,EAAgBC,SAGnBD,EAAgBvgD,QAAUugD,EAAgBI,iBAF1CJ,EAAgBxgD,OAASwgD,EAAgBI,iBAK3CN,EAAYviE,MAAMz6B,KAAKo/F,EAAiBlC,IACxCA,EAAgBhoD,aAAc,EAC9BgoD,EAAgBx7E,IAAI9iB,OAAS,GAG/B,SAASiiG,IACP,MAAMjiG,EAASo+F,EAAYviE,MAAM77B,OAE7BA,EAAS,IACX0O,EAAK4kF,QAAQ8K,EAAap+F,GAC1Bo+F,EAAYviE,MAAQ,GACpBuiE,EAAYC,OAAS55F,OAAOY,OAAO,OAIvC,IAAIk3F,EAAkB,IAAI1H,EAC1B,OAAO,IAAI7sF,SAAQ,SAAS20F,EAAYz5F,EAASyG,GAC/C,MAAM63B,EAAO,SAAU76B,GACrBs7F,IACAj6F,QAAQkB,IAAI,CAACvC,EAAS+H,EAAKwkF,QAAQhpF,MAAK,WACtC,IACEyyF,EAAYz5F,EAASyG,GACrB,MAAOD,GACPC,EAAOD,MAERC,IAGLnB,EAAKF,sBACLi0F,EAAgBvkE,QAChB,IAAI4kE,EACAC,EAAY,GACZj7F,EAAO,GAEX,QAASg7F,EAAOL,EAAgB7nD,SAAU,CAIxC,GAHA9yC,EAAK5B,OAAS,EACd68F,EAAUj7F,KAAOA,GAEZy6F,EAAa5wF,KAAKoxF,GACrB,MAGFwC,EAAYpH,EAAazsD,MACzB,IAEI02D,EAASntC,EAFTpzD,EAAKk7F,EAAUl7F,GAInB,OAHAC,EAAOi7F,EAAUj7F,KAGJ,EAALD,GACN,KAAKsE,EAAMkN,IAAIuJ,QACb,IAAIylF,EAAcvgG,EAAK,GAAGiB,KACtBu/F,EAAcxgG,EAAK,GAEvB,GAAIy9F,EAAU/+E,MAAQ6hF,IAAgB9C,EAAUjG,UAAYgJ,IAAgB/C,EAAUjC,SACpF,MAOF,OAJA4E,IACA3C,EAAUjG,SAAW+I,EACrB9C,EAAUjC,SAAWgF,OACrB5gE,EAAKy3D,EAAckJ,EAAa,OAGlC,KAAKl8F,EAAMkN,IAAIyJ,YACbolF,IACA3C,EAAUQ,SAAWj+F,EAAK,GAC1B,MAEF,KAAKqE,EAAMkN,IAAIqJ,UACbwlF,IACA3C,EAAUO,WAAah+F,EAAK,GAAK,IACjC,MAEF,KAAKqE,EAAMkN,IAAIsJ,WACbulF,IACA3C,EAAUgD,QAAUzgG,EAAK,GACzB,MAEF,KAAKqE,EAAMkN,IAAI0J,SACb,IAAIylF,IAAkBjD,EAAU/+E,MAAiE,KAAjD++E,EAAU/+E,KAAKi+E,SAAW38F,EAAK,GAAKA,EAAK,IAGzF,GAFAsgG,EAAUtgG,EAAK,GAAKA,EAAK,GAErBiO,GAAoByyF,GAAkBhE,EAAgBhoD,aAAe4rD,EAAU,GAAKA,GAAW5D,EAAgBS,kBAAmB,CACpIM,EAAUkD,wBAAwB3gG,EAAK,GAAIA,EAAK,IAChD08F,EAAgBxgD,OAASl8C,EAAK,GAAK08F,EAAgBE,iBACnDF,EAAgBvgD,QAAUn8C,EAAK,GAAK08F,EAAgBG,kBACpD1pC,EAAOnzD,EAAK,GAAK08F,EAAgBE,kBAAoB58F,EAAK,GAAK08F,EAAgBG,mBAC/E+C,EAAczsC,EAAMupC,EAAgBx7E,KACpC,MAGFk/E,IACA3C,EAAUkD,wBAAwB3gG,EAAK,GAAIA,EAAK,IAChDy9F,EAAUa,WAAab,EAAUc,eAAer+F,QAChD,MAEF,KAAKmE,EAAMkN,IAAI2J,mBACbklF,IACA3C,EAAUgD,SAAWzgG,EAAK,GAC1By9F,EAAUkD,wBAAwB3gG,EAAK,GAAIA,EAAK,IAChDy9F,EAAUa,WAAab,EAAUc,eAAer+F,QAChD,MAEF,KAAKmE,EAAMkN,IAAI6J,SACbglF,IACA3C,EAAUmD,iBACV,MAEF,KAAKv8F,EAAMkN,IAAI4J,cAGb,GAFAmlF,EAAU7C,EAAUoD,0BAA0B7gG,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE5FiO,GAAgC,OAAZqyF,GAAoB5D,EAAgBhoD,aAAe4rD,EAAQl9F,MAAQ,GAAKk9F,EAAQl9F,OAASs5F,EAAgBS,kBAAmB,CAClJM,EAAUkD,wBAAwBL,EAAQpkD,MAAOokD,EAAQnkD,QACzDugD,EAAgBxgD,OAASokD,EAAQpkD,MAAQwgD,EAAgBE,iBACzDF,EAAgBvgD,QAAUmkD,EAAQnkD,OAASugD,EAAgBG,kBAC3D1pC,EAAOmtC,EAAQpkD,MAAQwgD,EAAgBE,kBAAoB0D,EAAQnkD,OAASugD,EAAgBG,mBAC5F+C,EAAczsC,EAAMupC,EAAgBx7E,KACpC,MAGFk/E,IACA3C,EAAUtiF,cAAcnb,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC1Ey9F,EAAUqD,kBAAkB9gG,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC9E,MAEF,KAAKqE,EAAMkN,IAAImJ,eACb+iF,EAAUgC,YAAcz/F,EAAK,GAC7B,MAEF,KAAKqE,EAAMkN,IAAIoJ,eACb8iF,EAAUkC,YAAc3/F,EAAK,GAC7B,MAEF,KAAKqE,EAAMkN,IAAIiJ,UACb4lF,IACA3C,EAAUa,WAAaj6F,EAAMmN,gBAAgBtR,QAC7Cu9F,EAAUc,eAAiBl6F,EAAMmN,gBAAgBtR,QACjD,MAEF,KAAKmE,EAAMkN,IAAI+J,eACb,IAAK+6E,EAAazsD,MAAMlrB,KAAM,CAC5B3P,EAAK0sF,gBAAgBpF,EAAazsD,OAClC,SAMF,IAHA,IACI1Z,EADA+J,EAAQj6B,EAAK,GAGRq1B,EAAI,EAAG6H,EAAKjD,EAAM77B,OAAQi3B,EAAI6H,EAAI7H,IACzC,GAAwB,kBAAb4E,EAAM5E,GACf2pE,EAAqB/kE,EAAM5E,SACtB,IAAI,EAAIhxB,EAAMkL,OAAO0qB,EAAM5E,IAAK,CACrCqoE,IACA4C,EAAUrmE,EAAM5E,GAAKooE,EAAUjC,SAAW,IAC1C,IAAIuF,GAAe,EAEftD,EAAU/+E,KAAKi+E,UACjBzsE,EAASowE,EACT7C,EAAUuC,oBAAoB,EAAG9vE,GACjC6wE,EAAerE,EAAgBU,qBAAuBkD,EAAU5D,EAAgBS,kBAE3E4D,IACHrE,EAAgBvgD,QAAUjsB,KAG5BowE,GAAWA,EACXpwE,EAASowE,EAAU7C,EAAUO,WAC7BP,EAAUuC,oBAAoB9vE,EAAQ,GACtC6wE,EAAerE,EAAgBU,qBAAuBkD,EAAU5D,EAAgBS,kBAE3E4D,IACHrE,EAAgBxgD,OAAShsB,IAIzB6wE,EACFX,IACSE,EAAU,GACnBV,EAAcU,EAAS5D,EAAgBx7E,KAK7C,MAEF,KAAK7c,EAAMkN,IAAI8J,SACb,IAAKg7E,EAAazsD,MAAMlrB,KAAM,CAC5B3P,EAAK0sF,gBAAgBpF,EAAazsD,OAClC,SAGFo1D,EAAqBh/F,EAAK,IAC1B,MAEF,KAAKqE,EAAMkN,IAAIgK,iBACb,IAAK86E,EAAazsD,MAAMlrB,KAAM,CAC5B3P,EAAK0sF,gBAAgBpF,EAAazsD,OAClC,SAGFw2D,IACA3C,EAAUmD,iBACV5B,EAAqBh/F,EAAK,IAC1B,MAEF,KAAKqE,EAAMkN,IAAIiK,2BACb,IAAK66E,EAAazsD,MAAMlrB,KAAM,CAC5B3P,EAAK0sF,gBAAgBpF,EAAazsD,OAClC,SAGFw2D,IACA3C,EAAUkC,YAAc3/F,EAAK,GAC7By9F,EAAUgC,YAAcz/F,EAAK,GAC7By9F,EAAUmD,iBACV5B,EAAqBh/F,EAAK,IAC1B,MAEF,KAAKqE,EAAMkN,IAAIoL,aACbyjF,IAEK7F,IACHA,EAAQhoE,EAAUvvB,IAAI,YAAcsB,EAAYwiB,KAAK2B,OAGvD,IAAIxnB,EAAOjB,EAAK,GAAGiB,KAEnB,GAAIA,GAAQu8F,EAAkBrC,UAAUl6F,GACtC,MA8FF,YA3FA2+B,EAAK,IAAIx5B,SAAQ,SAAUg1F,EAAgBC,GACzC,IAAKp6F,EACH,MAAM,IAAIoD,EAAMiM,YAAY,wCAG9B,IAAI+jF,EAAOkG,EAAMnyE,OAAOnnB,GAExB,GAAIozF,aAAgB/vF,EAAY6H,IAAK,CACnC,GAAIqxF,EAAkB/Y,SAAS4P,GAE7B,YADA+G,IAIF/G,EAAO3nF,EAAKub,MAAMosE,GAGpB,IAAKA,EAEH,YADA+G,IAIF,KAAK,EAAI92F,EAAYoiB,UAAU2tE,GAC7B,MAAM,IAAIhwF,EAAMiM,YAAY,8BAG9B,MAAMiV,EAAO8uE,EAAKxrE,KAAK7lB,IAAI,WAE3B,KAAK,EAAIsB,EAAYiiB,QAAQhB,GAC3B,MAAM,IAAIlhB,EAAMiM,YAAY,sCAG9B,GAAkB,SAAdiV,EAAKtkB,KAGP,OAFAu8F,EAAkBv7E,IAAIhhB,EAAMozF,EAAKxrE,KAAKpB,OAAO,QAC7C2zE,IAIF,MAAM4F,EAAe3K,EAAazsD,MAAMitD,QAClCoK,EAAmB,IAAIzG,EAAawG,GACpCjkB,EAASsX,EAAKxrE,KAAKyG,SAAS,UAE9BtxB,MAAMmqB,QAAQ40D,IAA6B,IAAlBA,EAAO3+E,QAClC6iG,EAAiB5nF,UAAU0jE,GAG7BsjB,IACA,MAAMa,EAAc,CAClBC,gBAAgB,EAEhB,QAAQx/E,EAAOyuB,GACbluC,KAAKi/F,gBAAiB,EACtBr0F,EAAK4kF,QAAQ/vE,EAAOyuB,IAGtB,kBACE,OAAOtjC,EAAKe,aAGd,YACE,OAAOf,EAAKwkF,QAIhBviF,EAAKglB,eAAe,CAClBtoB,OAAQ4oF,EACRztF,OACA2rB,UAAW8hE,EAAKxrE,KAAK7lB,IAAI,cAAgBuvB,EACzC8jE,aAAc4K,EACdjzF,sBACAC,mBACAnB,KAAMo0F,EACN7E,eACC/zF,MAAK,WACD44F,EAAYC,gBACf3D,EAAkBv7E,IAAIhhB,EAAMozF,EAAKxrE,KAAKpB,OAAO,GAG/C2zE,MACCC,MACFtyF,OAAM,SAAUC,GACjB,KAAIA,aAAkB3E,EAAMmH,gBAA5B,CAIA,IAAIuD,EAAK8jB,QAAQznB,aAKjB,MAAMpC,GAJJ,EAAI3E,EAAMgF,MAAM,uCAAuCL,YAQ7D,KAAK3E,EAAMkN,IAAI2H,UACbknF,IACA,IAAIlE,EAAWl8F,EAAK,GAChBm8F,EAAY5pE,EAAUvvB,IAAI,aAE9B,KAAK,EAAIsB,EAAYgiB,QAAQ61E,MAAe,EAAI73F,EAAYiiB,QAAQ21E,GAClE,MAGF,IAAI5D,EAAS6D,EAAUn5F,IAAIk5F,EAASj7F,MAEpC,KAAK,EAAIqD,EAAYgiB,QAAQgyE,GAC3B,MAGF,IAAI8I,EAAa9I,EAAOt1F,IAAI,QAE5B,GAAIo+F,EAIF,OAHA3D,EAAUjG,SAAW,KACrBiG,EAAUjC,SAAW4F,EAAW,QAChCxhE,EAAKy3D,EAAc,KAAM+J,EAAW,KAItC,MAGJ,GAAI5E,EAAYviE,MAAM77B,QAAU0O,EAAKe,YAAa,CAChDmtF,GAAO,EACP,OAIAA,EACFp7D,EAAK2zD,IAIP6M,IACAC,IACA/+F,QACCyH,MAAMC,IACP,KAAIA,aAAkB3E,EAAMmH,gBAA5B,CAIA,GAAItJ,KAAK2wB,QAAQznB,aAIf,OAHA,EAAI/G,EAAMgF,MAAM,4CAA4CzC,EAAK3F,gBAAqB+H,OACtFo3F,SACAC,IAIF,MAAMr3F,MAIVq4F,sBAAuB,SAAgDx4E,EAAMy4E,EAAUC,GACrF,MAAM70F,EAAOxK,KAAKwK,KAClB,IAAI80F,EACJ,IAAIC,EAAY54E,EAAK7lB,IAAI,cAAgBs+F,EAASt+F,IAAI,aAClD0+F,EAAmBD,EAAYv/F,KAAKy/F,cAAcF,GAAar7F,QAAQ9E,aAAQ8f,GAEnF,GAAImgF,EAAWK,UAAW,CACxB,IAAIC,EAAgBh5E,EAAK7lB,IAAI,kBAEzB,EAAIsB,EAAYgiB,QAAQu7E,KAC1BN,EAAWM,cAAgB,CACzBC,UAAU,EAAIz9F,EAAM0L,mBAAmB8xF,EAAc7+F,IAAI,aACzD++F,UAAU,EAAI19F,EAAM0L,mBAAmB8xF,EAAc7+F,IAAI,aACzDg/F,WAAYH,EAAc7+F,IAAI,gBAIlC,IAAIi/F,EAAcp5E,EAAK7lB,IAAI,gBAEvB,EAAIsB,EAAYoiB,UAAUu7E,KAC5BT,EAAgBS,EAAYz4E,YAIhC,IAEI6uB,EAFA6pD,EAAc,GACdC,EAAmB,KAGvB,GAAIt5E,EAAKN,IAAI,YAAa,CAGxB,GAFA8vB,EAAWxvB,EAAK7lB,IAAI,aAEhB,EAAIsB,EAAYgiB,QAAQ+xB,IAI1B,GAHA8pD,EAAmB9pD,EAASr1C,IAAI,gBAChCm/F,GAAmB,EAAI79F,EAAYiiB,QAAQ47E,GAAoBA,EAAiBlhG,KAAO,KAEnFo3C,EAAS9vB,IAAI,eAIf,IAHA,IAAI65E,EAAe/pD,EAASr1C,IAAI,eAC5B+hB,EAAQ,EAEHsQ,EAAI,EAAG6H,EAAKklE,EAAahkG,OAAQi3B,EAAI6H,EAAI7H,IAAK,CACrD,IAAIjwB,EAAOsH,EAAKwlB,WAAWkwE,EAAa/sE,IAExC,IAAI,EAAIhxB,EAAMkL,OAAOnK,GACnB2f,EAAQ3f,MACH,MAAI,EAAId,EAAYiiB,QAAQnhB,GAGjC,MAAM,IAAIf,EAAMiM,YAAY,yCAAyClL,GAFrE88F,EAAYn9E,KAAW3f,EAAKnE,WAM7B,MAAI,EAAIqD,EAAYiiB,QAAQ8xB,GAGjC,MAAM,IAAIh0C,EAAMiM,YAAY,qCAF5B6xF,EAAmB9pD,EAASp3C,KAKL,qBAArBkhG,GAAgE,sBAArBA,GAAiE,oBAArBA,IACzFA,EAAmB,MAIvB,GAAIA,EACFZ,EAAWc,iBAAkB,EAAIvQ,EAAWwQ,aAAaH,GAAkBjiG,YACtE,CACL,IAAIqiG,KAAoBhB,EAAW7mE,MAAQm3D,EAAO2Q,UAAUC,UACxDC,KAAuBnB,EAAW7mE,MAAQm3D,EAAO2Q,UAAUG,aAC/DtqD,EAAWy5C,EAAW8Q,iBAEE,aAApBrB,EAAWh8E,MAAwBm9E,IACrCrqD,EAAWy5C,EAAW+Q,iBAGpBN,IACFlqD,EAAWy5C,EAAWgR,iBAEjBvB,EAAW1U,OACV,UAAUl1D,KAAK4pE,EAAWtgG,MAC5Bo3C,EAAWy5C,EAAWiR,kBACb,sBAAsBprE,KAAK4pE,EAAWtgG,QAC/Co3C,EAAWy5C,EAAWkR,wBAK5BzB,EAAWc,gBAAkBhqD,EAO/B,OAJAkpD,EAAWW,YAAcA,EACzBX,EAAWY,iBAAmBA,EAC9BZ,EAAW0B,cAAgBd,GAAoBD,EAAY9jG,OAAS,EACpEmjG,EAAW14E,KAAOA,EACX64E,EAAiBp5F,KAAKq5F,IAC3BJ,EAAWE,UAAYE,EAChBz/F,KAAKghG,eAAe3B,KAC1Bj5F,KAAK66F,IACN5B,EAAWE,UAAY0B,EAEnB3B,IACFD,EAAWU,YAAc//F,KAAKkhG,gBAAgB5B,EAAe2B,IAGxD5B,KAIX,0BAA0BA,EAAY8B,GAAc,IAClD,EAAIh/F,EAAM4K,SAASsyF,EAAWK,UAAW,0BACzC,MAAMH,EAAY,GACZppD,EAAWkpD,EAAWc,gBAAgBniG,QACtCiiG,EAAmBZ,EAAWY,iBAC9BD,EAAcX,EAAWW,YAE/B,IAAK,MAAMoB,KAAYpB,EAAa,CAClC,MAAMqB,EAAYrB,EAAYoB,GAEZ,YAAdC,IAIJlrD,EAASirD,GAAYC,GAGvB,MAAMC,GAAmB,EAAIrR,EAAWsR,oBAExC,IAAK,MAAMH,KAAYjrD,EAAU,CAC/B,IAAIkrD,EAAYlrD,EAASirD,GAEzB,GAAkB,KAAdC,EAEG,QAAoCniF,IAAhCoiF,EAAiBD,GA8D5B9B,EAAU6B,GAAYhiF,OAAOC,aAAaiiF,EAAiBD,QA9DpD,CACL,IAAItlG,EAAO,EAEX,OAAQslG,EAAU,IAChB,IAAK,IACsB,IAArBA,EAAUnlG,SACZH,EAAOw4B,SAAS8sE,EAAU1sE,UAAU,GAAI,KAG1C,MAEF,IAAK,IACsB,IAArB0sE,EAAUnlG,SACZH,EAAOw4B,SAAS8sE,EAAU1sE,UAAU,GAAI,KAG1C,MAEF,IAAK,IACL,IAAK,IACH,GAAI0sE,EAAUnlG,QAAU,GAAKmlG,EAAUnlG,QAAU,EAAG,CAClD,MAAMslG,EAAUH,EAAU1sE,UAAU,GAEpC,GAAIwsE,EAAa,CACfplG,EAAOw4B,SAASitE,EAAS,IACzB,MAKF,GAFAzlG,GAAQylG,EAEJjkF,OAAOiX,MAAMz4B,IAASwhB,OAAOC,UAAU+W,SAASitE,EAAS,KAC3D,OAAOxhG,KAAKyhG,0BAA0BpC,GAAY,GAItD,MAEF,QACE,MAAMlC,GAAU,EAAItN,EAAS6R,oBAAoBL,EAAWC,IAE3C,IAAbnE,IACFphG,EAAOohG,GAKb,GAAIphG,EAAO,GAAKA,GAAQ,SAAYwhB,OAAOC,UAAUzhB,GAAO,CAC1D,GAAIkkG,GAAoBlkG,KAAUqlG,EAAU,CAC1C,MAAMO,GAAe,EAAI/R,EAAWwQ,aAAaH,GAEjD,GAAI0B,IAAiBN,EAAYM,EAAaP,IAAY,CACxD7B,EAAU6B,GAAYhiF,OAAOC,aAAaiiF,EAAiBD,IAC3D,UAIJ9B,EAAU6B,GAAYhiF,OAAOwiF,cAAc7lG,KASjD,OAAO,IAAI4zF,EAAOkS,aAAatC,IAGjC,eAAeF,GAGb,GAFAA,EAAWyC,0BAA4BzC,EAAWE,WAAaF,EAAWE,UAAUrjG,OAAS,EAEzFmjG,EAAWyC,wBAKb,OAJKzC,EAAWK,WAAaL,EAAW0B,cACtC1B,EAAW0C,kBAAoB/hG,KAAKyhG,0BAA0BpC,IAGzDn7F,QAAQ9E,QAAQigG,EAAWE,WAGpC,IAAKF,EAAWK,UACd,OAAOx7F,QAAQ9E,QAAQY,KAAKyhG,0BAA0BpC,IAGxD,GAAIA,EAAWK,YAAcL,EAAW2C,KAAKC,eAAiB5C,EAAW2C,gBAAgBtS,EAAMwS,eAAuD,UAAtC7C,EAAWM,cAAcC,WAA+D,QAAtCP,EAAWM,cAAcE,UAA4D,SAAtCR,EAAWM,cAAcE,UAA6D,WAAtCR,EAAWM,cAAcE,UAA+D,WAAtCR,EAAWM,cAAcE,WAAyB,CACnW,MAAMD,EAAWP,EAAWM,cAAcC,SACpCC,EAAWR,EAAWM,cAAcE,SAEpCsC,EAAe//F,EAAYuiB,KAAK7jB,IAAI8+F,EAAW,IAAMC,EAAW,SAEtE,OAAOnQ,EAAM0S,YAAY7gG,OAAO,CAC9B40C,SAAUgsD,EACV5R,iBAAkBvwF,KAAKuwF,iBACvB8R,QAAS,OACRj8F,MAAK,SAAUk8F,GAChB,MAAMN,EAAO3C,EAAW2C,KAClBzC,EAAY,GAYlB,OAXAyC,EAAK31F,SAAQ,SAAU+0F,EAAUmB,GAC/B,GAAIA,EAAM,MACR,MAAM,IAAIpgG,EAAMiM,YAAY,6BAG9B,MAAMo0F,EAAOF,EAAS5mG,OAAO6mG,GAEzBC,IACFjD,EAAU6B,GAAYhiF,OAAOC,cAAcmjF,EAAKrmG,WAAW,IAAM,GAAKqmG,EAAKrmG,WAAW,QAGnF,IAAIwzF,EAAOkS,aAAatC,MAInC,OAAOr7F,QAAQ9E,QAAQ,IAAIuwF,EAAO8S,qBAAqBpD,EAAWqD,UAAWrD,EAAWsD,YAG1FlD,cAAe,SAAwCF,GACrD,IAAIqD,EAAUrD,EAEd,OAAI,EAAIn9F,EAAYiiB,QAAQu+E,GACnBlT,EAAM0S,YAAY7gG,OAAO,CAC9B40C,SAAUysD,EACVrS,iBAAkBvwF,KAAKuwF,iBACvB8R,QAAS,OACRj8F,MAAK,SAAUy8F,GAChB,OAAIA,aAAgBnT,EAAMwS,aACjB,IAAIvS,EAAO8S,qBAAqB,EAAG,OAGrC,IAAI9S,EAAOkS,aAAagB,EAAKC,cAE7B,EAAI1gG,EAAYoiB,UAAUo+E,GAC5BlT,EAAM0S,YAAY7gG,OAAO,CAC9B40C,SAAUysD,EACVrS,iBAAkBvwF,KAAKuwF,iBACvB8R,QAAS,OACRj8F,MAAK,SAAUy8F,GAChB,GAAIA,aAAgBnT,EAAMwS,aACxB,OAAO,IAAIvS,EAAO8S,qBAAqB,EAAG,OAG5C,IAAIrW,EAAM,IAAItwF,MAAM+mG,EAAK3mG,QAmBzB,OAlBA2mG,EAAKx2F,SAAQ,SAAU02F,EAAUxgE,GAG/B,IAFA,IAAIvjB,EAAM,GAED0xB,EAAI,EAAGA,EAAInO,EAAMrmC,OAAQw0C,GAAK,EAAG,CACxC,IAAI4nC,EAAK/1C,EAAMpmC,WAAWu0C,IAAM,EAAInO,EAAMpmC,WAAWu0C,EAAI,GAEzD,GAAsB,SAAZ,MAAL4nC,GAAL,CAKA5nC,GAAK,EACL,IAAI6nC,EAAKh2C,EAAMpmC,WAAWu0C,IAAM,EAAInO,EAAMpmC,WAAWu0C,EAAI,GACzD1xB,EAAI1hB,OAAY,KAALg7E,IAAe,KAAY,KAALC,GAAc,YAN7Cv5D,EAAI1hB,KAAKg7E,GASb8T,EAAI2W,GAAY3jF,OAAOwiF,cAAcvjG,MAAM+gB,OAAQJ,MAE9C,IAAI2wE,EAAOkS,aAAazV,KAC9BtlF,IACD,GAAIA,aAAkB3E,EAAMmH,eAC1B,OAAO,KAGT,GAAItJ,KAAK2wB,QAAQznB,aAKf,OAJAlJ,KAAK8C,QAAQK,KAAK,qBAAsB,CACtCmI,UAAWnJ,EAAMoJ,qBAAqB0R,sBAExC,EAAI9a,EAAMgF,MAAM,6CAA6CL,OACtD,KAGT,MAAMA,IAIH5C,QAAQ9E,QAAQ,OAGzB,gBAAgB4jG,EAAYzD,GAG1B,IAFA,IAAIt9E,EAAS,GAEJkR,EAAI,EAAG6H,EAAKgoE,EAAW9mG,OAAQi3B,EAAI6H,EAAI7H,IAAK,CACnD,IAAI8vE,EAAUD,EAAW7vE,MAAQ,EAAI6vE,EAAW7vE,GAChD,MAAMp3B,EAAOo3B,GAAK,GAEF,IAAZ8vE,GAAkB1D,EAAUl5E,IAAItqB,MAIpCkmB,EAAOlmB,GAAQknG,GAGjB,OAAOhhF,GAGTihF,cAAe,SAAwCv8E,EAAMkwE,EAAYwI,GACvE,IAII8D,EACAnnG,EAAGsnB,EAAI6P,EAAG6H,EAAI79B,EAAOpB,EAAMqnG,EAL3B54F,EAAOxK,KAAKwK,KACZ64F,EAAe,GACfC,EAAe,EACfC,EAAiB,GAIrB,GAAIlE,EAAWK,UAAW,CAIxB,GAHA4D,EAAe38E,EAAKN,IAAI,MAAQM,EAAK7lB,IAAI,MAAQ,IACjDsiG,EAASz8E,EAAK7lB,IAAI,KAEdsiG,EACF,IAAKpnG,EAAI,EAAGsnB,EAAK8/E,EAAOlnG,OAAQF,EAAIsnB,EAAItnB,IAItC,GAHAmB,EAAQqN,EAAKwlB,WAAWozE,EAAOpnG,MAC/BD,EAAOyO,EAAKwlB,WAAWozE,EAAOpnG,IAE1BF,MAAMmqB,QAAQlqB,GAChB,IAAKo3B,EAAI,EAAG6H,EAAKj/B,EAAKG,OAAQi3B,EAAI6H,EAAI7H,IACpCkwE,EAAalmG,KAAWqN,EAAKwlB,WAAWj0B,EAAKo3B,QAE1C,CACL,IAAI6mB,EAAQxvC,EAAKwlB,WAAWozE,IAASpnG,IAErC,IAAKm3B,EAAIh2B,EAAOg2B,GAAKp3B,EAAMo3B,IACzBkwE,EAAalwE,GAAK6mB,EAM1B,GAAIqlD,EAAW5E,SAAU,CACvB,IAAI+I,EAAW78E,EAAKyG,SAAS,QAAU,CAAC,KAAM,KAI9C,GAHA+1E,EAAkB,CAACK,EAAS,GAAmB,GAAfF,EAAoBE,EAAS,IAC7DA,EAAW78E,EAAK7lB,IAAI,MAEhB0iG,EACF,IAAKxnG,EAAI,EAAGsnB,EAAKkgF,EAAStnG,OAAQF,EAAIsnB,EAAItnB,IAIxC,GAHAmB,EAAQqN,EAAKwlB,WAAWwzE,EAASxnG,MACjCD,EAAOyO,EAAKwlB,WAAWwzE,EAASxnG,IAE5BF,MAAMmqB,QAAQlqB,GAChB,IAAKo3B,EAAI,EAAG6H,EAAKj/B,EAAKG,OAAQi3B,EAAI6H,EAAI7H,IACpCowE,EAAepmG,KAAW,CAACqN,EAAKwlB,WAAWj0B,EAAKo3B,MAAO3oB,EAAKwlB,WAAWj0B,EAAKo3B,MAAO3oB,EAAKwlB,WAAWj0B,EAAKo3B,SAErG,CACL,IAAI8pE,EAAU,CAACzyF,EAAKwlB,WAAWwzE,IAAWxnG,IAAKwO,EAAKwlB,WAAWwzE,IAAWxnG,IAAKwO,EAAKwlB,WAAWwzE,IAAWxnG,KAE1G,IAAKm3B,EAAIh2B,EAAOg2B,GAAKp3B,EAAMo3B,IACzBowE,EAAepwE,GAAK8pE,QAMzB,CACL,IAAIyF,EAAYrD,EAAWqD,UAG3B,GAFAU,EAASz8E,EAAK7lB,IAAI,UAEdsiG,EAAQ,CAGV,IAFAjwE,EAAIuvE,EAEC1mG,EAAI,EAAGsnB,EAAK8/E,EAAOlnG,OAAQF,EAAIsnB,EAAItnB,IACtCqnG,EAAalwE,KAAO3oB,EAAKwlB,WAAWozE,EAAOpnG,IAG7CsnG,EAAeG,WAAW5M,EAAW/1F,IAAI,kBAAoB,MACxD,CACL,IAAI4iG,EAAe/8E,EAAK7lB,IAAI,YAE5B,IAAI,EAAIsB,EAAYiiB,QAAQq/E,GAAe,CACzC,IAAIC,EAAU3jG,KAAK4jG,mBAAmBF,EAAa3kG,MACnDskG,EAAerjG,KAAK6jG,qBAAqBF,EAAQP,OAAQ/D,GACzDiE,EAAeK,EAAQL,eAK7B,IAAI9G,GAAc,EACdsH,EAAaR,EAEjB,IAAK,IAAIvG,KAASsG,EAAc,CAC9B,IAAIrG,EAAaqG,EAAatG,GAE9B,GAAKC,EAIL,GAAK8G,GAKL,GAAIA,IAAe9G,EAAY,CAC7BR,GAAc,EACd,YANAsH,EAAa9G,EAUbR,IACF6C,EAAW7mE,OAASm3D,EAAO2Q,UAAUyD,YAGvC1E,EAAWiE,aAAeA,EAC1BjE,EAAW+D,OAASC,EACpBhE,EAAW8D,gBAAkBA,EAC7B9D,EAAWmE,SAAWD,GAExBS,YAAa,SAAsCN,GACjD,IAAIO,EAAkBP,EAAa3kE,MAAM,KAAK,GAC9C,OAAOklE,KAAmB,EAAInU,EAAgBoU,mBAA2D,IAAvCD,EAAgBE,OAAO,YAE3FP,mBAAoB,SAA6C7kG,GAC/D,IAAIukG,EAAe,EACfF,EAAS,GACTgB,GAAY,EACZC,GAAa,EAAIvU,EAAgBwU,iBACjCC,EAAaF,EAAWtlG,IAASA,EACjCylG,GAAU,EAAItU,EAASuU,cAErBF,KAAcC,IAEhBD,EADEvkG,KAAKgkG,YAAYjlG,GACN,cAEA,aAIjB,IAAI2lG,EAAcF,EAAQD,GAS1B,OAPI,EAAIpiG,EAAMkL,OAAOq3F,IACnBpB,EAAeoB,EACfN,GAAY,GAEZhB,EAASsB,IAGJ,CACLpB,eACAc,YACAhB,WAGJS,qBAAsB,SAAgDc,EAAmBtF,GAKvF,IAJA,IAAI+D,EAASziG,OAAOY,OAAO,MACvBy+F,EAAcX,EAAWW,YACzB7pD,EAAWkpD,EAAWc,gBAEjB4C,EAAW,EAAGA,EAAW,IAAKA,IACjCA,KAAY/C,GAAe2E,EAAkB3E,EAAY+C,IAC3DK,EAAOL,GAAY4B,EAAkB3E,EAAY+C,IAI/CA,KAAY5sD,GAAYwuD,EAAkBxuD,EAAS4sD,MACrDK,EAAOL,GAAY4B,EAAkBxuD,EAAS4sD,KAKlD,OAAOK,GAETxM,gBAAiB,SAA0CjwE,GACzD,IAAIy4E,EAAWz4E,EACXtD,EAAOsD,EAAK7lB,IAAI,WAEpB,KAAK,EAAIsB,EAAYiiB,QAAQhB,GAC3B,MAAM,IAAIlhB,EAAMiM,YAAY,wBAG9B,IACIw2F,EADAlF,GAAY,EAGhB,GAAkB,UAAdr8E,EAAKtkB,KAAkB,CACzB,IAAI8lG,EAAKl+E,EAAK7lB,IAAI,mBAElB,IAAK+jG,EACH,MAAM,IAAI1iG,EAAMiM,YAAY,sCAM9B,GAHAuY,EAAO7qB,MAAMmqB,QAAQ4+E,GAAM7kG,KAAKwK,KAAKwlB,WAAW60E,EAAG,IAAMA,EACzDxhF,EAAOsD,EAAK7lB,IAAI,aAEX,EAAIsB,EAAYiiB,QAAQhB,GAC3B,MAAM,IAAIlhB,EAAMiM,YAAY,wBAG9BsxF,GAAY,EAGd,IAAI7I,EAAalwE,EAAK7lB,IAAI,kBAE1B,GAAI+1F,EAAY,CACd,IAAIzgE,EAAO,IAAI+5D,EAAY2U,eACvB3uD,EAAWipD,EAASl5E,OAAO,YAE/B,IAAI,EAAI9jB,EAAYiiB,QAAQ8xB,GAC1B/f,EAAK2uE,OAAO5uD,EAASp3C,WAChB,IAAI,EAAIqD,EAAYkiB,OAAO6xB,GAChC/f,EAAK2uE,OAAO5uD,EAASvtC,iBAChB,IAAI,EAAIxG,EAAYgiB,QAAQ+xB,GAGjC,IAFA,IAAI/vB,EAAO+vB,EAAShwB,UAEXnqB,EAAI,EAAGsnB,EAAK8C,EAAKlqB,OAAQF,EAAIsnB,EAAItnB,IAAK,CAC7C,IAAImlC,EAAQgV,EAASjwB,OAAOE,EAAKpqB,IAEjC,IAAI,EAAIoG,EAAYiiB,QAAQ8c,GAC1B/K,EAAK2uE,OAAO5jE,EAAMpiC,WACb,IAAI,EAAIqD,EAAYkiB,OAAO6c,GAChC/K,EAAK2uE,OAAO5jE,EAAMv4B,iBACb,GAAI9M,MAAMmqB,QAAQkb,GAAQ,CAI/B,IAHA,IAAI6jE,EAAa7jE,EAAMjlC,OACnB+oG,EAAU,IAAInpG,MAAMkpG,GAEf7xE,EAAI,EAAGA,EAAI6xE,EAAY7xE,IAAK,CACnC,IAAI+xE,EAAY/jE,EAAMhO,IAElB,EAAI/wB,EAAYiiB,QAAQ6gF,GAC1BD,EAAQ9xE,GAAK+xE,EAAUnmG,OACd,EAAIoD,EAAMkL,OAAO63F,KAAc,EAAI9iG,EAAYkiB,OAAO4gF,MAC/DD,EAAQ9xE,GAAK+xE,EAAUt8F,YAI3BwtB,EAAK2uE,OAAOE,EAAQ1nG,SAK1B,MAAMmlG,EAAY/7E,EAAK7lB,IAAI,cAAgB,EACrC6hG,EAAWh8E,EAAK7lB,IAAI,cAAgB4+F,EAAY,MAAS,KAC/DtpE,EAAK2uE,OAAO,GAAGrC,KAAaC,KAC5B,IAAIpD,EAAY54E,EAAK7lB,IAAI,cAAgBs+F,EAASt+F,IAAI,aAEtD,IAAI,EAAIsB,EAAYoiB,UAAU+6E,GAAY,CACxC,IAAIh2F,EAASg2F,EAAUvgF,KAAOugF,EAC9BqF,EAAar7F,EAAO6W,OAAS,IAAIvkB,WAAW0N,EAAO6W,OAAOA,OAAQ,EAAG7W,EAAOqkC,cAAgB,IAAI/xC,WAAW0N,EAAOC,MAAM4W,OAAQ7W,EAAOpM,MAAOoM,EAAOnM,IAAMmM,EAAOpM,OAClKi5B,EAAK2uE,OAAOH,QACH,EAAIxiG,EAAYiiB,QAAQk7E,IACjCnpE,EAAK2uE,OAAOxF,EAAUxgG,MAGxB,IAAIqkG,EAASz8E,EAAK7lB,IAAI,WAAas+F,EAASt+F,IAAI,UAE5CsiG,IACFwB,EAAa,IAAI/oG,WAAW,IAAIskB,YAAYijF,GAAQhjF,QACpDgW,EAAK2uE,OAAOH,IAIhB,MAAO,CACL/N,aACAlwE,OACAy4E,WACAM,YACAr8E,KAAMA,EAAKtkB,KACXq3B,KAAMA,EAAOA,EAAK+uE,YAAc,KAGpC9N,cAAe,SAAwCV,GACrD,IAMI0I,EANAD,EAAWzI,EAAiByI,SAC5Bz4E,EAAOgwE,EAAiBhwE,KACxB+4E,EAAY/I,EAAiB+I,UAC7B7I,EAAaF,EAAiBE,WAC9BxzE,EAAOszE,EAAiBtzE,KACxB+hF,EAAe1F,EAAY,MAAS,IAExC,MAAMgD,EAAY/7E,EAAK7lB,IAAI,cAAgB,EACrC6hG,EAAWh8E,EAAK7lB,IAAI,aAAeskG,EAEzC,IAAKvO,EAAY,CACf,GAAa,UAATxzE,EAIG,CACL,IAAIqgF,EAAe/8E,EAAK7lB,IAAI,YAE5B,KAAK,EAAIsB,EAAYiiB,QAAQq/E,GAC3B,MAAM,IAAIvhG,EAAMiM,YAAY,8BAG9Bs1F,EAAeA,EAAa3kG,KAAKkgB,QAAQ,QAAS,KAClD,IAAI0kF,EAAU3jG,KAAK4jG,mBAAmBF,GAClCO,EAAkBP,EAAa3kE,MAAM,KAAK,GAC1CvG,GAASx4B,KAAKgkG,YAAYC,GAAmBtU,EAAO2Q,UAAU+E,MAAQ,IAAM1B,EAAQS,UAAYzU,EAAO2Q,UAAUyD,WAAa,KAAM,EAAIjU,EAAgBwV,mBAAmBrB,GAAmBtU,EAAO2Q,UAAUC,SAAW5Q,EAAO2Q,UAAUG,aAC/OpB,EAAa,CACXh8E,OACAtkB,KAAM2kG,EACNN,OAAQO,EAAQP,OAChBE,aAAcK,EAAQL,aACtB9qE,QACAkqE,YACAC,YAEF,MAAMS,EAASz8E,EAAK7lB,IAAI,UACxB,OAAOd,KAAKm/F,sBAAsBx4E,EAAMA,EAAM04E,GAAYj5F,KAAKm/F,IAC7D,GAAInC,EAAQ,CACV,MAAMsB,EAAc,GACpB,IAAIvxE,EAAIuvE,EAER,IAAK,IAAI1mG,EAAI,EAAGsnB,EAAK8/E,EAAOlnG,OAAQF,EAAIsnB,EAAItnB,IAC1C0oG,EAAYvxE,KAAOnzB,KAAKwK,KAAKwlB,WAAWozE,EAAOpnG,IAGjDupG,EAAcnC,OAASsB,OAEvBa,EAAcnC,OAASpjG,KAAK6jG,qBAAqBF,EAAQP,OAAQmC,GAGnE,OAAO,IAAI5V,EAAOwH,KAAKuM,EAAc,KAAM6B,KAtC7C1O,EAAa,IAAIz0F,EAAYwiB,KAAK,MAClCiyE,EAAW92E,IAAI,WAAY3d,EAAYuiB,KAAK7jB,IAAIuiB,IAChDwzE,EAAW92E,IAAI,WAAY4G,EAAKyG,SAAS,aAAe,CAAC,EAAG,EAAG,EAAG,IAyCtE,IAAIkoE,EAAWuB,EAAW/1F,IAAI,YAC1B0kG,EAAW7+E,EAAK7lB,IAAI,YAUxB,IARI,EAAIqB,EAAMmL,UAAUgoF,KACtBA,EAAWlzF,EAAYuiB,KAAK7jB,IAAIw0F,KAG9B,EAAInzF,EAAMmL,UAAUk4F,KACtBA,EAAWpjG,EAAYuiB,KAAK7jB,IAAI0kG,IAGrB,UAATniF,EAAkB,CACpB,IAAIoiF,EAAcnQ,GAAYA,EAASv2F,KACnC2mG,EAAcF,GAAYA,EAASzmG,KAEnC0mG,IAAgBC,KAClB,EAAIvjG,EAAMiJ,MAAM,qCAAsCq6F,qDAAqEC,OAEvHD,GAAeC,GAAeA,EAAYjnE,WAAWgnE,KACvDnQ,EAAWkQ,IAOjB,GAFAlQ,EAAWA,GAAYkQ,IAElB,EAAIpjG,EAAYiiB,QAAQixE,GAC3B,MAAM,IAAInzF,EAAMiM,YAAY,qBAG9B,IAuCIu3F,EAvCAC,EAAW/O,EAAW/1F,IAAI,WAAY,YAAa,aAEvD,GAAI8kG,GACEA,EAASj/E,KAAM,CACjB,IAAIiR,EAAUguE,EAASj/E,KAAK7lB,IAAI,WAE5B82B,IACFA,EAAUA,EAAQ74B,MAGpB,IAAI8mG,EAAUD,EAASj/E,KAAK7lB,IAAI,WAC5BglG,EAAUF,EAASj/E,KAAK7lB,IAAI,WAC5BilG,EAAUH,EAASj/E,KAAK7lB,IAAI,WA6BpC,GAzBAu+F,EAAa,CACXh8E,OACAtkB,KAAMu2F,EAASv2F,KACf64B,UACA+yD,KAAMib,EACNC,UACAC,UACAC,UACA3oE,WAAYgiE,EAAShiE,WACrBsiE,YACAsG,YAAY,EACZhK,WAAYr1E,EAAKyG,SAAS,eAAiBjrB,EAAMoN,qBACjDmzF,UAAWA,GAAa,EACxBC,SAAUA,GAAYyC,EACtBvgB,KAAMgS,EAAWzpE,SAAS,YAC1BuuE,OAAQ9E,EAAW/1F,IAAI,UACvB86F,QAAS/E,EAAW/1F,IAAI,WACxBmlG,QAASpP,EAAW/1F,IAAI,WACxBolG,UAAWrP,EAAW/1F,IAAI,aAC1B03B,MAAOq+D,EAAW/1F,IAAI,SACtBqlG,YAAatP,EAAW/1F,IAAI,eAC5B00F,aAAa,GAIXkK,EAAW,CACb,IAAI0G,EAAchH,EAASt+F,IAAI,aAE3B,EAAIsB,EAAYiiB,QAAQ+hF,KAC1B/G,EAAW+G,YAAcA,EAAYrnG,MAGvC4mG,EAAcjW,EAAM0S,YAAY7gG,OAAO,CACrC40C,SAAUiwD,EACV7V,iBAAkBvwF,KAAKuwF,iBACvB8R,QAAS,OACRj8F,MAAK,SAAU47F,GAChB3C,EAAW2C,KAAOA,EAClB3C,EAAW5E,SAAW4E,EAAW2C,KAAKvH,iBAGxCkL,EAAczhG,QAAQ9E,aAAQ8f,GAGhC,OAAOymF,EAAYv/F,KAAK,IACfpG,KAAKm/F,sBAAsBx4E,EAAMy4E,EAAUC,IACjDj5F,KAAKm/F,IACNvlG,KAAKkjG,cAAcv8E,EAAMkwE,EAAY0O,GAExB,UAATliF,IACFkiF,EAAc/P,aAAc,GAGvB,IAAI7F,EAAOwH,KAAK7B,EAASv2F,KAAM6mG,EAAUL,OAKtD70E,EAAiBylE,eAAiB,SAAU35E,EAAMs5E,EAAQhzF,GACxD,SAASo3F,EAAUmM,GACb7pF,EAAK8pF,SAASC,aAAaF,IAI/BvjG,EAAQK,KAAK,YAAa,CAAC,GAAGqZ,EAAK4gB,mBAAmBipE,IAAY,WAAY7pF,EAAK8pF,SAASE,UAAUH,KAGxG,IAAK,MAAMtJ,KAASjH,EAAQ,CAC1BoE,EAAU6C,EAAMsJ,UAChB,MAAMI,EAAS1J,EAAM0J,OAEjBA,GAAUA,EAAOJ,UACnBnM,EAAUuM,EAAOJ,YAKvB31E,EAAiB+lE,oBAAsB,WACrC,GAAIz2F,KAAK0mG,kBACP,OAAO1mG,KAAK0mG,kBAGd,MAAM//E,EAAO,IAAIvkB,EAAYwiB,KAK7B,OAJA+B,EAAK5G,IAAI,WAAY3d,EAAYuiB,KAAK7jB,IAAI,uBAC1C6lB,EAAK5G,IAAI,OAAQ3d,EAAYuiB,KAAK7jB,IAAI,iBACtC6lB,EAAK5G,IAAI,UAAW3d,EAAYuiB,KAAK7jB,IAAI,iBACzC6lB,EAAK5G,IAAI,WAAY3d,EAAYuiB,KAAK7jB,IAAI,oBACnCd,KAAK0mG,kBAAoB//E,GAG3B+J,EAhwFc,GAmwFvBp1B,EAAQo1B,iBAAmBA,EAE3B,MAAMglE,EACJ,aAAY,WACVt4D,EAAU,KACV5gB,EAAI,KACJmK,EAAI,gBACJivE,GAAkB,IAElB51F,KAAKo9B,WAAaA,EAClBp9B,KAAKwc,KAAOA,EACZxc,KAAK2mB,KAAOA,EACZ3mB,KAAK2mG,iBAAmB/Q,EACxB51F,KAAK4mG,YAAc,KACnB5mG,KAAK6mG,MAAO,EAGd,KAAK/jG,GACC9C,KAAK6mG,OAIT7mG,KAAK6mG,MAAO,EACZ/jG,EAAQK,KAAK,YAAa,CAACnD,KAAKo9B,WAAY,OAAQp9B,KAAKwc,KAAKsqF,WAAW9mG,KAAK2mG,qBAGhF,SAAS7jG,GACP,IAAK9C,KAAKwc,KAAKtZ,KACb,OAGFlD,KAAKwc,KAAKvT,iBAAkB,EAC5B,MAAM6sF,EAAS91F,KAAKwc,KAAKuqF,iBACzBr2E,EAAiBylE,eAAen2F,KAAKwc,KAAMs5E,EAAQhzF,GAGrD,cAAc2jF,EAAWp2D,EAAW22E,EAAoBtiG,GACtD,IAAK1E,KAAKwc,KAAKg5E,YACb,MAAM,IAAIl5F,MAAM,yBAGlB,GAAI0D,KAAK4mG,YACP,OAAO5mG,KAAK4mG,YAGd,IAAIK,EAAetmG,OAAOY,OAAOklF,EAAU91D,SAC3Cs2E,EAAa/9F,cAAe,EAC5B,IAAIg+F,EAAiBzgB,EAAUkO,MAAMsS,GACrCC,EAAe5W,kBAAmB,EAQlC,IAPA,IAAInzD,EAAiBn9B,KAAKwc,KACtB2qF,EAAuBjjG,QAAQ9E,UAC/BgoG,EAAYpnG,KAAK2mB,KAAK7lB,IAAI,aAC1BumG,EAAgBrnG,KAAK2mB,KAAK7lB,IAAI,cAAgBuvB,EAC9Ci3E,EAAeF,EAAUjhF,UACzBohF,EAAuB5mG,OAAOY,OAAO,MAEhCvF,EAAI,EAAG0F,EAAI4lG,EAAaprG,OAAQF,EAAI0F,IAAK1F,EAAG,CACnD,MAAMwF,EAAM8lG,EAAatrG,GACzBmrG,EAAuBA,EAAqB/gG,MAAK,WAC/C,IAAIohG,EAAcJ,EAAUtmG,IAAIU,GAC5B2vB,EAAe,IAAI5C,EAAeyC,aACtC,OAAOk2E,EAAej8F,gBAAgB,CACpC1B,OAAQi+F,EACR9iG,OACA2rB,UAAWg3E,EACXl2E,iBACC/qB,MAAK,WACNmhG,EAAqB/lG,GAAO2vB,EAAagnE,QACzC6O,EAAmB9R,gBAAgB/jE,EAAa69D,iBAC/CnoF,OAAM,SAAUC,IACjB,EAAI3E,EAAMgF,MAAM,wBAAwB3F,wBACxC,MAAMimG,EAAoB,IAAIl5E,EAAeyC,aAC7Cu2E,EAAqB/lG,GAAOimG,EAAkBtP,cAQpD,OAHAn4F,KAAK4mG,YAAcO,EAAqB/gG,MAAK,WAC3C+2B,EAAeoqE,qBAAuBA,KAEjCvnG,KAAK4mG,aAKhB,IAAItO,EAAe,WACjB,SAASA,EAAalG,GACpBpyF,KAAK0nC,MAAQ0qD,EACbpyF,KAAK0nG,WAAa,GAuBpB,OApBApP,EAAav6F,UAAY,CACvB,OACE,IAAI4pG,EAAM3nG,KAAK0nC,MACf1nC,KAAK0nG,WAAWpqG,KAAK0C,KAAK0nC,OAC1B1nC,KAAK0nC,MAAQigE,EAAIhT,SAGnB,UACE,IAAI37C,EAAOh5C,KAAK0nG,WAAW9pE,MAEvBob,IACFh5C,KAAK0nC,MAAQsR,IAIjB,UAAUl7C,GACRkC,KAAK0nC,MAAMy0D,IAAMh6F,EAAMkM,KAAK8I,UAAUnX,KAAK0nC,MAAMy0D,IAAKr+F,KAInDw6F,EA1BU,GA6Bf8B,EAAY,WACd,SAASA,IACPp6F,KAAKm8F,IAAM,IAAI30B,aAAarlE,EAAMmN,iBAClCtP,KAAKs1F,SAAW,KAChBt1F,KAAKs5F,SAAW,EAChBt5F,KAAKwc,KAAO,KACZxc,KAAKg8F,WAAa75F,EAAMoN,qBACxBvP,KAAKo8F,WAAaj6F,EAAMmN,gBAAgBtR,QACxCgC,KAAKq8F,eAAiBl6F,EAAMmN,gBAAgBtR,QAC5CgC,KAAKu9F,YAAc,EACnBv9F,KAAKy9F,YAAc,EACnBz9F,KAAKu+F,QAAU,EACfv+F,KAAK87F,WAAa,EAClB97F,KAAK+7F,SAAW,EAsFlB,OAnFA3B,EAAUr8F,UAAY,CACpBkb,cAAe,SAAiCmI,EAAGZ,EAAGjgB,EAAGC,EAAGoH,EAAG4oE,GAC7D,IAAIlwE,EAAIN,KAAKo8F,WACb97F,EAAE,GAAK8gB,EACP9gB,EAAE,GAAKkgB,EACPlgB,EAAE,GAAKC,EACPD,EAAE,GAAKE,EACPF,EAAE,GAAKsH,EACPtH,EAAE,GAAKkwE,GAETouB,kBAAmB,SAAiCx9E,EAAGZ,EAAGjgB,EAAGC,EAAGoH,EAAG4oE,GACjE,IAAIlwE,EAAIN,KAAKq8F,eACb/7F,EAAE,GAAK8gB,EACP9gB,EAAE,GAAKkgB,EACPlgB,EAAE,GAAKC,EACPD,EAAE,GAAKE,EACPF,EAAE,GAAKsH,EACPtH,EAAE,GAAKkwE,GAETstB,oBAAqB,SAAuC/vE,EAAG0rB,GAC7D,IAAIn5C,EAAIN,KAAKo8F,WACb97F,EAAE,GAAKA,EAAE,GAAKytB,EAAIztB,EAAE,GAAKm5C,EAAIn5C,EAAE,GAC/BA,EAAE,GAAKA,EAAE,GAAKytB,EAAIztB,EAAE,GAAKm5C,EAAIn5C,EAAE,IAEjCm+F,wBAAyB,SAAuC1wE,EAAG0rB,GACjE,IAAIn5C,EAAIN,KAAKq8F,eACb/7F,EAAE,GAAKA,EAAE,GAAKytB,EAAIztB,EAAE,GAAKm5C,EAAIn5C,EAAE,GAC/BA,EAAE,GAAKA,EAAE,GAAKytB,EAAIztB,EAAE,GAAKm5C,EAAIn5C,EAAE,IAEjCq+F,0BAA2B,SAA6Cv9E,EAAGZ,EAAGjgB,EAAGC,EAAGoH,EAAG4oE,GACrF,IAAIh0D,EAAOxc,KAAKwc,KAEhB,IAAKA,EACH,OAAO,KAGT,IAAIlc,EAAIN,KAAKq8F,eAEb,GAAMj7E,IAAM9gB,EAAE,IAAMkgB,IAAMlgB,EAAE,IAAMC,IAAMD,EAAE,IAAME,IAAMF,EAAE,GACtD,OAAO,KAGT,IAAIsnG,EAAShgG,EAAItH,EAAE,GACfunG,EAASr3B,EAAIlwE,EAAE,GAEnB,GAAIkc,EAAKi+E,UAAuB,IAAXmN,IAAiBprF,EAAKi+E,UAAuB,IAAXoN,EACrD,OAAO,KAGT,IAAIlK,EACAC,EACAkK,EAAc1mF,EAAI5gB,EAAIggB,EAAIjgB,EAU9B,OARIic,EAAKi+E,UACPkD,GAAMkK,EAAStnG,EAAIunG,EACnBlK,EAAKiK,EAASzmF,EAAI0mF,IAElBnK,EAAKiK,EAASpnG,EAAIsnG,EAClBlK,GAAMgK,EAASpnF,EAAIsnF,GAGd,CACL9tD,MAAO2jD,EACP1jD,OAAQ2jD,EACR18F,MAAOsb,EAAKi+E,SAAWmD,EAAKD,IAGhCoK,iBAAkB,SAAmC5L,GACnD,IAAIN,EAAM,CAAC77F,KAAKs5F,SAAWt5F,KAAK87F,WAAY,EAAG,EAAG97F,KAAKs5F,SAAU,EAAGt5F,KAAK+7F,UACzE,OAAO55F,EAAMkM,KAAK8I,UAAUglF,EAAKh6F,EAAMkM,KAAK8I,UAAUnX,KAAKo8F,WAAYP,KAEzE6C,eAAgB,WACd1+F,KAAKy+F,wBAAwB,GAAIz+F,KAAKu+F,SACtCv+F,KAAKo8F,WAAap8F,KAAKq8F,eAAer+F,SAExC22F,MAAO,WACL,IAAIA,EAAQh0F,OAAOY,OAAOvB,MAI1B,OAHA20F,EAAMyH,WAAap8F,KAAKo8F,WAAWp+F,QACnC22F,EAAM0H,eAAiBr8F,KAAKq8F,eAAer+F,QAC3C22F,EAAMqH,WAAah8F,KAAKg8F,WAAWh+F,QAC5B22F,IAGJyF,EAnGO,GAsGZhC,EAAY,WACd,SAASA,IACPp4F,KAAKm8F,IAAM,IAAI30B,aAAarlE,EAAMmN,iBAClCtP,KAAKwc,KAAO,KACZxc,KAAKi2F,kBAAoB9zF,EAAMmM,kBAAkB2B,KACjDjQ,KAAKk2F,eAAiBj/D,EAAY2B,WAAWC,WAAW6hD,KACxD16E,KAAK45F,iBAAmB3iE,EAAY2B,WAAWC,WAAW6hD,KAQ5D,OALA0d,EAAUr6F,UAAY,CACpB42F,MAAO,WACL,OAAOh0F,OAAOY,OAAOvB,QAGlBo4F,EAdO,GAiBZI,EAAwB,WAC1B,IAAIwP,GAAW,EAAIvlG,EAAYiqB,wBAAuB,SAAUvrB,GAC9DA,EAAEovE,EAAI,CACJhmE,GAAIpI,EAAMkN,IAAIoH,aACdwxF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEgnG,EAAI,CACJ59F,GAAIpI,EAAMkN,IAAIqH,WACduxF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEgyB,EAAI,CACJ5oB,GAAIpI,EAAMkN,IAAIsH,YACdsxF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE8gF,EAAI,CACJ13E,GAAIpI,EAAMkN,IAAIuH,cACdqxF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEX,EAAI,CACJ+J,GAAIpI,EAAMkN,IAAIwH,QACdoxF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEinG,GAAK,CACL79F,GAAIpI,EAAMkN,IAAIyH,mBACdmxF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEnF,EAAI,CACJuO,GAAIpI,EAAMkN,IAAI0H,YACdkxF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEknG,GAAK,CACL99F,GAAIpI,EAAMkN,IAAI2H,UACdixF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE4yC,EAAI,CACJxpC,GAAIpI,EAAMkN,IAAI4H,KACdgxF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEmnG,EAAI,CACJ/9F,GAAIpI,EAAMkN,IAAI6H,QACd+wF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEonG,GAAK,CACLh+F,GAAIpI,EAAMkN,IAAI8H,UACd8wF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEb,EAAI,CACJiK,GAAIpI,EAAMkN,IAAI+H,OACd6wF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEd,EAAI,CACJkK,GAAIpI,EAAMkN,IAAIgI,OACd4wF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEZ,EAAI,CACJgK,GAAIpI,EAAMkN,IAAIiI,QACd2wF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE+f,EAAI,CACJ3W,GAAIpI,EAAMkN,IAAIkI,SACd0wF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEs4C,EAAI,CACJlvC,GAAIpI,EAAMkN,IAAImI,SACdywF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEixD,EAAI,CACJ7nD,GAAIpI,EAAMkN,IAAIoI,UACdwwF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEqnG,GAAK,CACLj+F,GAAIpI,EAAMkN,IAAIqI,UACduwF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEsnG,EAAI,CACJl+F,GAAIpI,EAAMkN,IAAIsI,OACdswF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEY,EAAI,CACJwI,GAAIpI,EAAMkN,IAAIuI,YACdqwF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEqvE,EAAI,CACJjmE,GAAIpI,EAAMkN,IAAIwI,KACdowF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEunG,EAAI,CACJn+F,GAAIpI,EAAMkN,IAAIwI,KACdowF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE,MAAQ,CACRoJ,GAAIpI,EAAMkN,IAAIyI,OACdmwF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE2+E,EAAI,CACJv1E,GAAIpI,EAAMkN,IAAI0I,WACdkwF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE,MAAQ,CACRoJ,GAAIpI,EAAMkN,IAAI2I,aACdiwF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEqf,EAAI,CACJjW,GAAIpI,EAAMkN,IAAI4I,gBACdgwF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE,MAAQ,CACRoJ,GAAIpI,EAAMkN,IAAI6I,kBACd+vF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEO,EAAI,CACJ6I,GAAIpI,EAAMkN,IAAI8I,QACd8vF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEwnG,EAAI,CACJp+F,GAAIpI,EAAMkN,IAAI+I,KACd6vF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE,MAAQ,CACRoJ,GAAIpI,EAAMkN,IAAIgJ,OACd4vF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEynG,GAAK,CACLr+F,GAAIpI,EAAMkN,IAAIiJ,UACd2vF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE0nG,GAAK,CACLt+F,GAAIpI,EAAMkN,IAAIkJ,QACd0vF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE2nG,GAAK,CACLv+F,GAAIpI,EAAMkN,IAAImJ,eACdyvF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE4nG,GAAK,CACLx+F,GAAIpI,EAAMkN,IAAIoJ,eACdwvF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE6nG,GAAK,CACLz+F,GAAIpI,EAAMkN,IAAIqJ,UACduvF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE8nG,GAAK,CACL1+F,GAAIpI,EAAMkN,IAAIsJ,WACdsvF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE+nG,GAAK,CACL3+F,GAAIpI,EAAMkN,IAAIuJ,QACdqvF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEgoG,GAAK,CACL5+F,GAAIpI,EAAMkN,IAAIwJ,qBACdovF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEioG,GAAK,CACL7+F,GAAIpI,EAAMkN,IAAIyJ,YACdmvF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEkoG,GAAK,CACL9+F,GAAIpI,EAAMkN,IAAI0J,SACdkvF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEmoG,GAAK,CACL/+F,GAAIpI,EAAMkN,IAAI2J,mBACdivF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEooG,GAAK,CACLh/F,GAAIpI,EAAMkN,IAAI4J,cACdgvF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE,MAAQ,CACRoJ,GAAIpI,EAAMkN,IAAI6J,SACd+uF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEqoG,GAAK,CACLj/F,GAAIpI,EAAMkN,IAAI8J,SACd8uF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEsoG,GAAK,CACLl/F,GAAIpI,EAAMkN,IAAI+J,eACd6uF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE,KAAO,CACPoJ,GAAIpI,EAAMkN,IAAIgK,iBACd4uF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE,KAAO,CACPoJ,GAAIpI,EAAMkN,IAAIiK,2BACd2uF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEuoG,GAAK,CACLn/F,GAAIpI,EAAMkN,IAAIkK,aACd0uF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEuiB,GAAK,CACLnZ,GAAIpI,EAAMkN,IAAImK,sBACdyuF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEwoG,GAAK,CACLp/F,GAAIpI,EAAMkN,IAAIoK,oBACdwuF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEg5E,GAAK,CACL5vE,GAAIpI,EAAMkN,IAAIqK,kBACduuF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEyoG,GAAK,CACLr/F,GAAIpI,EAAMkN,IAAIsK,eACdsuF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE0oG,IAAM,CACNt/F,GAAIpI,EAAMkN,IAAIuK,gBACdquF,QAAS,GACTC,cAAc,GAEhB/mG,EAAE2oG,GAAK,CACLv/F,GAAIpI,EAAMkN,IAAIwK,aACdouF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE4oG,IAAM,CACNx/F,GAAIpI,EAAMkN,IAAIyK,cACdmuF,QAAS,GACTC,cAAc,GAEhB/mG,EAAE27E,EAAI,CACJvyE,GAAIpI,EAAMkN,IAAI0K,cACdkuF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEof,EAAI,CACJhW,GAAIpI,EAAMkN,IAAI2K,YACdiuF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE6oG,GAAK,CACLz/F,GAAIpI,EAAMkN,IAAI4K,kBACdguF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE8oG,GAAK,CACL1/F,GAAIpI,EAAMkN,IAAI6K,gBACd+tF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEuzC,EAAI,CACJnqC,GAAIpI,EAAMkN,IAAI8K,mBACd8tF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEuvC,EAAI,CACJnmC,GAAIpI,EAAMkN,IAAI+K,iBACd6tF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE+oG,GAAK,CACL3/F,GAAIpI,EAAMkN,IAAIgL,YACd4tF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEgpG,GAAK,CACL5/F,GAAIpI,EAAMkN,IAAIiL,iBACd2tF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEipG,GAAK,CACL7/F,GAAIpI,EAAMkN,IAAIkL,eACd0tF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEkpG,GAAK,CACL9/F,GAAIpI,EAAMkN,IAAImL,eACdytF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEmpG,GAAK,CACL//F,GAAIpI,EAAMkN,IAAIoL,aACdwtF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEopG,GAAK,CACLhgG,GAAIpI,EAAMkN,IAAIqL,UACdutF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEqpG,GAAK,CACLjgG,GAAIpI,EAAMkN,IAAIsL,eACdstF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEspG,IAAM,CACNlgG,GAAIpI,EAAMkN,IAAIuL,mBACdqtF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEupG,IAAM,CACNngG,GAAIpI,EAAMkN,IAAIwL,wBACdotF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEwpG,IAAM,CACNpgG,GAAIpI,EAAMkN,IAAIyL,iBACdmtF,QAAS,EACTC,cAAc,GAEhB/mG,EAAEypG,GAAK,CACLrgG,GAAIpI,EAAMkN,IAAI0L,YACdktF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE0pG,GAAK,CACLtgG,GAAIpI,EAAMkN,IAAI2L,UACditF,QAAS,EACTC,cAAc,GAEhB/mG,EAAE2pG,GAAK,KACP3pG,EAAE4pG,GAAK,KACP5pG,EAAE6pG,KAAO,KACT7pG,EAAE8pG,GAAK,KACP9pG,EAAE+pG,IAAM,KACR/pG,EAAEgqG,KAAO,KACThqG,EAAEiqG,MAAQ,KACVjqG,EAAEkqG,GAAK,KACPlqG,EAAEmqG,IAAM,KACRnqG,EAAEoqG,KAAO,QAEX,MAAMC,EAAuB,GAE7B,SAAShT,EAAsBjvF,EAAQiB,EAAM2pF,GAC3Cn0F,KAAKyrG,MAAQzD,IACbhoG,KAAKsgC,OAAS,IAAIhS,EAAQsV,OAAO,CAC/BlD,MAAO,IAAIpS,EAAQuV,MAAMt6B,EAAQvJ,KAAKyrG,OACtCjhG,SAEFxK,KAAKm0F,aAAeA,EACpBn0F,KAAK0rG,iBAAmB,GACxB1rG,KAAK2rG,mBAAqB,EAwG5B,OArGAnT,EAAsBz6F,UAAY,CAChC,uBACE,OAAOiC,KAAKm0F,aAAauT,WAAWxrG,QAGtCyL,KAAM,SAAoCoxF,GACxC,IAAIj7F,EAAOi7F,EAAUj7F,KAErB,MAAO,EAAM,CACX,IAAIygB,EAAMve,KAAKsgC,OAAOU,SAEtB,GAAIziB,aAAenc,EAAYyiB,IAAK,CAClC,IAAIM,EAAM5G,EAAI4G,IACVymF,EAAS5rG,KAAKyrG,MAAMtmF,GAExB,IAAKymF,EAAQ,EACX,EAAIzpG,EAAMgF,MAAM,oBAAoBge,OACpC,SAGF,IAAItnB,EAAK+tG,EAAOrhG,GACZ09F,EAAU2D,EAAO3D,QACjB4D,EAAsB,OAAT/tG,EAAgBA,EAAK5B,OAAS,EAE/C,GAAK0vG,EAAO1D,aAkCD2D,EAAa5D,IACtB,EAAI9lG,EAAMiJ,MAAM,WAAW+Z,mBAAqB8iF,yBAAoC4D,eAnC5D,CACxB,GAAIA,IAAe5D,EAAS,CAC1B,IAAIyD,EAAmB1rG,KAAK0rG,iBAE5B,MAAOG,EAAa5D,EAClByD,EAAiBpuG,KAAKQ,EAAKK,SAC3B0tG,IAGF,MAAOA,EAAa5D,GAAuC,IAA5ByD,EAAiBxvG,OACjC,OAAT4B,IACFA,EAAO,IAGTA,EAAKsqF,QAAQsjB,EAAiB9tE,OAC9BiuE,IAIJ,GAAIA,EAAa5D,EAAS,CACxB,MAAMl1C,EAAa,WAAW5tC,eAAiB8iF,wBAAmC4D,UAElF,GAAIhuG,GAAMsE,EAAMkN,IAAI+H,QAAUvZ,GAAMsE,EAAMkN,IAAI8I,WAAanY,KAAK2rG,mBAAqBH,EACnF,MAAM,IAAIrpG,EAAMiM,YAAY,WAAW2kD,IAGzC,EAAI5wD,EAAMgF,MAAM,YAAY4rD,GAEf,OAATj1D,IACFA,EAAK5B,OAAS,GAGhB,UASJ,OAHA8D,KAAK8rG,kBAAkBjuG,EAAIC,GAC3Bi7F,EAAUl7F,GAAKA,EACfk7F,EAAUj7F,KAAOA,GACV,EAGT,GAAIygB,IAAQnc,EAAY0iB,IACtB,OAAO,EAGT,GAAY,OAARvG,IACW,OAATzgB,IACFA,EAAO,IAGTA,EAAKR,KAAKihB,GAENzgB,EAAK5B,OAAS,IAChB,MAAM,IAAIiG,EAAMiM,YAAY,wBAKpC09F,kBAAmB,SAAiDjuG,EAAIC,GACtE,OAAa,EAALD,GACN,KAAKsE,EAAMkN,IAAI4H,KACbjX,KAAKm0F,aAAal9E,OAClB,MAEF,KAAK9U,EAAMkN,IAAI6H,QACblX,KAAKm0F,aAAaj9E,UAClB,MAEF,KAAK/U,EAAMkN,IAAI8H,UACbnX,KAAKm0F,aAAah9E,UAAUrZ,GAC5B,SAID06F,EA5emB,IAiftB,SAAUz4F,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQ8mG,YAAc9mG,EAAQ4mG,aAAe5mG,EAAQywG,UAAO,EAE5D,IAAI5pG,EAAQhC,EAAoB,GAE5BiC,EAAcjC,EAAoB,GAElCmuB,EAAUnuB,EAAoB,IAE9BsC,EAActC,EAAoB,GAElCsnB,EAAUtnB,EAAoB,IAE9B6rG,EAAiB,CAAC,iBAAkB,kBAAmB,oBAAqB,oBAAqB,WAAY,WAAY,OAAQ,YAAa,YAAa,OAAQ,cAAe,cAAe,cAAe,cAAe,cAAe,eAAgB,eAAgB,cAAe,cAAe,QAAS,aAAc,aAAc,QAAS,eAAgB,eAAgB,eAAgB,eAAgB,eAAgB,eAAgB,eAAgB,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,OAAQ,OAAQ,SAAU,SAAU,YAAa,YAAa,SAAU,SAAU,SAAU,SAAU,YAAa,YAAa,YAAa,YAAa,cAAe,cAAe,QAAS,QAAS,QAAS,aAAc,aAAc,QAAS,WAAY,WAAY,OAAQ,OAAQ,YAAa,YAAa,UAAW,UAAW,aAAc,aAAc,YAAa,YAAa,QAAS,QAAS,cAAe,cAAe,aAAc,aAAc,IAAK,aAAc,aAAc,aAAc,aAAc,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,aAAc,aAAc,UAAW,WAAY,YAAa,YAAa,QAAS,cAAe,cAAe,QAAS,cAAe,iBAAkB,iBAAkB,cAAe,cAAe,cAAe,WAAY,QAAS,QAAS,SAAU,SAAU,QAAS,gBAAiB,gBAAiB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,gBAAiB,gBAAiB,eAAgB,eAAgB,gBAAiB,gBAAiB,gBAAiB,gBAAiB,eAAgB,eAAgB,gBAAiB,mBAAoB,mBAAoB,gBAAiB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,gBAAiB,gBAAiB,qBAAsB,qBAAsB,qBAAsB,qBAAsB,oBAAqB,oBAAqB,sBAAuB,mBAAoB,mBAAoB,sBAAuB,sBAAuB,0BAA2B,0BAA2B,eAAgB,eAAgB,gBAAiB,gBAAiB,gBAAiB,gBAAiB,eAAgB,eAAgB,IAAK,aAC/8E,MAAMC,EAAgB,GAAK,GAAK,EAEhC,MAAMF,EACJ,YAAY9J,GAAc,GACxBjiG,KAAKksG,gBAAkB,CAAC,GAAI,GAAI,GAAI,IACpClsG,KAAKmsG,mBAAqB,EAC1BnsG,KAAKslB,KAAO,GACZtlB,KAAKjB,KAAO,GACZiB,KAAKy6F,UAAW,EAChBz6F,KAAKqiG,QAAU,KACfriG,KAAKiiG,YAAcA,EAGrB,kBAAkBvgG,EAAGovE,EAAKD,GACxB7wE,KAAKksG,gBAAgBxqG,EAAI,GAAGpE,KAAKwzE,EAAKD,GACtC7wE,KAAKmsG,qBAGP,YAAYr7B,EAAKD,EAAMu7B,GACrB,GAAIv7B,EAAOC,EAAMm7B,EACf,MAAM,IAAI3vG,MAAM,oDAGlB,MAAOw0E,GAAOD,EACZ7wE,KAAKslB,KAAKwrD,KAASs7B,IAIvB,WAAWt7B,EAAKD,EAAMu7B,GACpB,GAAIv7B,EAAOC,EAAMm7B,EACf,MAAM,IAAI3vG,MAAM,mDAGlB,IAAIwtC,EAAWsiE,EAAOlwG,OAAS,EAE/B,MAAO40E,GAAOD,EACZ7wE,KAAKslB,KAAKwrD,KAASs7B,EACnBA,EAASA,EAAOz3E,UAAU,EAAGmV,GAAY1qB,OAAOC,aAAa+sF,EAAOjwG,WAAW2tC,GAAY,GAI/F,kBAAkBgnC,EAAKD,EAAM1pC,GAC3B,GAAI0pC,EAAOC,EAAMm7B,EACf,MAAM,IAAI3vG,MAAM,0DAGlB,MAAMgnB,EAAK6jB,EAAMjrC,OACjB,IAAIF,EAAI,EAER,MAAO80E,GAAOD,GAAQ70E,EAAIsnB,EACxBtjB,KAAKslB,KAAKwrD,GAAO3pC,EAAMnrC,OACrB80E,EAIN,OAAOvX,EAAK8yC,GACVrsG,KAAKslB,KAAKi0C,GAAO8yC,EAGnB,OAAOtwG,GACL,OAAOiE,KAAKslB,KAAKvpB,GAGnB,SAASA,GACP,YAA2BmjB,IAApBlf,KAAKslB,KAAKvpB,GAGnB,QAAQuqB,GACN,MAAM8lE,EAAMpsF,KAAKslB,KACXppB,EAASkwF,EAAIlwF,OAEnB,GAAIA,GAAU,MACZ,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,SACXkjB,IAAXktE,EAAIpwF,IACNsqB,EAAStqB,EAAGowF,EAAIpwF,SAIpB,IAAK,MAAMA,KAAKowF,EACd9lE,EAAStqB,EAAGowF,EAAIpwF,IAKtB,WAAWkF,GACT,MAAMkrF,EAAMpsF,KAAKslB,KAEjB,GAAI8mE,EAAIlwF,QAAU,MAChB,OAAOkwF,EAAI5vF,QAAQ0E,GAGrB,IAAK,MAAM6hG,KAAY3W,EACrB,GAAIA,EAAI2W,KAAc7hG,EACpB,OAAkB,EAAX6hG,EAIX,OAAQ,EAGV,SACE,OAAO/iG,KAAKslB,KAGd,aAAatG,EAAKgP,EAAQk6C,GACxB,IAAI3nE,EAAI,EACR,MAAM2rG,EAAkBlsG,KAAKksG,gBAE7B,IAAK,IAAIxqG,EAAI,EAAG4qG,EAAKJ,EAAgBhwG,OAAQwF,EAAI4qG,EAAI5qG,IAAK,CACxDnB,GAAKA,GAAK,EAAIye,EAAI7iB,WAAW6xB,EAAStsB,MAAQ,EAC9C,MAAM6qG,EAAiBL,EAAgBxqG,GAEvC,IAAK,IAAIgvC,EAAI,EAAGoB,EAAKy6D,EAAerwG,OAAQw0C,EAAIoB,GAAK,CACnD,MAAMg/B,EAAMy7B,EAAe77D,KACrBmgC,EAAO07B,EAAe77D,KAE5B,GAAInwC,GAAKuwE,GAAOvwE,GAAKswE,EAGnB,OAFA3I,EAAIk5B,SAAW7gG,OACf2nE,EAAIhsE,OAASwF,EAAI,IAMvBwmE,EAAIk5B,SAAW,EACfl5B,EAAIhsE,OAAS,EAGf,aACE,OAAO8D,KAAKslB,KAAKppB,OAGnB,qBACE,GAAoB,eAAd8D,KAAKjB,MAAuC,eAAdiB,KAAKjB,KACvC,OAAO,EAGT,GAAyB,QAArBiB,KAAKslB,KAAKppB,OACZ,OAAO,EAGT,IAAK,IAAIF,EAAI,EAAGA,EAAI,MAASA,IAC3B,GAAIgE,KAAKslB,KAAKtpB,KAAOA,EACnB,OAAO,EAIX,OAAO,GAKXV,EAAQywG,KAAOA,EAEf,MAAM7J,UAAqB6J,EACzB,YAAYtR,EAAU/4F,GACpBkd,QACA5e,KAAKy6F,SAAWA,EAChBz6F,KAAKwsG,kBAAkB9qG,EAAG,EAAG,OAG/B,YAAYovE,EAAKD,EAAMu7B,IACrB,EAAIjqG,EAAM6L,aAAa,+BAGzB,WAAW8iE,EAAKD,EAAMu7B,IACpB,EAAIjqG,EAAM6L,aAAa,8BAGzB,kBAAkB8iE,EAAKD,EAAM1pC,IAC3B,EAAIhlC,EAAM6L,aAAa,qCAGzB,OAAOurD,EAAK8yC,IACV,EAAIlqG,EAAM6L,aAAa,6BAGzB,OAAOjS,GACL,OAAOwhB,OAAOC,UAAUzhB,IAASA,GAAQ,MAASA,OAAOmjB,EAG3D,SAASnjB,GACP,OAAOwhB,OAAOC,UAAUzhB,IAASA,GAAQ,MAG3C,QAAQuqB,GACN,IAAK,IAAItqB,EAAI,EAAGA,GAAK,MAAQA,IAC3BsqB,EAAStqB,EAAGA,GAIhB,WAAWkF,GACT,OAAOqc,OAAOC,UAAUtc,IAAUA,GAAS,MAASA,GAAS,EAG/D,SACE,MAAMkrF,EAAM,IAAItwF,MAAM,OAEtB,IAAK,IAAIE,EAAI,EAAGA,GAAK,MAAQA,IAC3BowF,EAAIpwF,GAAKA,EAGX,OAAOowF,EAGT,aACE,OAAO,MAGT,sBACE,EAAIjqF,EAAM6L,aAAa,sCAK3B1S,EAAQ4mG,aAAeA,EAEvB,IAAIuK,EAAmB,WACrB,SAASC,EAAStrF,EAAG8sB,GAGnB,IAFA,IAAIxsC,EAAI,EAEC1F,EAAI,EAAGA,GAAKkyC,EAAMlyC,IACzB0F,EAAIA,GAAK,EAAI0f,EAAEplB,GAGjB,OAAO0F,IAAM,EAGf,SAASirG,EAASvrF,EAAG8sB,GACnB,OAAa,IAATA,EACK9uB,OAAOC,aAAa+B,EAAE,GAAIA,EAAE,IAGxB,IAAT8sB,EACK9uB,OAAOC,aAAa+B,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAG1ChC,OAAOC,aAAahhB,MAAM,KAAM+iB,EAAE1B,SAAS,EAAGwuB,EAAO,IAG9D,SAAS0+D,EAAOxrF,EAAGZ,EAAG0tB,GAGpB,IAFA,IAAI3tC,EAAI,EAECvE,EAAIkyC,EAAMlyC,GAAK,EAAGA,IACzBuE,GAAK6gB,EAAEplB,GAAKwkB,EAAExkB,GACdolB,EAAEplB,GAAS,IAAJuE,EACPA,IAAM,EAIV,SAASssG,EAAOzrF,EAAG8sB,GAGjB,IAFA,IAAI3tC,EAAI,EAECvE,EAAIkyC,EAAMlyC,GAAK,GAAKuE,EAAI,EAAGvE,IAClCuE,GAAK6gB,EAAEplB,GACPolB,EAAEplB,GAAS,IAAJuE,EACPA,IAAM,EAIV,IAAIusG,EAAe,GACfC,EAAuB,GAE3B,SAASC,EAAiB9pG,GACxBlD,KAAKogB,OAASld,EACdlD,KAAK4f,IAAM,EACX5f,KAAK5C,IAAM8F,EAAKhH,OAChB8D,KAAK+7E,OAAS,IAAIlgF,WAAWkxG,GAiG/B,SAASE,EAAkB/pG,EAAM8+F,EAAM7zB,GACrC,OAAO,IAAIjqE,SAAQ,SAAU9E,EAASyG,GACpC,IAAI0D,EAAS,IAAIyjG,EAAiB9pG,GAC9BkiD,EAAS77C,EAAO2jG,WACpBlL,EAAKvH,YAAuB,EAATr1C,GACnB,IAMIrpD,EACAykB,EAPA6hF,EAAU,KACVllG,EAAQ,IAAItB,WAAWixG,GACvB1vG,EAAM,IAAIvB,WAAWixG,GACrBK,EAAO,IAAItxG,WAAWixG,GACtB/J,EAAW,IAAIlnG,WAAWixG,GAC1BlwG,EAAM,IAAIf,WAAWixG,GAIzB,OAAQtsF,EAAIjX,EAAO2jG,aAAe,EAAG,CACnC,IAAI7pF,EAAO7C,GAAK,EAEhB,GAAa,IAAT6C,EAAJ,CAcA,IAAI+pF,KAAkB,GAAJ5sF,GACd6sF,EAAe,GAAJ7sF,EAEf,GAAI6sF,EAAW,EAAIP,EACjB,MAAM,IAAIxwG,MAAM,wCAGlB,IAEIN,EAFAsxG,EAAe,EACfC,EAAgBhkG,EAAOikG,aAG3B,OAAQnqF,GACN,KAAK,EAMH,IALA9Z,EAAOkkG,QAAQtwG,EAAOkwG,GACtB9jG,EAAOmkG,cAActwG,EAAKiwG,GAC1BT,EAAOxvG,EAAKD,EAAOkwG,GACnBrL,EAAKwK,kBAAkBa,EAAW,EAAGX,EAASvvG,EAAOkwG,GAAWX,EAAStvG,EAAKiwG,IAEzErxG,EAAI,EAAGA,EAAIuxG,EAAevxG,IAC7B6wG,EAAOzvG,EAAKiwG,GACZ9jG,EAAOmkG,cAAcvwG,EAAOkwG,GAC5BT,EAAOzvG,EAAOC,EAAKiwG,GACnB9jG,EAAOmkG,cAActwG,EAAKiwG,GAC1BT,EAAOxvG,EAAKD,EAAOkwG,GACnBrL,EAAKwK,kBAAkBa,EAAW,EAAGX,EAASvvG,EAAOkwG,GAAWX,EAAStvG,EAAKiwG,IAGhF,MAEF,KAAK,EAMH,IALA9jG,EAAOkkG,QAAQtwG,EAAOkwG,GACtB9jG,EAAOmkG,cAActwG,EAAKiwG,GAC1BT,EAAOxvG,EAAKD,EAAOkwG,GACnB9jG,EAAOikG,aAEFxxG,EAAI,EAAGA,EAAIuxG,EAAevxG,IAC7B6wG,EAAOzvG,EAAKiwG,GACZ9jG,EAAOmkG,cAAcvwG,EAAOkwG,GAC5BT,EAAOzvG,EAAOC,EAAKiwG,GACnB9jG,EAAOmkG,cAActwG,EAAKiwG,GAC1BT,EAAOxvG,EAAKD,EAAOkwG,GACnB9jG,EAAOikG,aAGT,MAEF,KAAK,EAKH,IAJAjkG,EAAOkkG,QAAQN,EAAME,GACrBtxG,EAAOwN,EAAOikG,aACdxL,EAAK2L,OAAOjB,EAASS,EAAME,GAAWtxG,GAEjCC,EAAI,EAAGA,EAAIuxG,EAAevxG,IAC7B6wG,EAAOM,EAAME,GAERD,IACH7jG,EAAOmkG,cAAc9wG,EAAKywG,GAC1BT,EAAOO,EAAMvwG,EAAKywG,IAGpBtxG,EAAOwN,EAAOqkG,cAAgB7xG,EAAO,GACrCimG,EAAK2L,OAAOjB,EAASS,EAAME,GAAWtxG,GAGxC,MAEF,KAAK,EAOH,IANAwN,EAAOkkG,QAAQtwG,EAAOkwG,GACtB9jG,EAAOmkG,cAActwG,EAAKiwG,GAC1BT,EAAOxvG,EAAKD,EAAOkwG,GACnBtxG,EAAOwN,EAAOikG,aACdxL,EAAK6L,YAAYnB,EAASvvG,EAAOkwG,GAAWX,EAAStvG,EAAKiwG,GAAWtxG,GAEhEC,EAAI,EAAGA,EAAIuxG,EAAevxG,IAC7B6wG,EAAOzvG,EAAKiwG,GAEPD,EAIHjwG,EAAM4iB,IAAI3iB,IAHVmM,EAAOmkG,cAAcvwG,EAAOkwG,GAC5BT,EAAOzvG,EAAOC,EAAKiwG,IAKrB9jG,EAAOmkG,cAActwG,EAAKiwG,GAC1BT,EAAOxvG,EAAKD,EAAOkwG,GACnBtxG,EAAOwN,EAAOikG,aACdxL,EAAK6L,YAAYnB,EAASvvG,EAAOkwG,GAAWX,EAAStvG,EAAKiwG,GAAWtxG,GAGvE,MAEF,KAAK,EAKH,IAJAwN,EAAOkkG,QAAQN,EAAMG,GACrB/jG,EAAOkkG,QAAQ1K,EAAUsK,GACzBrL,EAAK2L,OAAOjB,EAASS,EAAMG,GAAeX,EAAS5J,EAAUsK,IAExDrxG,EAAI,EAAGA,EAAIuxG,EAAevxG,IAC7B6wG,EAAOM,EAAMG,GAERF,IACH7jG,EAAOmkG,cAAc9wG,EAAK0wG,GAC1BV,EAAOO,EAAMvwG,EAAK0wG,IAGpBT,EAAO9J,EAAUsK,GACjB9jG,EAAOukG,cAAclxG,EAAKywG,GAC1BT,EAAO7J,EAAUnmG,EAAKywG,GACtBrL,EAAK2L,OAAOjB,EAASS,EAAMG,GAAeX,EAAS5J,EAAUsK,IAG/D,MAEF,KAAK,EAOH,IANA9jG,EAAOkkG,QAAQtwG,EAAOmwG,GACtB/jG,EAAOmkG,cAActwG,EAAKkwG,GAC1BV,EAAOxvG,EAAKD,EAAOmwG,GACnB/jG,EAAOkkG,QAAQ1K,EAAUsK,GACzBrL,EAAK+L,WAAWrB,EAASvvG,EAAOmwG,GAAeZ,EAAStvG,EAAKkwG,GAAeX,EAAS5J,EAAUsK,IAE1FrxG,EAAI,EAAGA,EAAIuxG,EAAevxG,IAC7B6wG,EAAOzvG,EAAKkwG,GAEPF,EAIHjwG,EAAM4iB,IAAI3iB,IAHVmM,EAAOmkG,cAAcvwG,EAAOmwG,GAC5BV,EAAOzvG,EAAOC,EAAKkwG,IAKrB/jG,EAAOmkG,cAActwG,EAAKkwG,GAC1BV,EAAOxvG,EAAKD,EAAOmwG,GACnB/jG,EAAOkkG,QAAQ1K,EAAUsK,GACzBrL,EAAK+L,WAAWrB,EAASvvG,EAAOmwG,GAAeZ,EAAStvG,EAAKkwG,GAAeX,EAAS5J,EAAUsK,IAGjG,MAEF,QAEE,YADAxnG,EAAO,IAAIvJ,MAAM,oCAAsC+mB,UAtJzD,OAAY,GAAJ7C,GACN,KAAK,EACHjX,EAAOykG,aACP,MAEF,KAAK,EACH3L,EAAU94F,EAAOykG,aACjB,OAqJN5uG,EADEijG,EACMl0B,EAAOk0B,GAITL,MAIZ,SAASyK,KAKT,OAzRAO,EAAiBjvG,UAAY,CAC3B,WACE,OAAIiC,KAAK4f,KAAO5f,KAAK5C,KACX,EAGH4C,KAAKogB,OAAOpgB,KAAK4f,QAG1B,aACE,IACIke,EADAp8B,EAAI,EAGR,EAAG,CACD,IAAI8e,EAAIxgB,KAAKktG,WAEb,GAAI1sF,EAAI,EACN,MAAM,IAAIre,EAAMiM,YAAY,2BAG9B0vB,IAAa,IAAJtd,GACT9e,EAAIA,GAAK,EAAQ,IAAJ8e,SACLsd,GAEV,OAAOp8B,GAGT,aACE,IAAIA,EAAI1B,KAAKwtG,aACb,OAAW,EAAJ9rG,IAAUA,IAAM,GAAKA,IAAM,GAGpC,QAAQ1E,EAAKkxC,GACXlxC,EAAI+iB,IAAI/f,KAAKogB,OAAOV,SAAS1f,KAAK4f,IAAK5f,KAAK4f,IAAMsuB,EAAO,IACzDluC,KAAK4f,KAAOsuB,EAAO,GAGrB,cAAclxC,EAAKkxC,GACjB,IAAIpQ,EACAmwE,EAAQjuG,KAAK+7E,OACbmyB,EAAK,EAET,EAAG,CACD,IAAI1tF,EAAIxgB,KAAKktG,WAEb,GAAI1sF,EAAI,EACN,MAAM,IAAIre,EAAMiM,YAAY,2BAG9B0vB,IAAa,IAAJtd,GACTytF,EAAMC,KAAY,IAAJ1tF,SACNsd,GAEV,IAAI9hC,EAAIkyC,EACJ9tB,EAAS,EACTkjD,EAAa,EAEjB,MAAOtnE,GAAK,EAAG,CACb,MAAOsnE,EAAa,GAAK2qC,EAAM/xG,OAAS,EACtCkkB,EAAS6tF,IAAQC,IAAO5qC,EAAaljD,EACrCkjD,GAAc,EAGhBtmE,EAAIhB,GAAc,IAATokB,EACTpkB,IACAokB,IAAW,EACXkjD,GAAc,IAIlB,cAActmE,EAAKkxC,GACjBluC,KAAK0tG,cAAc1wG,EAAKkxC,GAIxB,IAHA,IAAI7C,EAAmB,EAAZruC,EAAIkxC,GAAY,IAAM,EAC7B3tC,EAAI,EAECvE,EAAI,EAAGA,GAAKkyC,EAAMlyC,IACzBuE,GAAS,EAAJA,IAAU,EAAIvD,EAAIhB,GACvBgB,EAAIhB,GAAKuE,GAAK,EAAI8qC,GAItB,aAIE,IAHA,IAAIpvC,EAAM+D,KAAKwtG,aACXzrG,EAAI,GAEC/F,EAAI,EAAGA,EAAIC,EAAKD,IACvB+F,GAAKqd,OAAOC,aAAarf,KAAKwtG,cAGhC,OAAOzrG,IA6LX0qG,EAAiB1uG,UAAY,CAC3B+lB,QAASmpF,GAEJR,EA9Uc,GAiVnBrK,EAAc,WAChB,SAAS+L,EAASnvF,GAGhB,IAFA,IAAIoC,EAAI,EAECplB,EAAI,EAAGA,EAAIgjB,EAAI9iB,OAAQF,IAC9BolB,EAAIA,GAAK,EAAIpC,EAAI7iB,WAAWH,GAG9B,OAAOolB,IAAM,EAGf,SAASgtF,EAAa7vF,GACpB,KAAK,EAAIpc,EAAMmL,UAAUiR,GACvB,MAAM,IAAIpc,EAAMiM,YAAY,oCAIhC,SAASigG,EAAU9vF,GACjB,IAAKhB,OAAOC,UAAUe,GACpB,MAAM,IAAIpc,EAAMiM,YAAY,iCAIhC,SAASkgG,EAAYtM,EAAMthE,GACzB,MAAO,EAAM,CACX,IAAIniB,EAAMmiB,EAAMM,SAEhB,IAAI,EAAI5+B,EAAY8hB,OAAO3F,GACzB,MAGF,IAAI,EAAInc,EAAY+hB,OAAO5F,EAAK,aAC9B,OAGF6vF,EAAa7vF,GACb,IAAIg7C,EAAM40C,EAAS5vF,GACnBA,EAAMmiB,EAAMM,SACZotE,EAAa7vF,GACb,IAAI8tF,EAAM9tF,EACVyjF,EAAK2L,OAAOp0C,EAAK8yC,IAIrB,SAASkC,EAAavM,EAAMthE,GAC1B,MAAO,EAAM,CACX,IAAIniB,EAAMmiB,EAAMM,SAEhB,IAAI,EAAI5+B,EAAY8hB,OAAO3F,GACzB,MAGF,IAAI,EAAInc,EAAY+hB,OAAO5F,EAAK,cAC9B,OAGF6vF,EAAa7vF,GACb,IAAIuyD,EAAMq9B,EAAS5vF,GACnBA,EAAMmiB,EAAMM,SACZotE,EAAa7vF,GACb,IAAIsyD,EAAOs9B,EAAS5vF,GAGpB,GAFAA,EAAMmiB,EAAMM,SAERzjB,OAAOC,UAAUe,KAAQ,EAAIpc,EAAMmL,UAAUiR,GAAM,CACrD,IAAI6tF,EAAS7uF,OAAOC,UAAUe,GAAOa,OAAOC,aAAad,GAAOA,EAChEyjF,EAAK+L,WAAWj9B,EAAKD,EAAMu7B,OACtB,MAAI,EAAIhqG,EAAY+hB,OAAO5F,EAAK,KAWrC,MAVAA,EAAMmiB,EAAMM,SACZ,IAAImG,EAAQ,GAEZ,QAAQ,EAAI/kC,EAAY+hB,OAAO5F,EAAK,QAAS,EAAInc,EAAY8hB,OAAO3F,GAClE4oB,EAAM7pC,KAAKihB,GACXA,EAAMmiB,EAAMM,SAGdghE,EAAKwM,kBAAkB19B,EAAKD,EAAM1pC,IAMtC,MAAM,IAAIhlC,EAAMiM,YAAY,qBAG9B,SAASqgG,EAAazM,EAAMthE,GAC1B,MAAO,EAAM,CACX,IAAIniB,EAAMmiB,EAAMM,SAEhB,IAAI,EAAI5+B,EAAY8hB,OAAO3F,GACzB,MAGF,IAAI,EAAInc,EAAY+hB,OAAO5F,EAAK,cAC9B,OAGF6vF,EAAa7vF,GACb,IAAIg7C,EAAM40C,EAAS5vF,GACnBA,EAAMmiB,EAAMM,SACZqtE,EAAU9vF,GACV,IAAI8tF,EAAM9tF,EACVyjF,EAAK2L,OAAOp0C,EAAK8yC,IAIrB,SAASqC,EAAc1M,EAAMthE,GAC3B,MAAO,EAAM,CACX,IAAIniB,EAAMmiB,EAAMM,SAEhB,IAAI,EAAI5+B,EAAY8hB,OAAO3F,GACzB,MAGF,IAAI,EAAInc,EAAY+hB,OAAO5F,EAAK,eAC9B,OAGF6vF,EAAa7vF,GACb,IAAIuyD,EAAMq9B,EAAS5vF,GACnBA,EAAMmiB,EAAMM,SACZotE,EAAa7vF,GACb,IAAIsyD,EAAOs9B,EAAS5vF,GACpBA,EAAMmiB,EAAMM,SACZqtE,EAAU9vF,GACV,IAAI6tF,EAAS7tF,EACbyjF,EAAK6L,YAAY/8B,EAAKD,EAAMu7B,IAIhC,SAASuC,EAAoB3M,EAAMthE,GACjC,MAAO,EAAM,CACX,IAAIniB,EAAMmiB,EAAMM,SAEhB,IAAI,EAAI5+B,EAAY8hB,OAAO3F,GACzB,MAGF,IAAI,EAAInc,EAAY+hB,OAAO5F,EAAK,qBAC9B,OAGF,KAAK,EAAIpc,EAAMmL,UAAUiR,GACvB,MAGF,IAAIuyD,EAAMq9B,EAAS5vF,GAGnB,GAFAA,EAAMmiB,EAAMM,WAEP,EAAI7+B,EAAMmL,UAAUiR,GACvB,MAGF,IAAIsyD,EAAOs9B,EAAS5vF,GACpByjF,EAAKwK,kBAAkBjuF,EAAIriB,OAAQ40E,EAAKD,GAG1C,MAAM,IAAI1uE,EAAMiM,YAAY,4BAG9B,SAASwgG,EAAW5M,EAAMthE,GACxB,IAAIniB,EAAMmiB,EAAMM,SAEZzjB,OAAOC,UAAUe,KACnByjF,EAAKvH,WAAal8E,GAItB,SAASswF,EAAc7M,EAAMthE,GAC3B,IAAIniB,EAAMmiB,EAAMM,UAEZ,EAAI5+B,EAAYiiB,QAAQ9F,KAAQ,EAAIpc,EAAMmL,UAAUiR,EAAIxf,QAC1DijG,EAAKjjG,KAAOwf,EAAIxf,MAIpB,SAAS+vG,EAAU9M,EAAMthE,EAAO6vD,EAAkB8R,GAChD,IAAI0M,EACAC,EAEJC,EAAS,MAAO,EACd,IACE,IAAI1wF,EAAMmiB,EAAMM,SAEhB,IAAI,EAAI5+B,EAAY8hB,OAAO3F,GACzB,MACK,IAAI,EAAInc,EAAYiiB,QAAQ9F,GAChB,UAAbA,EAAIxf,KACN6vG,EAAW5M,EAAMthE,GACK,aAAbniB,EAAIxf,MACb8vG,EAAc7M,EAAMthE,GAGtBquE,EAAWxwF,OACN,IAAI,EAAInc,EAAY+hB,OAAO5F,GAChC,OAAQA,EAAI4G,KACV,IAAK,UACH,MAAM8pF,EAER,IAAK,WACC,EAAI7sG,EAAYiiB,QAAQ0qF,KAC1BC,EAAkBD,EAAShwG,MAG7B,MAEF,IAAK,sBACH4vG,EAAoB3M,EAAMthE,GAC1B,MAEF,IAAK,cACH4tE,EAAYtM,EAAMthE,GAClB,MAEF,IAAK,eACH+tE,EAAazM,EAAMthE,GACnB,MAEF,IAAK,eACH6tE,EAAavM,EAAMthE,GACnB,MAEF,IAAK,gBACHguE,EAAc1M,EAAMthE,GACpB,OAGN,MAAO96B,GACP,GAAIA,aAAcnD,EAAY+lB,qBAC5B,MAAM5iB,GAGR,EAAIzD,EAAMgF,MAAM,sBAAwBvB,GACxC,SAQJ,OAJKy8F,GAAW2M,IACd3M,EAAU2M,GAGR3M,EACK6M,EAAWlN,EAAMzR,EAAkB8R,GAGrCn+F,QAAQ9E,QAAQ4iG,GAGzB,SAASkN,EAAWlN,EAAMzR,EAAkB8R,GAC1C,OAAO8M,EAAkB9M,EAAS9R,GAAkBnqF,MAAK,SAAUgpG,GAGjE,GAFApN,EAAKK,QAAU+M,EAEiB,IAA5BpN,EAAKmK,mBAA0B,CAGjC,IAFA,IAAIkD,EAAqBrN,EAAKK,QAAQ6J,gBAE7BlwG,EAAI,EAAGA,EAAIqzG,EAAmBnzG,OAAQF,IAC7CgmG,EAAKkK,gBAAgBlwG,GAAKqzG,EAAmBrzG,GAAGgC,QAGlDgkG,EAAKmK,mBAAqBnK,EAAKK,QAAQ8J,mBAQzC,OALAnK,EAAKK,QAAQh2F,SAAQ,SAAU7K,EAAKN,GAC7B8gG,EAAKsN,SAAS9tG,IACjBwgG,EAAK2L,OAAOnsG,EAAKwgG,EAAKK,QAAQ3mG,OAAO8F,OAGlCwgG,KAIX,SAASmN,EAAkBpwG,EAAMwxF,GAC/B,MAAa,eAATxxF,EACKmF,QAAQ9E,QAAQ,IAAI8iG,GAAa,EAAO,IAC7B,eAATnjG,EACFmF,QAAQ9E,QAAQ,IAAI8iG,GAAa,EAAM,IAG3C8J,EAAehgF,SAASjtB,GAIxBwxF,EAIEA,EAAiBxxF,GAAMqH,MAAK,SAAUlD,GAC3C,IAAIqsG,EAAWrsG,EAAKqsG,SAChB3e,EAAkB1tF,EAAK0tF,gBACvBoR,EAAO,IAAI+J,GAAK,GAEpB,GAAInb,IAAoBzuF,EAAMuM,oBAAoB4H,OAChD,OAAO,IAAIm2F,GAAmB3oF,QAAQyrF,EAAUvN,GAAM,SAAUK,GAC9D,OAAO6M,EAAWlN,EAAMzR,EAAkB8R,MAI9C,GAAIzR,IAAoBzuF,EAAMuM,oBAAoBqE,KAAM,CACtD,IAAI2tB,EAAQ,IAAIpS,EAAQuV,MAAM,IAAIpc,EAAQQ,OAAOsnF,IACjD,OAAOT,EAAU9M,EAAMthE,EAAO6vD,EAAkB,MAGlD,OAAOrsF,QAAQ2B,OAAO,IAAIvJ,MAAM,uEAnBzB4H,QAAQ2B,OAAO,IAAIvJ,MAAM,+CAJzB4H,QAAQ2B,OAAO,IAAIvJ,MAAM,sBAAwByC,IA2B5D,MAAO,CACL,aAAaw/B,GACX,IAAI4X,EAAW5X,EAAO4X,SAClBo6C,EAAmBhyD,EAAOgyD,iBAC1B8R,EAAU9jE,EAAO8jE,QAErB,IAAI,EAAIjgG,EAAYiiB,QAAQ8xB,GAC1B,OAAOg5D,EAAkBh5D,EAASp3C,KAAMwxF,GACnC,IAAI,EAAInuF,EAAYoiB,UAAU2xB,GAAW,CAC9C,IAAI6rD,EAAO,IAAI+J,EACXrrE,EAAQ,IAAIpS,EAAQuV,MAAMsS,GAC9B,OAAO24D,EAAU9M,EAAMthE,EAAO6vD,EAAkB8R,GAASj8F,MAAK,SAAUopG,GACtE,OAAIA,EAAWC,eACNN,EAAkBK,EAAWzwG,KAAMwxF,GAGrCif,KAIX,MAAM,IAAIlzG,MAAM,wBArUJ,GA2UlBhB,EAAQ8mG,YAAcA,GAIhB,SAAUriG,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQm8F,YAAcA,EACtBn8F,EAAQmnG,qBAAuBnnG,EAAQumG,aAAevmG,EAAQglG,UAAYhlG,EAAQ67F,KAAO77F,EAAQq6F,UAAYr6F,EAAQo0G,2BAAwB,EAE7I,IAAIvtG,EAAQhC,EAAoB,GAE5BwvG,EAAcxvG,EAAoB,IAElC8vF,EAAa9vF,EAAoB,IAEjCyvF,EAAazvF,EAAoB,IAEjC2vF,EAAkB3vF,EAAoB,IAEtC0vF,EAAW1vF,EAAoB,IAE/BsC,EAActC,EAAoB,GAElCyvG,EAAiBzvG,EAAoB,IAErCuvF,EAAQvvF,EAAoB,IAE5BsnB,EAAUtnB,EAAoB,IAE9B0vG,EAAgB1vG,EAAoB,IAExC,MAAM2vG,EAAoB,CAAC,CAAC,MAAQ,OAAS,CAAC,QAAU,UACxD,IAAIC,EAAwB,IACxBL,GAAwB,EAC5Bp0G,EAAQo0G,sBAAwBA,EAChC,MAAMM,EAAyB,CAAC,SAAU,OAAQ,QAAS,OAAQ,uBAAwB,YAAa,OAAQ,kBAAmB,eAAgB,UAAW,eAAgB,aAAc,WAAY,cAAe,cAAe,cAAe,SAAU,aAAc,WAAY,cAAe,OAAQ,YAAa,UAAW,OAAQ,YAC1UC,EAA+B,CAAC,OAAQ,kBAAmB,cAAe,iBAAkB,UAAW,aAAc,YAAa,WAAY,UACpJ,IAAI3P,EAAY,CACdyD,WAAY,EACZsB,MAAO,EACP9E,SAAU,EACV2P,OAAQ,EACRzP,YAAa,GACb0P,OAAQ,GACRC,OAAQ,MACRC,SAAU,OACVC,UAAW,QAEbh1G,EAAQglG,UAAYA,EACpB,IAAIiQ,EAA2B,CAAC,UAAW,QAAS,mBAAoB,QAAS,SAAU,WAAY,aAAc,SAAU,UAAW,YAAa,cAAe,YAAa,aAAc,WAAY,OAAQ,QAAS,SAAU,SAAU,QAAS,OAAQ,MAAO,MAAO,QAAS,OAAQ,OAAQ,MAAO,QAAS,QAAS,OAAQ,QAAS,YAAa,OAAQ,QAAS,UAAW,WAAY,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,cAAe,YAAa,eAAgB,cAAe,aAAc,QAAS,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,YAAa,MAAO,aAAc,aAAc,YAAa,QAAS,WAAY,SAAU,SAAU,YAAa,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,QAAS,WAAY,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,OAAQ,WAAY,UAAW,SAAU,YAAa,aAAc,aAAc,YAAa,YAAa,QAAS,WAAY,WAAY,KAAM,SAAU,WAAY,YAAa,YAAa,eAAgB,MAAO,KAAM,cAAe,YAAa,UAAW,KAAM,WAAY,cAAe,eAAgB,QAAS,KAAM,SAAU,eAAgB,aAAc,aAAc,UAAW,SAAU,cAAe,QAAS,gBAAiB,iBAAkB,WAAY,mBAAoB,SAAU,SAAU,SAAU,KAAM,KAAM,SAAU,SAAU,eAAgB,gBAAiB,YAAa,aAAc,SAAU,UAAW,YAAa,YAAa,WAAY,WAAY,gBAAiB,iBAAkB,KAAM,KAAM,YAAa,iBAAkB,iBAAkB,eAAgB,cAAe,cAAe,cAAe,SAAU,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,QAAS,SAAU,SAAU,cAAe,SAAU,WAAY,aAAc,QAAS,SAAU,QAAS,YAAa,OAAQ,UAAW,eAAgB,SAAU,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,YAAa,MAAO,MAAO,SAAU,SAAU,QAAS,QAAS,QAAS,WAAY,cAAe,cAAe,gBAAiB,UAAW,aAAc,gBAAiB,QAAS,SAAU,SAAU,aAAc,WAAY,WAAY,SAAU,SAAU,SAAU,SAAU,UAEtlF,SAASC,EAAanR,GACpB,GAAKA,EAAWrD,YAIZqD,EAAWrD,WAAW,KAAO75F,EAAMoN,qBAAqB,GAA5D,CAIA,IAAIqzD,EAAQ,KAAQy8B,EAAWrD,WAAW,GACtCqH,EAAehE,EAAW+D,OAE9B,IAAK,IAAIrG,KAASsG,EAChBA,EAAatG,IAAUn6B,EAGzBy8B,EAAWiE,cAAgB1gC,GAG7B,SAAS6tC,EAAgBpR,EAAYqR,GACnC,IAAIrR,EAAWyC,0BAIXzC,EAAW0B,aAIX2P,IAAoBrR,EAAWc,mBAI/Bd,EAAWE,qBAAqBkD,GAApC,CAIA,IAAIlD,EAAY,GACZ+B,GAAmB,EAAIrR,EAAWsR,oBAEtC,IAAK,IAAIwB,KAAY2N,EAAiB,CACpC,IAAIrP,EAAYqP,EAAgB3N,GAC5B5F,GAAU,EAAItN,EAAS6R,oBAAoBL,EAAWC,IAEzC,IAAbnE,IACFoC,EAAUwD,GAAY3jF,OAAOC,aAAa89E,IAI9CkC,EAAWE,UAAUoR,MAAMpR,IAG7B,SAAS9H,EAAYp0E,EAAMuU,GACzB,OAAQvU,GACN,IAAK,QACH,MAAmB,WAAZuU,EAAuBz1B,EAAMyM,SAAS+G,OAASxT,EAAMyM,SAAS8G,MAEvE,IAAK,eACH,MAAmB,kBAAZkiB,EAA8Bz1B,EAAMyM,SAASiH,cAAgB1T,EAAMyM,SAASgH,aAErF,IAAK,WACH,OAAOzT,EAAMyM,SAASqH,SAExB,IAAK,WACH,OAAO9T,EAAMyM,SAASkH,SAExB,IAAK,eACH,OAAO3T,EAAMyM,SAASmH,aAExB,IAAK,UACH,OAAO5T,EAAMyM,SAASuH,QAExB,IAAK,QACH,OAAOhU,EAAMyM,SAASsH,MAExB,QACE,OAAO/T,EAAMyM,SAASoG,SAI5B,SAAS47F,EAAiB7xG,EAAMuiG,GAC9B,QAA+BpiF,IAA3BoiF,EAAiBviG,GACnB,OAAOA,EAGT,IAAIo+F,GAAU,EAAItN,EAAS6R,oBAAoB3iG,EAAMuiG,GAErD,IAAiB,IAAbnE,EACF,IAAK,IAAI37F,KAAO8/F,EACd,GAAIA,EAAiB9/F,KAAS27F,EAC5B,OAAO37F,EAMb,OADA,EAAIW,EAAMiJ,MAAM,gDAAkDrM,GAC3DA,EAGT,IAAI8xG,EAAQ,WACV,SAASA,EAAMxK,EAAUlJ,EAASsJ,EAAQzsD,EAAOijD,EAAS6T,EAAgBtT,EAASuT,GACjF/wG,KAAKqmG,SAAWA,EAChBrmG,KAAKm9F,QAAUA,EACfn9F,KAAKymG,OAASA,EACdzmG,KAAKg6C,MAAQA,EACbh6C,KAAKi9F,QAAUA,EACfj9F,KAAK8wG,eAAiBA,EACtB9wG,KAAKw9F,QAAUA,EACfx9F,KAAK+wG,SAAWA,EAOlB,OAJAF,EAAM9yG,UAAUizG,gBAAkB,SAAU3K,EAAUlJ,EAASsJ,EAAQzsD,EAAOijD,EAAS6T,EAAgBtT,EAASuT,GAC9G,OAAO/wG,KAAKqmG,WAAaA,GAAYrmG,KAAKm9F,UAAYA,GAAWn9F,KAAKymG,SAAWA,GAAUzmG,KAAKg6C,QAAUA,GAASh6C,KAAKi9F,UAAYA,GAAWj9F,KAAK8wG,iBAAmBA,GAAkB9wG,KAAKw9F,UAAYA,GAAWx9F,KAAK+wG,WAAaA,GAGlOF,EAhBG,GAmBRhP,EAAe,WACjB,SAASA,EAAagB,EAAO,IAC3B7iG,KAAKslB,KAAOu9E,EA6Cd,OA1CAhB,EAAa9jG,UAAY,CACvB,aACE,OAAOiC,KAAKslB,KAAKppB,QAGnB,QAAQoqB,GACN,IAAK,IAAIy8E,KAAY/iG,KAAKslB,KACxBgB,EAASy8E,EAAU/iG,KAAKslB,KAAKy9E,GAAU5mG,WAAW,KAItD,IAAIH,GACF,YAAwBkjB,IAAjBlf,KAAKslB,KAAKtpB,IAGnB,IAAIA,GACF,OAAOgE,KAAKslB,KAAKtpB,IAGnB,WAAWkF,GACT,MAAMkrF,EAAMpsF,KAAKslB,KAEjB,GAAI8mE,EAAIlwF,QAAU,MAChB,OAAOkwF,EAAI5vF,QAAQ0E,GAGrB,IAAK,MAAM6hG,KAAY3W,EACrB,GAAIA,EAAI2W,KAAc7hG,EACpB,OAAkB,EAAX6hG,EAIX,OAAQ,GAGV,MAAM3W,GACJ,IAAK,IAAI2W,KAAY3W,EACnBpsF,KAAKslB,KAAKy9E,GAAY3W,EAAI2W,KAKzBlB,EA/CU,GAkDnBvmG,EAAQumG,aAAeA,EAEvB,IAAIY,EAAuB,WACzB,SAASA,EAAqBC,EAAWC,GACvC3iG,KAAK0iG,UAAYA,EACjB1iG,KAAK2iG,SAAWA,EAmClB,OAhCAF,EAAqB1kG,UAAY,CAC/B,aACE,OAAOiC,KAAK2iG,SAAW,EAAI3iG,KAAK0iG,WAGlC,QAAQp8E,GACN,IAAK,IAAItqB,EAAIgE,KAAK0iG,UAAWp/E,EAAKtjB,KAAK2iG,SAAU3mG,GAAKsnB,EAAItnB,IACxDsqB,EAAStqB,EAAGA,IAIhB,IAAIA,GACF,OAAOgE,KAAK0iG,WAAa1mG,GAAKA,GAAKgE,KAAK2iG,UAG1C,IAAI3mG,GACF,GAAIgE,KAAK0iG,WAAa1mG,GAAKA,GAAKgE,KAAK2iG,SACnC,OAAOvjF,OAAOC,aAAarjB,IAM/B,WAAWklB,GACT,OAAO3D,OAAOC,UAAU0D,IAAMA,GAAKlhB,KAAK0iG,WAAaxhF,GAAKlhB,KAAK2iG,SAAWzhF,GAAK,GAGjF,MAAMkrE,IACJ,EAAIjqF,EAAM6L,aAAa,6BAIpBy0F,EAtCkB,GAyC3BnnG,EAAQmnG,qBAAuBA,EAE/B,IAAIwO,EAAsB,WACxB,SAASC,EAAW95E,EAAMpJ,EAAQhxB,GAChCo6B,EAAKpJ,GAAUhxB,GAAO,EAAI,IAC1Bo6B,EAAKpJ,EAAS,GAAW,IAANhxB,EAGrB,SAASm0G,EAAW/5E,EAAMpJ,EAAQhxB,GAChCo6B,EAAKpJ,GAAUhxB,GAAO,GAAK,IAC3Bo6B,EAAKpJ,EAAS,GAAKhxB,GAAO,GAAK,IAC/Bo6B,EAAKpJ,EAAS,GAAKhxB,GAAO,EAAI,IAC9Bo6B,EAAKpJ,EAAS,GAAW,IAANhxB,EAGrB,SAASo0G,EAAUh6E,EAAMpJ,EAAQ9qB,GAC/B,IAAIlH,EAAGsnB,EAEP,GAAIpgB,aAAgBrH,WAClBu7B,EAAKrX,IAAI7c,EAAM8qB,QACV,GAAoB,kBAAT9qB,EAChB,IAAKlH,EAAI,EAAGsnB,EAAKpgB,EAAKhH,OAAQF,EAAIsnB,EAAItnB,IACpCo7B,EAAKpJ,KAAiC,IAArB9qB,EAAK/G,WAAWH,QAGnC,IAAKA,EAAI,EAAGsnB,EAAKpgB,EAAKhH,OAAQF,EAAIsnB,EAAItnB,IACpCo7B,EAAKpJ,KAAsB,IAAV9qB,EAAKlH,GAK5B,SAASi1G,EAAoBI,GAC3BrxG,KAAKqxG,KAAOA,EACZrxG,KAAKsxG,OAAS3wG,OAAOY,OAAO,MAG9B0vG,EAAoBM,gBAAkB,SAA6CC,EAAcC,GAC/F,IAAIC,EAAY,EACZ7kF,EAAO,EAEX,OAAQ6kF,EAAYF,GAAgBE,EAClCA,IAAc,EACd7kF,IAGF,IAAI8kF,EAAcD,EAAYD,EAC9B,MAAO,CACL1lF,MAAO4lF,EACPxwE,MAAOtU,EACP+kF,WAAYH,EAAYD,EAAeG,IAI3C,IAAIE,EAAkB,GAClBC,EAAuB,GAsE3B,OArEAb,EAAoBlzG,UAAY,CAC9Bg0G,QAAS,WACP,IAAIV,EAAOrxG,KAAKqxG,KACZC,EAAStxG,KAAKsxG,OACdU,EAAcrxG,OAAOylB,KAAKkrF,GAC9BU,EAAYjwF,OACZ,IACI/lB,EAAGm3B,EAAG6H,EAAImU,EAAO8iE,EADjBC,EAAYF,EAAY91G,OAExB8xB,EAAS6jF,EAAkBK,EAAYJ,EACvCK,EAAe,CAACnkF,GAEpB,IAAKhyB,EAAI,EAAGA,EAAIk2G,EAAWl2G,IAAK,CAC9BmzC,EAAQmiE,EAAOU,EAAYh2G,IAC3B,IAAIq0E,GAAgBlhC,EAAMjzC,OAAS,GAAI,KAAQ,EAC/C8xB,GAAUqiD,EACV8hC,EAAa70G,KAAK0wB,GAGpB,IAAI28D,EAAO,IAAI9uF,WAAWmyB,GAE1B,IAAKhyB,EAAI,EAAGA,EAAIk2G,EAAWl2G,IACzBmzC,EAAQmiE,EAAOU,EAAYh2G,IAC3Bo1G,EAAUzmB,EAAMwnB,EAAan2G,GAAImzC,GAGtB,SAATkiE,IACFA,GAAO,EAAIlvG,EAAMwL,UAAU,QAG7Bg9E,EAAK,GAA0B,IAArB0mB,EAAKl1G,WAAW,GAC1BwuF,EAAK,GAA0B,IAArB0mB,EAAKl1G,WAAW,GAC1BwuF,EAAK,GAA0B,IAArB0mB,EAAKl1G,WAAW,GAC1BwuF,EAAK,GAA0B,IAArB0mB,EAAKl1G,WAAW,GAC1B+0G,EAAWvmB,EAAM,EAAGunB,GACpB,IAAIE,EAAenB,EAAoBM,gBAAgBW,EAAW,IAMlE,IALAhB,EAAWvmB,EAAM,EAAGynB,EAAarmF,OACjCmlF,EAAWvmB,EAAM,EAAGynB,EAAajxE,OACjC+vE,EAAWvmB,EAAM,GAAIynB,EAAaR,YAClC5jF,EAAS6jF,EAEJ71G,EAAI,EAAGA,EAAIk2G,EAAWl2G,IAAK,CAC9Bi2G,EAAYD,EAAYh2G,GACxB2uF,EAAK38D,GAAoC,IAA1BikF,EAAU91G,WAAW,GACpCwuF,EAAK38D,EAAS,GAA+B,IAA1BikF,EAAU91G,WAAW,GACxCwuF,EAAK38D,EAAS,GAA+B,IAA1BikF,EAAU91G,WAAW,GACxCwuF,EAAK38D,EAAS,GAA+B,IAA1BikF,EAAU91G,WAAW,GACxC,IAAIk2G,EAAW,EAEf,IAAKl/E,EAAIg/E,EAAan2G,GAAIg/B,EAAKm3E,EAAan2G,EAAI,GAAIm3B,EAAI6H,EAAI7H,GAAK,EAAG,CAClE,IAAIm/E,GAAO,EAAI7vG,EAAYuqB,YAAY29D,EAAMx3D,GAC7Ck/E,EAAWA,EAAWC,IAAS,EAGjCnB,EAAWxmB,EAAM38D,EAAS,EAAGqkF,GAC7BlB,EAAWxmB,EAAM38D,EAAS,EAAGmkF,EAAan2G,IAC1Cm1G,EAAWxmB,EAAM38D,EAAS,GAAIsjF,EAAOW,GAAW/1G,QAChD8xB,GAAU8jF,EAGZ,OAAOnnB,GAET4nB,SAAU,SAAsCC,EAAKtvG,GACnD,GAAIsvG,KAAOxyG,KAAKsxG,OACd,MAAM,IAAIh1G,MAAM,SAAWk2G,EAAM,mBAGnCxyG,KAAKsxG,OAAOkB,GAAOtvG,IAGhB+tG,EA1HiB,GA6HtB9Z,EAAO,WACT,SAASA,EAAKp4F,EAAM4rF,EAAM0U,GACxB,IAAI0D,EACJ/iG,KAAKjB,KAAOA,EACZiB,KAAKo9B,WAAaiiE,EAAWjiE,WAC7Bp9B,KAAKw1F,YAAc6J,EAAW7J,YAC9Bx1F,KAAKyyG,aAAc,EACnBzyG,KAAK0yG,WAAa/xG,OAAOY,OAAO,MAChCvB,KAAKgkG,eAAiB3E,EAAW7mE,MAAQ8nE,EAAU+E,OACnDrlG,KAAKqgG,kBAAoBhB,EAAW7mE,MAAQ8nE,EAAUC,UACtDvgG,KAAKw8F,eAAiB6C,EAAW7mE,MAAQ8nE,EAAUyD,YACnD,IAAI1gF,EAAOg8E,EAAWh8E,KAClBuU,EAAUynE,EAAWznE,QACzB53B,KAAKqjB,KAAOA,EACZrjB,KAAK43B,QAAUA,EACf,IAAI8jE,EAAe,aAuBnB,GArBI17F,KAAKw8F,YACPd,EAAe,YACN17F,KAAKgkG,cACdtI,EAAe,SAGjB17F,KAAK07F,aAAeA,EACpB17F,KAAKggG,YAAcX,EAAWW,YAC9BhgG,KAAKojG,OAAS/D,EAAW+D,OACzBpjG,KAAKsjG,aAAejE,EAAWiE,aAC/BtjG,KAAK0/F,UAAYL,EAAWK,UAC5B1/F,KAAKgiG,KAAO3C,EAAW2C,KACvBhiG,KAAK27F,OAAS0D,EAAW1D,OAASoU,EAClC/vG,KAAK47F,QAAUyD,EAAWzD,QAAUmU,EACpC/vG,KAAKg8F,WAAaqD,EAAWrD,WAC7Bh8F,KAAK6kF,KAAOwa,EAAWxa,KACvB7kF,KAAKmgG,gBAAkBd,EAAWc,gBAClCngG,KAAKu/F,UAAYF,EAAWE,UAC5Bv/F,KAAK+hG,kBAAoB1C,EAAW0C,mBAAqB,IAAIF,EAC7D7hG,KAAK2yG,WAAa,GAEM,UAApBtT,EAAWh8E,KAAf,CAiBA,GARArjB,KAAKomG,YAAc/G,EAAW+G,YAC9BpmG,KAAKy6F,WAAa4E,EAAW5E,SAEzBz6F,KAAKy6F,WACPz6F,KAAKwjG,SAAWnE,EAAWmE,SAC3BxjG,KAAKmjG,gBAAkB9D,EAAW8D,kBAG/BxY,GAAQA,EAAKioB,QAMhB,OALIjoB,IACF,EAAIxoF,EAAMgF,MAAM,0BAA4BpI,EAAO,MAAQiB,KAAKo9B,WAAa,UAG/Ep9B,KAAK6yG,wBAINxvF,EAAMuU,GAAWk7E,EAAgBnoB,EAAM0U,GAEpCh8E,IAASrjB,KAAKqjB,MAAQuU,IAAY53B,KAAK43B,UACzC,EAAIz1B,EAAMiJ,MAA0D,kDAAGpL,KAAKqjB,QAAQrjB,KAAK43B,sBAAsBvU,KAAQuU,MAGzH,IACE,IAAI10B,EAEJ,OAAQmgB,GACN,IAAK,WACH,EAAIlhB,EAAMiJ,MAAM,iBAAmBrM,EAAO,6BAE5C,IAAK,QACL,IAAK,eACHiB,KAAK+yG,SAAW,gBAChB,IAAIC,EAAkB,WAAZp7E,GAAoC,kBAAZA,EAA8B,IAAIq7E,EAAQtoB,EAAM0U,GAAc,IAAI6T,EAAUn0G,EAAM4rF,EAAM0U,GAC1HmR,EAAanR,GACbn8F,EAAOlD,KAAKmzG,QAAQp0G,EAAMi0G,EAAK3T,GAC/B,MAEF,IAAK,WACL,IAAK,WACL,IAAK,eACHr/F,KAAK+yG,SAAW,gBAChB7vG,EAAOlD,KAAKozG,eAAer0G,EAAM4rF,EAAM0U,GAEnCr/F,KAAKqzG,aACP7C,EAAanR,GACbh8E,EAAO,YAGT,MAEF,QACE,MAAM,IAAIlhB,EAAMiM,YAAY,QAAQiV,uBAExC,MAAOzb,GAGP,OAFA,EAAIzF,EAAMgF,MAAMS,QAChB5H,KAAK6yG,uBAIP7yG,KAAKkD,KAAOA,EACZlD,KAAKs3F,SAAWG,EAAYp0E,EAAMuU,GAClC53B,KAAKg8F,WAAaqD,EAAWrD,WAC7Bh8F,KAAKojG,OAAS/D,EAAW+D,OACzBpjG,KAAKsjG,aAAejE,EAAWiE,aAC/BtjG,KAAKu/F,UAAYF,EAAWE,UAC5Bv/F,KAAKszG,QAAUjU,EAAWiU,YA3E1B,CACE,IAAKvQ,EAAW,EAAGA,EAAW,IAAKA,IACjC/iG,KAAK2yG,WAAW5P,GAAY/iG,KAAKggG,YAAY+C,IAAa1D,EAAWc,gBAAgB4C,GAGvF/iG,KAAKs3F,SAAWn1F,EAAMyM,SAASoH,OAgFnC,SAASu9F,EAAM1pF,EAAItG,GACjB,OAAQsG,GAAM,GAAKtG,EAGrB,SAASiwF,EAAiBhqG,EAAOqZ,EAAO3hB,GACtCsI,EAAMqZ,EAAQ,GAAK3hB,EACnBsI,EAAMqZ,GAAS3hB,IAAU,EAG3B,SAASuyG,EAAY5pF,EAAItG,GACvB,IAAIriB,GAAS2oB,GAAM,GAAKtG,EACxB,OAAe,MAARriB,EAAkBA,EAAQ,MAAUA,EAG7C,SAASwyG,EAAM7pF,EAAItG,EAAIC,EAAIC,GACzB,OAAQoG,GAAM,KAAOtG,GAAM,KAAOC,GAAM,GAAKC,EAG/C,SAASkwF,EAASzyG,GAChB,OAAOke,OAAOC,aAAane,GAAS,EAAI,IAAc,IAARA,GAGhD,SAAS0yG,EAAa1yG,GAOpB,OANIA,EAAQ,MACVA,EAAQ,MACCA,GAAS,QAClBA,GAAS,OAGJke,OAAOC,aAAane,GAAS,EAAI,IAAc,IAARA,GAGhD,SAAS2yG,EAAelpB,GACtB,IAAIvlC,EAASulC,EAAK33D,UAAU,GAC5B,OAAkD,SAA3C,EAAIvwB,EAAYuqB,YAAYo4B,EAAQ,IAA0D,UAArC,EAAIjjD,EAAM6K,eAAeo4C,GAG3F,SAAS0uD,EAAyBnpB,GAChC,MAAMvlC,EAASulC,EAAK33D,UAAU,GAC9B,MAA4C,UAArC,EAAI7wB,EAAM6K,eAAeo4C,GAGlC,SAAS2uD,EAAeppB,GACtB,IAAIvlC,EAASulC,EAAK33D,UAAU,GAC5B,MAA4C,UAArC,EAAI7wB,EAAM6K,eAAeo4C,GAGlC,SAAS4uD,EAAYrpB,GACnB,IAAIvlC,EAASulC,EAAK33D,UAAU,GAE5B,OAAkB,KAAdoyB,EAAO,IAA6B,KAAdA,EAAO,IAIf,MAAdA,EAAO,IAA6B,IAAdA,EAAO,GAOnC,SAAS6uD,EAAUtpB,GACjB,MAAMvlC,EAASulC,EAAK33D,UAAU,GAE9B,OAAIoyB,EAAO,IAAM,GAAKA,EAAO,IAAM,GAAKA,EAAO,IAAM,EAOvD,SAAS0tD,EAAgBnoB,GAAM,KAC7BtnE,EAAI,QACJuU,EAAO,UACP8nE,IAEA,IAAIwU,EAAUC,EAkCd,OAhCIN,EAAelpB,IAASmpB,EAAyBnpB,GAEjDupB,EADExU,EACS,eAEA,WAEJqU,EAAeppB,GAEtBupB,EADExU,EACS,eAEA,WAEJsU,EAAYrpB,GAEnBupB,EADExU,EACS,eAES,YAATr8E,EAAqB,UAAY,QAErC4wF,EAAUtpB,GACf+U,GACFwU,EAAW,eACXC,EAAc,kBAEdD,EAAoB,YAAT7wF,EAAqB,UAAY,QAC5C8wF,EAAc,YAGhB,EAAIhyG,EAAMgF,MAAM,qEAChB+sG,EAAW7wF,EACX8wF,EAAcv8E,GAGT,CAACs8E,EAAUC,GAGpB,SAASC,EAAgBj+D,EAAUmrD,EAAkBtB,GAInD,IAHA,IACI7C,EADAwV,EAAa,GAGR32G,EAAI,EAAGsnB,EAAK6yB,EAASj6C,OAAQF,EAAIsnB,EAAItnB,IAC5CmhG,GAAU,EAAItN,EAAS6R,oBAAoBvrD,EAASn6C,GAAIslG,IAEvC,IAAbnE,IACFwV,EAAW32G,GAAKmhG,GAIpB,IAAK,IAAI4F,KAAY/C,EACnB7C,GAAU,EAAItN,EAAS6R,oBAAoB1B,EAAY+C,GAAWzB,IAEjD,IAAbnE,IACFwV,GAAY5P,GAAY5F,GAI5B,OAAOwV,EAGT,SAAS0B,EAAcC,EAAmBC,EAAUC,GAClD,IAAIC,EAAS9zG,OAAOY,OAAO,MACvBoxG,EAAa,GACb+B,EAAsB,EACtBC,EAA4B7E,EAAkB4E,GAAqB,GACnEE,EAAqB9E,EAAkB4E,GAAqB,GAEhE,IAAK,IAAIG,KAAoBP,EAAmB,CAC9CO,GAAoB,EACpB,IAAIC,EAAUR,EAAkBO,GAEhC,GAAKN,EAASO,GAAd,CAIA,GAAIH,EAA4BC,EAAoB,CAGlD,GAFAF,IAEIA,GAAuB5E,EAAkB5zG,OAAQ,EACnD,EAAIiG,EAAMgF,MAAM,8CAChB,MAGFwtG,EAA4B7E,EAAkB4E,GAAqB,GACnEE,EAAqB9E,EAAkB4E,GAAqB,GAG9D,IAAIK,EAAeJ,IAEH,IAAZG,IACFA,EAAUN,GAGZC,EAAOM,GAAgBD,EACvBnC,EAAWkC,GAAoBE,GAGjC,MAAO,CACLpC,aACA2B,kBAAmBG,EACnBE,6BAIJ,SAASK,EAAUlf,EAAQmf,GACzB,IAAI7lE,EAAQ,GAEZ,IAAK,IAAI2zD,KAAYjN,EACfA,EAAOiN,IAAakS,GAIxB7lE,EAAM9xC,KAAK,CACTy3G,aAAyB,EAAXhS,EACd+R,QAAShf,EAAOiN,KAIC,IAAjB3zD,EAAMlzC,QACRkzC,EAAM9xC,KAAK,CACTy3G,aAAc,EACdD,QAAS,IAIb1lE,EAAMrtB,MAAK,SAA2BX,EAAGZ,GACvC,OAAOY,EAAE2zF,aAAev0F,EAAEu0F,gBAK5B,IAHA,IAAIjpF,EAAS,GACT5vB,EAASkzC,EAAMlzC,OAEVwF,EAAI,EAAGA,EAAIxF,GAAS,CAC3B,IAAIiB,EAAQiyC,EAAM1tC,GAAGqzG,aACjBG,EAAc,CAAC9lE,EAAM1tC,GAAGozG,WAC1BpzG,EACF,IAAItE,EAAMD,EAEV,MAAOuE,EAAIxF,GAAUkB,EAAM,IAAMgyC,EAAM1tC,GAAGqzG,aAKxC,GAJAG,EAAY53G,KAAK8xC,EAAM1tC,GAAGozG,WACxB13G,IACAsE,EAEU,QAARtE,EACF,MAIJ0uB,EAAOxuB,KAAK,CAACH,EAAOC,EAAK83G,IAG3B,OAAOppF,EAGT,SAASqpF,EAAgBrf,EAAQmf,GAC/B,IAGIj5G,EAAGsnB,EAAI6P,EAAG6H,EAHVlP,EAASkpF,EAAUlf,EAAQmf,GAC3B/C,EAAYpmF,EAAOA,EAAO5vB,OAAS,GAAG,GAAK,MAAS,EAAI,EACxD2mG,EAAO,OAAa8Q,EAASzB,GAAtB,UAA6D,EAAI/vG,EAAMwL,UAAU,EAAgB,EAAZukG,GAGhG,IAAKl2G,EAAI8vB,EAAO5vB,OAAS,EAAGF,GAAK,IAAKA,EACpC,GAAI8vB,EAAO9vB,GAAG,IAAM,MAClB,MAIJ,IAAIo5G,EAAYp5G,EAAI,EAEhB8vB,EAAO9vB,GAAG,GAAK,OAA2B,QAAjB8vB,EAAO9vB,GAAG,KACrC8vB,EAAO9vB,GAAG,GAAK,OAGjB,IASI+vB,EAAO5uB,EAAOC,EAAKgyC,EATnBimE,EAAsBvpF,EAAO9vB,GAAG,GAAK,MAAS,EAAI,EAClDs5G,EAAWF,EAAYC,EACvBjD,EAAenB,EAAoBM,gBAAgB+D,EAAU,GAC7DC,EAAa,GACbC,EAAW,GACXC,EAAW,GACXC,EAAiB,GACjBC,EAAY,GACZC,EAAO,EAGX,IAAK55G,EAAI,EAAGsnB,EAAK8xF,EAAWp5G,EAAIsnB,EAAItnB,IAAK,CACvC+vB,EAAQD,EAAO9vB,GACfmB,EAAQ4uB,EAAM,GACd3uB,EAAM2uB,EAAM,GACZwpF,GAAc5B,EAASx2G,GACvBq4G,GAAY7B,EAASv2G,GACrBgyC,EAAQrjB,EAAM,GACd,IAAI8pF,GAAa,EAEjB,IAAK1iF,EAAI,EAAG6H,EAAKoU,EAAMlzC,OAAQi3B,EAAI6H,IAAM7H,EACvC,GAAIic,EAAMjc,KAAOic,EAAMjc,EAAI,GAAK,EAAG,CACjC0iF,GAAa,EACb,MAIJ,GAAKA,EASE,CACL,IAAIC,EAAY1mE,EAAM,GACtBqmE,GAAY9B,EAASmC,EAAY34G,EAAQ,OACzCu4G,GAAkB/B,EAAS,OAZZ,CACf,IAAI3lF,EAA0B,GAAhBsnF,EAAWt5G,GAAgB,EAAP45G,EAKlC,IAJAA,GAAQx4G,EAAMD,EAAQ,EACtBs4G,GAAY9B,EAAS,GACrB+B,GAAkB/B,EAAS3lF,GAEtBmF,EAAI,EAAG6H,EAAKoU,EAAMlzC,OAAQi3B,EAAI6H,IAAM7H,EACvCwiF,GAAahC,EAASvkE,EAAMjc,KAS9BkiF,EAAsB,IACxBG,GAAY,KACZD,GAAc,KACdE,GAAY,MACZC,GAAkB,QAGpB,IAAIK,EAAY,OAAapC,EAAS,EAAI2B,GAAY3B,EAASvB,EAAarmF,OAAS4nF,EAASvB,EAAajxE,OAASwyE,EAASvB,EAAaR,YAAc4D,EAAW,OAAaD,EAAaE,EAAWC,EAAiBC,EACrNK,EAAc,GACdC,EAAc,GAElB,GAAI/D,EAAY,EAAG,CAIjB,IAHArP,GAAQ,WAA0B,EAAI1gG,EAAMwL,UAAU,EAAgB,EAAZukG,EAAgB,EAAI6D,EAAU75G,QACxF85G,EAAc,GAETh6G,EAAI,EAAGsnB,EAAKwI,EAAO5vB,OAAQF,EAAIsnB,EAAItnB,IAAK,CAC3C+vB,EAAQD,EAAO9vB,GACfmB,EAAQ4uB,EAAM,GACdqjB,EAAQrjB,EAAM,GACd,IAAIhwB,EAAOqzC,EAAM,GAEjB,IAAKjc,EAAI,EAAG6H,EAAKoU,EAAMlzC,OAAQi3B,EAAI6H,IAAM7H,EACnCic,EAAMjc,KAAOic,EAAMjc,EAAI,GAAK,IAC9B/1B,EAAM2uB,EAAM,GAAKoH,EAAI,EACrB6iF,IAAe,EAAI7zG,EAAMwL,UAAUxQ,IAAS,EAAIgF,EAAMwL,UAAUvQ,IAAO,EAAI+E,EAAMwL,UAAU5R,GAC3FoB,EAAQC,EAAM,EACdrB,EAAOqzC,EAAMjc,IAIjB6iF,IAAe,EAAI7zG,EAAMwL,UAAUxQ,IAAS,EAAIgF,EAAMwL,UAAUoe,EAAM,KAAM,EAAI5pB,EAAMwL,UAAU5R,GAGlGk6G,EAAc,YAA0B,EAAI9zG,EAAMwL,UAAUqoG,EAAY95G,OAAS,IAAM,YAAqB,EAAIiG,EAAMwL,UAAUqoG,EAAY95G,OAAS,IAGvJ,OAAO2mG,EAAO,MAAa8Q,EAASoC,EAAU75G,OAAS,GAAK65G,EAAYE,EAAcD,EAGxF,SAASE,EAAiBC,EAAKxrB,GAC7BA,EAAK/qE,KAAO+qE,EAAKxtF,OAAS,GAAKg5G,EAAInoF,OACnC,IAAIwF,EAAUm3D,EAAK3iD,YACnB2iD,EAAKr2D,KAAK,IACV,IAAI8hF,EAAYzrB,EAAK3iD,YAErB,GAAIxU,EAAU,GAAiB,IAAZ4iF,EACjB,OAAO,EAGT,IAAI1T,EAAY/X,EAAK3iD,YACjB26D,EAAWhY,EAAK3iD,YAEpB,GAAI06D,EAAYC,EACd,OAAO,EAGThY,EAAKr2D,KAAK,GACV,IAAI+hF,EAAc1rB,EAAK3iD,YAEvB,OAAoB,IAAhBquE,IAIJF,EAAIjzG,KAAK,GAAKizG,EAAIjzG,KAAK,GAAK,GACrB,GAGT,SAASozG,EAAejX,EAAYkX,EAAaC,GAC/CA,EAAWA,GAAY,CACrBC,WAAY,EACZC,KAAM,EACNC,KAAM,EACNhb,OAAQ,EACRC,QAAS,GAEX,IAAIgb,EAAkB,EAClBC,EAAkB,EAClBC,EAAkB,EAClBC,EAAkB,EAClBC,EAAiB,KACjBC,EAAgB,EAEpB,GAAIV,EAAa,CACf,IAAK,IAAIx6G,KAAQw6G,EAAa,CAC5Bx6G,GAAQ,GAEJi7G,EAAiBj7G,IAASi7G,KAC5BA,EAAiBj7G,GAGfk7G,EAAgBl7G,IAClBk7G,EAAgBl7G,GAGlB,IAAI4tB,GAAW,EAAIkmE,EAASqnB,oBAAoBn7G,GAEhD,GAAI4tB,EAAW,GACbitF,GAAmB,GAAKjtF,OACnB,GAAIA,EAAW,GACpBktF,GAAmB,GAAKltF,EAAW,QAC9B,GAAIA,EAAW,GACpBmtF,GAAmB,GAAKntF,EAAW,OAC9B,MAAIA,EAAW,KAGpB,MAAM,IAAIxnB,EAAMiM,YAAY,6DAF5B2oG,GAAmB,GAAKptF,EAAW,IAMnCstF,EAAgB,QAClBA,EAAgB,YAGlBD,EAAiB,EACjBC,EAAgB,IAGlB,IAAIpyB,EAAOwa,EAAWxa,MAAQ,CAAC,EAAG,EAAG,EAAG,GACpC4xB,EAAaD,EAASC,YAAc,GAAKpX,EAAWrD,YAAc75F,EAAMoN,sBAAsB,GAC9FqzD,EAAQy8B,EAAW8X,aAAe,EAAMV,EAAa1G,EACrDqH,EAAaZ,EAAS7a,QAAUl0F,KAAKw2F,MAAMr7B,GAASy8B,EAAW1D,QAAU9W,EAAK,KAC9EwyB,EAAcb,EAAS5a,SAAWn0F,KAAKw2F,MAAMr7B,GAASy8B,EAAWzD,SAAW/W,EAAK,KAEjFwyB,EAAc,GAAKhY,EAAWzD,QAAU,GAAK/W,EAAK,GAAK,IACzDwyB,GAAeA,GAGjB,IAAIC,EAAYd,EAASE,MAAQU,EAC7BG,GAAcf,EAASG,OAASU,EACpC,MAAO,sDAAiOj4F,OAAOC,aAAaggF,EAAW2G,WAAa,EAAO,GAAQ,gBAA6B,EAAI7jG,EAAMwL,UAAUipG,IAAmB,EAAIz0G,EAAMwL,UAAUkpG,IAAmB,EAAI10G,EAAMwL,UAAUmpG,IAAmB,EAAI30G,EAAMwL,UAAUopG,GAAmB,OAAqBpD,EAAStU,EAAW8G,YAAc,EAAI,GAAKwN,EAASqD,GAAkB3X,EAAWqD,WAAaiR,EAASsD,GAAiB5X,EAAWsD,UAAYgR,EAASyD,GAAczD,EAAS0D,GAAe,MAAa1D,EAAS2D,GAAa3D,EAAS4D,GAAptB,mBAA4wB5D,EAAStU,EAAW4G,SAAW0N,EAAStU,EAAW6G,WAAayN,EAAS,GAAKA,EAASqD,GAAkB3X,EAAWqD,WAAa,MAGt5B,SAAS8U,EAAgBnY,GACvB,IAAIoY,EAAQhwG,KAAK+hB,MAA+B,MAAzB61E,EAAW8G,aAClC,MAAO,WAAqB,EAAIhkG,EAAMwL,UAAU8pG,GAAzC,YAA4E,EAAIt1G,EAAMwL,UAAU0xF,EAAW2G,YAA3G,mCAGT,SAAS0R,EAAgB34G,EAAM44G,GACxBA,IACHA,EAAQ,CAAC,GAAI,KAGf,IAEI37G,EAAGsnB,EAAI6P,EAAG6H,EAAIhc,EAFd44F,EAAU,CAACD,EAAM,GAAG,IAAM,mBAAoBA,EAAM,GAAG,IAAM54G,EAAM44G,EAAM,GAAG,IAAM,UAAWA,EAAM,GAAG,IAAM,WAAYA,EAAM,GAAG,IAAM54G,EAAM44G,EAAM,GAAG,IAAM,eAAgBA,EAAM,GAAG,IAAM,GAAIA,EAAM,GAAG,IAAM,UAAWA,EAAM,GAAG,IAAM,UAAWA,EAAM,GAAG,IAAM,WAClQE,EAAiB,GAGrB,IAAK77G,EAAI,EAAGsnB,EAAKs0F,EAAQ17G,OAAQF,EAAIsnB,EAAItnB,IAAK,CAC5CgjB,EAAM24F,EAAM,GAAG37G,IAAM47G,EAAQ57G,GAC7B,IAAI87G,EAAgB,GAEpB,IAAK3kF,EAAI,EAAG6H,EAAKhc,EAAI9iB,OAAQi3B,EAAI6H,EAAI7H,IACnC2kF,EAAcx6G,KAAKq2G,EAAS30F,EAAI7iB,WAAWg3B,KAG7C0kF,EAAev6G,KAAKw6G,EAAcv6G,KAAK,KAGzC,IAAIo8B,EAAQ,CAACi+E,EAASC,GAClBE,EAAY,CAAC,MAAY,OACzBC,EAAY,CAAC,OAAY,OACzBC,EAAY,CAAC,OAAY,OACzBC,EAAmBN,EAAQ17G,OAAS67G,EAAU77G,OAC9Ci8G,EAAY,OAAaxE,EAASuE,GAAoBvE,EAA4B,GAAnBuE,EAAwB,GACvFE,EAAY,EAEhB,IAAKp8G,EAAI,EAAGsnB,EAAKy0F,EAAU77G,OAAQF,EAAIsnB,EAAItnB,IAAK,CAC9C,IAAIq8G,EAAO1+E,EAAM39B,GAEjB,IAAKm3B,EAAI,EAAG6H,EAAKq9E,EAAKn8G,OAAQi3B,EAAI6H,EAAI7H,IAAK,CACzCnU,EAAMq5F,EAAKllF,GACX,IAAImlF,EAAaP,EAAU/7G,GAAKg8G,EAAUh8G,GAAKi8G,EAAUj8G,GAAK23G,EAASxgF,GAAKwgF,EAAS30F,EAAI9iB,QAAUy3G,EAASyE,GAC5GD,GAAaG,EACbF,GAAap5F,EAAI9iB,QAKrB,OADAi8G,GAAaP,EAAQr6G,KAAK,IAAMs6G,EAAet6G,KAAK,IAC7C46G,EA8tDT,OAxrEAhhB,EAAKC,UAAY,WACf,IAAIgT,EAAK,EACT,OAAO,WACL,OAAOhrF,OAAOgrF,MAHD,GA6djBjT,EAAKp5F,UAAY,CACfgB,KAAM,KACNyd,KAAM,KACNu2F,SAAU,KACV9pG,iBAAiB,EAEjB,eACE,IAAIq9F,EAAWsJ,EAAe2I,oBAAoBh3G,OAAOvB,KAAM0vG,GAE/D,OAAO,EAAIvtG,EAAMuL,QAAQ1N,KAAM,WAAYsmG,IAG7C,WAAW1Q,GAAkB,GAC3B,MAAM4iB,EAAuB5iB,EAAkB,IAAIoa,KAA2BC,GAAgCD,EACxG9sG,EAAOvC,OAAOY,OAAO,MAC3B,IAAIK,EAAUV,EAEd,IAAKU,KAAY42G,EACft3G,EAAQlB,KAAK4B,QAECsd,IAAVhe,IACFgC,EAAKtB,GAAYV,GAIrB,OAAOgC,GAGT2vG,qBAAsB,WACpB7yG,KAAKyyG,aAAc,EACnB,IAAI1zG,EAAOiB,KAAKjB,KACZskB,EAAOrjB,KAAKqjB,KACZuU,EAAU53B,KAAK43B,QACnB,IAAI09D,EAAWv2F,EAAKkgB,QAAQ,QAAS,KAAKA,QAAQ,MAAO,IACzD,IAAIolF,GAAa,EAAIvU,EAAgBwU,iBACjCmU,GAAgB,EAAI3oB,EAAgB4oB,oBACpCC,IAAmBtU,EAAW/O,OAAgBmjB,EAAcnjB,KAAa+O,EAAWoU,EAAcnjB,KAOtG,GANAA,EAAW+O,EAAW/O,IAAamjB,EAAcnjB,IAAaA,EAC9Dt1F,KAAKm5B,MAAsC,IAA/Bm8D,EAAS6O,OAAO,UAC5BnkG,KAAKo5B,QAA2C,IAAlCk8D,EAAS6O,OAAO,eAAwD,IAAjC7O,EAAS6O,OAAO,YACrEnkG,KAAKw2C,OAAmC,IAA3Bz3C,EAAKolG,OAAO,UACzBnkG,KAAK44G,UAAYj4G,OAAOylB,KAAKpmB,KAAKojG,QAAQlnG,OAAS,EAE/Cy8G,GAA2B,iBAATt1F,GAA2BrjB,KAAKomG,YAAY3nE,WAAW,aAAc,CACzF,MAAMo6E,GAA2B,EAAI/oB,EAAgBgpB,+BAC/C1sB,EAAM,GAEZ,IAAK,MAAM2W,KAAY8V,EACrBzsB,GAAK2W,GAAY8V,EAAyB9V,GAG5C,GAAI,gBAAgBttE,KAAK12B,GAAO,CAC9B,IAAIg6G,GAAoC,EAAIjpB,EAAgBkpB,wCAE5D,IAAK,MAAMjW,KAAYgW,EACrB3sB,GAAK2W,GAAYgW,EAAkChW,QAEhD,GAAI,WAAWttE,KAAK12B,GAAO,CAChC,MAAMk6G,GAAiC,EAAInpB,EAAgBopB,qCAE3D,IAAK,MAAMnW,KAAYkW,EACrB7sB,GAAK2W,GAAYkW,EAA+BlW,GAIpD,IAAIoW,EAAoBn5G,KAAKu/F,qBAAqBkD,EAE7C0W,GACHn5G,KAAKu/F,UAAUlzF,SAAQ,SAAU02F,EAAUqW,GACzChtB,GAAK2W,GAAYqW,KAIrBp5G,KAAK2yG,WAAavmB,EAClBpsF,KAAKu/F,UAAY,IAAIsC,EAAazV,QAC7B,GAAI,UAAU32D,KAAK6/D,GACxBt1F,KAAK2yG,WAAayB,EAAgBxkB,EAAWiR,mBAAmB,EAAI5Q,EAAWsR,oBAAqBvhG,KAAKggG,kBACpG,GAAI,YAAYvqE,KAAK6/D,GACtB,aAAa7/D,KAAK12B,KACpB,EAAIoD,EAAMgF,MAAM,8DAGlBnH,KAAK2yG,WAAayB,EAAgBxkB,EAAWkR,sBAAsB,EAAI7Q,EAAWopB,4BAA6Br5G,KAAKggG,kBAC/G,GAAI2Y,EACT34G,KAAK2yG,WAAayB,EAAgBp0G,KAAKmgG,iBAAiB,EAAIlQ,EAAWsR,oBAAqBvhG,KAAKggG,iBAC5F,CACL,MAAMsB,GAAmB,EAAIrR,EAAWsR,oBAClCnV,EAAM,GAcZ,GAbApsF,KAAKu/F,UAAUlzF,QAAQ,CAAC02F,EAAUqW,KAChC,IAAKp5G,KAAK0/F,UAAW,CACnB,IAAI2B,EAAYrhG,KAAKggG,YAAY+C,IAAa/iG,KAAKmgG,gBAAgB4C,GACnE,MAAM5F,GAAU,EAAItN,EAAS6R,oBAAoBL,EAAWC,IAE3C,IAAbnE,IACFic,EAAkBjc,GAItB/Q,GAAK2W,GAAYqW,IAGfp5G,KAAK0/F,WAAa1/F,KAAKu/F,qBAAqBkD,GAC1C,WAAWhtE,KAAK12B,GAAO,CACzB,MAAM85G,GAA2B,EAAI/oB,EAAgBgpB,+BAErD,IAAK,MAAM/V,KAAY8V,EACrBzsB,GAAK2W,GAAY8V,EAAyB9V,GAKhD/iG,KAAK2yG,WAAavmB,EAGpBpsF,KAAKo9B,WAAak4D,EAASv2D,MAAM,KAAK,GACtC/+B,KAAKs3F,SAAWG,EAAYp0E,EAAMuU,IAEpCw7E,eAAgB,SAA6Br0G,EAAMyd,EAAM6iF,GACvD,MAAMia,EAAe,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAE9H,SAASC,EAAW5uB,EAAMunB,GACxB,MAAMZ,EAAS3wG,OAAOY,OAAO,MAC7B+vG,EAAO,QAAU,KACjBA,EAAOzO,KAAO,KACdyO,EAAOtoC,KAAO,KACdsoC,EAAOkI,KAAO,KACdlI,EAAOmI,KAAO,KACdnI,EAAOoI,KAAO,KACdpI,EAAOvyG,KAAO,KACduyG,EAAOqI,KAAO,KAEd,IAAK,IAAI39G,EAAI,EAAGA,EAAIk2G,EAAWl2G,IAAK,CAClC,MAAMmzC,EAAQyqE,EAAejvB,GAExB2uB,EAAattF,SAASmjB,EAAMqjE,OAIZ,IAAjBrjE,EAAMjzC,SAIVo1G,EAAOniE,EAAMqjE,KAAOrjE,IAGtB,OAAOmiE,EAGT,SAASsI,EAAejvB,GACtB,IAAI6nB,GAAM,EAAIrwG,EAAM6K,eAAe29E,EAAKrjE,SAAS,IAC7C+qF,EAAW1nB,EAAKn9C,aAAe,EAC/Bxf,EAAS28D,EAAKn9C,aAAe,EAC7BtxC,EAASyuF,EAAKn9C,aAAe,EAC7BqsE,EAAmBlvB,EAAK/qE,IAC5B+qE,EAAK/qE,IAAM+qE,EAAKxtF,MAAQwtF,EAAKxtF,MAAQ,EACrCwtF,EAAKr2D,KAAKtG,GACV,IAAI9qB,EAAOynF,EAAKrjE,SAASprB,GAQzB,OAPAyuF,EAAK/qE,IAAMi6F,EAEC,SAARrH,IACFtvG,EAAK,GAAKA,EAAK,GAAKA,EAAK,IAAMA,EAAK,IAAM,EAC1CA,EAAK,KAAO,IAGP,CACLsvG,MACAH,WACAn2G,SACA8xB,SACA9qB,QAIJ,SAAS42G,EAAmBC,GAC1B,MAAO,CACLvmF,SAAS,EAAIrxB,EAAM6K,eAAe+sG,EAAIzyF,SAAS,IAC/C4qF,UAAW6H,EAAI/xE,YACf2pE,YAAaoI,EAAI/xE,YACjBgyE,cAAeD,EAAI/xE,YACnB4pE,WAAYmI,EAAI/xE,aAIpB,SAASiyE,EAA6BC,GACpC,MAAMC,GAAS,EAAIh4G,EAAM6K,eAAektG,EAAI5yF,SAAS,KACrD,EAAInlB,EAAM4K,QAAmB,SAAXotG,EAAmB,uCACrC,MAAMC,EAAeF,EAAIlyE,YACnBqyE,EAAeH,EAAIlyE,YACnBsyE,EAAWJ,EAAI1sE,aAAe,EAC9B+sE,EAAc,GAEpB,IAAK,IAAIv+G,EAAI,EAAGA,EAAIs+G,EAAUt+G,IAC5Bu+G,EAAYj9G,KAAK48G,EAAI1sE,aAAe,GAGtC,MAAM4X,EAAS,CACb+0D,SACAC,eACAC,eACAC,WACAC,eAGF,OAAQH,GACN,KAAK,EACH,OAAOh1D,EAET,KAAK,EAIH,OAHAA,EAAOo1D,QAAUN,EAAI1sE,aAAe,EACpC4X,EAAOq1D,WAAaP,EAAI1sE,aAAe,EACvC4X,EAAOs1D,WAAaR,EAAI1sE,aAAe,EAChC4X,EAGX,MAAM,IAAIjjD,EAAMiM,YAAY,6CAA6CgsG,MAG3E,SAASO,EAA2BT,EAAK5kB,GACvC,MAAM,SACJglB,EAAQ,YACRC,GACEN,EAA6BC,GAEjC,IAAK,IAAIl+G,EAAI,EAAGA,EAAIs+G,EAAUt+G,IAAK,CACjCk+G,EAAIt6F,KAAOs6F,EAAI/8G,OAAS,GAAKo9G,EAAYv+G,GACzC,MAAM4+G,EAAkBd,EAAmBI,GACrCW,EAAkBtB,EAAWW,EAAKU,EAAgB1I,WAExD,IAAK2I,EAAgB97G,KACnB,MAAM,IAAIoD,EAAMiM,YAAY,yDAG9B,MAAM+pG,EAAY2C,EAAcD,EAAgB97G,MAEhD,IAAK,IAAIo0B,EAAI,EAAG6H,EAAKm9E,EAAUj8G,OAAQi3B,EAAI6H,EAAI7H,IAC7C,IAAK,IAAIud,EAAI,EAAGoB,EAAKqmE,EAAUhlF,GAAGj3B,OAAQw0C,EAAIoB,EAAIpB,IAAK,CACrD,MAAMqqE,EAAY5C,EAAUhlF,GAAGud,GAE/B,GAAIqqE,GAAaA,EAAU97F,QAAQ,MAAO,MAAQq2E,EAChD,MAAO,CACLlwC,OAAQw1D,EACRtJ,OAAQuJ,IAOlB,MAAM,IAAI14G,EAAMiM,YAAY,yCAAyCknF,YAGvE,SAAS0lB,EAAcnY,EAAMlY,EAAM0V,EAAgBU,GACjD,IAAK8B,EAEH,OADA,EAAI1gG,EAAMgF,MAAM,4BACT,CACL8zG,YAAa,EACbC,YAAa,EACbC,SAAU,GACVC,cAAc,GAIlB,IAAI91D,EACAnoD,GAASwtF,EAAKxtF,MAAQwtF,EAAKxtF,MAAQ,GAAK0lG,EAAK70E,OACjD28D,EAAK/qE,IAAMziB,EACXwtF,EAAKr2D,KAAK,GAKV,IAJA,IACI+mF,EADAnJ,EAAYvnB,EAAK3iD,YAEjBszE,GAAW,EAENt/G,EAAI,EAAGA,EAAIk2G,EAAWl2G,IAAK,CAClC,IAAIi/G,EAAatwB,EAAK3iD,YAClBkzE,EAAavwB,EAAK3iD,YAClBha,EAAS28D,EAAKn9C,aAAe,EAC7B+tE,GAAW,EAEf,KAAIF,GAAkBA,EAAeJ,aAAeA,GAAcI,EAAeH,aAAeA,KAI7E,IAAfD,GAAmC,IAAfC,GAEE,IAAfD,GAAmC,IAAfC,EAD7BK,GAAW,EAGa,IAAfN,GAAmC,IAAfC,IAAqBna,GAAgBsa,EAMzDhb,GAAiC,IAAf4a,GAAmC,IAAfC,IAC/CK,GAAW,EACXD,GAAW,IAPXC,GAAW,EAENlb,IACHib,GAAW,IAOXC,IACFF,EAAiB,CACfJ,aACAC,aACAltF,WAIAstF,GACF,MAQJ,GAJID,IACF1wB,EAAK/qE,IAAMziB,EAAQk+G,EAAertF,SAG/BqtF,IAAuC,IAArB1wB,EAAK9iD,WAE1B,OADA,EAAI1lC,EAAMgF,MAAM,0CACT,CACL8zG,YAAa,EACbC,YAAa,EACbC,SAAU,GACVC,cAAc,GAIlB,IAAII,EAAS7wB,EAAK3iD,YAClB2iD,EAAKr2D,KAAK,GACV,IAEInB,EAAG2hF,EAFHsG,GAAe,EACfD,EAAW,GAGf,GAAe,IAAXK,EAAc,CAChB,IAAKroF,EAAI,EAAGA,EAAI,IAAKA,IAAK,CACxB,IAAItQ,EAAQ8nE,EAAK7gE,UAEZjH,GAILs4F,EAAS79G,KAAK,CACZylG,SAAU5vE,EACV2hF,QAASjyF,IAIbu4F,GAAe,OACV,GAAe,IAAXI,EAAc,CACvB,IAAIlG,EAAW3qB,EAAK3iD,aAAe,EACnC2iD,EAAKr2D,KAAK,GACV,IAAImnF,EACAp2D,EAAW,GAEf,IAAKo2D,EAAW,EAAGA,EAAWnG,EAAUmG,IACtCp2D,EAAS/nD,KAAK,CACZF,IAAKutF,EAAK3iD,cAMd,IAFA2iD,EAAKr2D,KAAK,GAELmnF,EAAW,EAAGA,EAAWnG,EAAUmG,IACtCp2D,EAASo2D,GAAUt+G,MAAQwtF,EAAK3iD,YAGlC,IAAKyzE,EAAW,EAAGA,EAAWnG,EAAUmG,IACtCp2D,EAASo2D,GAAUr2C,MAAQulB,EAAK3iD,YAGlC,IAAI0zE,EAAe,EAEnB,IAAKD,EAAW,EAAGA,EAAWnG,EAAUmG,IAAY,CAClDn2D,EAAUD,EAASo2D,GACnB,IAAIE,EAAchxB,EAAK3iD,YAEvB,GAAK2zE,EAAL,CAKA,IAAIC,GAAeD,GAAe,IAAMrG,EAAWmG,GACnDn2D,EAAQs2D,YAAcA,EACtBF,EAAej0G,KAAKC,IAAIg0G,EAAcE,EAAct2D,EAAQloD,IAAMkoD,EAAQnoD,MAAQ,QANhFmoD,EAAQs2D,aAAe,EAS3B,IAAIC,EAAU,GAEd,IAAK1oF,EAAI,EAAGA,EAAIuoF,EAAcvoF,IAC5B0oF,EAAQv+G,KAAKqtF,EAAK3iD,aAGpB,IAAKyzE,EAAW,EAAGA,EAAWnG,EAAUmG,IAAY,CAClDn2D,EAAUD,EAASo2D,GACnBt+G,EAAQmoD,EAAQnoD,MAChB,IAAIC,EAAMkoD,EAAQloD,IACdgoE,EAAQ9f,EAAQ8f,MAGpB,IAFAw2C,EAAct2D,EAAQs2D,YAEjBzoF,EAAIh2B,EAAOg2B,GAAK/1B,EAAK+1B,IACd,QAANA,IAIJ2hF,EAAU8G,EAAc,EAAIzoF,EAAI0oF,EAAQD,EAAczoF,EAAIh2B,GAC1D23G,EAAUA,EAAU1vC,EAAQ,MAC5B+1C,EAAS79G,KAAK,CACZylG,SAAU5vE,EACV2hF,kBAID,IAAe,IAAX0G,EAcT,OADA,EAAIr5G,EAAMgF,MAAM,sCAAwCq0G,GACjD,CACLP,YAAa,EACbC,YAAa,EACbC,SAAU,GACVC,cAAc,GAjBhB,IAAI3vD,EAAYk/B,EAAK3iD,YACjB9G,EAAaypD,EAAK3iD,YAEtB,IAAK7U,EAAI,EAAGA,EAAI+N,EAAY/N,IAAK,CAC/B2hF,EAAUnqB,EAAK3iD,YACf,IAAI+6D,EAAWt3C,EAAYt4B,EAC3BgoF,EAAS79G,KAAK,CACZylG,WACA+R,aAiBN,IAJAqG,EAASp5F,MAAK,SAAUX,EAAGZ,GACzB,OAAOY,EAAE2hF,SAAWviF,EAAEuiF,YAGnB/mG,EAAI,EAAGA,EAAIm/G,EAASj/G,OAAQF,IAC3Bm/G,EAASn/G,EAAI,GAAG+mG,WAAaoY,EAASn/G,GAAG+mG,WAC3CoY,EAASt2G,OAAO7I,EAAG,GACnBA,KAIJ,MAAO,CACLi/G,WAAYI,EAAeJ,WAC3BC,WAAYG,EAAeH,WAC3BC,WACAC,gBAIJ,SAASU,EAAgBnxB,EAAMvlC,EAAQu+C,EAASsR,EAAW8G,GACzD,GAAK32D,EAAL,CAQAulC,EAAK/qE,KAAO+qE,EAAKxtF,MAAQwtF,EAAKxtF,MAAQ,GAAKioD,EAAOp3B,OAClD28D,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ+qE,EAAK/qE,KAAO,EACZ,IAAIo8F,EAAerxB,EAAK3iD,YAEpBg0E,EAAe/G,KACjB,EAAI9yG,EAAMiJ,MAAM,qBAAuB4wG,EAAvB,+CAA4F/G,EAAY,KACxH+G,EAAe/G,EACf7vD,EAAOliD,KAAK,KAAsB,MAAf84G,IAA0B,EAC7C52D,EAAOliD,KAAK,IAAqB,IAAf84G,GAGpB,IAAIC,EAAoBhH,EAAY+G,EAChCE,EAAaD,GAAqBtY,EAAQznG,OAAwB,EAAf8/G,GAAoB,GAE3E,GAAIE,EAAa,EAAG,CAClB,IAAIz8E,EAAU,IAAI5jC,WAAW8nG,EAAQznG,OAAsB,EAAbggH,GAC9Cz8E,EAAQ1f,IAAI4jF,EAAQzgG,MAEhB64G,IACFt8E,EAAQkkE,EAAQznG,QAAUynG,EAAQzgG,KAAK,GACvCu8B,EAAQkkE,EAAQznG,OAAS,GAAKynG,EAAQzgG,KAAK,IAG7CygG,EAAQzgG,KAAOu8B,QA1CXkkE,IACFA,EAAQzgG,KAAO,MA6CrB,SAASi5G,EAAc12G,EAAQ22G,EAAaC,EAAWjlF,EAAMklF,EAAWC,GACtE,IAAIC,EAAe,CACjBtgH,OAAQ,EACRugH,mBAAoB,GAGtB,GAAIJ,EAAYD,GAAe,GAC7B,OAAOI,EAGT,IAAIE,EAAOj3G,EAAOia,SAAS08F,EAAaC,GACpCM,EAAgBlJ,EAAYiJ,EAAK,GAAIA,EAAK,IAE9C,GAAIC,EAAgB,EAKlB,OAJAA,GAAiB,EACjBnJ,EAAiBkJ,EAAM,EAAGC,GAC1BvlF,EAAKrX,IAAI28F,EAAMJ,GACfE,EAAatgH,OAASwgH,EAAKxgH,OACpBsgH,EAGT,IAAIxgH,EACAm3B,EAAI,GACJypF,EAAa,EAEjB,IAAK5gH,EAAI,EAAGA,EAAI2gH,EAAe3gH,IAAK,CAClC,IAAI6gH,EAAWH,EAAKvpF,IAAM,EAAIupF,EAAKvpF,EAAI,GACvCypF,EAAaC,EAAW,EACxB1pF,GAAK,EAGP,IAAI2pF,EAAoB3pF,EACpB4pF,EAAqBL,EAAKvpF,IAAM,EAAIupF,EAAKvpF,EAAI,GACjDqpF,EAAaC,mBAAqBM,EAClC5pF,GAAK,EAAI4pF,EACT,IAAIC,EAAkB7pF,EAClB8pF,EAAoB,EAExB,IAAKjhH,EAAI,EAAGA,EAAI4gH,EAAY5gH,IAAK,CAC/B,IAAI6pF,EAAO62B,EAAKvpF,KAEL,IAAP0yD,IACF62B,EAAKvpF,EAAI,GAAY,GAAP0yD,GAGhB,IAAIq3B,EAAU,EAEH,EAAPr3B,EACFq3B,EAAU,EACM,GAAPr3B,IACTq3B,EAAU,GAGZ,IAAIC,EAAU,EAEH,EAAPt3B,EACFs3B,EAAU,EACM,GAAPt3B,IACTs3B,EAAU,GAGZ,MAAMC,EAAWF,EAAUC,EAG3B,GAFAF,GAAqBG,EAEV,EAAPv3B,EAAU,CACZ,IAAIw3B,EAASX,EAAKvpF,KAClBn3B,GAAKqhH,EACLJ,GAAqBI,EAASD,GAIlC,GAA0B,IAAtBH,EACF,OAAOT,EAGT,IAAIc,EAAkBnqF,EAAI8pF,EAE1B,OAAIK,EAAkBZ,EAAKxgH,OAClBsgH,GAGJD,GAAcQ,EAAqB,GACtC3lF,EAAKrX,IAAI28F,EAAKh9F,SAAS,EAAGo9F,GAAoBR,GAC9CllF,EAAKrX,IAAI,CAAC,EAAG,GAAIu8F,EAAYQ,GAC7B1lF,EAAKrX,IAAI28F,EAAKh9F,SAASs9F,EAAiBM,GAAkBhB,EAAYQ,EAAoB,GAC1FQ,GAAmBP,EAEfL,EAAKxgH,OAASohH,EAAkB,IAClCA,EAAkBA,EAAkB,GAAI,GAG1Cd,EAAatgH,OAASohH,EACfd,GAGLE,EAAKxgH,OAASohH,EAAkB,GAClCA,EAAkBA,EAAkB,GAAI,EACxClmF,EAAKrX,IAAI28F,EAAKh9F,SAAS,EAAG49F,GAAkBhB,GAC5CE,EAAatgH,OAASohH,EACfd,IAGTplF,EAAKrX,IAAI28F,EAAMJ,GACfE,EAAatgH,OAASwgH,EAAKxgH,OACpBsgH,GAGT,SAASe,EAAav0C,EAAMisC,EAAWuI,GACrC,IAAIt6G,EAAO8lE,EAAK9lE,KACZswB,EAAUkgF,EAAMxwG,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAEhDswB,GAAW,KAAO,KACpB,EAAIrxB,EAAMiJ,MAAM,oDAAsDooB,GACtEtwB,EAAK,GAAK,EACVA,EAAK,GAAK,EACVA,EAAK,GAAK,EACVA,EAAK,GAAK,GAGZ,IAAIu6G,EAAmBlK,EAAMrwG,EAAK,IAAKA,EAAK,KAE5C,GAAIu6G,EAAmB,GAAKA,EAAmB,EAAG,EAChD,EAAIt7G,EAAMiJ,MAAM,6DAA+DqyG,GAC/E,IAAIC,EAAmBzI,EAAY,EAEnC,GAAIuI,IAAeE,GAAoB,EACrCx6G,EAAK,IAAM,EACXA,EAAK,IAAM,MACN,IAAIs6G,IAAeE,GAAoB,EAI5C,MAAM,IAAIv7G,EAAMiM,YAAY,mCAAqCqvG,GAHjEv6G,EAAK,IAAM,EACXA,EAAK,IAAM,IAOjB,SAASy6G,EAAuBC,EAAMlB,EAAMzH,EAAW4I,EAAsBtB,EAAYR,EAAe+B,GACtG,IAAIC,EAAUC,EAAYC,EAEtBJ,GACFE,EAAW,EAEXC,EAAa,SAA4B96G,EAAM8qB,GAC7C,OAAO9qB,EAAK8qB,IAAW,GAAK9qB,EAAK8qB,EAAS,IAAM,GAAK9qB,EAAK8qB,EAAS,IAAM,EAAI9qB,EAAK8qB,EAAS,IAG7FiwF,EAAa,SAA4B/6G,EAAM8qB,EAAQ9sB,GACrDgC,EAAK8qB,GAAU9sB,IAAU,GAAK,IAC9BgC,EAAK8qB,EAAS,GAAK9sB,GAAS,GAAK,IACjCgC,EAAK8qB,EAAS,GAAK9sB,GAAS,EAAI,IAChCgC,EAAK8qB,EAAS,GAAa,IAAR9sB,KAGrB68G,EAAW,EAEXC,EAAa,SAAwB96G,EAAM8qB,GACzC,OAAO9qB,EAAK8qB,IAAW,EAAI9qB,EAAK8qB,EAAS,IAAM,GAGjDiwF,EAAa,SAAwB/6G,EAAM8qB,EAAQ9sB,GACjDgC,EAAK8qB,GAAU9sB,GAAS,EAAI,IAC5BgC,EAAK8qB,EAAS,GAAK9sB,GAAS,EAAI,MAIpC,IAAIg9G,EAAenC,EAAgB9G,EAAY,EAAIA,EAC/CkJ,EAAeJ,GAAY,EAAIG,GAC/BE,EAAW,IAAIviH,WAAWsiH,GAC9BC,EAASr+F,IAAI69F,EAAK16G,KAAKwc,SAAS,EAAGy+F,IACnCP,EAAK16G,KAAOk7G,EACZ,IAOIpiH,EAAGm3B,EAPHkrF,EAAc3B,EAAKx5G,KACnBo7G,EAAoBD,EAAYniH,OAChCqiH,EAAc,IAAI1iH,WAAWyiH,GAC7BluD,EAAc4tD,EAAWI,EAAU,GACnCI,EAAc,EACdC,EAAgB99G,OAAOY,OAAO,MAIlC,IAHA08G,EAAWG,EAAU,EAAGI,GAGnBxiH,EAAI,EAAGm3B,EAAI4qF,EAAU/hH,EAAIi5G,EAAWj5G,IAAKm3B,GAAK4qF,EAAU,CAC3D,IAAIn2E,EAAYo2E,EAAWI,EAAUjrF,GAEnB,IAAdyU,IACFA,EAAYwoB,GAGVxoB,EAAY02E,IAAsBA,EAAoB,GAAI,KAAQ12E,IACpEA,EAAY02E,GAGV12E,EAAY02E,IACdluD,EAAcxoB,GAGhB,IAAI40E,EAAeL,EAAckC,EAAajuD,EAAaxoB,EAAW22E,EAAaC,EAAajC,GAC5FluE,EAAYmuE,EAAatgH,OAEX,IAAdmyC,IACFowE,EAAcziH,IAAK,GAGjBwgH,EAAaC,mBAAqBqB,IACpCA,EAAwBtB,EAAaC,oBAGvC+B,GAAenwE,EACf4vE,EAAWG,EAAUjrF,EAAGqrF,GACxBpuD,EAAcxoB,EAGhB,GAAoB,IAAhB42E,EAAmB,CACrB,IAAIE,EAAc,IAAI7iH,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAEhF,IAAKG,EAAI,EAAGm3B,EAAI4qF,EAAU/hH,EAAIkiH,EAAcliH,IAAKm3B,GAAK4qF,EACpDE,EAAWG,EAAUjrF,EAAGurF,EAAYxiH,QAGtCwgH,EAAKx5G,KAAOw7G,OACP,GAAI3C,EAAe,CACxB,IAAI4C,EAAmBX,EAAWI,EAAUL,GAExCQ,EAAYriH,OAASyiH,EAAmBH,EAC1C9B,EAAKx5G,KAAOq7G,EAAY7+F,SAAS,EAAGi/F,EAAmBH,IAEvD9B,EAAKx5G,KAAO,IAAIrH,WAAW8iH,EAAmBH,GAC9C9B,EAAKx5G,KAAK6c,IAAIw+F,EAAY7+F,SAAS,EAAG8+F,KAGxC9B,EAAKx5G,KAAK6c,IAAIw+F,EAAY7+F,SAAS,EAAGi/F,GAAmBH,GACzDP,EAAWL,EAAK16G,KAAMk7G,EAASliH,OAAS6hH,EAAUS,EAAcG,QAEhEjC,EAAKx5G,KAAOq7G,EAAY7+F,SAAS,EAAG8+F,GAGtC,MAAO,CACLC,gBACAX,yBAIJ,SAASc,EAAoBjF,EAAMkF,EAAeC,GAChD,IAAI3hH,GAASqf,EAAKrf,MAAQqf,EAAKrf,MAAQ,GAAKw8G,EAAK3rF,OACjDxR,EAAKoD,IAAMziB,EACX,IAII4hH,EAJA7iH,EAASy9G,EAAKz9G,OACdkB,EAAMD,EAAQjB,EACds3B,EAAUhX,EAAKgxB,WACnBhxB,EAAK8X,KAAK,IAEV,IACIt4B,EADAgjH,GAAQ,EAGZ,OAAQxrF,GACN,KAAK,MACHurF,EAAaxO,EACb,MAEF,KAAK,OACH,IAAI0E,EAAYz4F,EAAKwrB,YAErB,GAAIitE,IAAc6J,EAAe,CAC/BE,GAAQ,EACR,MAGF,IAAIC,EAAmB,GAEvB,IAAKjjH,EAAI,EAAGA,EAAIi5G,IAAaj5G,EAAG,CAC9B,IAAI6mB,EAAQrG,EAAKwrB,YAEjB,GAAInlB,GAAS,MAAO,CAClBm8F,GAAQ,EACR,MAGFC,EAAiB3hH,KAAKulB,GAGxB,IAAKm8F,EACH,MAGF,IAAIE,EAAc,GACd5/F,EAAS,GAEb,MAAO9C,EAAKoD,IAAMxiB,EAAK,CACrB,IAAI+hH,EAAe3iG,EAAKsN,UAGxB,IAFAxK,EAAOpjB,OAASijH,EAEXnjH,EAAI,EAAGA,EAAImjH,IAAgBnjH,EAC9BsjB,EAAOtjB,GAAKojB,OAAOC,aAAa7C,EAAKsN,WAGvCo1F,EAAY5hH,KAAKgiB,EAAO/hB,KAAK,KAK/B,IAFAwhH,EAAa,GAER/iH,EAAI,EAAGA,EAAIi5G,IAAaj5G,EAAG,CAC9B,IAAIm3B,EAAI8rF,EAAiBjjH,GAErBm3B,EAAI,IACN4rF,EAAWzhH,KAAKizG,EAAyBp9E,IAI3C4rF,EAAWzhH,KAAK4hH,EAAY/rF,EAAI,MAGlC,MAEF,KAAK,OACH,MAEF,SACE,EAAIhxB,EAAMgF,MAAM,0CAA4CqsB,GAC5DwrF,GAAQ,EAEJH,EAAc1e,kBAChB4e,EAAaF,EAAc1e,iBAG7B,MAIJ,OADA0e,EAAcE,WAAaA,EACpBC,EAGT,SAASlE,EAAc3C,GACrB,IAAIh7G,GAASqf,EAAKrf,MAAQqf,EAAKrf,MAAQ,GAAKg7G,EAAUnqF,OACtDxR,EAAKoD,IAAMziB,EACX,IAAIw8B,EAAQ,CAAC,GAAI,IACbz9B,EAASi8G,EAAUj8G,OACnBkB,EAAMD,EAAQjB,EACds/G,EAASh/F,EAAKwrB,YACdo3E,EAAyB,EAE7B,GAAe,IAAX5D,GAAgBt/G,EAASkjH,EAC3B,OAAOzlF,EAGT,IAII39B,EAAGsnB,EAJH+7F,EAAa7iG,EAAKwrB,YAClBs3E,EAAe9iG,EAAKwrB,YACpBu3E,EAAU,GACVC,EAAqB,GAGzB,IAAKxjH,EAAI,EAAGA,EAAIqjH,GAAc7iG,EAAKoD,IAAM4/F,GAAsBpiH,EAAKpB,IAAK,CACvE,IAAI+E,EAAI,CACNzC,SAAUke,EAAKwrB,YACfmO,SAAU35B,EAAKwrB,YACfy3E,SAAUjjG,EAAKwrB,YACfjpC,KAAMyd,EAAKwrB,YACX9rC,OAAQsgB,EAAKwrB,YACbha,OAAQxR,EAAKwrB,cAGI,IAAfjnC,EAAEzC,UAAiC,IAAfyC,EAAEo1C,UAAiC,IAAfp1C,EAAE0+G,UAAiC,IAAf1+G,EAAEzC,UAAiC,IAAfyC,EAAEo1C,UAAiC,OAAfp1C,EAAE0+G,WACxGF,EAAQjiH,KAAKyD,GAIjB,IAAK/E,EAAI,EAAGsnB,EAAKi8F,EAAQrjH,OAAQF,EAAIsnB,EAAItnB,IAAK,CAC5C,IAAI0jH,EAASH,EAAQvjH,GAErB,KAAI0jH,EAAOxjH,QAAU,GAArB,CAIA,IAAI0jB,EAAMziB,EAAQmiH,EAAeI,EAAO1xF,OAExC,KAAIpO,EAAM8/F,EAAOxjH,OAASkB,GAA1B,CAIAof,EAAKoD,IAAMA,EACX,IAAI+/F,EAAYD,EAAO3gH,KAEvB,GAAI2gH,EAAOvpE,SAAU,CAGnB,IAFA,IAAIn3B,EAAM,GAEDmU,EAAI,EAAG6H,EAAK0kF,EAAOxjH,OAAQi3B,EAAI6H,EAAI7H,GAAK,EAC/CnU,GAAOI,OAAOC,aAAa7C,EAAKwrB,aAGlCrO,EAAM,GAAGgmF,GAAa3gG,OAEtB2a,EAAM,GAAGgmF,IAAa,EAAIx9G,EAAM6K,eAAewP,EAAK8K,SAASo4F,EAAOxjH,WAIxE,OAAOy9B,EAGT,IAAIimF,EAAmB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,GAAI,GAAI,IAAK,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,KAAM,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAEhjB,SAASC,EAAkB1wE,EAAO2wE,GAkBhC,IAjBA,IAEI3sF,EACAzxB,EACA8e,EACAu/F,EACA1tE,EANAnvC,EAAOisC,EAAMjsC,KACblH,EAAI,EAMJgkH,EAAW,EACXC,EAAW,EACXhS,EAAQ,GACRiS,EAAY,GACZC,EAAkB,GAClBC,EAA8BN,EAAUM,4BACxCC,GAAS,EACTC,EAAU,EACVC,EAAS,EAEJj9F,EAAKpgB,EAAKhH,OAAQF,EAAIsnB,GAAK,CAClC,IAAIk9F,EAAKt9G,EAAKlH,KAEd,GAAW,KAAPwkH,EAGF,GAFA9+G,EAAIwB,EAAKlH,KAELqkH,GAAUE,EACZvkH,GAAK0F,OAEL,IAAKyxB,EAAI,EAAGA,EAAIzxB,EAAGyxB,IACjB86E,EAAM3wG,KAAK4F,EAAKlH,WAGf,GAAW,KAAPwkH,EAGT,GAFA9+G,EAAIwB,EAAKlH,KAELqkH,GAAUE,EACZvkH,GAAS,EAAJ0F,OAEL,IAAKyxB,EAAI,EAAGA,EAAIzxB,EAAGyxB,IACjB3S,EAAItd,EAAKlH,KACTiyG,EAAM3wG,KAAKkjB,GAAK,EAAItd,EAAKlH,WAGxB,GAAoB,OAAV,IAALwkH,GAGV,GAFA9+G,EAAI8+G,EAAK,IAAO,EAEZH,GAAUE,EACZvkH,GAAK0F,OAEL,IAAKyxB,EAAI,EAAGA,EAAIzxB,EAAGyxB,IACjB86E,EAAM3wG,KAAK4F,EAAKlH,WAGf,GAAoB,OAAV,IAALwkH,GAGV,GAFA9+G,EAAI8+G,EAAK,IAAO,EAEZH,GAAUE,EACZvkH,GAAS,EAAJ0F,OAEL,IAAKyxB,EAAI,EAAGA,EAAIzxB,EAAGyxB,IACjB3S,EAAItd,EAAKlH,KACTiyG,EAAM3wG,KAAKkjB,GAAK,EAAItd,EAAKlH,WAGxB,GAAW,KAAPwkH,GAAgBJ,EAuCpB,GAAW,KAAPI,GAAgBJ,GAapB,GAAW,KAAPI,EACT,GAAIH,EACFA,GAAS,EACTL,EAAWhkH,MACN,CAGL,GAFAq2C,EAAK6tE,EAAUtiF,OAEVyU,EAGH,OAFA,EAAIlwC,EAAMgF,MAAM,2BAChB24G,EAAUvD,YAAa,GAIzBwD,EAASI,EAAgBviF,MACzB16B,EAAOmvC,EAAGnvC,KACVlH,EAAIq2C,EAAGr2C,EACP8jH,EAAUW,qBAAqBV,GAAU9R,EAAM/xG,OAASm2C,EAAGquE,cAExD,GAAW,MAAPF,GACLH,GAAUE,MACZ,EAAIp+G,EAAMgF,MAAM,gCAChBi5G,GAA8B,GAGhCC,GAAS,EACTJ,EAAWjkH,OACN,GAAW,KAAPwkH,IACPF,OACG,GAAW,KAAPE,EACTD,EAASD,OACJ,GAAW,KAAPE,EACLD,IAAWD,IACbC,EAAS,KAGTD,OACG,GAAW,KAAPE,IACJH,IAAWE,EAAQ,CACtB,IAAIvyF,EAASigF,EAAMA,EAAM/xG,OAAS,GAE9B8xB,EAAS,IACXhyB,GAAKgyB,EAAS,SArDdqyF,GAAUE,MACZ,EAAIp+G,EAAMgF,MAAM,gCAChBi5G,GAA8B,GAGhCC,GAAS,EACTJ,EAAWjkH,EACX+jH,EAAS9R,EAAMrwE,MACfkiF,EAAUa,iBAAiBZ,GAAU,CACnC78G,OACAlH,UAjDF,IAAKqkH,IAAWE,EAGd,GAFAR,EAAS9R,EAAMA,EAAM/xG,OAAS,GAE1Bs4B,MAAMurF,IACR,EAAI59G,EAAMiJ,MAAM,iDAIhB,GAFA00G,EAAUc,cAAcb,IAAU,EAE9BA,KAAUD,EAAUW,qBAAsB,CAC5C,MAAMI,EAAiB5S,EAAM/xG,OAAS4jH,EAAUW,qBAAqBV,GAErE,GAAIc,EAAiB,EAGnB,OAFA,EAAI1+G,EAAMgF,MAAM,gDAChB24G,EAAUvD,YAAa,GAIzBtO,EAAM/xG,OAAS2kH,OACV,GAAId,KAAUD,EAAUa,mBAAqBR,EAAgBn0F,SAAS+zF,GAAS,CASpF,GARAG,EAAU5iH,KAAK,CACb4F,OACAlH,IACA0kH,SAAUzS,EAAM/xG,OAAS,IAE3BikH,EAAgB7iH,KAAKyiH,GACrB1tE,EAAKytE,EAAUa,iBAAiBZ,IAE3B1tE,EAGH,OAFA,EAAIlwC,EAAMgF,MAAM,uCAChB24G,EAAUvD,YAAa,GAIzBr5G,EAAOmvC,EAAGnvC,KACVlH,EAAIq2C,EAAGr2C,EA+Df,IAAKqkH,IAAWE,EAAQ,CACtB,IAAIO,EAAa,EAEbN,GAAM,IACRM,EAAalB,EAAiBY,GACrBA,GAAM,KAAQA,GAAM,IAC7BM,GAAc,EACLN,GAAM,MACfM,GAAc,GAGZN,GAAM,KAAQA,GAAM,MACtB9+G,EAAIusG,EAAMrwE,MAELpJ,MAAM9yB,KACTo/G,EAAkB,GAAJp/G,IAIlB,MAAOo/G,EAAa,GAAK7S,EAAM/xG,OAAS,EACtC+xG,EAAMrwE,MACNkjF,IAGF,MAAOA,EAAa,EAClB7S,EAAM3wG,KAAKyjH,KACXD,KAKNhB,EAAUM,4BAA8BA,EACxC,IAAItwF,EAAU,CAAC5sB,GAEXlH,EAAIkH,EAAKhH,QACX4zB,EAAQxyB,KAAK,IAAIzB,WAAWG,EAAIkH,EAAKhH,SAGnC+jH,EAAWD,KACb,EAAI79G,EAAMgF,MAAM,6CAChB2oB,EAAQxyB,KAAK,IAAIzB,WAAW,CAAC,GAAM,OAGrCmlH,EAAY7xE,EAAOrf,GAGrB,SAASmxF,EAAsBnB,EAAWoB,GACxC,IAAIpB,EAAUM,4BAAd,CAIA,GAAIN,EAAUa,iBAAiBzkH,OAASglH,EAGtC,OAFA,EAAI/+G,EAAMgF,MAAM,iDAChB24G,EAAUvD,YAAa,GAIzB,IAAK,IAAIppF,EAAI,EAAG6H,EAAK8kF,EAAUc,cAAc1kH,OAAQi3B,EAAI6H,EAAI7H,IAAK,CAChE,GAAIA,EAAI+tF,EAGN,OAFA,EAAI/+G,EAAMgF,MAAM,4BAA8BgsB,QAC9C2sF,EAAUvD,YAAa,GAIzB,GAAIuD,EAAUc,cAAcztF,KAAO2sF,EAAUa,iBAAiBxtF,GAG5D,OAFA,EAAIhxB,EAAMgF,MAAM,2BAA6BgsB,QAC7C2sF,EAAUvD,YAAa,KAM7B,SAASyE,EAAY7xE,EAAOrf,GAC1B,GAAIA,EAAQ5zB,OAAS,EAAG,CACtB,IACIi3B,EAAG6H,EADHqT,EAAY,EAGhB,IAAKlb,EAAI,EAAG6H,EAAKlL,EAAQ5zB,OAAQi3B,EAAI6H,EAAI7H,IACvCkb,GAAave,EAAQqD,GAAGj3B,OAG1BmyC,EAAYA,EAAY,GAAI,EAC5B,IAAIpsB,EAAS,IAAIpmB,WAAWwyC,GACxBzuB,EAAM,EAEV,IAAKuT,EAAI,EAAG6H,EAAKlL,EAAQ5zB,OAAQi3B,EAAI6H,EAAI7H,IACvClR,EAAOlC,IAAI+P,EAAQqD,GAAIvT,GACvBA,GAAOkQ,EAAQqD,GAAGj3B,OAGpBizC,EAAMjsC,KAAO+e,EACbktB,EAAMjzC,OAASmyC,GAInB,SAAS8yE,EAAmBC,EAAMC,EAAMC,EAAKJ,GAC3C,IAAIpB,EAAY,CACda,iBAAkB,GAClBC,cAAe,GACfH,qBAAsB,GACtBL,6BAA6B,EAC7B7D,YAAY,GAed,GAZI6E,GACFvB,EAAkBuB,EAAMtB,GAGtBuB,GACFxB,EAAkBwB,EAAMvB,GAGtBsB,GACFH,EAAsBnB,EAAWoB,GAG/BI,GAAoB,EAAbA,EAAIplH,OAAY,CACzB,IAAIqlH,EAAU,IAAI1lH,WAAWylH,EAAIplH,OAAS,GAC1CqlH,EAAQxhG,IAAIuhG,EAAIp+G,MAChBo+G,EAAIp+G,KAAOq+G,EAGb,OAAOzB,EAAUvD,WAInB,IAAIn3D,EAAQksD,EAWR0B,EAAKwO,EATT,GAHAhlG,EAAO,IAAIiL,EAAQQ,OAAO,IAAIpsB,WAAW2gB,EAAK8K,aAG1CwsF,EAAyBt3F,GAAO,CAClC,MAAMilG,EAAU9G,EAA2Bn+F,EAAMxc,KAAKjB,MACtDqmD,EAASq8D,EAAQr8D,OACjBksD,EAASmQ,EAAQnQ,YAEjBlsD,EAAS00D,EAAmBt9F,GAC5B80F,EAASiI,EAAW/8F,EAAM4oC,EAAO8sD,WAInC,IAAIwP,GAAcpQ,EAAO,QAEzB,GAAKoQ,EAgBE,CACL,IAAKpQ,EAAOsM,KACV,MAAM,IAAIz7G,EAAMiM,YAAY,sCAGzBkjG,EAAOoL,QACV,EAAIv6G,EAAMgF,MAAM,4DAChBmqG,EAAOoL,KAAO,CACZlK,IAAK,OACLtvG,KAAM,IAAIrH,WAAW,KAIzBmE,KAAKqzG,YAAa,MA7BH,CACf,MAAMsO,EAActiB,EAAWK,aAAeL,EAAWU,aAAe,IAAI7jG,OAAS,KAAOmjG,EAAW2C,gBAAgBtS,EAAMwS,eAE7H,GAAuB,SAAnB98C,EAAO5xB,UAAuBmuF,IAAgBrQ,EAAOtoC,OAASsoC,EAAOkI,OAASlI,EAAOoI,OAASpI,EAAOqI,KAIvG,OAHA6H,EAAU,IAAI/5F,EAAQQ,OAAOqpF,EAAO,QAAQpuG,MAC5C8vG,EAAM,IAAIC,EAAQuO,EAASniB,GAC3BmR,EAAanR,GACNr/F,KAAKmzG,QAAQp0G,EAAMi0G,EAAK3T,UAG1BiS,EAAOoL,YACPpL,EAAOsM,YACPtM,EAAO8P,YACP9P,EAAO+P,YACP/P,EAAO,QACdtxG,KAAKqzG,YAAa,EAiBpB,IAAK/B,EAAOoI,KACV,MAAM,IAAIv3G,EAAMiM,YAAY,sCAG9BoO,EAAKoD,KAAOpD,EAAKrf,OAAS,GAAKm0G,EAAOoI,KAAK1rF,OAC3C,IAAIwF,EAAUhX,EAAKgxB,WACnB,MAAMynE,EAAYz4F,EAAKwrB,YACvB,IAAIk2E,EAAejJ,EAAY,EAC3B8G,GAAgB,EAEhBmC,EAAe,QACjBnC,GAAgB,EAChBmC,EAAejJ,GACf,EAAI9yG,EAAMgF,MAAM,wDAGlB,IAAI+5G,EAAkB,EAClBpD,GAAwB,EAE5B,GAAItqF,GAAW,OAAc89E,EAAOoI,KAAKx9G,QAAU,GAAI,CACrDsgB,EAAKoD,KAAO,EACZ,IAAIgiG,GAAWplG,EAAKwrB,YAEhB45E,GAAW,IACbtQ,EAAOoI,KAAKx2G,KAAK,IAAM,EACvBouG,EAAOoI,KAAKx2G,KAAK,IAAM,GAGzBsZ,EAAKoD,KAAO,EACZshG,EAAkB1kG,EAAKwrB,YACvBxrB,EAAKoD,KAAO,EACZk+F,GAAwBthG,EAAKwrB,YAG/BspE,EAAOoI,KAAKx2G,KAAK,GAAKg7G,GAAgB,EACtC5M,EAAOoI,KAAKx2G,KAAK,GAAoB,IAAfg7G,EACtB,IAAI3B,GAAa4E,EAAmB7P,EAAO8P,KAAM9P,EAAO+P,KAAM/P,EAAO,QAAS4P,GAU9E,GARK3E,YACIjL,EAAO8P,YACP9P,EAAO+P,YACP/P,EAAO,SAGhBwK,EAAgBt/F,EAAM80F,EAAOkI,KAAMlI,EAAOmI,KAAMyE,EAAcnC,IAEzDzK,EAAOtoC,KACV,MAAM,IAAI7mE,EAAMiM,YAAY,sCAG9BmvG,EAAajM,EAAOtoC,KAAMisC,EAAWyM,EAAapQ,EAAOsM,KAAK1hH,OAAS,GACvE,IAAIuiH,GAAgB99G,OAAOY,OAAO,MAElC,GAAImgH,EAAY,CACd,IAAI7D,GAAuBtK,EAAMjC,EAAOtoC,KAAK9lE,KAAK,IAAKouG,EAAOtoC,KAAK9lE,KAAK,KACpE2+G,GAAalE,EAAuBrM,EAAOsM,KAAMtM,EAAOoL,KAAMzH,EAAW4I,GAAsBtB,GAAYR,EAAe+B,IAC9HW,GAAgBoD,GAAWpD,cAEvBjrF,GAAW,OAAc89E,EAAOoI,KAAKx9G,QAAU,KACjDo1G,EAAOoI,KAAKx2G,KAAK,IAAM2+G,GAAW/D,uBAAyB,EAC3DxM,EAAOoI,KAAKx2G,KAAK,IAAyC,IAAnC2+G,GAAW/D,uBAItC,IAAKxM,EAAOkI,KACV,MAAM,IAAIr3G,EAAMiM,YAAY,sCAGD,IAAzBkjG,EAAOkI,KAAKt2G,KAAK,KAAsC,IAAzBouG,EAAOkI,KAAKt2G,KAAK,MACjDouG,EAAOkI,KAAKt2G,KAAK,IAAM,IACvBouG,EAAOkI,KAAKt2G,KAAK,IAAM,KAGzB,IAAI4+G,GAAkB,CACpBrL,WAAYlD,EAAMjC,EAAOtoC,KAAK9lE,KAAK,IAAKouG,EAAOtoC,KAAK9lE,KAAK,KACzDwzG,KAAMnD,EAAMjC,EAAOtoC,KAAK9lE,KAAK,IAAKouG,EAAOtoC,KAAK9lE,KAAK,KACnDyzG,KAAMlD,EAAYnC,EAAOtoC,KAAK9lE,KAAK,IAAKouG,EAAOtoC,KAAK9lE,KAAK,KACzDy4F,OAAQ4X,EAAMjC,EAAOkI,KAAKt2G,KAAK,GAAIouG,EAAOkI,KAAKt2G,KAAK,IACpD04F,QAAS6X,EAAYnC,EAAOkI,KAAKt2G,KAAK,GAAIouG,EAAOkI,KAAKt2G,KAAK,KAE7DlD,KAAK27F,OAASmmB,GAAgBnmB,OAASmmB,GAAgBrL,WACvDz2G,KAAK47F,QAAUkmB,GAAgBlmB,QAAUkmB,GAAgBrL,WAErDnF,EAAOqI,MACTiF,EAAoBtN,EAAOqI,KAAMta,EAAY4V,GAG/C3D,EAAOqI,KAAO,CACZnH,IAAK,OACLtvG,KAAMs0G,EAAgBnY,IAExB,MAAMiV,GAAoB,GAE1B,SAASC,GAASO,GAChB,OAAQ2J,GAAc3J,GAGxB,GAAIzV,EAAWK,UAAW,CACxB,IAAIK,GAAcV,EAAWU,aAAe,GACxCgiB,GAA4C,IAAvBhiB,GAAY7jG,OACrCmjG,EAAW2C,KAAK31F,SAAQ,SAAU02F,EAAUR,GAC1C,GAAIA,EAAM,MACR,MAAM,IAAIpgG,EAAMiM,YAAY,6BAG9B,IAAI0mG,GAAW,EAEXiN,GACFjN,EAAUvS,OACoBrjF,IAArB6gF,GAAYwC,KACrBuS,EAAU/U,GAAYwC,IAGpBuS,GAAW,GAAKA,EAAUG,GAAaV,GAASO,KAClDR,GAAkBvR,GAAY+R,UAG7B,CACL,IAAIkN,GAAYhH,EAAc1J,EAAOzO,KAAMrmF,EAAMxc,KAAKqgG,eAAgBhB,EAAW0B,aAC7EkhB,GAAiBD,GAAU/G,WAC3BiH,GAAiBF,GAAU9G,WAC3BiH,GAAeH,GAAU7G,SACzBiH,GAAqBD,GAAajmH,OAEtC,GAAImjG,EAAW0B,cAAmC,IAAnBkhB,IAA2C,IAAnBC,IAA2C,IAAnBD,IAA2C,IAAnBC,MAA6C,IAApBD,KAA6C,IAApBC,KAA2B,EAAItyB,EAAWwQ,aAAaf,EAAWY,kBAAmB,CAC5O,IAAI0B,GAAe,GAEiB,qBAAhCtC,EAAWY,kBAA2E,oBAAhCZ,EAAWY,mBACnE0B,IAAe,EAAI/R,EAAWwQ,aAAaf,EAAWY,mBAGxD,IAAIqB,IAAmB,EAAIrR,EAAWsR,oBAEtC,IAAK,IAAIwB,EAAW,EAAGA,EAAW,IAAKA,IAAY,CACjD,IAAI1B,GAAWghB,GAUf,GAPEhhB,GADErhG,KAAKggG,aAAe+C,KAAY/iG,KAAKggG,YAC3BhgG,KAAKggG,YAAY+C,GACpBA,KAAYpB,IAA2C,KAA3BA,GAAaoB,GACtCpB,GAAaoB,GAEbnT,EAAW8Q,iBAAiBqC,GAGrC1B,GAAL,CAKA,IAAIihB,GADJD,GAAoBzR,EAAiBvP,GAAWC,IAGzB,IAAnB2gB,IAA2C,IAAnBC,GAC1BI,GAAoBhhB,GAAiB+gB,IACT,IAAnBJ,IAA2C,IAAnBC,KACjCI,GAAoB1yB,EAAWgR,iBAAiBpkG,QAAQ6lH,KAG1D,IAAIhuF,IAAQ,EAEZ,IAAK,IAAIr4B,EAAI,EAAGA,EAAIomH,KAAsBpmH,EACxC,GAAImmH,GAAanmH,GAAG+mG,WAAauf,GAAjC,CAIAhO,GAAkBvR,GAAYof,GAAanmH,GAAG84G,QAC9CzgF,IAAQ,EACR,MAGF,IAAKA,IAASgrE,EAAW0f,WAAY,CACnC,IAAIjK,GAAUzV,EAAW0f,WAAWviH,QAAQ6kG,KAE3B,IAAbyT,IAAkBuN,KAAsBhhB,KAC1CyT,GAAUzV,EAAW0f,WAAWviH,QAAQ6lH,KAGtCvN,GAAU,GAAKP,GAASO,MAC1BR,GAAkBvR,GAAY+R,YAI/B,GAAuB,IAAnBmN,IAA2C,IAAnBC,GACjC,IAAK,IAAIlmH,EAAI,EAAGA,EAAIomH,KAAsBpmH,EACxCs4G,GAAkB6N,GAAanmH,GAAG+mG,UAAYof,GAAanmH,GAAG84G,aAGhE,IAAK,IAAI94G,EAAI,EAAGA,EAAIomH,KAAsBpmH,EAAG,CAC3C,IAAI+mG,EAAWof,GAAanmH,GAAG+mG,SAER,IAAnBkf,IAAwBlf,GAAY,OAAUA,GAAY,QAC5DA,GAAY,KAGduR,GAAkBvR,GAAYof,GAAanmH,GAAG84G,SAKnB,IAA7BR,GAAkBp4G,SACpBo4G,GAAkB,GAAK,GAGzB,IAAIiO,GAAcrE,EAAe,EAE5BnC,IACHwG,GAAc,GAGhB,IAAIC,GAAanO,EAAcC,GAAmBC,GAAUgO,IAc5D,GAbAviH,KAAK2yG,WAAa6P,GAAW7P,WAC7BrB,EAAOzO,KAAO,CACZ2P,IAAK,OACLtvG,KAAMiyG,EAAgBqN,GAAWlO,kBAAmB4J,IAGjD5M,EAAO,SAAY4E,EAAiB5E,EAAO,QAAS90F,KACvD80F,EAAO,QAAU,CACfkB,IAAK,OACLtvG,KAAMozG,EAAejX,EAAYmjB,GAAWlO,kBAAmBwN,OAI9DJ,EACH,IACEF,EAAU,IAAI/5F,EAAQQ,OAAOqpF,EAAO,QAAQpuG,MAC5C,IAAIo9B,GAAS,IAAIqvE,EAAY8S,UAAUjB,EAASniB,EAAYqQ,GAC5DsD,EAAM1yE,GAAOzL,QACbm+E,EAAI0P,sBACJ,IAAIC,GAAW,IAAIhT,EAAYiT,YAAY5P,GAC3C1B,EAAO,QAAQpuG,KAAOy/G,GAASE,UAC/B,MAAOj7G,KACP,EAAIzF,EAAMgF,MAAM,0BAA4Bk4F,EAAWjiE,YAI3D,GAAKk0E,EAAOvyG,KAKL,CACL,IAAI+jH,GAAgBhI,EAAcxJ,EAAOvyG,MACzCuyG,EAAOvyG,KAAKmE,KAAOw0G,EAAgB34G,EAAM+jH,SANzCxR,EAAOvyG,KAAO,CACZyzG,IAAK,OACLtvG,KAAMw0G,EAAgB13G,KAAKjB,OAO/B,IAAIgkH,GAAU,IAAI9R,EAAoB7rD,EAAO5xB,SAE7C,IAAK,IAAIwvF,MAAY1R,EACnByR,GAAQxQ,SAASyQ,GAAU1R,EAAO0R,IAAU9/G,MAG9C,OAAO6/G,GAAQhR,WAEjBoB,QAAS,SAAsB7d,EAAU94E,EAAM6iF,GAC7CA,EAAW2G,YAAa,EAEpB3G,EAAWqR,iBACbD,EAAgBpR,EAAYA,EAAWqR,iBAGzC,IAAI6R,EAAc,EAEd/lG,aAAgBy2F,IAClBsP,EAAc/lG,EAAKy4F,UAAY,GAGjC,IAAIgO,EAAUzmG,EAAK0mG,gBAAgB7jB,GAC/BmjB,EAAanO,EAAc4O,EAASzmG,EAAK2mG,WAAW1hH,KAAK+a,GAAO+lG,GACpEviH,KAAK2yG,WAAa6P,EAAW7P,WAC7B,IAAIsC,EAAYz4F,EAAKy4F,UAErB,SAASmO,EAAa9O,EAAmBQ,GACvC,IAAIuO,EAAY,KAEhB,IAAK,IAAItgB,KAAYuR,EACfQ,IAAYR,EAAkBvR,KAC3BsgB,IACHA,EAAY,IAGdA,EAAU/lH,KAAgB,EAAXylG,IAInB,OAAOsgB,EAGT,SAASC,EAAehP,EAAmBQ,GACzC,IAAK,IAAI/R,KAAYuR,EACnB,GAAIQ,IAAYR,EAAkBvR,GAChC,OAAkB,EAAXA,EAKX,OADAyf,EAAWlO,kBAAkBkO,EAAW7N,2BAA6BG,EAC9D0N,EAAW7N,4BAGpB,IAAI4O,EAAQ/mG,EAAK+mG,MAEjB,GAAI7T,GAAyB6T,GAASA,EAAMrnH,OAAQ,CAClD,IAAI2+E,EAASwkB,EAAWrD,YAAc75F,EAAMoN,qBACxCi0G,EAAUhnG,EAAKinG,aACfnQ,EAAU3yG,OAAOY,OAAO,MAE5B,IAAK,IAAIuzG,KAAWyO,EAAO,CACzBzO,GAAW,EACX,IAAI4O,EAAOH,EAAMzO,GACb6O,EAAgB/zB,EAAW8Q,iBAAiBgjB,EAAK,IACjDE,EAAkBh0B,EAAW8Q,iBAAiBgjB,EAAK,IACnDG,EAAcL,EAAQhnH,QAAQmnH,GAC9BG,EAAgBN,EAAQhnH,QAAQonH,GAEpC,KAAIC,EAAc,GAAKC,EAAgB,GAAvC,CAIA,IAAIC,EAAe,CACjBh2F,EAAG21F,EAAK,GAAK7oC,EAAO,GAAK6oC,EAAK,GAAK7oC,EAAO,GAAKA,EAAO,GACtDphC,EAAGiqE,EAAK,GAAK7oC,EAAO,GAAK6oC,EAAK,GAAK7oC,EAAO,GAAKA,EAAO,IAEpDwoC,EAAYD,EAAaH,EAASnO,GAEtC,GAAKuO,EAIL,IAAK,IAAIrnH,EAAI,EAAGsnB,EAAK+/F,EAAUnnH,OAAQF,EAAIsnB,EAAItnB,IAAK,CAClD,IAAI+mG,EAAWsgB,EAAUrnH,GACrBs4G,EAAoBkO,EAAWlO,kBAC/B0P,EAAmBV,EAAehP,EAAmBuP,GACrDI,EAAqBX,EAAehP,EAAmBwP,GAC3DxQ,EAAQvQ,GAAY,CAClBihB,mBACAC,qBACAF,kBAKN1kB,EAAWiU,QAAUA,EAGvB,IAAImD,EAAa,GAAKpX,EAAWrD,YAAc75F,EAAMoN,sBAAsB,GACvEwzG,EAAU,IAAI9R,EAAoB,QA6BtC,OA5BA8R,EAAQxQ,SAAS,OAAQ/1F,EAAKtZ,MAC9B6/G,EAAQxQ,SAAS,OAAQ+D,EAAejX,EAAYmjB,EAAWlO,oBAC/DyO,EAAQxQ,SAAS,OAAQ4C,EAAgBqN,EAAWlO,kBAAmBW,IACvE8N,EAAQxQ,SAAS,OAAQ,iCAAiGqB,EAAa6C,GAA9G,iCAAmN7C,EAAavU,EAAWzD,SAAW,KAAagY,EAAavU,EAAW1D,QAAUgY,EAAStU,EAAW8G,YAAc,EAAI,GAA3U,mBACzB4c,EAAQxQ,SAAS,OAAQ,UAAqBqB,EAAavU,EAAW1D,QAAUiY,EAAavU,EAAWzD,SAA/E,qBAA2JgY,EAAavU,EAAW6G,WAAa0N,EAAansG,KAAKy8G,IAAI7kB,EAAW8G,aAAe9G,EAAW4G,SAA3P,2BAAoV0N,EAASsB,IACtX8N,EAAQxQ,SAAS,OAAQ,WACvB,IAAIgE,EAAc/5F,EAAK+5F,YACnB4N,EAAY3nG,EAAKw2F,IAAMx2F,EAAKw2F,IAAI5P,OAAS,KACzCqW,EAAO,WAEX,IAAK,IAAIz9G,EAAI,EAAGsnB,EAAK2xF,EAAWj5G,EAAIsnB,EAAItnB,IAAK,CAC3C,IAAIg+C,EAAQ,EAEZ,GAAIu8D,EAAa,CACf,IAAI6N,EAAa7N,EAAYv6G,EAAI,GACjCg+C,EAAQ,UAAWoqE,EAAaA,EAAWpqE,MAAQ,OAC1CmqE,IACTnqE,EAAQvyC,KAAK0hB,KAAKg7F,EAAUnoH,IAAM,IAGpCy9G,GAAQ9F,EAAS35D,GAAS25D,EAAS,GAGrC,OAAO8F,EAlBgB,IAoBzBsJ,EAAQxQ,SAAS,OAAQ,UAAqBoB,EAASsB,IACvD8N,EAAQxQ,SAAS,OAAQmF,EAAgBpiB,IACzCytB,EAAQxQ,SAAS,OAAQiF,EAAgBnY,IAClC0jB,EAAQhR,WAGjB,iBAIE,IAHA,IACI/3D,EADAqqE,EAA4B,CAAC,QAAS,QAAS,MAAO,IAAK,KAGtDroH,EAAI,EAAGsnB,EAAK+gG,EAA0BnoH,OAAQF,EAAIsnB,EAAItnB,IAAK,CAClE,IAAIqlG,EAAYgjB,EAA0BroH,GAE1C,GAAIqlG,KAAarhG,KAAKojG,OAAQ,CAC5BppD,EAAQh6C,KAAKojG,OAAO/B,GACpB,MAGF,IAAIC,GAAmB,EAAIrR,EAAWsR,oBAClCrE,EAAeoE,EAAiBD,GAChCD,EAAW,EAgBf,GAdIphG,KAAK0/F,WAAa1/F,KAAKgiG,KAAKsN,SAASpS,KACvCkE,EAAWphG,KAAKgiG,KAAKtmG,OAAOwhG,KAGzBkE,GAAYphG,KAAKu/F,YACpB6B,EAAWphG,KAAKu/F,UAAU+kB,WAAWpnB,IAGnCkE,GAAY,IACdA,EAAWlE,GAGbljD,EAAQh6C,KAAKojG,OAAOhC,GAEhBpnD,EACF,MAKJ,OADAA,EAAQA,GAASh6C,KAAKsjG,cACf,EAAInhG,EAAMuL,QAAQ1N,KAAM,aAAcg6C,IAG/CuqE,YAAa,SAA0BnjB,EAAU5D,GAC/C,IAAIuX,EAAc/6D,EAAO82D,EACrB0T,EAAYpjB,EAEZphG,KAAKgiG,MAAQhiG,KAAKgiG,KAAKsN,SAASlO,KAClCojB,EAAYxkH,KAAKgiG,KAAKtmG,OAAO0lG,IAG/BpnD,EAAQh6C,KAAKojG,OAAOohB,GACpBxqE,GAAQ,EAAI73C,EAAMkL,OAAO2sC,GAASA,EAAQh6C,KAAKsjG,aAC/C,IAAIrG,EAAUj9F,KAAKwjG,UAAYxjG,KAAKwjG,SAASghB,GAC7C,IAAIrnB,EAAUn9F,KAAKu/F,UAAUz+F,IAAIsgG,IAAaphG,KAAK+hG,kBAAkBjhG,IAAIsgG,IAAaA,EAE/D,kBAAZjE,IACTA,EAAU/9E,OAAOC,aAAa89E,IAGhC,IAAI4T,EAAY3P,KAAYphG,KAAK2yG,WAGjC,GAFAoC,EAAe/0G,KAAK2yG,WAAWvR,IAAaA,EAExCphG,KAAKyyG,YAAa,CACpB,MAAMpR,EAAYrhG,KAAKggG,YAAYoB,IAAaphG,KAAKmgG,gBAAgBiB,GAElD,YAAdC,GAAyC,KAAdA,GAAmC,UAAdrhG,KAAKqjB,OACxD0xF,EAAe,IAGjBA,GAAe,EAAIllB,EAAS40B,yBAAyB1P,GAGnD/0G,KAAKw1F,cACPsb,EAAiBiE,GAGnB,IAAItO,EAAS,KAEb,GAAIzmG,KAAKszG,SAAWtzG,KAAKszG,QAAQlS,GAAW,CAC1C2P,GAAW,EACX,IAAI2S,EAAO1jH,KAAKszG,QAAQlS,GACxB2T,EAAe2O,EAAKM,iBACpBvd,EAAS,CACPJ,SAAUjnF,OAAOwiF,cAAc8hB,EAAKO,oBACpCj2F,OAAQ01F,EAAKK,cAIjB,IAAI1d,EAAW,GAEa,kBAAjB0O,IACLA,GAAgB,QAClB1O,EAAWjnF,OAAOwiF,cAAcmT,IAEhC,EAAI5yG,EAAMgF,MAAM,uCAAuC4tG,IAI3D,IAAIhY,EAAQ/8F,KAAK0yG,WAAWtR,GAO5B,OALKrE,GAAUA,EAAMiU,gBAAgB3K,EAAUlJ,EAASsJ,EAAQzsD,EAAOijD,EAAS6T,EAAgBtT,EAASuT,KACvGhU,EAAQ,IAAI8T,EAAMxK,EAAUlJ,EAASsJ,EAAQzsD,EAAOijD,EAAS6T,EAAgBtT,EAASuT,GACtF/wG,KAAK0yG,WAAWtR,GAAYrE,GAGvBA,GAEThH,cAAe,SAA4BF,GACzC,IACIC,EAAQiH,EAAOqE,EADfsjB,EAAa1kH,KAAK0kH,WAGtB,GAAIA,IACF5uB,EAAS4uB,EAAW7uB,GAEhBC,GACF,OAAOA,EAIN4uB,IACHA,EAAa1kH,KAAK0kH,WAAa/jH,OAAOY,OAAO,OAG/Cu0F,EAAS,GACT,IAEIxyE,EAFAqhG,EAAgB9uB,EAChB75F,EAAI,EAGR,GAAIgE,KAAKgiG,KAAM,CACb,IAAIzhG,EAAII,OAAOY,OAAO,MAEtB,MAAOvF,EAAI65F,EAAM35F,OAAQ,CACvB8D,KAAKgiG,KAAK4iB,aAAa/uB,EAAO75F,EAAGuE,GACjC6gG,EAAW7gG,EAAE6gG,SACb,IAAIllG,EAASqE,EAAErE,OACfF,GAAKE,EACL,IAAIshG,EAAqB,IAAXthG,GAA4C,KAA5B25F,EAAM15F,WAAWH,EAAI,GACnD+gG,EAAQ/8F,KAAKukH,YAAYnjB,EAAU5D,GACnC1H,EAAOx4F,KAAKy/F,SAGd,IAAK/gG,EAAI,EAAGsnB,EAAKuyE,EAAM35F,OAAQF,EAAIsnB,IAAMtnB,EACvColG,EAAWvL,EAAM15F,WAAWH,GAC5B+gG,EAAQ/8F,KAAKukH,YAAYnjB,EAAuB,KAAbA,GACnCtL,EAAOx4F,KAAKy/F,GAIhB,OAAO2nB,EAAWC,GAAiB7uB,GAGrC,uBACE,OAAOn1F,OAAO4sB,OAAOvtB,KAAK0yG,cAIvBvb,EA5yEE,GA+yEX77F,EAAQ67F,KAAOA,EAEf,IAAIxB,EAAY,WACd,SAASA,EAAUlqF,GACjBzL,KAAKyL,MAAQA,EACbzL,KAAKo9B,WAAa,eAClBp9B,KAAKyyG,aAAc,EAerB,OAZA9c,EAAU53F,UAAY,CACpBg4F,cAAe,WACb,MAAO,IAGT,WAAWH,GAAkB,GAC3B,MAAO,CACLnqF,MAAOzL,KAAKyL,SAKXkqF,EAnBO,GAwBhB,SAASkvB,EAAsBxlB,EAAYqR,EAAiBqO,GAC1D,IACIjK,EAAS/R,EAAUpB,EADnB2S,EAAoB3zG,OAAOY,OAAO,MAElC8+F,KAAoBhB,EAAW7mE,MAAQ8nE,EAAUC,UAErD,GAAIlB,EAAWY,iBAGb,IAFA0B,GAAe,EAAI/R,EAAWwQ,aAAaf,EAAWY,kBAEjD8C,EAAW,EAAGA,EAAWpB,EAAazlG,OAAQ6mG,IACjD+R,EAAUiK,EAAWviH,QAAQmlG,EAAaoB,IAGxCuR,EAAkBvR,GADhB+R,GAAW,EACiBA,EAEA,OAG7B,GAAIzU,EACT,IAAK0C,KAAY2N,EACf4D,EAAkBvR,GAAY2N,EAAgB3N,QAKhD,IAFApB,EAAe/R,EAAW8Q,iBAErBqC,EAAW,EAAGA,EAAWpB,EAAazlG,OAAQ6mG,IACjD+R,EAAUiK,EAAWviH,QAAQmlG,EAAaoB,IAGxCuR,EAAkBvR,GADhB+R,GAAW,EACiBA,EAEA,EAKpC,IACIxT,EADAtB,EAAcX,EAAWW,YAG7B,GAAIA,EACF,IAAK+C,KAAY/C,EAAa,CAC5B,IAAIqB,EAAYrB,EAAY+C,GAG5B,GAFA+R,EAAUiK,EAAWviH,QAAQ6kG,IAEZ,IAAbyT,EAAgB,CACbxT,IACHA,GAAmB,EAAIrR,EAAWsR,qBAGpC,IAAI8gB,EAAoBzR,EAAiBvP,EAAWC,GAEhD+gB,IAAsBhhB,IACxByT,EAAUiK,EAAWviH,QAAQ6lH,IAK/B/N,EAAkBvR,GADhB+R,GAAW,EACiBA,EAEA,EAKpC,OAAOR,EAjETh5G,EAAQq6F,UAAYA,EAoEpB,IAAIud,EAAY,WACd,SAAS4R,EAAUC,EAAapyF,EAAWqyF,GACzC,IAII7xF,EAJA8xF,EAAoBF,EAAY7oH,OAChC42B,EAAkBH,EAAUz2B,OAC5B+2B,EAAagyF,EAAoBnyF,EACjC92B,EAAIgpH,EAEJ3wF,GAAQ,EAEZ,MAAOr4B,EAAIi3B,EAAY,CACrBE,EAAI,EAEJ,MAAOA,EAAIL,GAAmBiyF,EAAY/oH,EAAIm3B,KAAOR,EAAUQ,GAC7DA,IAGF,GAAIA,GAAKL,EAAiB,CACxB92B,GAAKm3B,EAEL,MAAOn3B,EAAIipH,IAAqB,EAAIxiH,EAAYwqB,cAAc83F,EAAY/oH,IACxEA,IAGFq4B,GAAQ,EACR,MAGFr4B,IAGF,MAAO,CACLq4B,QACAn4B,OAAQF,GAIZ,SAASkpH,EAAe37G,EAAQ47G,GAC9B,IAEIC,EAAaC,EAAmBx0E,EAFhCy0E,EAAkB,CAAC,IAAM,IAAM,IAAM,IAAM,IAC3CC,EAAiBh8G,EAAOqW,IAG5B,IACEwlG,EAAc77G,EAAO+d,SAAS69F,GAC9BE,EAAoBD,EAAYlpH,OAChC,MAAO0J,GACP,GAAIA,aAAcnD,EAAY+lB,qBAC5B,MAAM5iB,EAIV,GAAIy/G,IAAsBF,IACxBt0E,EAAQi0E,EAAUM,EAAaE,EAAiBH,EAAkB,EAAIG,EAAgBppH,QAElF20C,EAAMxc,OAASwc,EAAM30C,SAAWipH,GAClC,MAAO,CACL57G,OAAQ,IAAIke,EAAQQ,OAAOm9F,GAC3BlpH,OAAQipH,IAKd,EAAIhjH,EAAMgF,MAAM,kEAChBoC,EAAOqW,IAAM2lG,EACb,IACI97E,EADAL,EAAoB,KAGxB,MAAO,EAAM,CACX,IAAIrW,EAAYxpB,EAAOypB,UAAUoW,GAGjC,GAFAyH,EAAQi0E,EAAU/xF,EAAWuyF,EAAiB,GAEzB,IAAjBz0E,EAAM30C,OACR,MAKF,GAFAqN,EAAOqW,KAAOixB,EAAM30C,OAEhB20C,EAAMxc,MAAO,CACfoV,EAAelgC,EAAOqW,IAAM2lG,EAC5B,OAMJ,OAFAh8G,EAAOqW,IAAM2lG,EAET97E,EACK,CACLlgC,OAAQ,IAAIke,EAAQQ,OAAO1e,EAAO+d,SAASmiB,IAC3CvtC,OAAQutC,KAIZ,EAAItnC,EAAMgF,MAAM,sEACT,CACLoC,OAAQ,IAAIke,EAAQQ,OAAO1e,EAAO+d,SAAS69F,IAC3CjpH,OAAQipH,IAIZ,SAASK,EAAcj8G,EAAQ47G,GAC7B,IAAIM,EAAal8G,EAAO+d,WACxB,MAAO,CACL/d,OAAQ,IAAIke,EAAQQ,OAAOw9F,GAC3BvpH,OAAQupH,EAAWvpH,QAIvB,SAASg3G,EAAUn0G,EAAM4rF,EAAM0U,GAC7B,IAAIqmB,EAAkB,EAClBC,EAAoBtmB,EAAWwG,QAC/B+f,EAAmBvmB,EAAWyG,QAC9B+f,EAAYl7B,EAAK33D,UAAU0yF,GAC3BI,EAAoC,MAAjBD,EAAU,IAAgC,IAAjBA,EAAU,GAEtDC,IACFn7B,EAAKr2D,KAAKoxF,GACVC,EAAoBE,EAAU,IAAM,GAAKA,EAAU,IAAM,GAAKA,EAAU,IAAM,EAAIA,EAAU,IAG9F,IAAIE,EAAcb,EAAev6B,EAAMg7B,GACnCK,EAAoB,IAAInW,EAAcoW,YAAYF,EAAYx8G,QAAQ,EAAOmmG,GACjFsW,EAAkBE,kBAAkB7mB,GAEhCymB,IACFD,EAAYl7B,EAAKrjE,SAASo+F,GAC1BE,EAAmBC,EAAU,IAAM,GAAKA,EAAU,IAAM,GAAKA,EAAU,IAAM,EAAIA,EAAU,IAG7F,IAAIM,EAAaX,EAAc76B,EAAMi7B,GACjCQ,EAAmB,IAAIvW,EAAcoW,YAAYE,EAAW58G,QAAQ,EAAMmmG,GAC1ExsG,EAAOkjH,EAAiBC,mBAAmBhnB,GAE/C,IAAK,MAAM79F,KAAO0B,EAAKm8F,WACrBA,EAAW79F,GAAO0B,EAAKm8F,WAAW79F,GAGpC,IAAI+0G,EAAcrzG,EAAKqzG,YACnB+P,EAAmBtmH,KAAKumH,oBAAoBhQ,GAC5CiQ,EAAQxmH,KAAKymH,cAAcvjH,EAAKsjH,OACpCxmH,KAAKu2G,YAAcA,EACnBv2G,KAAKkD,KAAOlD,KAAK0mH,KAAK3nH,EAAMunH,EAAkBtmH,KAAKu2G,YAAaiQ,EAAOnnB,GACvEr/F,KAAKujH,MAAQvjH,KAAK2mH,SAASzjH,EAAKqzG,aAuMlC,OApMArD,EAAUn1G,UAAY,CACpB,gBACE,OAAOiC,KAAKu2G,YAAYr6G,OAAS,GAGnCunH,WAAY,WAIV,IAHA,IAAID,EAAU,CAAC,WACXjN,EAAcv2G,KAAKu2G,YAEdzB,EAAU,EAAGA,EAAUyB,EAAYr6G,OAAQ44G,IAClD0O,EAAQlmH,KAAKi5G,EAAYzB,GAASzT,WAGpC,OAAOmiB,GAETN,gBAAiB,SAAmC7jB,GAClD,IAAIkX,EAAcv2G,KAAKu2G,YAEvB,GAAIlX,EAAWK,UAAW,CACxB,MAAM4U,EAAoB3zG,OAAOY,OAAO,MAExC,IAAK,IAAIuzG,EAAU,EAAG8R,EAAiBrQ,EAAYr6G,OAAQ44G,EAAU8R,EAAgB9R,IAAW,CAC9F,MAAM/R,EAAW1D,EAAW2C,KAAKsiB,WAAWxP,GAC5CR,EAAkBvR,GAAY+R,EAAU,EAG1C,OAAOR,EAGT,IACIQ,EADAiK,EAAa,CAAC,WAGlB,IAAKjK,EAAU,EAAGA,EAAUyB,EAAYr6G,OAAQ44G,IAC9CiK,EAAWzhH,KAAKi5G,EAAYzB,GAASzT,WAGvC,IAAIlrD,EAAWkpD,EAAWqR,gBAE1B,GAAIv6D,EAAU,CACZ,IAAIu6D,EAAkB/vG,OAAOY,OAAO,MAEpC,IAAK,IAAIwhG,KAAY5sD,EACnB2+D,EAAUiK,EAAWviH,QAAQ25C,EAAS4sD,IAElC+R,GAAW,IACbpE,EAAgB3N,GAAY+R,GAKlC,OAAO+P,EAAsBxlB,EAAYqR,EAAiBqO,IAE5DoE,WAAY,SAA8B54G,GACxC,GAAIA,EAAK,GAAKA,GAAMvK,KAAKi1G,UACvB,OAAO,EAGT,GAAW,IAAP1qG,EACF,OAAO,EAGT,IAAIwyF,EAAQ/8F,KAAKu2G,YAAYhsG,EAAK,GAClC,OAAOwyF,EAAMqnB,WAAWloH,OAAS,GAEnCyqH,SAAU,SAA4BpQ,GACpC,IAAIv6G,EAAGsnB,EACHgwF,EAAU,GAEd,IAAKt3G,EAAI,EAAGsnB,EAAKizF,EAAYr6G,OAAQF,EAAIsnB,EAAItnB,IAAK,CAChD,IAAIooH,EAAa7N,EAAYv6G,GAEzBooH,EAAWV,OACbpQ,EAAQt3G,EAAI,GAAKooH,EAAWV,MAIhC,OAAOpQ,GAETiT,oBAAqB,SAAuCM,GAG1D,IAFA,IAAIP,EAAmB,GAEdtqH,EAAI,EAAGsnB,EAAKujG,EAAiB3qH,OAAQF,EAAIsnB,EAAItnB,IACpDsqH,EAAiBhpH,KAAKupH,EAAiB7qH,GAAGooH,YAG5C,OAAOkC,GAETG,cAAe,SAAiCK,GAC9C,IAAIlR,EAAO,EACPl9E,EAAQouF,EAAW5qH,OAGrB05G,EADEl9E,EAAQ,KACH,IACEA,EAAQ,MACV,KAEA,MAGT,IACI18B,EADA+qH,EAAa,GAGjB,IAAK/qH,EAAI,EAAGA,EAAI45G,EAAM55G,IACpB+qH,EAAWzpH,KAAK,CAAC,KAGnB,IAAKtB,EAAI,EAAGA,EAAI08B,EAAO18B,IACrB+qH,EAAWzpH,KAAKwpH,EAAW9qH,IAG7B,OAAO+qH,GAETL,KAAM,SAAwB3nH,EAAM+2F,EAAQygB,EAAaiQ,EAAOnnB,GAC9D,IAAI2T,EAAM,IAAIrD,EAAYqX,IAC1BhU,EAAI5tD,OAAS,IAAIuqD,EAAYsX,UAAU,EAAG,EAAG,EAAG,GAChDjU,EAAIr5E,MAAQ,CAAC56B,GACb,IAAIklC,EAAU,IAAI0rE,EAAYuX,WAC9BjjF,EAAQkjF,UAAU,UAAW,KAC7BljF,EAAQkjF,UAAU,SAAU,KAC5BljF,EAAQkjF,UAAU,WAAY,KAC9BljF,EAAQkjF,UAAU,aAAc,KAChCljF,EAAQkjF,UAAU,SAAU,KAC5BljF,EAAQkjF,UAAU,WAAY,MAC9BljF,EAAQkjF,UAAU,aAAc9nB,EAAWrD,YAC3C/3D,EAAQkjF,UAAU,WAAY9nB,EAAWxa,MACzC5gD,EAAQkjF,UAAU,UAAW,MAC7BljF,EAAQkjF,UAAU,cAAe,MACjCljF,EAAQkjF,UAAU,UAAW,MAC7BnU,EAAI/uE,QAAUA,EACd,IAAI2zE,EAAU,IAAIjI,EAAYyX,WAC9BxP,EAAQpmC,IAAI,gBACZomC,EAAQpmC,IAAI,uBACZomC,EAAQpmC,IAAIzyE,GACZ64G,EAAQpmC,IAAIzyE,GACZ64G,EAAQpmC,IAAI,UACZwhC,EAAI4E,QAAUA,EACd5E,EAAIqU,gBAAkB,IAAI1X,EAAY2X,SACtC,IAEItrH,EAAGsnB,EAFHoV,EAAQo9D,EAAO55F,OACfqrH,EAAe,CAAC,WAGpB,IAAKvrH,EAAI,EAAGA,EAAI08B,EAAO18B,IAAK,CAC1B,MAAMqlG,EAAYkV,EAAYv6G,GAAGqlG,UAE3Bx+E,EAAQ8sF,EAAY6X,mBAAmBhrH,QAAQ6kG,IAEtC,IAAXx+E,GACF+0F,EAAQpmC,IAAI6vB,GAGdkmB,EAAajqH,KAAK+jG,GAGpB2R,EAAIwQ,QAAU,IAAI7T,EAAY8X,YAAW,EAAO,EAAGF,GACnD,IAAIG,EAAmB,IAAI/X,EAAY2X,SAGvC,IAFAI,EAAiBl2C,IAAI,CAAC,IAAM,KAEvBx1E,EAAI,EAAGA,EAAI08B,EAAO18B,IACrB0rH,EAAiBl2C,IAAIskB,EAAO95F,IAG9Bg3G,EAAI2U,YAAcD,EAClB,IAAIE,EAAc,IAAIjY,EAAYkY,eAClCD,EAAYT,UAAU,QAAS,MAC/B,IAAItzF,EAAS,CAAC,aAAc,aAAc,cAAe,mBAAoB,YAAa,YAAa,YAAa,WAAY,YAAa,gBAAiB,kBAAmB,YAAa,QAAS,SAEvM,IAAK73B,EAAI,EAAGsnB,EAAKuQ,EAAO33B,OAAQF,EAAIsnB,EAAItnB,IAAK,CAC3C,IAAI8rH,EAAQj0F,EAAO73B,GAEnB,GAAM8rH,KAASzoB,EAAW0oB,YAA1B,CAIA,IAAI7mH,EAAQm+F,EAAW0oB,YAAYD,GAEnC,GAAIhsH,MAAMmqB,QAAQ/kB,GAChB,IAAK,IAAIiyB,EAAIjyB,EAAMhF,OAAS,EAAGi3B,EAAI,EAAGA,IACpCjyB,EAAMiyB,IAAMjyB,EAAMiyB,EAAI,GAI1By0F,EAAYT,UAAUW,EAAO5mH,IAG/B8xG,EAAI/uE,QAAQ2jF,YAAcA,EAC1B,IAAII,EAAY,IAAIrY,EAAY2X,SAEhC,IAAKtrH,EAAI,EAAGsnB,EAAKkjG,EAAMtqH,OAAQF,EAAIsnB,EAAItnB,IACrCgsH,EAAUx2C,IAAIg1C,EAAMxqH,IAGtB4rH,EAAYK,WAAaD,EACzB,IAAIrF,EAAW,IAAIhT,EAAYiT,YAAY5P,GAC3C,OAAO2P,EAASE,YAGb3P,EAnVO,GAsVZD,EAAU,WACZ,SAASA,EAAQtoB,EAAM0U,GACrBr/F,KAAKq/F,WAAaA,EAClB,IAAI/+D,EAAS,IAAIqvE,EAAY8S,UAAU93B,EAAM0U,EAAYqQ,GACzD1vG,KAAKgzG,IAAM1yE,EAAOzL,QAClB70B,KAAKgzG,IAAI0P,sBACT,IAAIC,EAAW,IAAIhT,EAAYiT,YAAY5iH,KAAKgzG,KAChDhzG,KAAKujH,MAAQvjH,KAAKgzG,IAAIuQ,MAEtB,IACEvjH,KAAKkD,KAAOy/G,EAASE,UACrB,MAAOj7G,IACP,EAAIzF,EAAMgF,MAAM,0BAA4Bk4F,EAAWjiE,YACvDp9B,KAAKkD,KAAOynF,GA+ChB,OA3CAsoB,EAAQl1G,UAAY,CAClB,gBACE,OAAOiC,KAAKgzG,IAAI2U,YAAYjvF,OAG9B+qF,WAAY,WACV,OAAOzjH,KAAKgzG,IAAIwQ,QAAQA,SAE1BN,gBAAiB,WACf,IAGI5O,EACAQ,EAJA9B,EAAMhzG,KAAKgzG,IACX3T,EAAar/F,KAAKq/F,WAClB6oB,EAAWlV,EAAIwQ,QAAQA,QAI3B,GAAInkB,EAAWK,UAAW,CAExB,IAAIqD,EAEJ,GAHAuR,EAAoB3zG,OAAOY,OAAO,MAG9ByxG,EAAImV,UACN,IAAKrT,EAAU,EAAGA,EAAUoT,EAAShsH,OAAQ44G,IAAW,CACtD,IAAIvS,EAAM2lB,EAASpT,GACnB/R,EAAW1D,EAAW2C,KAAKsiB,WAAW/hB,GACtC+R,EAAkBvR,GAAY+R,OAGhC,IAAKA,EAAU,EAAGA,EAAU9B,EAAI2U,YAAYjvF,MAAOo8E,IACjD/R,EAAW1D,EAAW2C,KAAKsiB,WAAWxP,GACtCR,EAAkBvR,GAAY+R,EAIlC,OAAOR,EAGT,IAAIn+D,EAAW68D,EAAI78D,SAAW68D,EAAI78D,SAASA,SAAW,KAEtD,OADAm+D,EAAoBuQ,EAAsBxlB,EAAYlpD,EAAU+xE,GACzD5T,GAET6O,WAAY,SAA4B54G,GACtC,OAAOvK,KAAKgzG,IAAImQ,WAAW54G,KAGxB0oG,EA5DK,IAiER,SAAUlzG,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQ8sH,YAAc9sH,EAAQsnH,YAActnH,EAAQusH,eAAiBvsH,EAAQ4rH,WAAa5rH,EAAQmsH,WAAansH,EAAQgsH,SAAWhsH,EAAQ8rH,WAAa9rH,EAAQ2rH,UAAY3rH,EAAQ0rH,IAAM1rH,EAAQmnH,UAAYnnH,EAAQksH,wBAAqB,EAE1O,IAAIrlH,EAAQhC,EAAoB,GAE5BkoH,EAAYloH,EAAoB,IAEhCyvF,EAAazvF,EAAoB,IAEjCmoH,EAAmB,GACnBd,EAAqB,CAAC,UAAW,QAAS,SAAU,WAAY,aAAc,SAAU,UAAW,YAAa,aAAc,YAAa,aAAc,WAAY,OAAQ,QAAS,SAAU,SAAU,QAAS,OAAQ,MAAO,MAAO,QAAS,OAAQ,OAAQ,MAAO,QAAS,QAAS,OAAQ,QAAS,YAAa,OAAQ,QAAS,UAAW,WAAY,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,cAAe,YAAa,eAAgB,cAAe,aAAc,YAAa,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,YAAa,MAAO,aAAc,aAAc,aAAc,OAAQ,WAAY,WAAY,MAAO,SAAU,UAAW,WAAY,cAAe,eAAgB,gBAAiB,gBAAiB,iBAAkB,KAAM,KAAM,SAAU,SAAU,YAAa,iBAAkB,YAAa,SAAU,iBAAkB,eAAgB,gBAAiB,iBAAkB,WAAY,cAAe,eAAgB,QAAS,QAAS,aAAc,QAAS,SAAU,QAAS,YAAa,WAAY,OAAQ,UAAW,eAAgB,SAAU,QAAS,SAAU,KAAM,cAAe,SAAU,SAAU,KAAM,eAAgB,KAAM,WAAY,SAAU,SAAU,KAAM,aAAc,cAAe,aAAc,KAAM,YAAa,MAAO,UAAW,YAAa,QAAS,aAAc,SAAU,YAAa,SAAU,QAAS,gBAAiB,cAAe,aAAc,QAAS,MAAO,WAAY,gBAAiB,YAAa,SAAU,cAAe,YAAa,SAAU,QAAS,SAAU,WAAY,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,QAAS,SAAU,WAAY,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,YAAa,SAAU,cAAe,oBAAqB,iBAAkB,iBAAkB,iBAAkB,aAAc,oBAAqB,qBAAsB,iBAAkB,iBAAkB,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,gBAAiB,sBAAuB,iBAAkB,gBAAiB,YAAa,YAAa,eAAgB,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,KAAM,MAAO,MAAO,oBAAqB,qBAAsB,kBAAmB,iBAAkB,aAAc,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,gBAAiB,YAAa,SAAU,aAAc,kBAAmB,eAAgB,cAAe,cAAe,cAAe,gBAAiB,aAAc,aAAc,iBAAkB,cAAe,aAAc,iBAAkB,cAAe,YAAa,eAAgB,oBAAqB,YAAa,eAAgB,cAAe,eAAgB,WAAY,YAAa,eAAgB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,eAAgB,iBAAkB,iBAAkB,gBAAiB,cAAe,cAAe,mBAAoB,cAAe,iBAAkB,aAAc,UAAW,gBAAiB,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,cAAe,mBAAoB,iBAAkB,WAAY,cAAe,cAAe,cAAe,mBAAoB,cAAe,iBAAkB,UAAW,cAAe,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,aAAc,iBAAkB,UAAW,UAAW,UAAW,UAAW,QAAS,OAAQ,OAAQ,QAAS,SAAU,UAAW,QAAS,YACthJlsH,EAAQksH,mBAAqBA,EAC7B,MAAMe,EAA2B,IAEjC,IAAI9F,EAAY,WACd,IAAI+F,EAA2B,CAAC,KAAM,CACpCj+G,GAAI,QACJiV,IAAK,EACLipG,eAAe,EACfC,MAAM,GACL,KAAM,CACPn+G,GAAI,QACJiV,IAAK,EACLipG,eAAe,EACfC,MAAM,GACL,CACDn+G,GAAI,UACJiV,IAAK,EACLipG,eAAe,GACd,CACDl+G,GAAI,UACJiV,IAAK,EACLmpG,YAAY,GACX,CACDp+G,GAAI,UACJiV,IAAK,EACLmpG,YAAY,GACX,CACDp+G,GAAI,UACJiV,IAAK,EACLmpG,YAAY,GACX,CACDp+G,GAAI,YACJiV,IAAK,EACLmpG,YAAY,GACX,KAAM,CACPp+G,GAAI,WACJiV,IAAK,EACLopG,YAAY,GACX,CACDr+G,GAAI,SACJiV,IAAK,EACLopG,YAAY,GACX,KAAM,KAAM,CACbr+G,GAAI,UACJiV,IAAK,EACLipG,eAAe,GACd,KAAM,KAAM,KAAM,CACnBl+G,GAAI,UACJiV,IAAK,EACLipG,eAAe,EACfC,MAAM,GACL,CACDn+G,GAAI,WACJiV,IAAK,EACLipG,eAAe,GACd,CACDl+G,GAAI,WACJiV,IAAK,EACLipG,eAAe,GACd,CACDl+G,GAAI,UACJiV,IAAK,EACLipG,eAAe,GACd,CACDl+G,GAAI,UACJiV,IAAK,EACLipG,eAAe,GACd,CACDl+G,GAAI,UACJiV,IAAK,EACLipG,eAAe,EACfC,MAAM,GACL,CACDn+G,GAAI,aACJiV,IAAK,EACLmpG,YAAY,GACX,CACDp+G,GAAI,aACJiV,IAAK,EACLmpG,YAAY,GACX,CACDp+G,GAAI,YACJiV,IAAK,EACLmpG,YAAY,GACX,CACDp+G,GAAI,YACJiV,IAAK,EACLmpG,YAAY,GACX,KAAM,CACPp+G,GAAI,YACJiV,IAAK,EACLopG,YAAY,GACX,CACDr+G,GAAI,YACJiV,IAAK,EACLmpG,YAAY,GACX,CACDp+G,GAAI,YACJiV,IAAK,EACLmpG,YAAY,IAEVE,EAA6B,CAAC,KAAM,KAAM,KAAM,CAClDt+G,GAAI,MACJiV,IAAK,EACLshG,YAAa,GACZ,CACDv2G,GAAI,KACJiV,IAAK,EACLshG,YAAa,GACZ,CACDv2G,GAAI,MACJiV,IAAK,EACLshG,WAAY,GACX,KAAM,KAAM,KAAM,CACnBv2G,GAAI,MACJiV,IAAK,EACLshG,WAAY,GACX,CACDv2G,GAAI,MACJiV,IAAK,EACLshG,YAAa,EACbgI,QAAS,SAAmB7a,EAAOprF,GACjCorF,EAAMprF,EAAQ,GAAKorF,EAAMprF,EAAQ,GAAKorF,EAAMprF,EAAQ,KAErD,CACDtY,GAAI,MACJiV,IAAK,EACLshG,YAAa,EACbgI,QAAS,SAAmB7a,EAAOprF,GACjCorF,EAAMprF,EAAQ,GAAKorF,EAAMprF,EAAQ,GAAKorF,EAAMprF,EAAQ,KAErD,CACDtY,GAAI,MACJiV,IAAK,EACLshG,YAAa,EACbgI,QAAS,SAAmB7a,EAAOprF,GACjCorF,EAAMprF,EAAQ,GAAKorF,EAAMprF,EAAQ,GAAKorF,EAAMprF,EAAQ,KAErD,KAAM,CACPtY,GAAI,MACJiV,IAAK,EACLshG,WAAY,EACZgI,QAAS,SAAmB7a,EAAOprF,GACjCorF,EAAMprF,EAAQ,IAAMorF,EAAMprF,EAAQ,KAEnC,CACDtY,GAAI,KACJiV,IAAK,EACLshG,YAAa,GACZ,KAAM,KAAM,CACbv2G,GAAI,OACJiV,IAAK,EACLshG,YAAa,GACZ,KAAM,CACPv2G,GAAI,MACJiV,IAAK,EACLshG,YAAa,GACZ,CACDv2G,GAAI,MACJiV,IAAK,EACLshG,WAAY,GACX,CACDv2G,GAAI,SACJiV,IAAK,EACLshG,YAAa,GACZ,CACDv2G,GAAI,SACJiV,IAAK,EACLshG,WAAY,GACX,CACDv2G,GAAI,MACJiV,IAAK,EACLshG,YAAa,EACbgI,QAAS,SAAmB7a,EAAOprF,GACjCorF,EAAMprF,EAAQ,GAAKorF,EAAMprF,EAAQ,GAAKorF,EAAMprF,EAAQ,KAErD,KAAM,CACPtY,GAAI,OACJiV,IAAK,EACLshG,WAAY,GACX,CACDv2G,GAAI,MACJiV,IAAK,EACLshG,WAAY,GACX,CACDv2G,GAAI,OACJiV,IAAK,EACLshG,WAAY,GACX,CACDv2G,GAAI,QACJiV,IAAK,EACLshG,WAAY,GACX,CACDv2G,GAAI,OACJiV,IAAK,EACLshG,YAAa,GACZ,KAAM,KAAM,KAAM,CACnBv2G,GAAI,QACJiV,IAAK,EACLmpG,YAAY,GACX,CACDp+G,GAAI,OACJiV,IAAK,GACLmpG,YAAY,GACX,CACDp+G,GAAI,SACJiV,IAAK,EACLmpG,YAAY,GACX,CACDp+G,GAAI,QACJiV,IAAK,GACLmpG,YAAY,IAGd,SAASlG,EAAU93B,EAAM0U,EAAY0pB,GACnC/oH,KAAKwJ,MAAQmhF,EAAKrjE,WAClBtnB,KAAKq/F,WAAaA,EAClBr/F,KAAK+oH,sBAAwBA,EA4sB/B,OAzsBAtG,EAAU1kH,UAAY,CACpB82B,MAAO,WACL,IAAIwqE,EAAar/F,KAAKq/F,WAClB2T,EAAM,IAAIgU,EACdhnH,KAAKgzG,IAAMA,EACX,IAAI5tD,EAASplD,KAAKgpH,cACdrJ,EAAY3/G,KAAKipH,WAAW7jE,EAAO7hB,QACnC2lF,EAAelpH,KAAKipH,WAAWtJ,EAAUp8E,QACzC4lF,EAAcnpH,KAAKipH,WAAWC,EAAa3lF,QAC3C8jF,EAAkBrnH,KAAKipH,WAAWE,EAAY5lF,QAC9C6lF,EAAgBppH,KAAKqpH,UAAUH,EAAa3qG,IAAIzd,IAAI,IACpDmjC,EAAUjkC,KAAKspH,WAAWpC,EAAYkC,EAAepW,EAAI4E,SAC7D5E,EAAI5tD,OAASA,EAAO7mC,IACpBy0F,EAAIr5E,MAAQ35B,KAAKupH,eAAe5J,EAAUphG,KAC1Cy0F,EAAI4E,QAAU53G,KAAKwpH,iBAAiBL,EAAY5qG,KAChDy0F,EAAI/uE,QAAUA,EACd+uE,EAAIqU,gBAAkBA,EAAgB9oG,IACtCve,KAAKypH,iBAAiBzW,EAAI/uE,SAC1B+uE,EAAImV,UAAYlkF,EAAQylF,QAAQ,OAChC,IAAIC,EAAmB1lF,EAAQg1D,UAAU,eACrC2wB,EAAkB5pH,KAAKipH,WAAWU,GAAkBprG,IACpDy9E,EAAa/3D,EAAQg1D,UAAU,cAE/B+C,IACFqD,EAAWrD,WAAaA,GAG1B,IAQIwnB,EAASrtE,EART0zE,EAAW5lF,EAAQg1D,UAAU,YAUjC,GARI4wB,IACFxqB,EAAW1D,OAASl0F,KAAKC,IAAImiH,EAAS,GAAIA,EAAS,IACnDxqB,EAAWzD,QAAUn0F,KAAK+X,IAAIqqG,EAAS,GAAIA,EAAS,IACpDxqB,EAAW8X,cAAe,GAKxBnE,EAAImV,UAAW,CAGjB,IAFA,IAAI2B,EAAe9pH,KAAKipH,WAAWhlF,EAAQg1D,UAAU,YAAY16E,IAExDviB,EAAI,EAAGsnB,EAAKwmG,EAAapxF,MAAO18B,EAAIsnB,IAAMtnB,EAAG,CACpD,IAAI+tH,EAAUD,EAAahpH,IAAI9E,GAC3BguH,EAAWhqH,KAAKspH,WAAWpC,EAAYlnH,KAAKqpH,UAAUU,GAAU/W,EAAI4E,SACxE53G,KAAKypH,iBAAiBO,GACtBhX,EAAIiX,QAAQ3sH,KAAK0sH,GAGnB7zE,EAAW,KACXqtE,EAAUxjH,KAAKkqH,cAAcjmF,EAAQg1D,UAAU,WAAY2wB,EAAgBlxF,MAAOs6E,EAAI4E,SAAS,GAC/F5E,EAAImX,SAAWnqH,KAAKoqH,cAAcnmF,EAAQg1D,UAAU,YAAa2wB,EAAgBlxF,YAEjF8qF,EAAUxjH,KAAKkqH,cAAcjmF,EAAQg1D,UAAU,WAAY2wB,EAAgBlxF,MAAOs6E,EAAI4E,SAAS,GAC/FzhE,EAAWn2C,KAAKqqH,cAAcpmF,EAAQg1D,UAAU,YAAaoG,EAAY2T,EAAI4E,QAAS4L,EAAQA,SAGhGxQ,EAAIwQ,QAAUA,EACdxQ,EAAI78D,SAAWA,EACf,IAAIm0E,EAAsBtqH,KAAKuqH,iBAAiB,CAC9C5C,YAAaiC,EACbY,eAAgBvmF,EAAQ2jF,YAAYK,WACpCZ,gBAAiBA,EAAgB9oG,IACjC4rG,SAAUnX,EAAImX,SACdF,QAASjX,EAAIiX,QACbrC,YAAa3jF,EAAQ2jF,cAKvB,OAHA5U,EAAI2U,YAAc2C,EAAoB3C,YACtC3U,EAAIuQ,MAAQ+G,EAAoB/G,MAChCvQ,EAAI5P,OAASknB,EAAoBlnB,OAC1B4P,GAETgW,YAAa,WACX,IAAIx/G,EAAQxJ,KAAKwJ,MACbs9B,EAAct9B,EAAMtN,OACpB8xB,EAAS,EAEb,MAAOA,EAAS8Y,GAAiC,IAAlBt9B,EAAMwkB,KACjCA,EAGJ,GAAIA,GAAU8Y,EACZ,MAAM,IAAI3kC,EAAMiM,YAAY,sBAGf,IAAX4f,KACF,EAAI7rB,EAAMiJ,MAAM,uBAChB5B,EAAQA,EAAMkW,SAASsO,GACvBhuB,KAAKwJ,MAAQA,GAGf,IAAIgsD,EAAQhsD,EAAM,GACdisD,EAAQjsD,EAAM,GACdihH,EAAUjhH,EAAM,GAChBkhH,EAAUlhH,EAAM,GAChB47C,EAAS,IAAI6hE,EAAUzxD,EAAOC,EAAOg1D,EAASC,GAClD,MAAO,CACLnsG,IAAK6mC,EACL7hB,OAAQknF,IAGZpB,UAAW,SAA6B1iG,GACtC,IAAI/G,EAAM,EAEV,SAAS+qG,IACP,IAAIzpH,EAAQylB,EAAK/G,KAEjB,OAAc,KAAV1e,EACK0pH,IACY,KAAV1pH,GACTA,EAAQylB,EAAK/G,KACb1e,GAASA,GAAS,GAAKylB,EAAK/G,MAAU,KAAO,GACtC1e,GACY,KAAVA,GACTA,EAAQylB,EAAK/G,KACb1e,EAAQA,GAAS,EAAIylB,EAAK/G,KAC1B1e,EAAQA,GAAS,EAAIylB,EAAK/G,KAC1B1e,EAAQA,GAAS,EAAIylB,EAAK/G,KACnB1e,GACEA,GAAS,IAAMA,GAAS,IAC1BA,EAAQ,IACNA,GAAS,KAAOA,GAAS,IACX,KAAfA,EAAQ,KAAaylB,EAAK/G,KAAS,IAClC1e,GAAS,KAAOA,GAAS,KACT,KAAfA,EAAQ,KAAcylB,EAAK/G,KAAS,MAGhD,EAAIzd,EAAMgF,MAAM,yBAA2BjG,EAAQ,4BAC5C6/G,KAGT,SAAS6J,IACP,IAAI5rG,EAAM,GACN6uB,EAAM,GACV,MAAMnyC,EAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KACxF,IAAIQ,EAASyqB,EAAKzqB,OAElB,MAAO0jB,EAAM1jB,EAAQ,CACnB,IAAIskB,EAAImG,EAAK/G,KACT2D,EAAK/C,GAAK,EACVgD,EAAS,GAAJhD,EAET,GAAI+C,IAAOsqB,EACT,MAKF,GAFA7uB,GAAOtjB,EAAO6nB,GAEVC,IAAOqqB,EACT,MAGF7uB,GAAOtjB,EAAO8nB,GAGhB,OAAOigF,WAAWzkF,GAGpB,IAAI6rG,EAAW,GACXprF,EAAU,GACd7f,EAAM,EACN,IAAIxiB,EAAMupB,EAAKzqB,OAEf,MAAO0jB,EAAMxiB,EAAK,CAChB,IAAIojB,EAAImG,EAAK/G,GAETY,GAAK,IACG,KAANA,IACFA,EAAIA,GAAK,EAAImG,IAAO/G,IAGtB6f,EAAQniC,KAAK,CAACkjB,EAAGqqG,IACjBA,EAAW,KACTjrG,GAEFirG,EAASvtH,KAAKqtH,KAIlB,OAAOlrF,GAETwpF,WAAY,SAA8BrpG,GACxC,IAKI5jB,EAAGsnB,EALHwnG,EAAW,IAAIxD,EACf99G,EAAQxJ,KAAKwJ,MACbkvB,EAAQlvB,EAAMoW,MAAU,EAAIpW,EAAMoW,KAClCi8F,EAAU,GACVz+G,EAAMwiB,EAGV,GAAc,IAAV8Y,EAAa,CACf,IAAIqyF,EAAavhH,EAAMoW,KACnB0jB,EAAW1jB,GAAO8Y,EAAQ,GAAKqyF,EAAa,EAEhD,IAAK/uH,EAAI,EAAGsnB,EAAKoV,EAAQ,EAAG18B,EAAIsnB,IAAMtnB,EAAG,CAGvC,IAFA,IAAIgyB,EAAS,EAEJmF,EAAI,EAAGA,EAAI43F,IAAc53F,EAChCnF,IAAW,EACXA,GAAUxkB,EAAMoW,KAGlBi8F,EAAQv+G,KAAKgmC,EAAWtV,GAG1B5wB,EAAMy+G,EAAQnjF,GAGhB,IAAK18B,EAAI,EAAGsnB,EAAKu4F,EAAQ3/G,OAAS,EAAGF,EAAIsnB,IAAMtnB,EAAG,CAChD,IAAIgvH,EAAcnP,EAAQ7/G,GACtBivH,EAAYpP,EAAQ7/G,EAAI,GAC5B8uH,EAASt5C,IAAIhoE,EAAMkW,SAASsrG,EAAaC,IAG3C,MAAO,CACL1sG,IAAKusG,EACLvnF,OAAQnmC,IAGZmsH,eAAgB,SAAkC1mG,GAGhD,IAFA,IAAI8W,EAAQ,GAEH39B,EAAI,EAAGsnB,EAAKT,EAAM6V,MAAO18B,EAAIsnB,IAAMtnB,EAAG,CAC7C,IAAI+C,EAAO8jB,EAAM/hB,IAAI9E,GACrB29B,EAAMr8B,MAAK,EAAI6E,EAAM6K,eAAejO,IAGtC,OAAO46B,GAET6vF,iBAAkB,SAAoC3mG,GAGpD,IAFA,IAAI+0F,EAAU,IAAIwP,EAETprH,EAAI,EAAGsnB,EAAKT,EAAM6V,MAAO18B,EAAIsnB,IAAMtnB,EAAG,CAC7C,IAAIkH,EAAO2f,EAAM/hB,IAAI9E,GACrB47G,EAAQpmC,KAAI,EAAIrvE,EAAM6K,eAAe9J,IAGvC,OAAO00G,GAET0R,WAAY,SAA8B4B,EAAMvkG,EAAMixF,GAGpD,IAFA,IAAIuT,EAAU,IAAID,EAAKtT,GAEd57G,EAAI,EAAGsnB,EAAKqD,EAAKzqB,OAAQF,EAAIsnB,IAAMtnB,EAAG,CAC7C,IAAIovH,EAAOzkG,EAAK3qB,GACZwF,EAAM4pH,EAAK,GACXlqH,EAAQkqH,EAAK,GACjBD,EAAQE,SAAS7pH,EAAKN,GAGxB,OAAOiqH,GAETG,gBAAiB,SAAmC5jF,EAAOxkC,EAAMsnH,EAAgBnD,GAC/E,IAAKnkH,GAAQwkC,EAAM6jF,UAAYjD,EAC7B,OAAO,EAOT,IAJA,IAAIkD,EAAY9jF,EAAM8jF,UAClBvd,EAAQvmE,EAAMumE,MACd/xG,EAASgH,EAAKhH,OAETi3B,EAAI,EAAGA,EAAIj3B,GAAS,CAC3B,IAAIgF,EAAQgC,EAAKiwB,KACbs4F,EAAoB,KAExB,GAAc,KAAVvqH,EAAc,CAChB,IAAI6yC,EAAI7wC,EAAKiwB,KAEH,IAAN4gB,GACF7wC,EAAKiwB,EAAI,GAAK,IACdjwB,EAAKiwB,EAAI,GAAK,GACdq4F,EAAY,GAEZC,EAAoB5C,EAA2B90E,QAE5C,GAAc,KAAV7yC,EACT+sG,EAAMud,IAActoH,EAAKiwB,IAAM,GAAKjwB,EAAKiwB,EAAI,IAAM,KAAO,GAC1DA,GAAK,EACLq4F,SACK,GAAc,KAAVtqH,EAAc,CACvB,GAAIsqH,GAAa,IACfA,GAAa,EAETxrH,KAAK+oH,qBAEP,OADArhF,EAAMg8E,KAAOzV,EAAMjwG,MAAMwtH,EAAWA,EAAY,IACzC,EAIXC,EAAoBjD,EAAyBtnH,QACxC,GAAIA,GAAS,IAAMA,GAAS,IACjC+sG,EAAMud,GAAatqH,EAAQ,IAC3BsqH,SACK,GAAItqH,GAAS,KAAOA,GAAS,IAClC+sG,EAAMud,GAAatqH,EAAQ,KAAOA,EAAQ,KAAO,GAAKgC,EAAKiwB,GAAK,MAAQjyB,EAAQ,KAAO,GAAKgC,EAAKiwB,GAAK,IACtGA,IACAq4F,SACK,GAAc,MAAVtqH,EACT+sG,EAAMud,IAActoH,EAAKiwB,IAAM,GAAKjwB,EAAKiwB,EAAI,IAAM,GAAKjwB,EAAKiwB,EAAI,IAAM,EAAIjwB,EAAKiwB,EAAI,IAAM,MAC1FA,GAAK,EACLq4F,SACK,GAAc,KAAVtqH,GAA0B,KAAVA,EACzBwmC,EAAMqF,OAASy+E,GAAa,EAC5Br4F,GAAKuU,EAAMqF,MAAQ,GAAK,EACxBy+E,GAAa,EACbC,EAAoBjD,EAAyBtnH,OACxC,IAAc,KAAVA,GAA0B,KAAVA,EAAc,CACvC,IAAI+mH,EAQJ,GALEA,EADY,KAAV/mH,EACWspH,EAEAnD,GAGVY,EAGH,OAFAwD,EAAoBjD,EAAyBtnH,IAC7C,EAAIiB,EAAMgF,MAAM,0BAA4BskH,EAAkBlhH,KACvD,EAGT,IAAIqrG,EAAO,MAEPqS,EAAWvvF,MAAQ,KACrBk9E,EAAO,IACEqS,EAAWvvF,MAAQ,QAC5Bk9E,EAAO,MAGT,IAAI8V,EAAazd,IAAQud,GAAa5V,EAEtC,GAAI8V,EAAa,GAAKA,GAAczD,EAAWvvF,OAASlE,MAAMk3F,GAG5D,OAFAD,EAAoBjD,EAAyBtnH,IAC7C,EAAIiB,EAAMgF,MAAM,+BAAiCskH,EAAkBlhH,KAC5D,EAGTm9B,EAAM8jF,UAAYA,EAClB9jF,EAAM6jF,YACN,IAAIvM,EAAQh/G,KAAKsrH,gBAAgB5jF,EAAOugF,EAAWnnH,IAAI4qH,GAAalB,EAAgBnD,GAEpF,IAAKrI,EACH,OAAO,EAGTt3E,EAAM6jF,YACNC,EAAY9jF,EAAM8jF,UAClB,SACK,GAAc,KAAVtqH,EAET,OADAwmC,EAAM8jF,UAAYA,GACX,EAEPC,EAAoBjD,EAAyBtnH,GAG/C,GAAIuqH,EAAmB,CAYrB,GAXIA,EAAkB/C,OACpBhhF,EAAMqF,OAASy+E,GAAa,EAEd,IAAVtqH,GAAyB,KAAVA,EACjBwmC,EAAMikF,WAAY,GACTjkF,EAAMikF,WAAwB,IAAVzqH,GAAyB,KAAVA,KAC5C,EAAIiB,EAAMgF,MAAM,qCAChBjE,EAAKiwB,EAAI,GAAe,IAAVjyB,EAAc,EAAI,KAIhC,QAASuqH,IACN/jF,EAAMkhF,YAAc4C,EAAYC,EAAkBjsG,IAErD,OADA,EAAIrd,EAAMgF,MAAM,6BAA+BskH,EAAkBlhH,GAAK,aAAeihH,EAAY,eAAiBC,EAAkBjsG,MAC7H,EAIPkoB,EAAMkkF,oBAAsBH,EAAkBhD,gBAChD/gF,EAAMkkF,oBAAqB,EAC3BJ,GAAaC,EAAkBjsG,IAE3BgsG,GAAa,GAAKC,EAAkB/C,KACtC8C,GAAa,EACJA,EAAY,IACrB,EAAIrpH,EAAMgF,MAAM,wDAGdqkH,EAAY,GAAKvd,EAAMud,EAAY,IAAM,IAC3C9jF,EAAMsS,MAAQi0D,EAAMud,EAAY,KAIhC,eAAgBC,GACd,YAAaA,GACfA,EAAkB3C,QAAQ7a,EAAOud,GAGnCA,GAAaC,EAAkB3K,YACtB2K,EAAkBhD,cAC3B+C,EAAY,EACHC,EAAkB9C,YAC3B6C,EAAY,EACZ9jF,EAAMkhF,YAAa,GACV6C,EAAkB7C,aAC3B4C,EAAY,EACZ9jF,EAAMkhF,YAAa,EACnBlhF,EAAMkkF,oBAAqB,IAMjC,OADAlkF,EAAM8jF,UAAYA,GACX,GAGT,kBAAiB,YACf7D,EAAW,eACX6C,EAAc,gBACdnD,EAAe,SACf8C,EAAQ,QACRF,EAAO,YACPrC,IAMA,IAJA,IAAIrE,EAAQ,GACRngB,EAAS,GACT1qE,EAAQivF,EAAYjvF,MAEf18B,EAAI,EAAGA,EAAI08B,EAAO18B,IAAK,CAC9B,IAAIooH,EAAauD,EAAY7mH,IAAI9E,GAC7B0rC,EAAQ,CACV6jF,UAAW,EACXC,UAAW,EACXvd,MAAO,GACP2a,YAAY,EACZ77E,MAAO,EACP6+E,oBAAoB,EACpBlI,KAAM,KACN1pE,MAAO,KACP2xE,WAAW,GAET3M,GAAQ,EACR6M,EAAiB,KACjBC,EAAmBlE,EAEvB,GAAIuC,GAAYF,EAAQ/tH,OAAQ,CAC9B,IAAI6vH,EAAU5B,EAAS6B,WAAWhwH,IAEjB,IAAb+vH,KACF,EAAI5pH,EAAMgF,MAAM,oCAChB63G,GAAQ,GAGN+M,GAAW9B,EAAQ/tH,UACrB,EAAIiG,EAAMgF,MAAM,qCAChB63G,GAAQ,GAGNA,IACF8M,EAAmB7B,EAAQ8B,GAASnE,YACpCiE,EAAiBC,EAAiB7D,iBAE3BuC,IACTqB,EAAiBrB,GAOnB,GAJIxL,IACFA,EAAQh/G,KAAKsrH,gBAAgB5jF,EAAO08E,EAAYyH,EAAgBxE,IAG9C,OAAhB3/E,EAAMsS,MAAgB,CACxB,MAAMiyE,EAAeH,EAAiB7yB,UAAU,iBAChDmK,EAAOpnG,GAAKiwH,EAAevkF,EAAMsS,UAC5B,CACL,MAAMspD,EAAewoB,EAAiB7yB,UAAU,iBAChDmK,EAAOpnG,GAAKsnG,EAGK,OAAf57D,EAAMg8E,OACRH,EAAMvnH,GAAK0rC,EAAMg8E,MAGd1E,GACH2I,EAAY5nG,IAAI/jB,EAAG,IAAIH,WAAW,CAAC,MAIvC,MAAO,CACL8rH,cACApE,QACAngB,WAIJ8oB,uBAAwB,SAA0CC,GAChE,IAAIvE,EAAc5nH,KAAKspH,WAAWzB,EAAgB,GAAIsE,EAAWvU,SACjEuU,EAAWd,SAAS,GAAI,CAAC,EAAG,IAC5Bc,EAAWvE,YAAcA,GAE3B6B,iBAAkB,SAAoC0C,GACpD,GAAKA,EAAWzC,QAAQ,WAAxB,CAKA,IAAI0C,EAAgBD,EAAWlzB,UAAU,WAEzC,GAAKn9F,MAAMmqB,QAAQmmG,IAA2C,IAAzBA,EAAclwH,OAAnD,CAKA,IAAIgyC,EAAOk+E,EAAc,GACrBp+F,EAASo+F,EAAc,GAE3B,GAAa,IAATl+E,GAAclgB,GAAUhuB,KAAKwJ,MAAMtN,OACrC8D,KAAKksH,uBAAuBC,OAD9B,CAKA,IAAIE,EAAiBr+F,EAASkgB,EAC1Bo+E,EAAWtsH,KAAKwJ,MAAMkW,SAASsO,EAAQq+F,GACvC1lG,EAAO3mB,KAAKqpH,UAAUiD,GACtB1E,EAAc5nH,KAAKspH,WAAWzB,EAAgBlhG,EAAMwlG,EAAWvU,SAGnE,GAFAuU,EAAWvE,YAAcA,EAEpBA,EAAY3uB,UAAU,SAA3B,CAIA,IAAIszB,EAAc3E,EAAY3uB,UAAU,SACpCuzB,EAAiBx+F,EAASu+F,EAE9B,GAAoB,IAAhBA,GAAqBC,GAAkBxsH,KAAKwJ,MAAMtN,OACpD8D,KAAKksH,uBAAuBC,OAD9B,CAKA,IAAIlE,EAAajoH,KAAKipH,WAAWuD,GACjC5E,EAAYK,WAAaA,EAAW1pG,YA/BlC4tG,EAAWM,aAAa,gBAPxBzsH,KAAKksH,uBAAuBC,IAwChCjC,cAAe,SAAiCtqG,EAAK1jB,EAAQ07G,EAASrV,GACpE,GAAY,IAAR3iF,EACF,OAAO,IAAI6nG,GAAW,EAAMiF,EAA0BC,UAAWtE,EAAUuE,iBACtE,GAAY,IAARhtG,EACT,OAAO,IAAI6nG,GAAW,EAAMiF,EAA0BG,OAAQxE,EAAUyE,eACnE,GAAY,IAARltG,EACT,OAAO,IAAI6nG,GAAW,EAAMiF,EAA0BK,cAAe1E,EAAU2E,qBAGjF,IAAIxjH,EAAQxJ,KAAKwJ,MACbrM,EAAQyiB,EACR47F,EAAShyG,EAAMoW,KACnB,MAAM4jG,EAAU,CAACjhB,EAAM,EAAI,WAC3B,IAAIh4F,EAAImuB,EAAO18B,EAGf,OAFAE,GAAU,EAEFs/G,GACN,KAAK,EACH,IAAKx/G,EAAI,EAAGA,EAAIE,EAAQF,IACtBuO,EAAKf,EAAMoW,MAAU,EAAIpW,EAAMoW,KAC/B4jG,EAAQlmH,KAAKilG,EAAMh4F,EAAKqtG,EAAQ92G,IAAIyJ,IAGtC,MAEF,KAAK,EACH,MAAOi5G,EAAQtnH,QAAUA,EAIvB,IAHAqO,EAAKf,EAAMoW,MAAU,EAAIpW,EAAMoW,KAC/B8Y,EAAQlvB,EAAMoW,KAET5jB,EAAI,EAAGA,GAAK08B,EAAO18B,IACtBwnH,EAAQlmH,KAAKilG,EAAMh4F,IAAOqtG,EAAQ92G,IAAIyJ,MAI1C,MAEF,KAAK,EACH,MAAOi5G,EAAQtnH,QAAUA,EAIvB,IAHAqO,EAAKf,EAAMoW,MAAU,EAAIpW,EAAMoW,KAC/B8Y,EAAQlvB,EAAMoW,MAAU,EAAIpW,EAAMoW,KAE7B5jB,EAAI,EAAGA,GAAK08B,EAAO18B,IACtBwnH,EAAQlmH,KAAKilG,EAAMh4F,IAAOqtG,EAAQ92G,IAAIyJ,MAI1C,MAEF,QACE,MAAM,IAAIpI,EAAMiM,YAAY,0BAGhC,IAAIhR,EAAMwiB,EACNqtG,EAAMzjH,EAAMkW,SAASviB,EAAOC,GAChC,OAAO,IAAIqqH,GAAW,EAAOjM,EAAQgI,EAASyJ,IAEhD5C,cAAe,SAAiCzqG,EAAKy/E,EAAYuY,EAAS4L,GACxE,IAGIhI,EAAQx/G,EAAGsnB,EAHX6yB,EAAWx1C,OAAOY,OAAO,MACzBiI,EAAQxJ,KAAKwJ,MACb0jH,GAAa,EAEbD,EAAM,KAEV,SAASE,IACP,IAAIC,EAAmB5jH,EAAMoW,KAE7B,IAAK5jB,EAAI,EAAGA,EAAIoxH,EAAkBpxH,IAAK,CACrC,IAAID,EAAOyN,EAAMoW,KACbytG,GAAO7jH,EAAMoW,MAAU,IAAqB,IAAfpW,EAAMoW,MACvCu2B,EAASp6C,GAAQynH,EAAQhnH,QAAQo7G,EAAQ92G,IAAIusH,KAIjD,GAAY,IAARztG,GAAqB,IAARA,EAAW,CAC1BstG,GAAa,EACb1R,EAAS57F,EACT,IAAI+hF,EAAe/hF,EAAMgwE,EAAW09B,eAAiB19B,EAAW8Q,iBAEhE,IAAK1kG,EAAI,EAAGsnB,EAAKkgG,EAAQtnH,OAAQF,EAAIsnB,EAAItnB,IAAK,CAC5C,IAAI6mB,EAAQ8+E,EAAanlG,QAAQgnH,EAAQxnH,KAE1B,IAAX6mB,IACFszB,EAAStzB,GAAS7mB,QAGjB,CACL,IAAIuxH,EAAY3tG,EAGhB,OAFA47F,EAAShyG,EAAMoW,KAEE,IAAT47F,GACN,KAAK,EACH,IAAIgS,EAAchkH,EAAMoW,KAExB,IAAK5jB,EAAI,EAAGA,GAAKwxH,EAAaxxH,IAC5Bm6C,EAAS3sC,EAAMoW,MAAU5jB,EAG3B,MAEF,KAAK,EACH,IAAIyxH,EAAcjkH,EAAMoW,KACpB8tG,EAAM,EAEV,IAAK1xH,EAAI,EAAGA,EAAIyxH,EAAazxH,IAI3B,IAHA,IAAImB,EAAQqM,EAAMoW,KACdsyB,EAAO1oC,EAAMoW,KAERuT,EAAIh2B,EAAOg2B,GAAKh2B,EAAQ+0C,EAAM/e,IACrCgjB,EAAShjB,GAAKu6F,IAIlB,MAEF,QACE,MAAM,IAAIvrH,EAAMiM,YAAY,4BAA4BotG,YAG5D,IAAI5uD,EAAUhtC,EAED,IAAT47F,IACFhyG,EAAM+jH,IAAc,IACpBJ,KAGFF,EAAMzjH,EAAMkW,SAAS6tG,EAAW3gE,GAIlC,OADA4uD,GAAkB,IACX,IAAImS,EAAYT,EAAY1R,EAAQrlE,EAAU82E,IAEvD7C,cAAe,SAAiCxqG,EAAK1jB,GACnD,IAGIF,EAHAwN,EAAQxJ,KAAKwJ,MACbgyG,EAAShyG,EAAMoW,KACfuqG,EAAW,GAGf,OAAQ3O,GACN,KAAK,EACH,IAAKx/G,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAC3B,IAAIuO,EAAKf,EAAMoW,KACfuqG,EAAS7sH,KAAKiN,GAGhB,MAEF,KAAK,EACH,IAAIkjH,EAAcjkH,EAAMoW,MAAU,EAAIpW,EAAMoW,KAE5C,IAAK5jB,EAAI,EAAGA,EAAIyxH,IAAezxH,EAAG,CAChC,IAAIqlB,EAAQ7X,EAAMoW,MAAU,EAAIpW,EAAMoW,KAE5B,IAAN5jB,GAAqB,IAAVqlB,KACb,EAAIlf,EAAMgF,MAAM,mFAChBka,EAAQ,GAMV,IAHA,IAAI0qG,EAAUviH,EAAMoW,KAChB8d,EAAOl0B,EAAMoW,IAAQ,EAAIpW,EAAMoW,EAAM,GAEhCuT,EAAI9R,EAAO8R,EAAIuK,IAAQvK,EAC9Bg3F,EAAS7sH,KAAKyuH,GAIlBnsG,GAAO,EACP,MAEF,QACE,MAAM,IAAIzd,EAAMiM,YAAY,kCAAkCotG,OAGlE,GAAI2O,EAASjuH,SAAWA,EACtB,MAAM,IAAIiG,EAAMiM,YAAY,qCAG9B,OAAO,IAAIg6G,EAAY5M,EAAQ2O,KAG5B1H,EAl6BO,GAq6BhBnnH,EAAQmnH,UAAYA,EAEpB,IAAIuE,EAAM,WACR,SAASA,IACPhnH,KAAKolD,OAAS,KACdplD,KAAK25B,MAAQ,GACb35B,KAAKikC,QAAU,KACfjkC,KAAK43G,QAAU,IAAIwP,EACnBpnH,KAAKqnH,gBAAkB,KACvBrnH,KAAKm2C,SAAW,KAChBn2C,KAAKwjH,QAAU,KACfxjH,KAAK2nH,YAAc,KACnB3nH,KAAKiqH,QAAU,GACfjqH,KAAKmqH,SAAW,KAChBnqH,KAAKmoH,WAAY,EA0BnB,OAvBAnB,EAAIjpH,UAAY,CACd2kH,oBAAqB,WACnB,GAAI1iH,KAAK2nH,YAAYjvF,OAAS,OAC5B,EAAIv2B,EAAMgF,MAAM,iEADlB,CAKA,IAAIymH,EAAY5tH,KAAK2nH,YAAY7mH,IAAI,GACrCd,KAAK2nH,YAAYn2C,IAAIo8C,GAEjB5tH,KAAKmoH,WACPnoH,KAAKmqH,SAASA,SAAS7sH,KAAK0C,KAAKmqH,SAASA,SAAS,MAGvDhH,WAAY,SAAwB54G,GAClC,GAAIA,EAAK,GAAKA,GAAMvK,KAAK2nH,YAAYjvF,MACnC,OAAO,EAGT,IAAIqkE,EAAQ/8F,KAAK2nH,YAAY7mH,IAAIyJ,GACjC,OAAOwyF,EAAM7gG,OAAS,IAGnB8qH,EAtCC,GAyCV1rH,EAAQ0rH,IAAMA,EAEd,IAAIC,EAAY,WACd,SAASA,EAAUzxD,EAAOC,EAAOg1D,EAASC,GACxC1qH,KAAKw1D,MAAQA,EACbx1D,KAAKy1D,MAAQA,EACbz1D,KAAKyqH,QAAUA,EACfzqH,KAAK0qH,QAAUA,EAGjB,OAAOzD,EARO,GAWhB3rH,EAAQ2rH,UAAYA,EAEpB,IAAIG,EAAa,WACf,SAASA,IACPpnH,KAAK43G,QAAU,GAuCjB,OApCAwP,EAAWrpH,UAAY,CACrB+C,IAAK,SAAwB+hB,GAC3B,OAAIA,GAAS,GAAKA,GAAS0lG,EAA2B,EAC7Cf,EAAmB3kG,GAGxBA,EAAQ0lG,GAA4BvoH,KAAK43G,QAAQ17G,OAC5C8D,KAAK43G,QAAQ/0F,EAAQ0lG,GAGvBf,EAAmB,IAE5BqG,OAAQ,SAA2B7uG,GACjC,IAAI6D,EAAQ2kG,EAAmBhrH,QAAQwiB,GAEvC,OAAe,IAAX6D,EACKA,GAGTA,EAAQ7iB,KAAK43G,QAAQp7G,QAAQwiB,IAEd,IAAX6D,EACKA,EAAQ0lG,GAGT,IAEV/2C,IAAK,SAAwBtwE,GAC3BlB,KAAK43G,QAAQt6G,KAAK4D,IAGpB,YACE,OAAOlB,KAAK43G,QAAQ17G,SAIjBkrH,EAzCQ,GA4CjB9rH,EAAQ8rH,WAAaA,EAErB,IAAIE,EAAW,WACb,SAASA,IACPtnH,KAAK8tH,QAAU,GACf9tH,KAAK9D,OAAS,EAqBhB,OAlBAorH,EAASvpH,UAAY,CACnByzE,IAAK,SAAsBtuE,GACzBlD,KAAK9D,QAAUgH,EAAKhH,OACpB8D,KAAK8tH,QAAQxwH,KAAK4F,IAEpB6c,IAAK,SAAsB8C,EAAO3f,GAChClD,KAAK9D,QAAUgH,EAAKhH,OAAS8D,KAAK8tH,QAAQjrG,GAAO3mB,OACjD8D,KAAK8tH,QAAQjrG,GAAS3f,GAExBpC,IAAK,SAAsB+hB,GACzB,OAAO7iB,KAAK8tH,QAAQjrG,IAGtB,YACE,OAAO7iB,KAAK8tH,QAAQ5xH,SAIjBorH,EAxBM,GA2BfhsH,EAAQgsH,SAAWA,EAEnB,IAAIyG,EAAU,WACZ,SAASA,EAAQzc,EAAQsG,GACvB53G,KAAKguH,aAAe1c,EAAO0c,aAC3BhuH,KAAKiuH,aAAe3c,EAAO2c,aAC3BjuH,KAAKkuH,SAAW5c,EAAO4c,SACvBluH,KAAKmuH,MAAQ7c,EAAO6c,MACpBnuH,KAAKouH,QAAU9c,EAAO8c,QACtBpuH,KAAKquH,MAAQ/c,EAAO+c,MACpBruH,KAAK43G,QAAUA,EACf53G,KAAKutB,OAAS5sB,OAAOY,OAAO,MAmF9B,OAhFAwsH,EAAQhwH,UAAY,CAClBstH,SAAU,SAA0B7pH,EAAKN,GACvC,KAAMM,KAAOxB,KAAKguH,cAChB,OAAO,EAGT,IAAIM,EAAcptH,EAAMhF,OAExB,GAAoB,IAAhBoyH,EACF,OAAO,EAGT,IAAK,IAAItyH,EAAI,EAAGA,EAAIsyH,EAAatyH,IAC/B,GAAIw4B,MAAMtzB,EAAMlF,IAEd,OADA,EAAImG,EAAMgF,MAAM,2BAA6BjG,EAAQ,cAAgBM,EAAM,OACpE,EAIX,IAAI6hB,EAAOrjB,KAAKmuH,MAAM3sH,GAOtB,MALa,QAAT6hB,GAA2B,QAATA,GAA2B,WAATA,IACtCniB,EAAQA,EAAM,IAGhBlB,KAAKutB,OAAO/rB,GAAON,GACZ,GAETimH,UAAW,SAA2BpoH,EAAMmC,GAC1C,KAAMnC,KAAQiB,KAAKiuH,cACjB,MAAM,IAAI9rH,EAAMiM,YAAY,4BAA4BrP,MAG1DiB,KAAKutB,OAAOvtB,KAAKiuH,aAAalvH,IAASmC,GAEzCwoH,QAAS,SAAyB3qH,GAChC,OAAOiB,KAAKiuH,aAAalvH,KAASiB,KAAKutB,QAEzC0rE,UAAW,SAA2Bl6F,GACpC,KAAMA,KAAQiB,KAAKiuH,cACjB,MAAM,IAAI9rH,EAAMiM,YAAY,2BAA2BrP,MAGzD,IAAIyC,EAAMxB,KAAKiuH,aAAalvH,GAE5B,OAAMyC,KAAOxB,KAAKutB,OAIXvtB,KAAKutB,OAAO/rB,GAHVxB,KAAKkuH,SAAS1sH,IAKzBirH,aAAc,SAA8B1tH,UACnCiB,KAAKutB,OAAOvtB,KAAKiuH,aAAalvH,MAIzCgvH,EAAQQ,aAAe,SAA8BC,GAUnD,IATA,IAAIld,EAAS,CACX0c,aAAc,GACdC,aAAc,GACdC,SAAU,GACVC,MAAO,GACPC,QAAS,GACTC,MAAO,IAGAryH,EAAI,EAAGsnB,EAAKkrG,EAAOtyH,OAAQF,EAAIsnB,IAAMtnB,EAAG,CAC/C,IAAImlC,EAAQqtF,EAAOxyH,GACfwF,EAAM1F,MAAMmqB,QAAQkb,EAAM,KAAOA,EAAM,GAAG,IAAM,GAAKA,EAAM,GAAG,GAAKA,EAAM,GAC7EmwE,EAAO0c,aAAaxsH,GAAO2/B,EAAM,GACjCmwE,EAAO2c,aAAa9sF,EAAM,IAAM3/B,EAChC8vG,EAAO6c,MAAM3sH,GAAO2/B,EAAM,GAC1BmwE,EAAO4c,SAAS1sH,GAAO2/B,EAAM,GAC7BmwE,EAAO8c,QAAQ5sH,GAAO1F,MAAMmqB,QAAQkb,EAAM,IAAMA,EAAM,GAAK,CAACA,EAAM,IAClEmwE,EAAO+c,MAAM/wH,KAAKkE,GAGpB,OAAO8vG,GAGFyc,EA5FK,GA+FV7G,EAAa,WACf,IAAIsH,EAAS,CAAC,CAAC,CAAC,GAAI,IAAK,MAAO,CAAC,MAAO,MAAO,OAAQ,MAAO,CAAC,CAAC,GAAI,IAAK,gBAAiB,MAAO,MAAO,CAAC,EAAG,UAAW,MAAO,MAAO,CAAC,EAAG,SAAU,MAAO,MAAO,CAAC,CAAC,GAAI,GAAI,YAAa,MAAO,MAAO,CAAC,EAAG,WAAY,MAAO,MAAO,CAAC,EAAG,aAAc,MAAO,MAAO,CAAC,EAAG,SAAU,MAAO,MAAO,CAAC,CAAC,GAAI,GAAI,eAAgB,MAAO,GAAI,CAAC,CAAC,GAAI,GAAI,cAAe,MAAO,GAAI,CAAC,CAAC,GAAI,GAAI,oBAAqB,OAAQ,KAAM,CAAC,CAAC,GAAI,GAAI,qBAAsB,MAAO,IAAK,CAAC,CAAC,GAAI,GAAI,YAAa,MAAO,GAAI,CAAC,CAAC,GAAI,GAAI,iBAAkB,MAAO,GAAI,CAAC,CAAC,GAAI,GAAI,aAAc,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,CAAC,KAAO,EAAG,EAAG,KAAO,EAAG,IAAK,CAAC,GAAI,WAAY,MAAO,MAAO,CAAC,EAAG,WAAY,CAAC,MAAO,MAAO,MAAO,OAAQ,CAAC,EAAG,EAAG,EAAG,IAAK,CAAC,CAAC,GAAI,GAAI,cAAe,MAAO,GAAI,CAAC,GAAI,OAAQ,QAAS,MAAO,CAAC,GAAI,UAAW,SAAU,GAAI,CAAC,GAAI,WAAY,SAAU,GAAI,CAAC,GAAI,cAAe,SAAU,GAAI,CAAC,GAAI,UAAW,CAAC,SAAU,UAAW,MAAO,CAAC,CAAC,GAAI,IAAK,aAAc,MAAO,MAAO,CAAC,CAAC,GAAI,IAAK,eAAgB,MAAO,MAAO,CAAC,CAAC,GAAI,IAAK,gBAAiB,QAAS,MAAO,CAAC,CAAC,GAAI,IAAK,iBAAkB,MAAO,GAAI,CAAC,CAAC,GAAI,IAAK,kBAAmB,MAAO,GAAI,CAAC,CAAC,GAAI,IAAK,cAAe,MAAO,GAAI,CAAC,CAAC,GAAI,IAAK,WAAY,MAAO,MAAO,CAAC,CAAC,GAAI,IAAK,UAAW,MAAO,MAAO,CAAC,CAAC,GAAI,IAAK,WAAY,SAAU,MAAO,CAAC,CAAC,GAAI,IAAK,UAAW,SAAU,MAAO,CAAC,CAAC,GAAI,IAAK,WAAY,MAAO,OACzzCld,EAAS,KAEb,SAAS4V,EAAWtP,GACH,OAAXtG,IACFA,EAASyc,EAAQQ,aAAaC,IAGhCT,EAAQ9vH,KAAK+B,KAAMsxG,EAAQsG,GAC3B53G,KAAK4nH,YAAc,KAIrB,OADAV,EAAWnpH,UAAY4C,OAAOY,OAAOwsH,EAAQhwH,WACtCmpH,EAdQ,GAiBjB5rH,EAAQ4rH,WAAaA,EAErB,IAAIW,EAAiB,WACnB,IAAI2G,EAAS,CAAC,CAAC,EAAG,aAAc,QAAS,MAAO,CAAC,EAAG,aAAc,QAAS,MAAO,CAAC,EAAG,cAAe,QAAS,MAAO,CAAC,EAAG,mBAAoB,QAAS,MAAO,CAAC,CAAC,GAAI,GAAI,YAAa,MAAO,SAAW,CAAC,CAAC,GAAI,IAAK,YAAa,MAAO,GAAI,CAAC,CAAC,GAAI,IAAK,WAAY,MAAO,GAAI,CAAC,GAAI,QAAS,MAAO,MAAO,CAAC,GAAI,QAAS,MAAO,MAAO,CAAC,CAAC,GAAI,IAAK,YAAa,QAAS,MAAO,CAAC,CAAC,GAAI,IAAK,YAAa,QAAS,MAAO,CAAC,CAAC,GAAI,IAAK,YAAa,MAAO,GAAI,CAAC,CAAC,GAAI,IAAK,gBAAiB,MAAO,GAAI,CAAC,CAAC,GAAI,IAAK,kBAAmB,MAAO,KAAO,CAAC,CAAC,GAAI,IAAK,oBAAqB,MAAO,GAAI,CAAC,GAAI,gBAAiB,MAAO,GAAI,CAAC,GAAI,gBAAiB,MAAO,GAAI,CAAC,GAAI,QAAS,SAAU,OAC1oBld,EAAS,KAEb,SAASuW,EAAejQ,GACP,OAAXtG,IACFA,EAASyc,EAAQQ,aAAaC,IAGhCT,EAAQ9vH,KAAK+B,KAAMsxG,EAAQsG,GAC3B53G,KAAKioH,WAAa,KAIpB,OADAJ,EAAe9pH,UAAY4C,OAAOY,OAAOwsH,EAAQhwH,WAC1C8pH,EAdY,GAiBrBvsH,EAAQusH,eAAiBA,EACzB,IAAI6E,EAA4B,CAC9BC,UAAW,EACXE,OAAQ,EACRE,cAAe,GAGbtF,EAAa,WACf,SAASA,EAAWyF,EAAY1R,EAAQgI,EAASyJ,GAC/CjtH,KAAKktH,WAAaA,EAClBltH,KAAKw7G,OAASA,EACdx7G,KAAKwjH,QAAUA,EACfxjH,KAAKitH,IAAMA,EAGb,OAAOxF,EARQ,GAWjBnsH,EAAQmsH,WAAaA,EAErB,IAAIkG,EAAc,WAChB,SAASA,EAAYT,EAAY1R,EAAQrlE,EAAU82E,GACjDjtH,KAAKktH,WAAaA,EAClBltH,KAAKw7G,OAASA,EACdx7G,KAAKm2C,SAAWA,EAChBn2C,KAAKitH,IAAMA,EAGb,OAAOU,EARS,GAWdvF,EAAc,WAChB,SAASA,EAAY5M,EAAQ2O,GAC3BnqH,KAAKw7G,OAASA,EACdx7G,KAAKmqH,SAAWA,EAYlB,OATA/B,EAAYrqH,UAAY,CACtBiuH,WAAY,SAAyByC,GACnC,OAAIA,EAAa,GAAKA,GAAczuH,KAAKmqH,SAASjuH,QACxC,EAGH8D,KAAKmqH,SAASsE,KAGlBrG,EAfS,GAkBlB9sH,EAAQ8sH,YAAcA,EAEtB,IAAIsG,EAAmB,WACrB,SAASA,IACP1uH,KAAK67G,QAAUl7G,OAAOY,OAAO,MAgD/B,OA7CAmtH,EAAiB3wH,UAAY,CAC3B4wH,WAAY,SAAqCntH,GAC/C,OAAOA,KAAOxB,KAAK67G,SAErB+S,MAAO,SAAgCptH,EAAKqtH,GAC1C,GAAIrtH,KAAOxB,KAAK67G,QACd,MAAM,IAAI15G,EAAMiM,YAAY,gCAAgC5M,GAG9DxB,KAAK67G,QAAQr6G,GAAOqtH,GAEtB7gG,OAAQ,SAAiC9sB,GACvC,IAAK,IAAIM,KAAOxB,KAAK67G,QACnB77G,KAAK67G,QAAQr6G,IAAQN,GAGzB4tH,iBAAkB,SAA2CttH,EAAK+rB,EAAQlwB,GACxE,KAAMmE,KAAOxB,KAAK67G,SAChB,MAAM,IAAI15G,EAAMiM,YAAY,4BAA4B5M,GAO1D,IAJA,IAAI0B,EAAO7F,EAAO6F,KACdypF,EAAa3sF,KAAK67G,QAAQr6G,GAC1B0sC,EAAO,EAEFlyC,EAAI,EAAGsnB,EAAKiK,EAAOrxB,OAAQF,EAAIsnB,IAAMtnB,EAAG,CAC/C,IAAImuD,EAAUnuD,EAAIkyC,EAAOy+C,EACrBoiC,EAAU5kE,EAAU,EACpB6kE,EAAU7kE,EAAU,EACpB8kE,EAAU9kE,EAAU,EACpB+kE,EAAU/kE,EAAU,EAExB,GAAsB,KAAlBjnD,EAAKinD,IAAuC,IAAlBjnD,EAAK6rH,IAAoC,IAAlB7rH,EAAK8rH,IAAoC,IAAlB9rH,EAAK+rH,IAAoC,IAAlB/rH,EAAKgsH,GACtG,MAAM,IAAI/sH,EAAMiM,YAAY,0CAG9B,IAAIlN,EAAQqsB,EAAOvxB,GACnBkH,EAAKinD,GAAW,GAChBjnD,EAAK6rH,GAAW7tH,GAAS,GAAK,IAC9BgC,EAAK8rH,GAAW9tH,GAAS,GAAK,IAC9BgC,EAAK+rH,GAAW/tH,GAAS,EAAI,IAC7BgC,EAAKgsH,GAAmB,IAARhuH,KAIfwtH,EAlDc,GAqDnB9L,EAAc,WAChB,SAASA,EAAY5P,GACnBhzG,KAAKgzG,IAAMA,EAwdb,OArdA4P,EAAY7kH,UAAY,CACtB8kH,QAAS,WACP,IAAI7P,EAAMhzG,KAAKgzG,IACX31G,EAAS,CACX6F,KAAM,GACNhH,OAAQ,EACRs1E,IAAK,SAAyBtuE,GAC5BlD,KAAKkD,KAAOlD,KAAKkD,KAAKg4C,OAAOh4C,GAC7BlD,KAAK9D,OAAS8D,KAAKkD,KAAKhH,SAGxBkpD,EAASplD,KAAKmvH,cAAcnc,EAAI5tD,QACpC/nD,EAAOm0E,IAAIpsB,GACX,IAAIu6D,EAAY3/G,KAAKovH,iBAAiBpc,EAAIr5E,OAG1C,GAFAt8B,EAAOm0E,IAAImuC,GAEP3M,EAAImV,WACFnV,EAAI/uE,QAAQylF,QAAQ,cAAe,CACrC,IAAI3rG,EAAOi1F,EAAI/uE,QAAQg1D,UAAU,cACjC+Z,EAAI/uE,QAAQwoF,aAAa,cAEzB,IAAK,IAAIzwH,EAAI,EAAGsnB,EAAK0vF,EAAIiX,QAAQ/tH,OAAQF,EAAIsnB,EAAItnB,IAAK,CACpD,IAAIqzH,EAAUrc,EAAIiX,QAAQjuH,GACtB6+E,EAAS98D,EAAK/f,MAAM,GAEpBqxH,EAAQ3F,QAAQ,gBAClB7uC,EAAS14E,EAAMkM,KAAK8I,UAAU0jE,EAAQw0C,EAAQp2B,UAAU,gBAG1Do2B,EAAQlI,UAAU,aAActsC,IAKtCm4B,EAAI/uE,QAAQkjF,UAAU,UAAW,GACjC,IAAImI,EAAWtvH,KAAKuvH,gBAAgB,CAACvc,EAAI/uE,SAAU5mC,EAAOnB,OAAQ82G,EAAImV,WACtE9qH,EAAOm0E,IAAI89C,EAASjyH,QACpB,IAAImyH,EAAiBF,EAASG,SAAS,GACnCtG,EAAcnpH,KAAK0vH,mBAAmB1c,EAAI4E,QAAQA,SACtDv6G,EAAOm0E,IAAI23C,GACX,IAAI9B,EAAkBrnH,KAAK2vH,aAAa3c,EAAIqU,iBAG5C,GAFAhqH,EAAOm0E,IAAI61C,GAEPrU,EAAI78D,UAAY68D,EAAI/uE,QAAQylF,QAAQ,YACtC,GAAI1W,EAAI78D,SAAS+2E,WACfsC,EAAeV,iBAAiB,WAAY,CAAC9b,EAAI78D,SAASqlE,QAASn+G,OAC9D,CACL,IAAI84C,EAAWn2C,KAAK4vH,gBAAgB5c,EAAI78D,UACxCq5E,EAAeV,iBAAiB,WAAY,CAACzxH,EAAOnB,QAASmB,GAC7DA,EAAOm0E,IAAIr7B,GAIf,IAAIqtE,EAAUxjH,KAAK6vH,eAAe7c,EAAIwQ,QAASxQ,EAAI2U,YAAYjvF,MAAOs6E,EAAI4E,QAAS5E,EAAImV,WACvFqH,EAAeV,iBAAiB,UAAW,CAACzxH,EAAOnB,QAASmB,GAC5DA,EAAOm0E,IAAIgyC,GACX,IAAImE,EAAc3nH,KAAK8vH,mBAAmB9c,EAAI2U,aAI9C,GAHA6H,EAAeV,iBAAiB,cAAe,CAACzxH,EAAOnB,QAASmB,GAChEA,EAAOm0E,IAAIm2C,GAEP3U,EAAImV,UAAW,CACjBqH,EAAeV,iBAAiB,WAAY,CAACzxH,EAAOnB,QAASmB,GAC7D,IAAI8sH,EAAWnqH,KAAK+vH,gBAAgB/c,EAAImX,UACxC9sH,EAAOm0E,IAAI24C,GACXmF,EAAWtvH,KAAKuvH,gBAAgBvc,EAAIiX,QAAS5sH,EAAOnB,QAAQ,GAC5DszH,EAAeV,iBAAiB,UAAW,CAACzxH,EAAOnB,QAASmB,GAC5DA,EAAOm0E,IAAI89C,EAASjyH,QACpB,IAAI2yH,EAAmBV,EAASG,SAChCzvH,KAAKiwH,oBAAoBjd,EAAIiX,QAAS+F,EAAkB3yH,GAK1D,OAFA2C,KAAKiwH,oBAAoB,CAACjd,EAAI/uE,SAAU,CAACurF,GAAiBnyH,GAC1DA,EAAOm0E,IAAI,CAAC,IACLn0E,EAAO6F,MAEhBgtH,aAAc,SAAkChvH,GAC9C,OAAIuiG,WAAWviG,KAAWqzB,SAASrzB,EAAO,KAAQszB,MAAMtzB,GAIjDlB,KAAKmwH,YAAYjvH,GAHflB,KAAKowH,cAAclvH,IAK9BivH,YAAa,SAAiCnzH,GAC5C,IAAIkE,EAAQlE,EAAI4L,WACZtI,EAAI,gDAAgDk/B,KAAKt+B,GAE7D,GAAIZ,EAAG,CACL,IAAIonE,EAAU+7B,WAAW,OAASnjG,EAAE,IAAMA,EAAE,GAAK,GAAKA,EAAE,GAAGpE,SAC3DgF,GAASuG,KAAKw2F,MAAMjhG,EAAM0qE,GAAWA,GAAS9+D,WAGhD,IACI5M,EAAGsnB,EADH+sG,EAAU,GAGd,IAAKr0H,EAAI,EAAGsnB,EAAKpiB,EAAMhF,OAAQF,EAAIsnB,IAAMtnB,EAAG,CAC1C,IAAIolB,EAAIlgB,EAAMlF,GAGZq0H,GADQ,MAANjvG,EACwB,MAAflgB,IAAQlF,GAAa,IAAM,IACvB,MAANolB,EACE,IACI,MAANA,EACE,IAEAA,EAIfivG,GAA4B,EAAjBA,EAAQn0H,OAAa,IAAM,KACtC,IAAIgsE,EAAM,CAAC,IAEX,IAAKlsE,EAAI,EAAGsnB,EAAK+sG,EAAQn0H,OAAQF,EAAIsnB,EAAItnB,GAAK,EAC5CksE,EAAI5qE,KAAKi3B,SAAS87F,EAAQ17F,UAAU34B,EAAGA,EAAI,GAAI,KAGjD,OAAOksE,GAETkoD,cAAe,SAAmClvH,GAChD,IAAInF,EAgBJ,OAdImF,IAAU,KAAOA,GAAS,IAC5BnF,EAAO,CAACmF,EAAQ,KACPA,GAAS,KAAOA,GAAS,MAClCA,GAAgB,IAChBnF,EAAO,CAAgB,KAAdmF,GAAS,GAAkB,IAARA,IACnBA,IAAU,MAAQA,IAAU,KACrCA,GAASA,EAAQ,IACjBnF,EAAO,CAAgB,KAAdmF,GAAS,GAAkB,IAARA,IAE5BnF,EADSmF,IAAU,OAASA,GAAS,MAC9B,CAAC,GAAMA,GAAS,EAAI,IAAc,IAARA,GAE1B,CAAC,GAAMA,GAAS,GAAK,IAAMA,GAAS,GAAK,IAAMA,GAAS,EAAI,IAAc,IAARA,GAGpEnF,GAETozH,cAAe,SAAmC/pE,GAChD,MAAO,CAACA,EAAOoQ,MAAOpQ,EAAOqQ,MAAOrQ,EAAOqlE,QAASrlE,EAAOslE,UAE7D0E,iBAAkB,SAAsCz1F,GAGtD,IAFA,IAAIgmF,EAAY,IAAI2H,EAEXtrH,EAAI,EAAGsnB,EAAKqW,EAAMz9B,OAAQF,EAAIsnB,IAAMtnB,EAAG,CAK9C,IAJA,IAAI+C,EAAO46B,EAAM39B,GACbE,EAASuL,KAAK+X,IAAIzgB,EAAK7C,OAAQ,KAC/Bo0H,EAAgB,IAAIx0H,MAAMI,GAErBi3B,EAAI,EAAGA,EAAIj3B,EAAQi3B,IAAK,CAC/B,IAAIg6E,EAAOpuG,EAAKo0B,IAEZg6E,EAAO,KAAOA,EAAO,KAAgB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAAyB,MAATA,GAAyB,MAATA,KAC9KA,EAAO,KAGTmjB,EAAcn9F,GAAKg6E,EAGrBmjB,EAAgBA,EAAc/yH,KAAK,IAEb,KAAlB+yH,IACFA,EAAgB,iBAGlB3Q,EAAUnuC,KAAI,EAAIrvE,EAAMyL,eAAe0iH,IAGzC,OAAOtwH,KAAK2vH,aAAahQ,IAE3B4P,gBAAiB,SAAqCgB,EAAOr0H,EAAQs0H,GAInE,IAHA,IAAIR,EAAmB,GACnBlG,EAAe,IAAIxC,EAEdtrH,EAAI,EAAGsnB,EAAKitG,EAAMr0H,OAAQF,EAAIsnB,IAAMtnB,EAAG,CAC9C,IAAIguH,EAAWuG,EAAMv0H,GAEjBw0H,IACFxG,EAASyC,aAAa,kBACtBzC,EAASyC,aAAa,mBACtBzC,EAASyC,aAAa,eACtBzC,EAASyC,aAAa,YACtBzC,EAASyC,aAAa,YAGxB,IAAIgE,EAAkB,IAAI/B,EACtBgC,EAAe1wH,KAAK2wH,YAAY3G,EAAUyG,GAC9CT,EAAiB1yH,KAAKmzH,GACtB3G,EAAat4C,IAAIk/C,GACjBD,EAAgBziG,OAAO9xB,GAIzB,OADA4tH,EAAe9pH,KAAK2vH,aAAa7F,EAAckG,GACxC,CACLP,SAAUO,EACV3yH,OAAQysH,IAGZmG,oBAAqB,SAAyCM,EAAOd,EAAUpyH,GAC7E,IAAK,IAAIrB,EAAI,EAAGsnB,EAAKitG,EAAMr0H,OAAQF,EAAIsnB,IAAMtnB,EAAG,CAC9C,IAAIguH,EAAWuG,EAAMv0H,GACjB4rH,EAAcoC,EAASpC,YAE3B,IAAKA,IAAgBoC,EAASN,QAAQ,WACpC,MAAM,IAAIvnH,EAAMiM,YAAY,uCAG9B,IAAIwiH,EAAqB,IAAIlC,EACzBmC,EAAkB7wH,KAAK2wH,YAAY/I,EAAagJ,GAChD98C,EAAez2E,EAAOnB,OAU1B,GATA00H,EAAmB5iG,OAAO8lD,GAErB+8C,EAAgB30H,SACnB43E,EAAe,GAGjB27C,EAASzzH,GAAG8yH,iBAAiB,UAAW,CAAC+B,EAAgB30H,OAAQ43E,GAAez2E,GAChFA,EAAOm0E,IAAIq/C,GAEPjJ,EAAYK,YAAcL,EAAY8B,QAAQ,SAAU,CAC1D,IAAIlD,EAAQxmH,KAAK2vH,aAAa/H,EAAYK,YAC1C2I,EAAmB9B,iBAAiB,QAAS,CAAC+B,EAAgB30H,QAASmB,GACvEA,EAAOm0E,IAAIg1C,MAIjBmK,YAAa,SAAiChqG,EAAMmqG,GAIlD,IAHA,IAAI5oD,EAAM,GACNmmD,EAAQ1nG,EAAK0nG,MAERryH,EAAI,EAAGA,EAAIqyH,EAAMnyH,SAAUF,EAAG,CACrC,IAAIwF,EAAM6sH,EAAMryH,GAEhB,GAAMwF,KAAOmlB,EAAK4G,OAAlB,CAIA,IAAIA,EAAS5G,EAAK4G,OAAO/rB,GACrB2sH,EAAQxnG,EAAKwnG,MAAM3sH,GAUvB,GARK1F,MAAMmqB,QAAQkoG,KACjBA,EAAQ,CAACA,IAGNryH,MAAMmqB,QAAQsH,KACjBA,EAAS,CAACA,IAGU,IAAlBA,EAAOrxB,OAAX,CAIA,IAAK,IAAIi3B,EAAI,EAAG6H,EAAKmzF,EAAMjyH,OAAQi3B,EAAI6H,IAAM7H,EAAG,CAC9C,IAAI9P,EAAO8qG,EAAMh7F,GACbjyB,EAAQqsB,EAAO4F,GAEnB,OAAQ9P,GACN,IAAK,MACL,IAAK,MACH6kD,EAAMA,EAAIhtB,OAAOl7C,KAAKkwH,aAAahvH,IACnC,MAEF,IAAK,SACH,IAAInC,EAAO4nB,EAAKqnG,aAAaxsH,GAExBsvH,EAAcnC,WAAW5vH,IAC5B+xH,EAAclC,MAAM7vH,EAAMmpE,EAAIhsE,QAGhCgsE,EAAMA,EAAIhtB,OAAO,CAAC,GAAM,EAAG,EAAG,EAAG,IACjC,MAEF,IAAK,QACL,IAAK,QACHgtB,EAAMA,EAAIhtB,OAAOl7C,KAAKkwH,aAAahvH,IAEnC,IAAK,IAAIwvC,EAAI,EAAGoB,EAAKvkB,EAAOrxB,OAAQw0C,EAAIoB,IAAMpB,EAC5Cw3B,EAAMA,EAAIhtB,OAAOl7C,KAAKkwH,aAAa3iG,EAAOmjB,KAG5C,MAEF,QACE,MAAM,IAAIvuC,EAAMiM,YAAY,wBAAwBiV,IAI1D6kD,EAAMA,EAAIhtB,OAAOv0B,EAAKynG,QAAQ5sH,MAGhC,OAAO0mE,GAETwnD,mBAAoB,SAAwC9X,GAG1D,IAFA,IAAIuR,EAAc,IAAI7B,EAEbtrH,EAAI,EAAGsnB,EAAKs0F,EAAQ17G,OAAQF,EAAIsnB,IAAMtnB,EAC7CmtH,EAAY33C,KAAI,EAAIrvE,EAAMyL,eAAegqG,EAAQ57G,KAGnD,OAAOgE,KAAK2vH,aAAaxG,IAE3B4H,uBAAwB,WACtB,IAAI1J,EAAkBrnH,KAAKgzG,IAAIqU,gBAC/BrnH,KAAKkoE,IAAI8oD,eAAehxH,KAAK2vH,aAAatI,KAE5CyI,mBAAoB,SAAwCnI,GAG1D,IAFA,IAAID,EAAmB,IAAIJ,EAElBtrH,EAAI,EAAGA,EAAI2rH,EAAYjvF,MAAO18B,IAAK,CAC1C,IAAI+gG,EAAQ4qB,EAAY7mH,IAAI9E,GAEP,IAAjB+gG,EAAM7gG,OAKVwrH,EAAiBl2C,IAAIurB,GAJnB2qB,EAAiBl2C,IAAI,IAAI31E,WAAW,CAAC,IAAM,MAO/C,OAAOmE,KAAK2vH,aAAajI,IAE3BmI,eAAgB,SAAoCrM,EAASvO,EAAW2C,EAASuQ,GAC/E,IAAIjgD,EACJ,MAAM+oD,EAAsBhc,EAAY,EAExC,GAAIkT,EACFjgD,EAAM,IAAIrsE,WAAW,CAAC,EAAG,EAAG,EAAGo1H,GAAuB,EAAI,IAA4B,IAAtBA,QAC3D,CACL,MAAM/0H,EAAS,EAA0B,EAAtB+0H,EACnB/oD,EAAM,IAAIrsE,WAAWK,GACrBgsE,EAAI,GAAK,EACT,IAAIgpD,EAAe,EACnB,MAAMC,EAAc3N,EAAQA,QAAQtnH,OACpC,IAAIk1H,GAAS,EAEb,IAAK,IAAIp1H,EAAI,EAAGA,EAAIksE,EAAIhsE,OAAQF,GAAK,EAAG,CACtC,IAAIqxH,EAAM,EAEV,GAAI6D,EAAeC,EAAa,CAC9B,MAAMpyH,EAAOykH,EAAQA,QAAQ0N,KAC7B7D,EAAMzV,EAAQiW,OAAO9uH,IAER,IAATsuH,IACFA,EAAM,EAED+D,IACHA,GAAS,GACT,EAAIjvH,EAAMgF,MAAM,iBAAiBpI,sBAKvCmpE,EAAIlsE,GAAKqxH,GAAO,EAAI,IACpBnlD,EAAIlsE,EAAI,GAAW,IAANqxH,GAIjB,OAAOrtH,KAAKqxH,kBAAkBnpD,IAEhC0nD,gBAAiB,SAAqCz5E,GACpD,OAAOn2C,KAAKqxH,kBAAkBl7E,EAAS82E,MAEzC8C,gBAAiB,SAAqC5F,GACpD,MAAM3O,EAAS2O,EAAS3O,OACxB,IAAItzC,EAAKlsE,EAET,OAAQw/G,GACN,KAAK,EAIH,IAHAtzC,EAAM,IAAIrsE,WAAW,EAAIsuH,EAASA,SAASjuH,QAC3CgsE,EAAI,GAAKszC,EAEJx/G,EAAI,EAAGA,EAAImuH,EAASA,SAASjuH,OAAQF,IACxCksE,EAAIlsE,EAAI,GAAKmuH,EAASA,SAASnuH,GAGjC,MAEF,KAAK,EACH,MAAMmB,EAAQ,EACd,IAAIm0H,EAASnH,EAASA,SAAS,GAC/B,MAAMr+F,EAAS,CAAC0vF,EAAQ,EAAG,EAAGr+G,GAAS,EAAI,IAAc,IAARA,EAAcm0H,GAE/D,IAAKt1H,EAAI,EAAGA,EAAImuH,EAASA,SAASjuH,OAAQF,IAAK,CAC7C,MAAMu1H,EAAYpH,EAASA,SAASnuH,GAEhCu1H,IAAcD,IAChBxlG,EAAOxuB,KAAKtB,GAAK,EAAI,IAAU,IAAJA,EAAUu1H,GACrCD,EAASC,GAIb,MAAMC,GAAa1lG,EAAO5vB,OAAS,GAAK,EACxC4vB,EAAO,GAAK0lG,GAAa,EAAI,IAC7B1lG,EAAO,GAAiB,IAAZ0lG,EACZ1lG,EAAOxuB,KAAKtB,GAAK,EAAI,IAAU,IAAJA,GAC3BksE,EAAM,IAAIrsE,WAAWiwB,GACrB,MAGJ,OAAO9rB,KAAKqxH,kBAAkBnpD,IAEhCmpD,kBAAmB,SAAuCnuH,GAGxD,IAFA,IAAIglE,EAAM,GAEDlsE,EAAI,EAAGsnB,EAAKpgB,EAAKhH,OAAQF,EAAIsnB,IAAMtnB,EAC1CksE,EAAIlsE,GAAKkH,EAAKlH,GAGhB,OAAOksE,GAETynD,aAAc,SAAkC9sG,EAAO4sG,GACrDA,EAAWA,GAAY,GACvB,IAAI3B,EAAUjrG,EAAMirG,QAChBp1F,EAAQo1F,EAAQ5xH,OAEpB,GAAc,IAAVw8B,EACF,MAAO,CAAC,EAAG,EAAG,GAGhB,IAEI18B,EAMA+uH,EARA7nH,EAAO,CAACw1B,GAAS,EAAI,IAAc,IAARA,GAC3B+4F,EAAa,EAGjB,IAAKz1H,EAAI,EAAGA,EAAI08B,IAAS18B,EACvBy1H,GAAc3D,EAAQ9xH,GAAGE,OAMzB6uH,EADE0G,EAAa,IACF,EACJA,EAAa,MACT,EACJA,EAAa,SACT,EAEA,EAGfvuH,EAAK5F,KAAKytH,GACV,IAAIyB,EAAiB,EAErB,IAAKxwH,EAAI,EAAGA,EAAI08B,EAAQ,EAAG18B,IACN,IAAf+uH,EACF7nH,EAAK5F,KAAsB,IAAjBkvH,GACc,IAAfzB,EACT7nH,EAAK5F,KAAKkvH,GAAkB,EAAI,IAAuB,IAAjBA,GACd,IAAfzB,EACT7nH,EAAK5F,KAAKkvH,GAAkB,GAAK,IAAMA,GAAkB,EAAI,IAAuB,IAAjBA,GAEnEtpH,EAAK5F,KAAKkvH,IAAmB,GAAK,IAAMA,GAAkB,GAAK,IAAMA,GAAkB,EAAI,IAAuB,IAAjBA,GAG/FsB,EAAQ9xH,KACVwwH,GAAkBsB,EAAQ9xH,GAAGE,QAIjC,IAAKF,EAAI,EAAGA,EAAI08B,EAAO18B,IAAK,CACtByzH,EAASzzH,IACXyzH,EAASzzH,GAAGgyB,OAAO9qB,EAAKhH,QAG1B,IAAK,IAAIi3B,EAAI,EAAG6H,EAAK8yF,EAAQ9xH,GAAGE,OAAQi3B,EAAI6H,EAAI7H,IAC9CjwB,EAAK5F,KAAKwwH,EAAQ9xH,GAAGm3B,IAIzB,OAAOjwB,IAGJ0/G,EA1dS,GA6dlBtnH,EAAQsnH,YAAcA,GAIhB,SAAU7iH,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQ0xH,oBAAsB1xH,EAAQwxH,cAAgBxxH,EAAQsxH,qBAAkB,EAChF,MAAMA,EAAkB,CAAC,UAAW,QAAS,SAAU,WAAY,aAAc,SAAU,UAAW,YAAa,aAAc,YAAa,aAAc,WAAY,OAAQ,QAAS,SAAU,SAAU,QAAS,OAAQ,MAAO,MAAO,QAAS,OAAQ,OAAQ,MAAO,QAAS,QAAS,OAAQ,QAAS,YAAa,OAAQ,QAAS,UAAW,WAAY,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,cAAe,YAAa,eAAgB,cAAe,aAAc,YAAa,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,YAAa,MAAO,aAAc,aAAc,aAAc,OAAQ,WAAY,WAAY,MAAO,SAAU,UAAW,WAAY,cAAe,eAAgB,gBAAiB,gBAAiB,iBAAkB,KAAM,KAAM,SAAU,SAAU,YAAa,iBAAkB,YAAa,SAAU,iBAAkB,eAAgB,gBAAiB,iBAAkB,WAAY,cAAe,eAAgB,QAAS,QAAS,aAAc,QAAS,SAAU,QAAS,YAAa,WAAY,OAAQ,UAAW,eAAgB,SAAU,QAAS,SAAU,KAAM,cAAe,SAAU,SAAU,KAAM,eAAgB,KAAM,WAAY,SAAU,SAAU,KAAM,aAAc,cAAe,aAAc,KAAM,YAAa,MAAO,UAAW,YAAa,QAAS,aAAc,SAAU,YAAa,SAAU,QAAS,gBAAiB,cAAe,aAAc,QAAS,MAAO,WAAY,gBAAiB,YAAa,SAAU,cAAe,YAAa,SAAU,QAAS,SAAU,WAAY,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,QAAS,SAAU,WAAY,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,YAAa,UAC3vEtxH,EAAQsxH,gBAAkBA,EAC1B,MAAME,EAAgB,CAAC,UAAW,QAAS,cAAe,oBAAqB,iBAAkB,iBAAkB,iBAAkB,aAAc,oBAAqB,qBAAsB,iBAAkB,iBAAkB,QAAS,SAAU,SAAU,WAAY,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,QAAS,YAAa,gBAAiB,sBAAuB,iBAAkB,gBAAiB,YAAa,YAAa,eAAgB,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,KAAM,KAAM,KAAM,MAAO,MAAO,oBAAqB,qBAAsB,kBAAmB,iBAAkB,aAAc,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,gBAAiB,YAAa,SAAU,aAAc,kBAAmB,eAAgB,cAAe,cAAe,cAAe,gBAAiB,aAAc,aAAc,iBAAkB,cAAe,aAAc,iBAAkB,cAAe,YAAa,eAAgB,aAAc,UAAW,gBAAiB,oBAAqB,YAAa,eAAgB,cAAe,eAAgB,WAAY,YAAa,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,eAAgB,iBAAkB,iBAAkB,gBAAiB,cAAe,cAAe,mBAAoB,cAAe,iBAAkB,aAAc,UAAW,gBAAiB,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,cAAe,mBAAoB,iBAAkB,WAAY,cAAe,cAAe,cAAe,mBAAoB,cAAe,iBAAkB,UAAW,cAAe,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,aAAc,kBACj2ExxH,EAAQwxH,cAAgBA,EACxB,MAAME,EAAsB,CAAC,UAAW,QAAS,iBAAkB,iBAAkB,oBAAqB,qBAAsB,iBAAkB,iBAAkB,QAAS,SAAU,SAAU,WAAY,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,QAAS,YAAa,gBAAiB,sBAAuB,iBAAkB,YAAa,YAAa,eAAgB,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,KAAM,KAAM,KAAM,MAAO,MAAO,oBAAqB,qBAAsB,iBAAkB,gBAAiB,YAAa,SAAU,eAAgB,aAAc,iBAAkB,aAAc,UAAW,gBAAiB,YAAa,eAAgB,cAAe,eAAgB,WAAY,YAAa,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,eAAgB,iBAAkB,iBAAkB,iBACjxC1xH,EAAQ0xH,oBAAsBA,GAIxB,SAAUjtH,EAAQzE,EAAS6E,GAEjC,aAGAQ,OAAOC,eAAetF,EAAS,aAAc,CAC3C4F,OAAO,IAET5F,EAAQ8kG,YAAcA,EACtB9kG,EAAQgyH,eAAiBhyH,EAAQwlG,qBAAuBxlG,EAAQulG,kBAAoBvlG,EAAQslG,iBAAmBtlG,EAAQolG,iBAAmBplG,EAAQqlG,qBAAkB,EACpK,MAAM2sB,EAAiB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,QAAS,cAAe,oBAAqB,GAAI,iBAAkB,iBAAkB,iBAAkB,aAAc,oBAAqB,qBAAsB,iBAAkB,iBAAkB,QAAS,SAAU,SAAU,WAAY,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,QAAS,YAAa,gBAAiB,sBAAuB,iBAAkB,gBAAiB,GAAI,YAAa,YAAa,eAAgB,YAAa,YAAa,GAAI,GAAI,GAAI,YAAa,GAAI,GAAI,YAAa,YAAa,YAAa,YAAa,GAAI,GAAI,YAAa,YAAa,YAAa,GAAI,KAAM,KAAM,KAAM,MAAO,MAAO,oBAAqB,GAAI,qBAAsB,kBAAmB,iBAAkB,aAAc,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,gBAAiB,YAAa,SAAU,aAAc,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,kBAAmB,eAAgB,cAAe,GAAI,GAAI,cAAe,cAAe,gBAAiB,aAAc,aAAc,GAAI,iBAAkB,GAAI,GAAI,cAAe,GAAI,GAAI,aAAc,iBAAkB,GAAI,GAAI,cAAe,YAAa,eAAgB,GAAI,GAAI,GAAI,aAAc,UAAW,gBAAiB,oBAAqB,YAAa,eAAgB,cAAe,eAAgB,WAAY,YAAa,GAAI,GAAI,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,eAAgB,iBAAkB,iBAAkB,gBAAiB,cAAe,cAAe,mBAAoB,cAAe,iBAAkB,aAAc,UAAW,gBAAiB,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,cAAe,mBAAoB,iBAAkB,WAAY,cAAe,cAAe,cAAe,mBAAoB,cAAe,iBAAkB,UAAW,cAAe,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,aAAc,kBACnsFhyH,EAAQgyH,eAAiBA,EACzB,MAAMoE,EAAoB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,QAAS,cAAe,oBAAqB,eAAgB,iBAAkB,iBAAkB,iBAAkB,aAAc,oBAAqB,qBAAsB,iBAAkB,iBAAkB,QAAS,SAAU,SAAU,WAAY,eAAgB,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,gBAAiB,eAAgB,QAAS,YAAa,GAAI,sBAAuB,GAAI,gBAAiB,GAAI,GAAI,GAAI,GAAI,WAAY,GAAI,GAAI,aAAc,UAAW,gBAAiB,YAAa,eAAgB,cAAe,eAAgB,WAAY,YAAa,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,MAAO,oBAAqB,GAAI,qBAAsB,kBAAmB,iBAAkB,aAAc,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,gBAAiB,YAAa,SAAU,aAAc,GAAI,GAAI,YAAa,eAAgB,GAAI,GAAI,GAAI,GAAI,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,aAAc,gBAAiB,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,cAAe,cAAe,mBAAoB,iBAAkB,cAAe,cAAe,cAAe,mBAAoB,iBAAkB,GAAI,gBAAiB,eAAgB,gBAAiB,cAAe,gBAAiB,gBAAiB,cAAe,GAAI,eAAgB,cAAe,GAAI,gBAAiB,GAAI,aAAc,YAAa,eAAgB,GAAI,gBAAiB,iBAAkB,cAAe,GAAI,iBAAkB,GAAI,GAAI,aAAc,GAAI,eAAgB,eAAgB,cAAe,UAAW,cAAe,oBAAqB,cAAe,cAAe,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,eAAgB,GAAI,GAAI,GAAI,GAAI,GAAI,UAAW,aAAc,iBAAkB,GAAI,GAAI,GAAI,GAAI,kBAAmB,GAAI,iBAAkB,GAAI,cAAe,cAAe,gBAAiB,eAAgB,eAAgB,cAAe,gBAAiB,eAAgB,eAAgB,GAAI,YAAa,YAAa,YAAa,GAAI,GAAI,YAAa,YAAa,YAAa,GAAI,GAAI,GAAI,GAAI,GAAI,YAAa,cAAe,aAAc,cAAe,YAAa,YAAa,YAAa,gBAAiB,iBAAkB,iBAAkB,YAAa,GAAI,GAAI,GAAI,IAC9sF9wB,EAAmB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,QAAS,SAAU,WAAY,aAAc,SAAU,UAAW,YAAa,cAAe,YAAa,aAAc,WAAY,OAAQ,QAAS,SAAU,SAAU,QAAS,OAAQ,MAAO,MAAO,QAAS,OAAQ,OAAQ,MAAO,QAAS,QAAS,OAAQ,QAAS,YAAa,OAAQ,QAAS,UAAW,WAAY,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,cAAe,YAAa,eAAgB,cAAe,aAAc,QAAS,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,YAAa,MAAO,aAAc,aAAc,GAAI,YAAa,QAAS,WAAY,SAAU,SAAU,YAAa,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,QAAS,WAAY,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,OAAQ,WAAY,UAAW,SAAU,YAAa,aAAc,aAAc,YAAa,YAAa,QAAS,WAAY,WAAY,KAAM,SAAU,WAAY,YAAa,YAAa,eAAgB,MAAO,KAAM,cAAe,YAAa,UAAW,KAAM,WAAY,cAAe,eAAgB,QAAS,KAAM,SAAU,eAAgB,aAAc,aAAc,UAAW,SAAU,cAAe,QAAS,gBAAiB,iBAAkB,WAAY,QAAS,SAAU,SAAU,SAAU,KAAM,KAAM,SAAU,SAAU,eAAgB,gBAAiB,YAAa,aAAc,SAAU,UAAW,YAAa,YAAa,WAAY,WAAY,gBAAiB,iBAAkB,KAAM,KAAM,YAAa,iBAAkB,iBAAkB,eAAgB,cAAe,cAAe,cAAe,SAAU,YAAa,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,QAAS,SAAU,SAAU,cAAe,SAAU,WAAY,aAAc,QAAS,SAAU,QAAS,YAAa,OAAQ,UAAW,eAAgB,SAAU,SACl0EtlG,EAAQslG,iBAAmBA,EAC3B,MAAMF,EAAmB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,QAAS,SAAU,WAAY,aAAc,SAAU,UAAW,YAAa,aAAc,YAAa,aAAc,WAAY,OAAQ,QAAS,SAAU,SAAU,QAAS,OAAQ,MAAO,MAAO,QAAS,OAAQ,OAAQ,MAAO,QAAS,QAAS,OAAQ,QAAS,YAAa,OAAQ,QAAS,UAAW,WAAY,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,cAAe,YAAa,eAAgB,cAAe,aAAc,YAAa,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,YAAa,MAAO,aAAc,aAAc,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,aAAc,OAAQ,WAAY,WAAY,MAAO,SAAU,UAAW,WAAY,cAAe,eAAgB,gBAAiB,gBAAiB,iBAAkB,KAAM,KAAM,GAAI,SAAU,SAAU,YAAa,iBAAkB,GAAI,YAAa,SAAU,iBAAkB,eAAgB,gBAAiB,iBAAkB,WAAY,cAAe,GAAI,eAAgB,GAAI,QAAS,QAAS,aAAc,QAAS,SAAU,QAAS,YAAa,WAAY,GAAI,OAAQ,UAAW,GAAI,eAAgB,SAAU,QAAS,SAAU,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,GAAI,cAAe,GAAI,GAAI,GAAI,GAAI,SAAU,SAAU,KAAM,eAAgB,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,GAAI,GAAI,GAAI,WAAY,GAAI,GAAI,SAAU,SAAU,KAAM,aAAc,GAAI,GAAI,GAAI,IAC/wDplG,EAAQolG,iBAAmBA,EAC3B,MAAMC,EAAkB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,QAAS,SAAU,WAAY,aAAc,SAAU,UAAW,YAAa,cAAe,YAAa,aAAc,WAAY,OAAQ,QAAS,SAAU,SAAU,QAAS,OAAQ,MAAO,MAAO,QAAS,OAAQ,OAAQ,MAAO,QAAS,QAAS,OAAQ,QAAS,YAAa,OAAQ,QAAS,UAAW,WAAY,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,cAAe,YAAa,eAAgB,cAAe,aAAc,QAAS,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,YAAa,MAAO,aAAc,aAAc,SAAU,OAAQ,SAAU,iBAAkB,SAAU,eAAgB,WAAY,SAAU,YAAa,aAAc,cAAe,SAAU,gBAAiB,KAAM,SAAU,SAAU,SAAU,SAAU,YAAa,aAAc,eAAgB,gBAAiB,SAAU,SAAU,SAAU,QAAS,YAAa,SAAU,iBAAkB,KAAM,SAAU,SAAU,YAAa,QAAS,aAAc,OAAQ,WAAY,WAAY,MAAO,YAAa,UAAW,WAAY,YAAa,cAAe,gBAAiB,aAAc,SAAU,aAAc,SAAU,SAAU,YAAa,cAAe,gBAAiB,QAAS,KAAM,YAAa,iBAAkB,UAAW,cAAe,eAAgB,iBAAkB,aAAc,UAAW,gBAAiB,eAAgB,SAAU,SAAU,cAAe,SAAU,YAAa,QAAS,KAAM,WAAY,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,YAAa,MAAO,SAAU,SAAU,SAAU,cAAe,SAAU,YAAa,WAAY,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,QAAS,aAAc,SAAU,SAAU,cAAe,SAAU,YAAa,QAAS,KAAM,WAAY,SAAU,SAAU,cAAe,YAAa,SAAU,SAAU,cAAe,YAAa,MAAO,SAAU,SAAU,SAAU,cAAe,SAAU,YAAa,SAAU,SAAU,SAAU,SAAU,cAAe,YAAa,SAAU,QAAS,aACl0ErlG,EAAQqlG,gBAAkBA,EAC1B,MAAME,EAAoB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,QAAS,SAAU,YAAa,aAAc,cAAe,UAAW,YAAa,WAAY,YAAa,aAAc,eAAgB,OAAQ,QAAS,QAAS,SAAU,QAAS,OAAQ,MAAO,MAAO,QAAS,OAAQ,OAAQ,MAAO,QAAS,QAAS,OAAQ,QAAS,YAAa,OAAQ,QAAS,UAAW,WAAY,YAAa,QAAS,OAAQ,MAAO,QAAS,UAAW,MAAO,QAAS,MAAO,OAAQ,SAAU,QAAS,SAAU,KAAM,KAAM,UAAW,KAAM,QAAS,MAAO,QAAS,MAAO,UAAW,SAAU,QAAS,KAAM,MAAO,OAAQ,cAAe,YAAa,eAAgB,gBAAiB,aAAc,YAAa,QAAS,OAAQ,MAAO,QAAS,UAAW,MAAO,QAAS,MAAO,OAAQ,OAAQ,QAAS,SAAU,KAAM,KAAM,UAAW,KAAM,QAAS,MAAO,QAAS,MAAO,UAAW,SAAU,QAAS,KAAM,MAAO,OAAQ,YAAa,MAAO,aAAc,UAAW,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,OAAQ,WAAY,SAAU,YAAa,WAAY,WAAY,SAAU,OAAQ,UAAW,QAAS,QAAS,YAAa,YAAa,UAAW,aAAc,YAAa,SAAU,YAAa,SAAU,eAAgB,WAAY,eAAgB,cAAe,SAAU,SAAU,WAAY,cAAe,cAAe,WAAY,cAAe,eAAgB,iBAAkB,QAAS,WAAY,WAAY,cAAe,iBAAkB,aAAc,WAAY,eAAgB,QAAS,iBAAkB,iBAAkB,YAAa,eAAgB,eAAgB,UAAW,aAAc,QAAS,WAAY,gBAAiB,iBAAkB,iBAAkB,UAAW,UAAW,UAAW,aAAc,aAAc,YAAa,eAAgB,eAAgB,aAAc,gBAAiB,eAAgB,UAAW,YAAa,eAAgB,gBAAiB,gBAAiB,YAAa,cAAe,cAAe,cAAe,gBAAiB,gBAAiB,gBAAiB,cAAe,eAAgB,cAAe,UAAW,GAAI,aAAc,WAAY,aAAc,aAAc,aAAc,eAAgB,eAAgB,eAAgB,iBAAkB,iBAAkB,iBAAkB,eAAgB,gBAAiB,eAAgB,IACh8EvlG,EAAQulG,kBAAoBA,EAC5B,MAAMC,EAAuB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,QAAS,KAAM,KAAM,OAAQ,KAAM,KAAM,KAAM,OAAQ,OAAQ,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,GAAI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAA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,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,IACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,MACVA,EAAE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EN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,MAEN,CACC4qB,MAAO,KACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5qB,IAAK,OAEN,CACC4qB,MAAO,MACP5q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A,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,OACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,UACdA,EAAE,KAAY,SACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACd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K,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC14CC,EAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,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","file":"js/chunk-cf6649ce.97f38e25.js","sourcesContent":["/* 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(typeof window !== \"undefined\"\n ? window\n : {}\n).pdfjsWorker = require(\"./pdf.worker.js\");\n","export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--7-oneOf-1-2!./pdf_viewer.css?vue&type=style&index=0&lang=css&\"","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\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.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = root.pdfjsWorker = 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, \"WorkerMessageHandler\", {\n enumerable: true,\n get: function () {\n return _worker.WorkerMessageHandler;\n }\n});\n\nvar _worker = __w_pdfjs_require__(1);\n\nconst pdfjsVersion = '2.5.207';\nconst pdfjsBuild = '0974d605';\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.WorkerMessageHandler = exports.WorkerTask = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _pdf_manager = __w_pdfjs_require__(6);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(45);\n\nvar _worker_stream = __w_pdfjs_require__(46);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar WorkerTask = function WorkerTaskClosure() {\n function WorkerTask(name) {\n this.name = name;\n this.terminated = false;\n this._capability = (0, _util.createPromiseCapability)();\n }\n\n WorkerTask.prototype = {\n get finished() {\n return this._capability.promise;\n },\n\n finish() {\n this._capability.resolve();\n },\n\n terminate() {\n this.terminated = true;\n },\n\n ensureNotTerminated() {\n if (this.terminated) {\n throw new Error(\"Worker task was terminated\");\n }\n }\n\n };\n return WorkerTask;\n}();\n\nexports.WorkerTask = WorkerTask;\nvar WorkerMessageHandler = {\n setup(handler, port) {\n var testMessageProcessed = false;\n handler.on(\"test\", function wphSetupTest(data) {\n if (testMessageProcessed) {\n return;\n }\n\n testMessageProcessed = true;\n\n if (!(data instanceof Uint8Array)) {\n handler.send(\"test\", null);\n return;\n }\n\n const supportTransfers = data[0] === 255;\n handler.postMessageTransfers = supportTransfers;\n handler.send(\"test\", {\n supportTransfers\n });\n });\n handler.on(\"configure\", function wphConfigure(data) {\n (0, _util.setVerbosityLevel)(data.verbosity);\n });\n handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n },\n\n createDocumentHandler(docParams, port) {\n var pdfManager;\n var terminated = false;\n var cancelXHRs = null;\n var WorkerTasks = [];\n const verbosity = (0, _util.getVerbosityLevel)();\n const apiVersion = docParams.apiVersion;\n const workerVersion = '2.5.207';\n\n if (apiVersion !== workerVersion) {\n throw new Error(`The API version \"${apiVersion}\" does not match ` + `the Worker version \"${workerVersion}\".`);\n }\n\n const enumerableProperties = [];\n\n for (const property in []) {\n enumerableProperties.push(property);\n }\n\n if (enumerableProperties.length) {\n throw new Error(\"The `Array.prototype` contains unexpected enumerable properties: \" + enumerableProperties.join(\", \") + \"; thus breaking e.g. `for...in` iteration of `Array`s.\");\n }\n\n if (typeof ReadableStream === \"undefined\" || typeof Promise.allSettled === \"undefined\") {\n throw new Error(\"The browser/environment lacks native support for critical \" + \"functionality used by the PDF.js library (e.g. \" + \"`ReadableStream` and/or `Promise.allSettled`); \" + \"please use an ES5-compatible build instead.\");\n }\n\n var docId = docParams.docId;\n var docBaseUrl = docParams.docBaseUrl;\n var workerHandlerName = docParams.docId + \"_worker\";\n var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);\n handler.postMessageTransfers = docParams.postMessageTransfers;\n\n function ensureNotTerminated() {\n if (terminated) {\n throw new Error(\"Worker was terminated\");\n }\n }\n\n function startWorkerTask(task) {\n WorkerTasks.push(task);\n }\n\n function finishWorkerTask(task) {\n task.finish();\n var i = WorkerTasks.indexOf(task);\n WorkerTasks.splice(i, 1);\n }\n\n async function loadDocument(recoveryMode) {\n await pdfManager.ensureDoc(\"checkHeader\");\n await pdfManager.ensureDoc(\"parseStartXRef\");\n await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n\n if (!recoveryMode) {\n await pdfManager.ensureDoc(\"checkFirstPage\");\n }\n\n const [numPages, fingerprint] = await Promise.all([pdfManager.ensureDoc(\"numPages\"), pdfManager.ensureDoc(\"fingerprint\")]);\n return {\n numPages,\n fingerprint\n };\n }\n\n function getPdfManager(data, evaluatorOptions) {\n var pdfManagerCapability = (0, _util.createPromiseCapability)();\n let newPdfManager;\n var source = data.source;\n\n if (source.data) {\n try {\n newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n\n return pdfManagerCapability.promise;\n }\n\n var pdfStream,\n cachedChunks = [];\n\n try {\n pdfStream = new _worker_stream.PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n\n var fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady.then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n\n var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n msgHandler: handler,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize\n }, evaluatorOptions, docBaseUrl);\n\n for (let i = 0; i < cachedChunks.length; i++) {\n newPdfManager.sendProgressiveData(cachedChunks[i]);\n }\n\n cachedChunks = [];\n pdfManagerCapability.resolve(newPdfManager);\n cancelXHRs = null;\n }).catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n var loaded = 0;\n\n var flushChunks = function () {\n var pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n\n if (source.length && pdfFile.length !== source.length) {\n (0, _util.warn)(\"reported HTTP length is different from actual\");\n }\n\n try {\n newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n\n cachedChunks = [];\n };\n\n var readPromise = new Promise(function (resolve, reject) {\n var readChunk = function ({\n value,\n done\n }) {\n try {\n ensureNotTerminated();\n\n if (done) {\n if (!newPdfManager) {\n flushChunks();\n }\n\n cancelXHRs = null;\n return;\n }\n\n loaded += (0, _util.arrayByteLength)(value);\n\n if (!fullRequest.isStreamingSupported) {\n handler.send(\"DocProgress\", {\n loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0)\n });\n }\n\n if (newPdfManager) {\n newPdfManager.sendProgressiveData(value);\n } else {\n cachedChunks.push(value);\n }\n\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n\n fullRequest.read().then(readChunk, reject);\n });\n readPromise.catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n\n cancelXHRs = function (reason) {\n pdfStream.cancelAllRequests(reason);\n };\n\n return pdfManagerCapability.promise;\n }\n\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send(\"GetDoc\", {\n pdfInfo: doc\n });\n }\n\n function onFailure(ex) {\n ensureNotTerminated();\n\n if (ex instanceof _util.PasswordException) {\n var task = new WorkerTask(`PasswordException: response ${ex.code}`);\n startWorkerTask(task);\n handler.sendWithPromise(\"PasswordRequest\", ex).then(function ({\n password\n }) {\n finishWorkerTask(task);\n pdfManager.updatePassword(password);\n pdfManagerReady();\n }).catch(function () {\n finishWorkerTask(task);\n handler.send(\"DocException\", ex);\n });\n } else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {\n handler.send(\"DocException\", ex);\n } else {\n handler.send(\"DocException\", new _util.UnknownErrorException(ex.message, ex.toString()));\n }\n }\n\n function pdfManagerReady() {\n ensureNotTerminated();\n loadDocument(false).then(onSuccess, function loadFailure(ex) {\n ensureNotTerminated();\n\n if (!(ex instanceof _core_utils.XRefParseException)) {\n onFailure(ex);\n return;\n }\n\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n loadDocument(true).then(onSuccess, onFailure);\n });\n }, onFailure);\n }\n\n ensureNotTerminated();\n var evaluatorOptions = {\n maxImageSize: data.maxImageSize,\n disableFontFace: data.disableFontFace,\n ignoreErrors: data.ignoreErrors,\n isEvalSupported: data.isEvalSupported,\n fontExtraProperties: data.fontExtraProperties\n };\n getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {\n if (terminated) {\n newPdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n throw new Error(\"Worker was terminated\");\n }\n\n pdfManager = newPdfManager;\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send(\"DataLoaded\", {\n length: stream.bytes.byteLength\n });\n });\n }).then(pdfManagerReady, onFailure);\n }\n\n handler.on(\"GetPage\", function wphSetupGetPage(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return Promise.all([pdfManager.ensure(page, \"rotate\"), pdfManager.ensure(page, \"ref\"), pdfManager.ensure(page, \"userUnit\"), pdfManager.ensure(page, \"view\")]).then(function ([rotate, ref, userUnit, view]) {\n return {\n rotate,\n ref,\n userUnit,\n view\n };\n });\n });\n });\n handler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data) {\n var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);\n\n var catalog = pdfManager.pdfDocument.catalog;\n return catalog.getPageIndex(ref);\n });\n handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n return pdfManager.ensureCatalog(\"destinations\");\n });\n handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n });\n handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n return pdfManager.ensureCatalog(\"pageLabels\");\n });\n handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n return pdfManager.ensureCatalog(\"pageLayout\");\n });\n handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog(\"pageMode\");\n });\n handler.on(\"GetViewerPreferences\", function (data) {\n return pdfManager.ensureCatalog(\"viewerPreferences\");\n });\n handler.on(\"GetOpenAction\", function (data) {\n return pdfManager.ensureCatalog(\"openAction\");\n });\n handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog(\"attachments\");\n });\n handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog(\"javaScript\");\n });\n handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog(\"documentOutline\");\n });\n handler.on(\"GetPermissions\", function (data) {\n return pdfManager.ensureCatalog(\"permissions\");\n });\n handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n return Promise.all([pdfManager.ensureDoc(\"documentInfo\"), pdfManager.ensureCatalog(\"metadata\")]);\n });\n handler.on(\"GetData\", function wphSetupGetData(data) {\n pdfManager.requestLoadedStream();\n return pdfManager.onLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n handler.on(\"GetStats\", function wphSetupGetStats(data) {\n return pdfManager.pdfDocument.xref.stats;\n });\n handler.on(\"GetAnnotations\", function ({\n pageIndex,\n intent\n }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return page.getAnnotationsData(intent);\n });\n });\n handler.on(\"GetOperatorList\", function wphSetupRenderPage(data, sink) {\n var pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n startWorkerTask(task);\n const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n page.getOperatorList({\n handler,\n sink,\n task,\n intent: data.intent,\n renderInteractiveForms: data.renderInteractiveForms\n }).then(function (operatorListInfo) {\n finishWorkerTask(task);\n\n if (start) {\n (0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);\n }\n\n sink.close();\n }, function (reason) {\n finishWorkerTask(task);\n\n if (task.terminated) {\n return;\n }\n\n handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n });\n sink.error(reason);\n });\n });\n }, this);\n handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n var pageIndex = data.pageIndex;\n\n sink.onPull = function (desiredSize) {};\n\n sink.onCancel = function (reason) {};\n\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n startWorkerTask(task);\n const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n page.extractTextContent({\n handler,\n task,\n sink,\n normalizeWhitespace: data.normalizeWhitespace,\n combineTextItems: data.combineTextItems\n }).then(function () {\n finishWorkerTask(task);\n\n if (start) {\n (0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);\n }\n\n sink.close();\n }, function (reason) {\n finishWorkerTask(task);\n\n if (task.terminated) {\n return;\n }\n\n sink.error(reason);\n });\n });\n });\n handler.on(\"FontFallback\", function (data) {\n return pdfManager.fontFallback(data.id, handler);\n });\n handler.on(\"Cleanup\", function wphCleanup(data) {\n return pdfManager.cleanup(true);\n });\n handler.on(\"Terminate\", function wphTerminate(data) {\n terminated = true;\n const waitOn = [];\n\n if (pdfManager) {\n pdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n const cleanupPromise = pdfManager.cleanup();\n waitOn.push(cleanupPromise);\n pdfManager = null;\n } else {\n (0, _primitives.clearPrimitiveCaches)();\n }\n\n if (cancelXHRs) {\n cancelXHRs(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n WorkerTasks.forEach(function (task) {\n waitOn.push(task.finished);\n task.terminate();\n });\n return Promise.all(waitOn).then(function () {\n handler.destroy();\n handler = null;\n });\n });\n handler.on(\"Ready\", function wphReady(data) {\n setupDoc(docParams);\n docParams = null;\n });\n return workerHandlerName;\n },\n\n initializeFromPort(port) {\n var handler = new _message_handler.MessageHandler(\"worker\", \"main\", port);\n WorkerMessageHandler.setup(handler, port);\n handler.send(\"ready\", null);\n }\n\n};\nexports.WorkerMessageHandler = WorkerMessageHandler;\n\nfunction isMessagePort(maybePort) {\n return typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort;\n}\n\nif (typeof window === \"undefined\" && !_is_node.isNodeJS && typeof self !== \"undefined\" && isMessagePort(self)) {\n WorkerMessageHandler.initializeFromPort(self);\n}\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.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\nexports.isEmptyObj = isEmptyObj;\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};\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 stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (const key in obj) {\n return false;\n }\n\n return true;\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 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;\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.clearPrimitiveCaches = clearPrimitiveCaches;\nexports.isEOF = isEOF;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isName = isName;\nexports.isRef = isRef;\nexports.isRefsEqual = isRefsEqual;\nexports.isStream = isStream;\nexports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar EOF = {};\nexports.EOF = EOF;\n\nvar Name = function NameClosure() {\n let nameCache = Object.create(null);\n\n function Name(name) {\n this.name = name;\n }\n\n Name.prototype = {};\n\n Name.get = function Name_get(name) {\n var nameValue = nameCache[name];\n return nameValue ? nameValue : nameCache[name] = new Name(name);\n };\n\n Name._clearCache = function () {\n nameCache = Object.create(null);\n };\n\n return Name;\n}();\n\nexports.Name = Name;\n\nvar Cmd = function CmdClosure() {\n let cmdCache = Object.create(null);\n\n function Cmd(cmd) {\n this.cmd = cmd;\n }\n\n Cmd.prototype = {};\n\n Cmd.get = function Cmd_get(cmd) {\n var cmdValue = cmdCache[cmd];\n return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);\n };\n\n Cmd._clearCache = function () {\n cmdCache = Object.create(null);\n };\n\n return Cmd;\n}();\n\nexports.Cmd = Cmd;\n\nvar Dict = function DictClosure() {\n var nonSerializable = function nonSerializableClosure() {\n return nonSerializable;\n };\n\n function Dict(xref) {\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable;\n }\n\n Dict.prototype = {\n assignXref: function Dict_assignXref(newXref) {\n this.xref = newXref;\n },\n\n get(key1, key2, key3) {\n let value = this._map[key1];\n\n if (value === undefined && key2 !== undefined) {\n value = this._map[key2];\n\n if (value === undefined && key3 !== undefined) {\n value = this._map[key3];\n }\n }\n\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n\n return value;\n },\n\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n\n if (value === undefined && key2 !== undefined) {\n value = this._map[key2];\n\n if (value === undefined && key3 !== undefined) {\n value = this._map[key3];\n }\n }\n\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n\n return value;\n },\n\n getArray(key1, key2, key3) {\n let value = this.get(key1, key2, key3);\n\n if (!Array.isArray(value) || !this.xref) {\n return value;\n }\n\n value = value.slice();\n\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (!(value[i] instanceof Ref)) {\n continue;\n }\n\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n\n return value;\n },\n\n getRaw: function Dict_getRaw(key) {\n return this._map[key];\n },\n getKeys: function Dict_getKeys() {\n return Object.keys(this._map);\n },\n set: function Dict_set(key, value) {\n this._map[key] = value;\n },\n has: function Dict_has(key) {\n return this._map[key] !== undefined;\n },\n forEach: function Dict_forEach(callback) {\n for (var key in this._map) {\n callback(key, this.get(key));\n }\n }\n };\n Dict.empty = new Dict(null);\n\n Dict.merge = function (xref, dictArray) {\n const mergedDict = new Dict(xref);\n\n for (let i = 0, ii = dictArray.length; i < ii; i++) {\n const dict = dictArray[i];\n\n if (!isDict(dict)) {\n continue;\n }\n\n for (const keyName in dict._map) {\n if (mergedDict._map[keyName] !== undefined) {\n continue;\n }\n\n mergedDict._map[keyName] = dict._map[keyName];\n }\n }\n\n return mergedDict;\n };\n\n return Dict;\n}();\n\nexports.Dict = Dict;\n\nvar Ref = function RefClosure() {\n let refCache = Object.create(null);\n\n function Ref(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n Ref.prototype = {\n toString: function Ref_toString() {\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n\n return `${this.num}R${this.gen}`;\n }\n };\n\n Ref.get = function (num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n const refValue = refCache[key];\n return refValue ? refValue : refCache[key] = new Ref(num, gen);\n };\n\n Ref._clearCache = function () {\n refCache = Object.create(null);\n };\n\n return Ref;\n}();\n\nexports.Ref = Ref;\n\nvar RefSet = function RefSetClosure() {\n function RefSet() {\n this.dict = Object.create(null);\n }\n\n RefSet.prototype = {\n has: function RefSet_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSet_put(ref) {\n this.dict[ref.toString()] = true;\n },\n remove: function RefSet_remove(ref) {\n delete this.dict[ref.toString()];\n }\n };\n return RefSet;\n}();\n\nexports.RefSet = RefSet;\n\nvar RefSetCache = function RefSetCacheClosure() {\n function RefSetCache() {\n this.dict = Object.create(null);\n }\n\n RefSetCache.prototype = {\n get size() {\n return Object.keys(this.dict).length;\n },\n\n get: function RefSetCache_get(ref) {\n return this.dict[ref.toString()];\n },\n has: function RefSetCache_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSetCache_put(ref, obj) {\n this.dict[ref.toString()] = obj;\n },\n putAlias: function RefSetCache_putAlias(ref, aliasRef) {\n this.dict[ref.toString()] = this.get(aliasRef);\n },\n forEach: function RefSetCache_forEach(callback) {\n for (const i in this.dict) {\n callback(this.dict[i]);\n }\n },\n clear: function RefSetCache_clear() {\n this.dict = Object.create(null);\n }\n };\n return RefSetCache;\n}();\n\nexports.RefSetCache = RefSetCache;\n\nfunction isEOF(v) {\n return v === EOF;\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type));\n}\n\nfunction isRef(v) {\n return v instanceof Ref;\n}\n\nfunction isRefsEqual(v1, v2) {\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction isStream(v) {\n return typeof v === \"object\" && v !== null && v.getBytes !== undefined;\n}\n\nfunction clearPrimitiveCaches() {\n Cmd._clearCache();\n\n Name._clearCache();\n\n Ref._clearCache();\n}\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.NetworkPdfManager = exports.LocalPdfManager = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _chunked_stream = __w_pdfjs_require__(7);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _document = __w_pdfjs_require__(9);\n\nvar _stream = __w_pdfjs_require__(12);\n\nclass BasePdfManager {\n constructor() {\n if (this.constructor === BasePdfManager) {\n (0, _util.unreachable)(\"Cannot initialize BasePdfManager.\");\n }\n }\n\n get docId() {\n return this._docId;\n }\n\n get password() {\n return this._password;\n }\n\n get docBaseUrl() {\n let docBaseUrl = null;\n\n if (this._docBaseUrl) {\n const absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl);\n\n if (absoluteUrl) {\n docBaseUrl = absoluteUrl.href;\n } else {\n (0, _util.warn)(`Invalid absolute docBaseUrl: \"${this._docBaseUrl}\".`);\n }\n }\n\n return (0, _util.shadow)(this, \"docBaseUrl\", docBaseUrl);\n }\n\n onLoadedStream() {\n (0, _util.unreachable)(\"Abstract method `onLoadedStream` called\");\n }\n\n ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n }\n\n ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n }\n\n ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n }\n\n getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n }\n\n fontFallback(id, handler) {\n return this.pdfDocument.fontFallback(id, handler);\n }\n\n cleanup(manuallyTriggered = false) {\n return this.pdfDocument.cleanup(manuallyTriggered);\n }\n\n async ensure(obj, prop, args) {\n (0, _util.unreachable)(\"Abstract method `ensure` called\");\n }\n\n requestRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method `requestRange` called\");\n }\n\n requestLoadedStream() {\n (0, _util.unreachable)(\"Abstract method `requestLoadedStream` called\");\n }\n\n sendProgressiveData(chunk) {\n (0, _util.unreachable)(\"Abstract method `sendProgressiveData` called\");\n }\n\n updatePassword(password) {\n this._password = password;\n }\n\n terminate(reason) {\n (0, _util.unreachable)(\"Abstract method `terminate` called\");\n }\n\n}\n\nclass LocalPdfManager extends BasePdfManager {\n constructor(docId, data, password, evaluatorOptions, docBaseUrl) {\n super();\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = docBaseUrl;\n this.evaluatorOptions = evaluatorOptions;\n const stream = new _stream.Stream(data);\n this.pdfDocument = new _document.PDFDocument(this, stream);\n this._loadedStreamPromise = Promise.resolve(stream);\n }\n\n async ensure(obj, prop, args) {\n const value = obj[prop];\n\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n\n return value;\n }\n\n requestRange(begin, end) {\n return Promise.resolve();\n }\n\n requestLoadedStream() {}\n\n onLoadedStream() {\n return this._loadedStreamPromise;\n }\n\n terminate(reason) {}\n\n}\n\nexports.LocalPdfManager = LocalPdfManager;\n\nclass NetworkPdfManager extends BasePdfManager {\n constructor(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) {\n super();\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = docBaseUrl;\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, {\n msgHandler: args.msgHandler,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize\n });\n this.pdfDocument = new _document.PDFDocument(this, this.streamManager.getStream());\n }\n\n async ensure(obj, prop, args) {\n try {\n const value = obj[prop];\n\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n\n return value;\n } catch (ex) {\n if (!(ex instanceof _core_utils.MissingDataException)) {\n throw ex;\n }\n\n await this.requestRange(ex.begin, ex.end);\n return this.ensure(obj, prop, args);\n }\n }\n\n requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n }\n\n requestLoadedStream() {\n this.streamManager.requestAllChunks();\n }\n\n sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({\n chunk\n });\n }\n\n onLoadedStream() {\n return this.streamManager.onLoadedStream();\n }\n\n terminate(reason) {\n this.streamManager.abort(reason);\n }\n\n}\n\nexports.NetworkPdfManager = NetworkPdfManager;\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.ChunkedStreamManager = exports.ChunkedStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nclass ChunkedStream {\n constructor(length, chunkSize, manager) {\n this.bytes = new Uint8Array(length);\n this.start = 0;\n this.pos = 0;\n this.end = length;\n this.chunkSize = chunkSize;\n this.loadedChunks = [];\n this.numChunksLoaded = 0;\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1;\n }\n\n getMissingChunks() {\n const chunks = [];\n\n for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n chunks.push(chunk);\n }\n }\n\n return chunks;\n }\n\n getBaseStreams() {\n return [this];\n }\n\n allChunksLoaded() {\n return this.numChunksLoaded === this.numChunks;\n }\n\n onReceiveData(begin, chunk) {\n const chunkSize = this.chunkSize;\n\n if (begin % chunkSize !== 0) {\n throw new Error(`Bad begin offset: ${begin}`);\n }\n\n const end = begin + chunk.byteLength;\n\n if (end % chunkSize !== 0 && end !== this.bytes.length) {\n throw new Error(`Bad end offset: ${end}`);\n }\n\n this.bytes.set(new Uint8Array(chunk), begin);\n const beginChunk = Math.floor(begin / chunkSize);\n const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n }\n\n onReceiveProgressiveData(data) {\n let position = this.progressiveDataLength;\n const beginChunk = Math.floor(position / this.chunkSize);\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n const endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n }\n\n ensureByte(pos) {\n if (pos < this.progressiveDataLength) {\n return;\n }\n\n const chunk = Math.floor(pos / this.chunkSize);\n\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n\n if (!this.loadedChunks[chunk]) {\n throw new _core_utils.MissingDataException(pos, pos + 1);\n }\n\n this.lastSuccessfulEnsureByteChunk = chunk;\n }\n\n ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n\n if (end <= this.progressiveDataLength) {\n return;\n }\n\n const chunkSize = this.chunkSize;\n const beginChunk = Math.floor(begin / chunkSize);\n const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n throw new _core_utils.MissingDataException(begin, end);\n }\n }\n }\n\n nextEmptyChunk(beginChunk) {\n const numChunks = this.numChunks;\n\n for (let i = 0; i < numChunks; ++i) {\n const chunk = (beginChunk + i) % numChunks;\n\n if (!this.loadedChunks[chunk]) {\n return chunk;\n }\n }\n\n return null;\n }\n\n hasChunk(chunk) {\n return !!this.loadedChunks[chunk];\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n const pos = this.pos;\n\n if (pos >= this.end) {\n return -1;\n }\n\n if (pos >= this.progressiveDataLength) {\n this.ensureByte(pos);\n }\n\n return this.bytes[this.pos++];\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getBytes(length, forceClamped = false) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n if (strEnd > this.progressiveDataLength) {\n this.ensureRange(pos, strEnd);\n }\n\n const subarray = bytes.subarray(pos, strEnd);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n\n let end = pos + length;\n\n if (end > strEnd) {\n end = strEnd;\n }\n\n if (end > this.progressiveDataLength) {\n this.ensureRange(pos, end);\n }\n\n this.pos = end;\n const subarray = bytes.subarray(pos, end);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n\n if (peekedByte !== -1) {\n this.pos--;\n }\n\n return peekedByte;\n }\n\n peekBytes(length, forceClamped = false) {\n const bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n\n if (end > this.end) {\n end = this.end;\n }\n\n if (end > this.progressiveDataLength) {\n this.ensureRange(begin, end);\n }\n\n return this.bytes.subarray(begin, end);\n }\n\n skip(n) {\n if (!n) {\n n = 1;\n }\n\n this.pos += n;\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start, length, dict) {\n if (length) {\n if (start + length > this.progressiveDataLength) {\n this.ensureRange(start, start + length);\n }\n } else {\n if (start >= this.progressiveDataLength) {\n this.ensureByte(start);\n }\n }\n\n function ChunkedStreamSubstream() {}\n\n ChunkedStreamSubstream.prototype = Object.create(this);\n\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n const chunkSize = this.chunkSize;\n const beginChunk = Math.floor(this.start / chunkSize);\n const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n const missingChunks = [];\n\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n missingChunks.push(chunk);\n }\n }\n\n return missingChunks;\n };\n\n ChunkedStreamSubstream.prototype.allChunksLoaded = function () {\n if (this.numChunksLoaded === this.numChunks) {\n return true;\n }\n\n return this.getMissingChunks().length === 0;\n };\n\n const subStream = new ChunkedStreamSubstream();\n subStream.pos = subStream.start = start;\n subStream.end = start + length || this.end;\n subStream.dict = dict;\n return subStream;\n }\n\n}\n\nexports.ChunkedStream = ChunkedStream;\n\nclass ChunkedStreamManager {\n constructor(pdfNetworkStream, args) {\n this.length = args.length;\n this.chunkSize = args.rangeChunkSize;\n this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n this.pdfNetworkStream = pdfNetworkStream;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n this.currRequestId = 0;\n this.chunksNeededByRequest = Object.create(null);\n this.requestsByChunk = Object.create(null);\n this.promisesByRequest = Object.create(null);\n this.progressiveDataLength = 0;\n this.aborted = false;\n this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n }\n\n onLoadedStream() {\n return this._loadedStreamCapability.promise;\n }\n\n sendRequest(begin, end) {\n const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n\n let chunks = [],\n loaded = 0;\n const promise = new Promise((resolve, reject) => {\n const readChunk = chunk => {\n try {\n if (!chunk.done) {\n const data = chunk.value;\n chunks.push(data);\n loaded += (0, _util.arrayByteLength)(data);\n\n if (rangeReader.isStreamingSupported) {\n this.onProgress({\n loaded\n });\n }\n\n rangeReader.read().then(readChunk, reject);\n return;\n }\n\n const chunkData = (0, _util.arraysToBytes)(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n\n rangeReader.read().then(readChunk, reject);\n });\n promise.then(data => {\n if (this.aborted) {\n return;\n }\n\n this.onReceiveData({\n chunk: data,\n begin\n });\n });\n }\n\n requestAllChunks() {\n const missingChunks = this.stream.getMissingChunks();\n\n this._requestChunks(missingChunks);\n\n return this._loadedStreamCapability.promise;\n }\n\n _requestChunks(chunks) {\n const requestId = this.currRequestId++;\n const chunksNeeded = Object.create(null);\n this.chunksNeededByRequest[requestId] = chunksNeeded;\n\n for (const chunk of chunks) {\n if (!this.stream.hasChunk(chunk)) {\n chunksNeeded[chunk] = true;\n }\n }\n\n if ((0, _util.isEmptyObj)(chunksNeeded)) {\n return Promise.resolve();\n }\n\n const capability = (0, _util.createPromiseCapability)();\n this.promisesByRequest[requestId] = capability;\n const chunksToRequest = [];\n\n for (let chunk in chunksNeeded) {\n chunk = chunk | 0;\n\n if (!(chunk in this.requestsByChunk)) {\n this.requestsByChunk[chunk] = [];\n chunksToRequest.push(chunk);\n }\n\n this.requestsByChunk[chunk].push(requestId);\n }\n\n if (!chunksToRequest.length) {\n return capability.promise;\n }\n\n const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n\n for (const groupedChunk of groupedChunksToRequest) {\n const begin = groupedChunk.beginChunk * this.chunkSize;\n const end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n this.sendRequest(begin, end);\n }\n\n return capability.promise;\n }\n\n getStream() {\n return this.stream;\n }\n\n requestRange(begin, end) {\n end = Math.min(end, this.length);\n const beginChunk = this.getBeginChunk(begin);\n const endChunk = this.getEndChunk(end);\n const chunks = [];\n\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n\n return this._requestChunks(chunks);\n }\n\n requestRanges(ranges = []) {\n const chunksToRequest = [];\n\n for (const range of ranges) {\n const beginChunk = this.getBeginChunk(range.begin);\n const endChunk = this.getEndChunk(range.end);\n\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!chunksToRequest.includes(chunk)) {\n chunksToRequest.push(chunk);\n }\n }\n }\n\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n }\n\n groupChunks(chunks) {\n const groupedChunks = [];\n let beginChunk = -1;\n let prevChunk = -1;\n\n for (let i = 0, ii = chunks.length; i < ii; ++i) {\n const chunk = chunks[i];\n\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({\n beginChunk,\n endChunk: prevChunk + 1\n });\n beginChunk = chunk;\n }\n\n if (i + 1 === chunks.length) {\n groupedChunks.push({\n beginChunk,\n endChunk: chunk + 1\n });\n }\n\n prevChunk = chunk;\n }\n\n return groupedChunks;\n }\n\n onProgress(args) {\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n total: this.length\n });\n }\n\n onReceiveData(args) {\n const chunk = args.chunk;\n const isProgressive = args.begin === undefined;\n const begin = isProgressive ? this.progressiveDataLength : args.begin;\n const end = begin + chunk.byteLength;\n const beginChunk = Math.floor(begin / this.chunkSize);\n const endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize);\n\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n\n if (this.stream.allChunksLoaded()) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n\n const loadedRequests = [];\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n const requestIds = this.requestsByChunk[curChunk] || [];\n delete this.requestsByChunk[curChunk];\n\n for (const requestId of requestIds) {\n const chunksNeeded = this.chunksNeededByRequest[requestId];\n\n if (curChunk in chunksNeeded) {\n delete chunksNeeded[curChunk];\n }\n\n if (!(0, _util.isEmptyObj)(chunksNeeded)) {\n continue;\n }\n\n loadedRequests.push(requestId);\n }\n }\n\n if (!this.disableAutoFetch && (0, _util.isEmptyObj)(this.requestsByChunk)) {\n let nextEmptyChunk;\n\n if (this.stream.numChunksLoaded === 1) {\n const lastChunk = this.stream.numChunks - 1;\n\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n\n if (Number.isInteger(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n\n for (const requestId of loadedRequests) {\n const capability = this.promisesByRequest[requestId];\n delete this.promisesByRequest[requestId];\n capability.resolve();\n }\n\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length\n });\n }\n\n onError(err) {\n this._loadedStreamCapability.reject(err);\n }\n\n getBeginChunk(begin) {\n return Math.floor(begin / this.chunkSize);\n }\n\n getEndChunk(end) {\n return Math.floor((end - 1) / this.chunkSize) + 1;\n }\n\n abort(reason) {\n this.aborted = true;\n\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests(reason);\n }\n\n for (const requestId in this.promisesByRequest) {\n this.promisesByRequest[requestId].reject(reason);\n }\n }\n\n}\n\nexports.ChunkedStreamManager = ChunkedStreamManager;\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.getLookupTableFactory = getLookupTableFactory;\nexports.getInheritableProperty = getInheritableProperty;\nexports.toRomanNumerals = toRomanNumerals;\nexports.log2 = log2;\nexports.readInt8 = readInt8;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.isWhiteSpace = isWhiteSpace;\nexports.XRefParseException = exports.XRefEntryException = exports.MissingDataException = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n\n return lookup;\n };\n}\n\nclass MissingDataException extends _util.BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`);\n this.begin = begin;\n this.end = end;\n }\n\n}\n\nexports.MissingDataException = MissingDataException;\n\nclass XRefEntryException extends _util.BaseException {}\n\nexports.XRefEntryException = XRefEntryException;\n\nclass XRefParseException extends _util.BaseException {}\n\nexports.XRefParseException = XRefParseException;\n\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true\n}) {\n const LOOP_LIMIT = 100;\n let loopCount = 0;\n let values;\n\n while (dict) {\n const value = getArray ? dict.getArray(key) : dict.get(key);\n\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n\n if (!values) {\n values = [];\n }\n\n values.push(value);\n }\n\n if (++loopCount > LOOP_LIMIT) {\n (0, _util.warn)(`getInheritableProperty: maximum loop count exceeded for \"${key}\"`);\n break;\n }\n\n dict = dict.get(\"Parent\");\n }\n\n return values;\n}\n\nconst ROMAN_NUMBER_MAP = [\"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\", \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\", \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"];\n\nfunction toRomanNumerals(number, lowerCase = false) {\n (0, _util.assert)(Number.isInteger(number) && number > 0, \"The number should be a positive integer.\");\n const romanBuf = [];\n let pos;\n\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n\n pos = number / 100 | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n pos = number / 10 | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n return data[offset] << 24 >> 24;\n}\n\nfunction readUint16(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\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.PDFDocument = exports.Page = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _obj = __w_pdfjs_require__(10);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _annotation = __w_pdfjs_require__(25);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _evaluator = __w_pdfjs_require__(27);\n\nvar _function = __w_pdfjs_require__(41);\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nfunction isAnnotationRenderable(annotation, intent) {\n return intent === \"display\" && annotation.viewable || intent === \"print\" && annotation.printable;\n}\n\nclass Page {\n constructor({\n pdfManager,\n xref,\n pageIndex,\n pageDict,\n ref,\n fontCache,\n builtInCMapCache,\n globalImageCache,\n pdfFunctionFactory\n }) {\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.globalImageCache = globalImageCache;\n this.pdfFunctionFactory = pdfFunctionFactory;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n const idCounters = {\n obj: 0\n };\n this.idFactory = {\n createObjId() {\n return `p${pageIndex}_${++idCounters.obj}`;\n },\n\n getDocId() {\n return `g_${pdfManager.docId}`;\n }\n\n };\n }\n\n _getInheritableProperty(key, getArray = false) {\n const value = (0, _core_utils.getInheritableProperty)({\n dict: this.pageDict,\n key,\n getArray,\n stopWhenFound: false\n });\n\n if (!Array.isArray(value)) {\n return value;\n }\n\n if (value.length === 1 || !(0, _primitives.isDict)(value[0])) {\n return value[0];\n }\n\n return _primitives.Dict.merge(this.xref, value);\n }\n\n get content() {\n return this.pageDict.get(\"Contents\");\n }\n\n get resources() {\n return (0, _util.shadow)(this, \"resources\", this._getInheritableProperty(\"Resources\") || _primitives.Dict.empty);\n }\n\n _getBoundingBox(name) {\n const box = this._getInheritableProperty(name, true);\n\n if (Array.isArray(box) && box.length === 4) {\n if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n return box;\n }\n\n (0, _util.warn)(`Empty /${name} entry.`);\n }\n\n return null;\n }\n\n get mediaBox() {\n return (0, _util.shadow)(this, \"mediaBox\", this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX);\n }\n\n get cropBox() {\n return (0, _util.shadow)(this, \"cropBox\", this._getBoundingBox(\"CropBox\") || this.mediaBox);\n }\n\n get userUnit() {\n let obj = this.pageDict.get(\"UserUnit\");\n\n if (!(0, _util.isNum)(obj) || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n\n return (0, _util.shadow)(this, \"userUnit\", obj);\n }\n\n get view() {\n const {\n cropBox,\n mediaBox\n } = this;\n let view;\n\n if (cropBox === mediaBox || (0, _util.isArrayEqual)(cropBox, mediaBox)) {\n view = mediaBox;\n } else {\n const box = _util.Util.intersect(cropBox, mediaBox);\n\n if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n view = box;\n } else {\n (0, _util.warn)(\"Empty /CropBox and /MediaBox intersection.\");\n }\n }\n\n return (0, _util.shadow)(this, \"view\", view || mediaBox);\n }\n\n get rotate() {\n let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate = rotate % 360;\n } else if (rotate < 0) {\n rotate = (rotate % 360 + 360) % 360;\n }\n\n return (0, _util.shadow)(this, \"rotate\", rotate);\n }\n\n getContentStream() {\n const content = this.content;\n let stream;\n\n if (Array.isArray(content)) {\n const xref = this.xref;\n const streams = [];\n\n for (const subStream of content) {\n streams.push(xref.fetchIfRef(subStream));\n }\n\n stream = new _stream.StreamsSequenceStream(streams);\n } else if ((0, _primitives.isStream)(content)) {\n stream = content;\n } else {\n stream = new _stream.NullStream();\n }\n\n return stream;\n }\n\n loadResources(keys) {\n if (!this.resourcesPromise) {\n this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n }\n\n return this.resourcesPromise.then(() => {\n const objectLoader = new _obj.ObjectLoader(this.resources, keys, this.xref);\n return objectLoader.load();\n });\n }\n\n getOperatorList({\n handler,\n sink,\n task,\n intent,\n renderInteractiveForms\n }) {\n const contentStreamPromise = this.pdfManager.ensure(this, \"getContentStream\");\n const resourcesPromise = this.loadResources([\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"]);\n const partialEvaluator = new _evaluator.PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this.idFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n const pageListPromise = dataPromises.then(([contentStream]) => {\n const opList = new _operator_list.OperatorList(intent, sink, this.pageIndex);\n handler.send(\"StartRenderPage\", {\n transparency: partialEvaluator.hasBlendModes(this.resources),\n pageIndex: this.pageIndex,\n intent\n });\n return partialEvaluator.getOperatorList({\n stream: contentStream,\n task,\n resources: this.resources,\n operatorList: opList\n }).then(function () {\n return opList;\n });\n });\n return Promise.all([pageListPromise, this._parsedAnnotations]).then(function ([pageOpList, annotations]) {\n if (annotations.length === 0) {\n pageOpList.flush(true);\n return {\n length: pageOpList.totalLength\n };\n }\n\n const opListPromises = [];\n\n for (const annotation of annotations) {\n if (isAnnotationRenderable(annotation, intent)) {\n opListPromises.push(annotation.getOperatorList(partialEvaluator, task, renderInteractiveForms).catch(function (reason) {\n (0, _util.warn)(\"getOperatorList - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n return null;\n }));\n }\n }\n\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(_util.OPS.beginAnnotations, []);\n\n for (const opList of opLists) {\n pageOpList.addOpList(opList);\n }\n\n pageOpList.addOp(_util.OPS.endAnnotations, []);\n pageOpList.flush(true);\n return {\n length: pageOpList.totalLength\n };\n });\n });\n }\n\n extractTextContent({\n handler,\n task,\n normalizeWhitespace,\n sink,\n combineTextItems\n }) {\n const contentStreamPromise = this.pdfManager.ensure(this, \"getContentStream\");\n const resourcesPromise = this.loadResources([\"ExtGState\", \"XObject\", \"Font\"]);\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(([contentStream]) => {\n const partialEvaluator = new _evaluator.PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this.idFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task,\n resources: this.resources,\n normalizeWhitespace,\n combineTextItems,\n sink\n });\n });\n }\n\n getAnnotationsData(intent) {\n return this._parsedAnnotations.then(function (annotations) {\n const annotationsData = [];\n\n for (let i = 0, ii = annotations.length; i < ii; i++) {\n if (!intent || isAnnotationRenderable(annotations[i], intent)) {\n annotationsData.push(annotations[i].data);\n }\n }\n\n return annotationsData;\n });\n }\n\n get annotations() {\n return (0, _util.shadow)(this, \"annotations\", this._getInheritableProperty(\"Annots\") || []);\n }\n\n get _parsedAnnotations() {\n const parsedAnnotations = this.pdfManager.ensure(this, \"annotations\").then(() => {\n const annotationPromises = [];\n\n for (const annotationRef of this.annotations) {\n annotationPromises.push(_annotation.AnnotationFactory.create(this.xref, annotationRef, this.pdfManager, this.idFactory).catch(function (reason) {\n (0, _util.warn)(`_parsedAnnotations: \"${reason}\".`);\n return null;\n }));\n }\n\n return Promise.all(annotationPromises).then(function (annotations) {\n return annotations.filter(annotation => !!annotation);\n });\n });\n return (0, _util.shadow)(this, \"_parsedAnnotations\", parsedAnnotations);\n }\n\n}\n\nexports.Page = Page;\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT = \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.[0-9]$/;\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n const signatureLength = signature.length;\n const scanBytes = stream.peekBytes(limit);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n return false;\n }\n\n if (backwards) {\n const signatureEnd = signatureLength - 1;\n let pos = scanBytes.length - 1;\n\n while (pos >= signatureEnd) {\n let j = 0;\n\n while (j < signatureLength && scanBytes[pos - j] === signature[signatureEnd - j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n stream.pos += pos - signatureEnd;\n return true;\n }\n\n pos--;\n }\n } else {\n let pos = 0;\n\n while (pos <= scanLength) {\n let j = 0;\n\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n stream.pos += pos;\n return true;\n }\n\n pos++;\n }\n }\n\n return false;\n}\n\nclass PDFDocument {\n constructor(pdfManager, arg) {\n let stream;\n\n if ((0, _primitives.isStream)(arg)) {\n stream = arg;\n } else if ((0, _util.isArrayBuffer)(arg)) {\n stream = new _stream.Stream(arg);\n } else {\n throw new Error(\"PDFDocument: Unknown argument type\");\n }\n\n if (stream.length <= 0) {\n throw new _util.InvalidPDFException(\"The PDF file is empty, i.e. its size is zero bytes.\");\n }\n\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new _obj.XRef(stream, pdfManager);\n this.pdfFunctionFactory = new _function.PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: pdfManager.evaluatorOptions.isEvalSupported\n });\n this._pagePromises = [];\n }\n\n parse(recoveryMode) {\n this.setup(recoveryMode);\n const version = this.catalog.catDict.get(\"Version\");\n\n if ((0, _primitives.isName)(version)) {\n this.pdfFormatVersion = version.name;\n }\n\n try {\n this.acroForm = this.catalog.catDict.get(\"AcroForm\");\n\n if (this.acroForm) {\n this.xfa = this.acroForm.get(\"XFA\");\n const fields = this.acroForm.get(\"Fields\");\n\n if ((!Array.isArray(fields) || fields.length === 0) && !this.xfa) {\n this.acroForm = null;\n }\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.info)(\"Cannot fetch AcroForm entry; assuming no AcroForms are present\");\n this.acroForm = null;\n }\n\n try {\n const collection = this.catalog.catDict.get(\"Collection\");\n\n if ((0, _primitives.isDict)(collection) && collection.getKeys().length > 0) {\n this.collection = collection;\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.info)(\"Cannot fetch Collection dictionary.\");\n }\n }\n\n get linearization() {\n let linearization = null;\n\n try {\n linearization = _parser.Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof _core_utils.MissingDataException) {\n throw err;\n }\n\n (0, _util.info)(err);\n }\n\n return (0, _util.shadow)(this, \"linearization\", linearization);\n }\n\n get startXRef() {\n const stream = this.stream;\n let startXRef = 0;\n\n if (this.linearization) {\n stream.reset();\n\n if (find(stream, ENDOBJ_SIGNATURE)) {\n startXRef = stream.pos + 6 - stream.start;\n }\n } else {\n const step = 1024;\n const startXRefLength = STARTXREF_SIGNATURE.length;\n let found = false,\n pos = stream.end;\n\n while (!found && pos > 0) {\n pos -= step - startXRefLength;\n\n if (pos < 0) {\n pos = 0;\n }\n\n stream.pos = pos;\n found = find(stream, STARTXREF_SIGNATURE, step, true);\n }\n\n if (found) {\n stream.skip(9);\n let ch;\n\n do {\n ch = stream.getByte();\n } while ((0, _core_utils.isWhiteSpace)(ch));\n\n let str = \"\";\n\n while (ch >= 0x20 && ch <= 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n\n startXRef = parseInt(str, 10);\n\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n\n return (0, _util.shadow)(this, \"startXRef\", startXRef);\n }\n\n checkHeader() {\n const stream = this.stream;\n stream.reset();\n\n if (!find(stream, PDF_HEADER_SIGNATURE)) {\n return;\n }\n\n stream.moveStart();\n const MAX_PDF_VERSION_LENGTH = 12;\n let version = \"\",\n ch;\n\n while ((ch = stream.getByte()) > 0x20) {\n if (version.length >= MAX_PDF_VERSION_LENGTH) {\n break;\n }\n\n version += String.fromCharCode(ch);\n }\n\n if (!this.pdfFormatVersion) {\n this.pdfFormatVersion = version.substring(5);\n }\n }\n\n parseStartXRef() {\n this.xref.setStartXRef(this.startXRef);\n }\n\n setup(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new _obj.Catalog(this.pdfManager, this.xref);\n }\n\n get numPages() {\n const linearization = this.linearization;\n const num = linearization ? linearization.numPages : this.catalog.numPages;\n return (0, _util.shadow)(this, \"numPages\", num);\n }\n\n get documentInfo() {\n const DocumentInfoValidators = {\n Title: _util.isString,\n Author: _util.isString,\n Subject: _util.isString,\n Keywords: _util.isString,\n Creator: _util.isString,\n Producer: _util.isString,\n CreationDate: _util.isString,\n ModDate: _util.isString,\n Trapped: _primitives.isName\n };\n let version = this.pdfFormatVersion;\n\n if (typeof version !== \"string\" || !PDF_HEADER_VERSION_REGEXP.test(version)) {\n (0, _util.warn)(`Invalid PDF header version number: ${version}`);\n version = null;\n }\n\n const docInfo = {\n PDFFormatVersion: version,\n IsLinearized: !!this.linearization,\n IsAcroFormPresent: !!this.acroForm,\n IsXFAPresent: !!this.xfa,\n IsCollectionPresent: !!this.collection\n };\n let infoDict;\n\n try {\n infoDict = this.xref.trailer.get(\"Info\");\n } catch (err) {\n if (err instanceof _core_utils.MissingDataException) {\n throw err;\n }\n\n (0, _util.info)(\"The document information dictionary is invalid.\");\n }\n\n if ((0, _primitives.isDict)(infoDict)) {\n for (const key of infoDict.getKeys()) {\n const value = infoDict.get(key);\n\n if (DocumentInfoValidators[key]) {\n if (DocumentInfoValidators[key](value)) {\n docInfo[key] = typeof value !== \"string\" ? value : (0, _util.stringToPDFString)(value);\n } else {\n (0, _util.info)(`Bad value in document info for \"${key}\".`);\n }\n } else if (typeof key === \"string\") {\n let customValue;\n\n if ((0, _util.isString)(value)) {\n customValue = (0, _util.stringToPDFString)(value);\n } else if ((0, _primitives.isName)(value) || (0, _util.isNum)(value) || (0, _util.isBool)(value)) {\n customValue = value;\n } else {\n (0, _util.info)(`Unsupported value in document info for (custom) \"${key}\".`);\n continue;\n }\n\n if (!docInfo.Custom) {\n docInfo.Custom = Object.create(null);\n }\n\n docInfo.Custom[key] = customValue;\n }\n }\n }\n\n return (0, _util.shadow)(this, \"documentInfo\", docInfo);\n }\n\n get fingerprint() {\n let hash;\n const idArray = this.xref.trailer.get(\"ID\");\n\n if (Array.isArray(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) {\n hash = (0, _util.stringToBytes)(idArray[0]);\n } else {\n hash = (0, _crypto.calculateMD5)(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n }\n\n const fingerprintBuf = [];\n\n for (let i = 0, ii = hash.length; i < ii; i++) {\n const hex = hash[i].toString(16);\n fingerprintBuf.push(hex.padStart(2, \"0\"));\n }\n\n return (0, _util.shadow)(this, \"fingerprint\", fingerprintBuf.join(\"\"));\n }\n\n _getLinearizationPage(pageIndex) {\n const {\n catalog,\n linearization\n } = this;\n\n const ref = _primitives.Ref.get(linearization.objectNumberFirst, 0);\n\n return this.xref.fetchAsync(ref).then(obj => {\n if ((0, _primitives.isDict)(obj, \"Page\") || (0, _primitives.isDict)(obj) && !obj.has(\"Type\") && obj.has(\"Contents\")) {\n if (ref && !catalog.pageKidsCountCache.has(ref)) {\n catalog.pageKidsCountCache.put(ref, 1);\n }\n\n return [obj, ref];\n }\n\n throw new _util.FormatError(\"The Linearization dictionary doesn't point \" + \"to a valid Page dictionary.\");\n }).catch(reason => {\n (0, _util.info)(reason);\n return catalog.getPageDict(pageIndex);\n });\n }\n\n getPage(pageIndex) {\n if (this._pagePromises[pageIndex] !== undefined) {\n return this._pagePromises[pageIndex];\n }\n\n const {\n catalog,\n linearization\n } = this;\n const promise = linearization && linearization.pageFirst === pageIndex ? this._getLinearizationPage(pageIndex) : catalog.getPageDict(pageIndex);\n return this._pagePromises[pageIndex] = promise.then(([pageDict, ref]) => {\n return new Page({\n pdfManager: this.pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n globalImageCache: catalog.globalImageCache,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n });\n }\n\n checkFirstPage() {\n return this.getPage(0).catch(async reason => {\n if (reason instanceof _core_utils.XRefEntryException) {\n this._pagePromises.length = 0;\n await this.cleanup();\n throw new _core_utils.XRefParseException();\n }\n });\n }\n\n fontFallback(id, handler) {\n return this.catalog.fontFallback(id, handler);\n }\n\n async cleanup(manuallyTriggered = false) {\n return this.catalog ? this.catalog.cleanup(manuallyTriggered) : (0, _primitives.clearPrimitiveCaches)();\n }\n\n}\n\nexports.PDFDocument = PDFDocument;\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.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _crypto = __w_pdfjs_require__(22);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nfunction fetchDestination(dest) {\n return (0, _primitives.isDict)(dest) ? dest.get(\"D\") : dest;\n}\n\nclass Catalog {\n constructor(pdfManager, xref) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n this.catDict = xref.getCatalogObj();\n\n if (!(0, _primitives.isDict)(this.catDict)) {\n throw new _util.FormatError(\"Catalog object is not a dictionary.\");\n }\n\n this.fontCache = new _primitives.RefSetCache();\n this.builtInCMapCache = new Map();\n this.globalImageCache = new _image_utils.GlobalImageCache();\n this.pageKidsCountCache = new _primitives.RefSetCache();\n }\n\n get metadata() {\n const streamRef = this.catDict.getRaw(\"Metadata\");\n\n if (!(0, _primitives.isRef)(streamRef)) {\n return (0, _util.shadow)(this, \"metadata\", null);\n }\n\n const suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata);\n const stream = this.xref.fetch(streamRef, suppressEncryption);\n let metadata;\n\n if (stream && (0, _primitives.isDict)(stream.dict)) {\n const type = stream.dict.get(\"Type\");\n const subtype = stream.dict.get(\"Subtype\");\n\n if ((0, _primitives.isName)(type, \"Metadata\") && (0, _primitives.isName)(subtype, \"XML\")) {\n try {\n metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));\n } catch (e) {\n if (e instanceof _core_utils.MissingDataException) {\n throw e;\n }\n\n (0, _util.info)(\"Skipping invalid metadata.\");\n }\n }\n }\n\n return (0, _util.shadow)(this, \"metadata\", metadata);\n }\n\n get toplevelPagesDict() {\n const pagesObj = this.catDict.get(\"Pages\");\n\n if (!(0, _primitives.isDict)(pagesObj)) {\n throw new _util.FormatError(\"Invalid top-level pages dictionary.\");\n }\n\n return (0, _util.shadow)(this, \"toplevelPagesDict\", pagesObj);\n }\n\n get documentOutline() {\n let obj = null;\n\n try {\n obj = this._readDocumentOutline();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read document outline.\");\n }\n\n return (0, _util.shadow)(this, \"documentOutline\", obj);\n }\n\n _readDocumentOutline() {\n let obj = this.catDict.get(\"Outlines\");\n\n if (!(0, _primitives.isDict)(obj)) {\n return null;\n }\n\n obj = obj.getRaw(\"First\");\n\n if (!(0, _primitives.isRef)(obj)) {\n return null;\n }\n\n const root = {\n items: []\n };\n const queue = [{\n obj,\n parent: root\n }];\n const processed = new _primitives.RefSet();\n processed.put(obj);\n const xref = this.xref,\n blackColor = new Uint8ClampedArray(3);\n\n while (queue.length > 0) {\n const i = queue.shift();\n const outlineDict = xref.fetchIfRef(i.obj);\n\n if (outlineDict === null) {\n continue;\n }\n\n if (!outlineDict.has(\"Title\")) {\n throw new _util.FormatError(\"Invalid outline item encountered.\");\n }\n\n const data = {\n url: null,\n dest: null\n };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.pdfManager.docBaseUrl\n });\n const title = outlineDict.get(\"Title\");\n const flags = outlineDict.get(\"F\") || 0;\n const color = outlineDict.getArray(\"C\");\n const count = outlineDict.get(\"Count\");\n let rgbColor = blackColor;\n\n if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0);\n }\n\n const outlineItem = {\n dest: data.dest,\n url: data.url,\n unsafeUrl: data.unsafeUrl,\n newWindow: data.newWindow,\n title: (0, _util.stringToPDFString)(title),\n color: rgbColor,\n count: Number.isInteger(count) ? count : undefined,\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: []\n };\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw(\"First\");\n\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj,\n parent: outlineItem\n });\n processed.put(obj);\n }\n\n obj = outlineDict.getRaw(\"Next\");\n\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj,\n parent: i.parent\n });\n processed.put(obj);\n }\n }\n\n return root.items.length > 0 ? root.items : null;\n }\n\n get permissions() {\n let permissions = null;\n\n try {\n permissions = this._readPermissions();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read permissions.\");\n }\n\n return (0, _util.shadow)(this, \"permissions\", permissions);\n }\n\n _readPermissions() {\n const encrypt = this.xref.trailer.get(\"Encrypt\");\n\n if (!(0, _primitives.isDict)(encrypt)) {\n return null;\n }\n\n let flags = encrypt.get(\"P\");\n\n if (!(0, _util.isNum)(flags)) {\n return null;\n }\n\n flags += 2 ** 32;\n const permissions = [];\n\n for (const key in _util.PermissionFlag) {\n const value = _util.PermissionFlag[key];\n\n if (flags & value) {\n permissions.push(value);\n }\n }\n\n return permissions;\n }\n\n get numPages() {\n const obj = this.toplevelPagesDict.get(\"Count\");\n\n if (!Number.isInteger(obj)) {\n throw new _util.FormatError(\"Page count in top-level pages dictionary is not an integer.\");\n }\n\n return (0, _util.shadow)(this, \"numPages\", obj);\n }\n\n get destinations() {\n const obj = this._readDests(),\n dests = Object.create(null);\n\n if (obj instanceof NameTree) {\n const names = obj.getAll();\n\n for (const name in names) {\n dests[name] = fetchDestination(names[name]);\n }\n } else if (obj instanceof _primitives.Dict) {\n obj.forEach(function (key, value) {\n if (value) {\n dests[key] = fetchDestination(value);\n }\n });\n }\n\n return (0, _util.shadow)(this, \"destinations\", dests);\n }\n\n getDestination(destinationId) {\n const obj = this._readDests();\n\n if (obj instanceof NameTree || obj instanceof _primitives.Dict) {\n return fetchDestination(obj.get(destinationId) || null);\n }\n\n return null;\n }\n\n _readDests() {\n const obj = this.catDict.get(\"Names\");\n\n if (obj && obj.has(\"Dests\")) {\n return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n } else if (this.catDict.has(\"Dests\")) {\n return this.catDict.get(\"Dests\");\n }\n\n return undefined;\n }\n\n get pageLabels() {\n let obj = null;\n\n try {\n obj = this._readPageLabels();\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Unable to read page labels.\");\n }\n\n return (0, _util.shadow)(this, \"pageLabels\", obj);\n }\n\n _readPageLabels() {\n const obj = this.catDict.getRaw(\"PageLabels\");\n\n if (!obj) {\n return null;\n }\n\n const pageLabels = new Array(this.numPages);\n let style = null,\n prefix = \"\";\n const numberTree = new NumberTree(obj, this.xref);\n const nums = numberTree.getAll();\n let currentLabel = \"\",\n currentIndex = 1;\n\n for (let i = 0, ii = this.numPages; i < ii; i++) {\n if (i in nums) {\n const labelDict = nums[i];\n\n if (!(0, _primitives.isDict)(labelDict)) {\n throw new _util.FormatError(\"PageLabel is not a dictionary.\");\n }\n\n if (labelDict.has(\"Type\") && !(0, _primitives.isName)(labelDict.get(\"Type\"), \"PageLabel\")) {\n throw new _util.FormatError(\"Invalid type in PageLabel dictionary.\");\n }\n\n if (labelDict.has(\"S\")) {\n const s = labelDict.get(\"S\");\n\n if (!(0, _primitives.isName)(s)) {\n throw new _util.FormatError(\"Invalid style in PageLabel dictionary.\");\n }\n\n style = s.name;\n } else {\n style = null;\n }\n\n if (labelDict.has(\"P\")) {\n const p = labelDict.get(\"P\");\n\n if (!(0, _util.isString)(p)) {\n throw new _util.FormatError(\"Invalid prefix in PageLabel dictionary.\");\n }\n\n prefix = (0, _util.stringToPDFString)(p);\n } else {\n prefix = \"\";\n }\n\n if (labelDict.has(\"St\")) {\n const st = labelDict.get(\"St\");\n\n if (!(Number.isInteger(st) && st >= 1)) {\n throw new _util.FormatError(\"Invalid start in PageLabel dictionary.\");\n }\n\n currentIndex = st;\n } else {\n currentIndex = 1;\n }\n }\n\n switch (style) {\n case \"D\":\n currentLabel = currentIndex;\n break;\n\n case \"R\":\n case \"r\":\n currentLabel = (0, _core_utils.toRomanNumerals)(currentIndex, style === \"r\");\n break;\n\n case \"A\":\n case \"a\":\n const LIMIT = 26;\n const A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n const letterIndex = currentIndex - 1;\n const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n const charBuf = [];\n\n for (let j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) {\n charBuf.push(character);\n }\n\n currentLabel = charBuf.join(\"\");\n break;\n\n default:\n if (style) {\n throw new _util.FormatError(`Invalid style \"${style}\" in PageLabel dictionary.`);\n }\n\n currentLabel = \"\";\n }\n\n pageLabels[i] = prefix + currentLabel;\n currentIndex++;\n }\n\n return pageLabels;\n }\n\n get pageLayout() {\n const obj = this.catDict.get(\"PageLayout\");\n let pageLayout = \"\";\n\n if ((0, _primitives.isName)(obj)) {\n switch (obj.name) {\n case \"SinglePage\":\n case \"OneColumn\":\n case \"TwoColumnLeft\":\n case \"TwoColumnRight\":\n case \"TwoPageLeft\":\n case \"TwoPageRight\":\n pageLayout = obj.name;\n }\n }\n\n return (0, _util.shadow)(this, \"pageLayout\", pageLayout);\n }\n\n get pageMode() {\n const obj = this.catDict.get(\"PageMode\");\n let pageMode = \"UseNone\";\n\n if ((0, _primitives.isName)(obj)) {\n switch (obj.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"FullScreen\":\n case \"UseOC\":\n case \"UseAttachments\":\n pageMode = obj.name;\n }\n }\n\n return (0, _util.shadow)(this, \"pageMode\", pageMode);\n }\n\n get viewerPreferences() {\n const ViewerPreferencesValidators = {\n HideToolbar: _util.isBool,\n HideMenubar: _util.isBool,\n HideWindowUI: _util.isBool,\n FitWindow: _util.isBool,\n CenterWindow: _util.isBool,\n DisplayDocTitle: _util.isBool,\n NonFullScreenPageMode: _primitives.isName,\n Direction: _primitives.isName,\n ViewArea: _primitives.isName,\n ViewClip: _primitives.isName,\n PrintArea: _primitives.isName,\n PrintClip: _primitives.isName,\n PrintScaling: _primitives.isName,\n Duplex: _primitives.isName,\n PickTrayByPDFSize: _util.isBool,\n PrintPageRange: Array.isArray,\n NumCopies: Number.isInteger\n };\n const obj = this.catDict.get(\"ViewerPreferences\");\n let prefs = null;\n\n if ((0, _primitives.isDict)(obj)) {\n for (const key in ViewerPreferencesValidators) {\n if (!obj.has(key)) {\n continue;\n }\n\n const value = obj.get(key);\n\n if (!ViewerPreferencesValidators[key](value)) {\n (0, _util.info)(`Bad value in ViewerPreferences for \"${key}\".`);\n continue;\n }\n\n let prefValue;\n\n switch (key) {\n case \"NonFullScreenPageMode\":\n switch (value.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"UseOC\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"UseNone\";\n }\n\n break;\n\n case \"Direction\":\n switch (value.name) {\n case \"L2R\":\n case \"R2L\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"L2R\";\n }\n\n break;\n\n case \"ViewArea\":\n case \"ViewClip\":\n case \"PrintArea\":\n case \"PrintClip\":\n switch (value.name) {\n case \"MediaBox\":\n case \"CropBox\":\n case \"BleedBox\":\n case \"TrimBox\":\n case \"ArtBox\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"CropBox\";\n }\n\n break;\n\n case \"PrintScaling\":\n switch (value.name) {\n case \"None\":\n case \"AppDefault\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"AppDefault\";\n }\n\n break;\n\n case \"Duplex\":\n switch (value.name) {\n case \"Simplex\":\n case \"DuplexFlipShortEdge\":\n case \"DuplexFlipLongEdge\":\n prefValue = value.name;\n break;\n\n default:\n prefValue = \"None\";\n }\n\n break;\n\n case \"PrintPageRange\":\n const length = value.length;\n\n if (length % 2 !== 0) {\n break;\n }\n\n const isValid = value.every((page, i, arr) => {\n return Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages;\n });\n\n if (isValid) {\n prefValue = value;\n }\n\n break;\n\n case \"NumCopies\":\n if (value > 0) {\n prefValue = value;\n }\n\n break;\n\n default:\n if (typeof value !== \"boolean\") {\n throw new _util.FormatError(`viewerPreferences - expected a boolean value for: ${key}`);\n }\n\n prefValue = value;\n }\n\n if (prefValue !== undefined) {\n if (!prefs) {\n prefs = Object.create(null);\n }\n\n prefs[key] = prefValue;\n } else {\n (0, _util.info)(`Bad value in ViewerPreferences for \"${key}\".`);\n }\n }\n }\n\n return (0, _util.shadow)(this, \"viewerPreferences\", prefs);\n }\n\n get openAction() {\n const obj = this.catDict.get(\"OpenAction\");\n let openAction = null;\n\n if ((0, _primitives.isDict)(obj)) {\n const destDict = new _primitives.Dict(this.xref);\n destDict.set(\"A\", obj);\n const resultObj = {\n url: null,\n dest: null,\n action: null\n };\n Catalog.parseDestDictionary({\n destDict,\n resultObj\n });\n\n if (Array.isArray(resultObj.dest)) {\n if (!openAction) {\n openAction = Object.create(null);\n }\n\n openAction.dest = resultObj.dest;\n } else if (resultObj.action) {\n if (!openAction) {\n openAction = Object.create(null);\n }\n\n openAction.action = resultObj.action;\n }\n } else if (Array.isArray(obj)) {\n if (!openAction) {\n openAction = Object.create(null);\n }\n\n openAction.dest = obj;\n }\n\n return (0, _util.shadow)(this, \"openAction\", openAction);\n }\n\n get attachments() {\n const obj = this.catDict.get(\"Names\");\n let attachments = null;\n\n if (obj && obj.has(\"EmbeddedFiles\")) {\n const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n const names = nameTree.getAll();\n\n for (const name in names) {\n const fs = new FileSpec(names[name], this.xref);\n\n if (!attachments) {\n attachments = Object.create(null);\n }\n\n attachments[(0, _util.stringToPDFString)(name)] = fs.serializable;\n }\n }\n\n return (0, _util.shadow)(this, \"attachments\", attachments);\n }\n\n get javaScript() {\n const obj = this.catDict.get(\"Names\");\n let javaScript = null;\n\n function appendIfJavaScriptDict(jsDict) {\n const type = jsDict.get(\"S\");\n\n if (!(0, _primitives.isName)(type, \"JavaScript\")) {\n return;\n }\n\n let js = jsDict.get(\"JS\");\n\n if ((0, _primitives.isStream)(js)) {\n js = (0, _util.bytesToString)(js.getBytes());\n } else if (!(0, _util.isString)(js)) {\n return;\n }\n\n if (!javaScript) {\n javaScript = [];\n }\n\n javaScript.push((0, _util.stringToPDFString)(js));\n }\n\n if (obj && obj.has(\"JavaScript\")) {\n const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n const names = nameTree.getAll();\n\n for (const name in names) {\n const jsDict = names[name];\n\n if ((0, _primitives.isDict)(jsDict)) {\n appendIfJavaScriptDict(jsDict);\n }\n }\n }\n\n const openAction = this.catDict.get(\"OpenAction\");\n\n if ((0, _primitives.isDict)(openAction) && (0, _primitives.isName)(openAction.get(\"S\"), \"JavaScript\")) {\n appendIfJavaScriptDict(openAction);\n }\n\n return (0, _util.shadow)(this, \"javaScript\", javaScript);\n }\n\n fontFallback(id, handler) {\n const promises = [];\n this.fontCache.forEach(function (promise) {\n promises.push(promise);\n });\n return Promise.all(promises).then(translatedFonts => {\n for (const translatedFont of translatedFonts) {\n if (translatedFont.loadedName === id) {\n translatedFont.fallback(handler);\n return;\n }\n }\n });\n }\n\n cleanup(manuallyTriggered = false) {\n (0, _primitives.clearPrimitiveCaches)();\n this.globalImageCache.clear(manuallyTriggered);\n this.pageKidsCountCache.clear();\n const promises = [];\n this.fontCache.forEach(function (promise) {\n promises.push(promise);\n });\n return Promise.all(promises).then(translatedFonts => {\n for (const {\n dict\n } of translatedFonts) {\n delete dict.translated;\n }\n\n this.fontCache.clear();\n this.builtInCMapCache.clear();\n });\n }\n\n getPageDict(pageIndex) {\n const capability = (0, _util.createPromiseCapability)();\n const nodesToVisit = [this.catDict.getRaw(\"Pages\")];\n const visitedNodes = new _primitives.RefSet();\n const xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache;\n let count,\n currentPageIndex = 0;\n\n function next() {\n while (nodesToVisit.length) {\n const currentNode = nodesToVisit.pop();\n\n if ((0, _primitives.isRef)(currentNode)) {\n count = pageKidsCountCache.get(currentNode);\n\n if (count > 0 && currentPageIndex + count < pageIndex) {\n currentPageIndex += count;\n continue;\n }\n\n if (visitedNodes.has(currentNode)) {\n capability.reject(new _util.FormatError(\"Pages tree contains circular reference.\"));\n return;\n }\n\n visitedNodes.put(currentNode);\n xref.fetchAsync(currentNode).then(function (obj) {\n if ((0, _primitives.isDict)(obj, \"Page\") || (0, _primitives.isDict)(obj) && !obj.has(\"Kids\")) {\n if (pageIndex === currentPageIndex) {\n if (currentNode && !pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n\n capability.resolve([obj, currentNode]);\n } else {\n currentPageIndex++;\n next();\n }\n\n return;\n }\n\n nodesToVisit.push(obj);\n next();\n }, capability.reject);\n return;\n }\n\n if (!(0, _primitives.isDict)(currentNode)) {\n capability.reject(new _util.FormatError(\"Page dictionary kid reference points to wrong type of object.\"));\n return;\n }\n\n count = currentNode.get(\"Count\");\n\n if (Number.isInteger(count) && count >= 0) {\n const objId = currentNode.objId;\n\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n }\n\n const kids = currentNode.get(\"Kids\");\n\n if (!Array.isArray(kids)) {\n if ((0, _primitives.isName)(currentNode.get(\"Type\"), \"Page\") || !currentNode.has(\"Type\") && currentNode.has(\"Contents\")) {\n if (currentPageIndex === pageIndex) {\n capability.resolve([currentNode, null]);\n return;\n }\n\n currentPageIndex++;\n continue;\n }\n\n capability.reject(new _util.FormatError(\"Page dictionary kids object is not an array.\"));\n return;\n }\n\n for (let last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n\n capability.reject(new Error(`Page index ${pageIndex} not found.`));\n }\n\n next();\n return capability.promise;\n }\n\n getPageIndex(pageRef) {\n const xref = this.xref;\n\n function pagesBeforeRef(kidRef) {\n let total = 0,\n parentRef;\n return xref.fetchAsync(kidRef).then(function (node) {\n if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, \"Page\") && !((0, _primitives.isDict)(node) && !node.has(\"Type\") && node.has(\"Contents\"))) {\n throw new _util.FormatError(\"The reference does not point to a /Page dictionary.\");\n }\n\n if (!node) {\n return null;\n }\n\n if (!(0, _primitives.isDict)(node)) {\n throw new _util.FormatError(\"Node must be a dictionary.\");\n }\n\n parentRef = node.getRaw(\"Parent\");\n return node.getAsync(\"Parent\");\n }).then(function (parent) {\n if (!parent) {\n return null;\n }\n\n if (!(0, _primitives.isDict)(parent)) {\n throw new _util.FormatError(\"Parent must be a dictionary.\");\n }\n\n return parent.getAsync(\"Kids\");\n }).then(function (kids) {\n if (!kids) {\n return null;\n }\n\n const kidPromises = [];\n let found = false;\n\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n\n if (!(0, _primitives.isRef)(kid)) {\n throw new _util.FormatError(\"Kid must be a reference.\");\n }\n\n if ((0, _primitives.isRefsEqual)(kid, kidRef)) {\n found = true;\n break;\n }\n\n kidPromises.push(xref.fetchAsync(kid).then(function (obj) {\n if (!(0, _primitives.isDict)(obj)) {\n throw new _util.FormatError(\"Kid node must be a dictionary.\");\n }\n\n if (obj.has(\"Count\")) {\n total += obj.get(\"Count\");\n } else {\n total++;\n }\n }));\n }\n\n if (!found) {\n throw new _util.FormatError(\"Kid reference not found in parent's kids.\");\n }\n\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n\n let total = 0;\n\n function next(ref) {\n return pagesBeforeRef(ref).then(function (args) {\n if (!args) {\n return total;\n }\n\n const [count, parentRef] = args;\n total += count;\n return next(parentRef);\n });\n }\n\n return next(pageRef);\n }\n\n static parseDestDictionary(params) {\n function addDefaultProtocolToUrl(url) {\n return url.startsWith(\"www.\") ? `http://${url}` : url;\n }\n\n function tryConvertUrlEncoding(url) {\n try {\n return (0, _util.stringToUTF8String)(url);\n } catch (e) {\n return url;\n }\n }\n\n const destDict = params.destDict;\n\n if (!(0, _primitives.isDict)(destDict)) {\n (0, _util.warn)(\"parseDestDictionary: `destDict` must be a dictionary.\");\n return;\n }\n\n const resultObj = params.resultObj;\n\n if (typeof resultObj !== \"object\") {\n (0, _util.warn)(\"parseDestDictionary: `resultObj` must be an object.\");\n return;\n }\n\n const docBaseUrl = params.docBaseUrl || null;\n let action = destDict.get(\"A\"),\n url,\n dest;\n\n if (!(0, _primitives.isDict)(action) && destDict.has(\"Dest\")) {\n action = destDict.get(\"Dest\");\n }\n\n if ((0, _primitives.isDict)(action)) {\n const actionType = action.get(\"S\");\n\n if (!(0, _primitives.isName)(actionType)) {\n (0, _util.warn)(\"parseDestDictionary: Invalid type in Action dictionary.\");\n return;\n }\n\n const actionName = actionType.name;\n\n switch (actionName) {\n case \"URI\":\n url = action.get(\"URI\");\n\n if ((0, _primitives.isName)(url)) {\n url = \"/\" + url.name;\n } else if ((0, _util.isString)(url)) {\n url = addDefaultProtocolToUrl(url);\n }\n\n break;\n\n case \"GoTo\":\n dest = action.get(\"D\");\n break;\n\n case \"Launch\":\n case \"GoToR\":\n const urlDict = action.get(\"F\");\n\n if ((0, _primitives.isDict)(urlDict)) {\n url = urlDict.get(\"F\") || null;\n } else if ((0, _util.isString)(urlDict)) {\n url = urlDict;\n }\n\n let remoteDest = action.get(\"D\");\n\n if (remoteDest) {\n if ((0, _primitives.isName)(remoteDest)) {\n remoteDest = remoteDest.name;\n }\n\n if ((0, _util.isString)(url)) {\n const baseUrl = url.split(\"#\")[0];\n\n if ((0, _util.isString)(remoteDest)) {\n url = baseUrl + \"#\" + remoteDest;\n } else if (Array.isArray(remoteDest)) {\n url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n }\n }\n }\n\n const newWindow = action.get(\"NewWindow\");\n\n if ((0, _util.isBool)(newWindow)) {\n resultObj.newWindow = newWindow;\n }\n\n break;\n\n case \"Named\":\n const namedAction = action.get(\"N\");\n\n if ((0, _primitives.isName)(namedAction)) {\n resultObj.action = namedAction.name;\n }\n\n break;\n\n case \"JavaScript\":\n const jsAction = action.get(\"JS\");\n let js;\n\n if ((0, _primitives.isStream)(jsAction)) {\n js = (0, _util.bytesToString)(jsAction.getBytes());\n } else if ((0, _util.isString)(jsAction)) {\n js = jsAction;\n }\n\n if (js) {\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\"];\n const regex = new RegExp(\"^\\\\s*(\" + URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") + \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\", \"i\");\n const jsUrl = regex.exec((0, _util.stringToPDFString)(js));\n\n if (jsUrl && jsUrl[2]) {\n url = jsUrl[2];\n\n if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n resultObj.newWindow = true;\n }\n\n break;\n }\n }\n\n default:\n (0, _util.warn)(`parseDestDictionary: unsupported action type \"${actionName}\".`);\n break;\n }\n } else if (destDict.has(\"Dest\")) {\n dest = destDict.get(\"Dest\");\n }\n\n if ((0, _util.isString)(url)) {\n url = tryConvertUrlEncoding(url);\n const absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl);\n\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n\n resultObj.unsafeUrl = url;\n }\n\n if (dest) {\n if ((0, _primitives.isName)(dest)) {\n dest = dest.name;\n }\n\n if ((0, _util.isString)(dest) || Array.isArray(dest)) {\n resultObj.dest = dest;\n }\n }\n }\n\n}\n\nexports.Catalog = Catalog;\n\nvar XRef = function XRefClosure() {\n function XRef(stream, pdfManager) {\n this.stream = stream;\n this.pdfManager = pdfManager;\n this.entries = [];\n this.xrefstms = Object.create(null);\n this._cacheMap = new Map();\n this.stats = {\n streamTypes: Object.create(null),\n fontTypes: Object.create(null)\n };\n }\n\n XRef.prototype = {\n setStartXRef: function XRef_setStartXRef(startXRef) {\n this.startXRefQueue = [startXRef];\n },\n parse: function XRef_parse(recoveryMode) {\n var trailerDict;\n\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n (0, _util.warn)(\"Indexing all PDF objects\");\n trailerDict = this.indexObjects();\n }\n\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n let encrypt;\n\n try {\n encrypt = trailerDict.get(\"Encrypt\");\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n }\n\n if ((0, _primitives.isDict)(encrypt)) {\n var ids = trailerDict.get(\"ID\");\n var fileId = ids && ids.length ? ids[0] : \"\";\n encrypt.suppressEncryption = true;\n this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n }\n\n let root;\n\n try {\n root = trailerDict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n }\n\n if ((0, _primitives.isDict)(root) && root.has(\"Pages\")) {\n this.root = root;\n } else {\n if (!recoveryMode) {\n throw new _core_utils.XRefParseException();\n }\n\n throw new _util.FormatError(\"Invalid root reference\");\n }\n },\n processXRefTable: function XRef_processXRefTable(parser) {\n if (!(\"tableState\" in this)) {\n this.tableState = {\n entryNum: 0,\n streamPos: parser.lexer.stream.pos,\n parserBuf1: parser.buf1,\n parserBuf2: parser.buf2\n };\n }\n\n var obj = this.readXRefTable(parser);\n\n if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n throw new _util.FormatError(\"Invalid XRef table: could not find trailer dictionary\");\n }\n\n var dict = parser.getObj();\n\n if (!(0, _primitives.isDict)(dict) && dict.dict) {\n dict = dict.dict;\n }\n\n if (!(0, _primitives.isDict)(dict)) {\n throw new _util.FormatError(\"Invalid XRef table: could not parse trailer dictionary\");\n }\n\n delete this.tableState;\n return dict;\n },\n readXRefTable: function XRef_readXRefTable(parser) {\n var stream = parser.lexer.stream;\n var tableState = this.tableState;\n stream.pos = tableState.streamPos;\n parser.buf1 = tableState.parserBuf1;\n parser.buf2 = tableState.parserBuf2;\n var obj;\n\n while (true) {\n if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n if ((0, _primitives.isCmd)(obj = parser.getObj(), \"trailer\")) {\n break;\n }\n\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n\n var first = tableState.firstEntryNum;\n var count = tableState.entryCount;\n\n if (!Number.isInteger(first) || !Number.isInteger(count)) {\n throw new _util.FormatError(\"Invalid XRef table: wrong types in subsection header\");\n }\n\n for (var i = tableState.entryNum; i < count; i++) {\n tableState.streamPos = stream.pos;\n tableState.entryNum = i;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n var entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n var type = parser.getObj();\n\n if (type instanceof _primitives.Cmd) {\n switch (type.cmd) {\n case \"f\":\n entry.free = true;\n break;\n\n case \"n\":\n entry.uncompressed = true;\n break;\n }\n }\n\n if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) {\n throw new _util.FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`);\n }\n\n if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\n }\n }\n\n tableState.entryNum = 0;\n tableState.streamPos = stream.pos;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n delete tableState.firstEntryNum;\n delete tableState.entryCount;\n }\n\n if (this.entries[0] && !this.entries[0].free) {\n throw new _util.FormatError(\"Invalid XRef table: unexpected first object\");\n }\n\n return obj;\n },\n processXRefStream: function XRef_processXRefStream(stream) {\n if (!(\"streamState\" in this)) {\n var streamParameters = stream.dict;\n var byteWidths = streamParameters.get(\"W\");\n var range = streamParameters.get(\"Index\");\n\n if (!range) {\n range = [0, streamParameters.get(\"Size\")];\n }\n\n this.streamState = {\n entryRanges: range,\n byteWidths,\n entryNum: 0,\n streamPos: stream.pos\n };\n }\n\n this.readXRefStream(stream);\n delete this.streamState;\n return stream.dict;\n },\n readXRefStream: function XRef_readXRefStream(stream) {\n var i, j;\n var streamState = this.streamState;\n stream.pos = streamState.streamPos;\n var byteWidths = streamState.byteWidths;\n var typeFieldWidth = byteWidths[0];\n var offsetFieldWidth = byteWidths[1];\n var generationFieldWidth = byteWidths[2];\n var entryRanges = streamState.entryRanges;\n\n while (entryRanges.length > 0) {\n var first = entryRanges[0];\n var n = entryRanges[1];\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new _util.FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n }\n\n if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) {\n throw new _util.FormatError(`Invalid XRef entry fields length: ${first}, ${n}`);\n }\n\n for (i = streamState.entryNum; i < n; ++i) {\n streamState.entryNum = i;\n streamState.streamPos = stream.pos;\n var type = 0,\n offset = 0,\n generation = 0;\n\n for (j = 0; j < typeFieldWidth; ++j) {\n type = type << 8 | stream.getByte();\n }\n\n if (typeFieldWidth === 0) {\n type = 1;\n }\n\n for (j = 0; j < offsetFieldWidth; ++j) {\n offset = offset << 8 | stream.getByte();\n }\n\n for (j = 0; j < generationFieldWidth; ++j) {\n generation = generation << 8 | stream.getByte();\n }\n\n var entry = {};\n entry.offset = offset;\n entry.gen = generation;\n\n switch (type) {\n case 0:\n entry.free = true;\n break;\n\n case 1:\n entry.uncompressed = true;\n break;\n\n case 2:\n break;\n\n default:\n throw new _util.FormatError(`Invalid XRef entry type: ${type}`);\n }\n\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\n }\n }\n\n streamState.entryNum = 0;\n streamState.streamPos = stream.pos;\n entryRanges.splice(0, 2);\n }\n },\n indexObjects: function XRef_indexObjects() {\n var TAB = 0x9,\n LF = 0xa,\n CR = 0xd,\n SPACE = 0x20;\n var PERCENT = 0x25,\n LT = 0x3c;\n\n function readToken(data, offset) {\n var token = \"\",\n ch = data[offset];\n\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n\n return token;\n }\n\n function skipUntil(data, offset, what) {\n var length = what.length,\n dataLength = data.length;\n var skipped = 0;\n\n while (offset < dataLength) {\n var i = 0;\n\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n\n if (i >= length) {\n break;\n }\n\n offset++;\n skipped++;\n }\n\n return skipped;\n }\n\n var objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n const endobjRegExp = /\\bendobj[\\b\\s]$/;\n const nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n const CHECK_CONTENT_LENGTH = 25;\n var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n const objBytes = new Uint8Array([111, 98, 106]);\n var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n this.entries.length = 0;\n var stream = this.stream;\n stream.pos = 0;\n var buffer = stream.getBytes();\n var position = stream.start,\n length = buffer.length;\n var trailers = [],\n xrefStms = [];\n\n while (position < length) {\n var ch = buffer[position];\n\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n\n if (ch === PERCENT) {\n do {\n ++position;\n\n if (position >= length) {\n break;\n }\n\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n\n continue;\n }\n\n var token = readToken(buffer, position);\n var m;\n\n if (token.startsWith(\"xref\") && (token.length === 4 || /\\s/.test(token[4]))) {\n position += skipUntil(buffer, position, trailerBytes);\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else if (m = objRegExp.exec(token)) {\n const num = m[1] | 0,\n gen = m[2] | 0;\n\n if (!this.entries[num] || this.entries[num].gen === gen) {\n this.entries[num] = {\n offset: position - stream.start,\n gen,\n uncompressed: true\n };\n }\n\n let contentLength,\n startPos = position + token.length;\n\n while (startPos < buffer.length) {\n const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n contentLength = endPos - position;\n const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n const tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos));\n\n if (endobjRegExp.test(tokenStr)) {\n break;\n } else {\n const objToken = nestedObjRegExp.exec(tokenStr);\n\n if (objToken && objToken[1]) {\n (0, _util.warn)('indexObjects: Found new \"obj\" inside of another \"obj\", ' + 'caused by missing \"endobj\" -- trying to recover.');\n contentLength -= objToken[1].length;\n break;\n }\n }\n\n startPos = endPos;\n }\n\n const content = buffer.subarray(position, position + contentLength);\n var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1;\n }\n\n position += contentLength;\n } else if (token.startsWith(\"trailer\") && (token.length === 7 || /\\s/.test(token[7]))) {\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else {\n position += token.length + 1;\n }\n }\n\n var i, ii;\n\n for (i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(true);\n }\n\n let trailerDict;\n\n for (i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true,\n recoveryMode: true\n });\n var obj = parser.getObj();\n\n if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n continue;\n }\n\n const dict = parser.getObj();\n\n if (!(0, _primitives.isDict)(dict)) {\n continue;\n }\n\n let rootDict;\n\n try {\n rootDict = dict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n continue;\n }\n\n if (!(0, _primitives.isDict)(rootDict) || !rootDict.has(\"Pages\")) {\n continue;\n }\n\n if (dict.has(\"ID\")) {\n return dict;\n }\n\n trailerDict = dict;\n }\n\n if (trailerDict) {\n return trailerDict;\n }\n\n throw new _util.InvalidPDFException(\"Invalid PDF structure.\");\n },\n readXRef: function XRef_readXRef(recoveryMode) {\n var stream = this.stream;\n const startXRefParsedCache = Object.create(null);\n\n try {\n while (this.startXRefQueue.length) {\n var startXRef = this.startXRefQueue[0];\n\n if (startXRefParsedCache[startXRef]) {\n (0, _util.warn)(\"readXRef - skipping XRef table since it was already parsed.\");\n this.startXRefQueue.shift();\n continue;\n }\n\n startXRefParsedCache[startXRef] = true;\n stream.pos = startXRef + stream.start;\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true\n });\n var obj = parser.getObj();\n var dict;\n\n if ((0, _primitives.isCmd)(obj, \"xref\")) {\n dict = this.processXRefTable(parser);\n\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n obj = dict.get(\"XRefStm\");\n\n if (Number.isInteger(obj)) {\n var pos = obj;\n\n if (!(pos in this.xrefstms)) {\n this.xrefstms[pos] = 1;\n this.startXRefQueue.push(pos);\n }\n }\n } else if (Number.isInteger(obj)) {\n if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), \"obj\") || !(0, _primitives.isStream)(obj = parser.getObj())) {\n throw new _util.FormatError(\"Invalid XRef stream\");\n }\n\n dict = this.processXRefStream(obj);\n\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n if (!dict) {\n throw new _util.FormatError(\"Failed to read XRef stream\");\n }\n } else {\n throw new _util.FormatError(\"Invalid XRef stream header\");\n }\n\n obj = dict.get(\"Prev\");\n\n if (Number.isInteger(obj)) {\n this.startXRefQueue.push(obj);\n } else if ((0, _primitives.isRef)(obj)) {\n this.startXRefQueue.push(obj.num);\n }\n\n this.startXRefQueue.shift();\n }\n\n return this.topDict;\n } catch (e) {\n if (e instanceof _core_utils.MissingDataException) {\n throw e;\n }\n\n (0, _util.info)(\"(while reading XRef): \" + e);\n }\n\n if (recoveryMode) {\n return undefined;\n }\n\n throw new _core_utils.XRefParseException();\n },\n getEntry: function XRef_getEntry(i) {\n var xrefEntry = this.entries[i];\n\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n\n return null;\n },\n fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {\n if (obj instanceof _primitives.Ref) {\n return this.fetch(obj, suppressEncryption);\n }\n\n return obj;\n },\n fetch: function XRef_fetch(ref, suppressEncryption) {\n if (!(ref instanceof _primitives.Ref)) {\n throw new Error(\"ref object is not a reference\");\n }\n\n const num = ref.num;\n\n const cacheEntry = this._cacheMap.get(num);\n\n if (cacheEntry !== undefined) {\n if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n\n return cacheEntry;\n }\n\n let xrefEntry = this.getEntry(num);\n\n if (xrefEntry === null) {\n this._cacheMap.set(num, xrefEntry);\n\n return xrefEntry;\n }\n\n if (xrefEntry.uncompressed) {\n xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n } else {\n xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n }\n\n if ((0, _primitives.isDict)(xrefEntry)) {\n xrefEntry.objId = ref.toString();\n } else if ((0, _primitives.isStream)(xrefEntry)) {\n xrefEntry.dict.objId = ref.toString();\n }\n\n return xrefEntry;\n },\n\n fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n var gen = ref.gen;\n var num = ref.num;\n\n if (xrefEntry.gen !== gen) {\n throw new _core_utils.XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n }\n\n var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true\n });\n var obj1 = parser.getObj();\n var obj2 = parser.getObj();\n var obj3 = parser.getObj();\n\n if (obj1 !== num || obj2 !== gen || !(obj3 instanceof _primitives.Cmd)) {\n throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n\n if (obj3.cmd !== \"obj\") {\n if (obj3.cmd.startsWith(\"obj\")) {\n num = parseInt(obj3.cmd.substring(3), 10);\n\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n\n throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n\n if (!(0, _primitives.isStream)(xrefEntry)) {\n this._cacheMap.set(num, xrefEntry);\n }\n\n return xrefEntry;\n },\n\n fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n const tableOffset = xrefEntry.offset;\n const stream = this.fetch(_primitives.Ref.get(tableOffset, 0));\n\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError(\"bad ObjStm stream\");\n }\n\n const first = stream.dict.get(\"First\");\n const n = stream.dict.get(\"N\");\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new _util.FormatError(\"invalid first and n parameters for ObjStm stream\");\n }\n\n const parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream),\n xref: this,\n allowStreams: true\n });\n const nums = new Array(n);\n\n for (let i = 0; i < n; ++i) {\n const num = parser.getObj();\n\n if (!Number.isInteger(num)) {\n throw new _util.FormatError(`invalid object number in the ObjStm stream: ${num}`);\n }\n\n const offset = parser.getObj();\n\n if (!Number.isInteger(offset)) {\n throw new _util.FormatError(`invalid object offset in the ObjStm stream: ${offset}`);\n }\n\n nums[i] = num;\n }\n\n const entries = new Array(n);\n\n for (let i = 0; i < n; ++i) {\n const obj = parser.getObj();\n entries[i] = obj;\n\n if (parser.buf1 instanceof _primitives.Cmd && parser.buf1.cmd === \"endobj\") {\n parser.shift();\n }\n\n if ((0, _primitives.isStream)(obj)) {\n continue;\n }\n\n const num = nums[i],\n entry = this.entries[num];\n\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n this._cacheMap.set(num, obj);\n }\n }\n\n xrefEntry = entries[xrefEntry.gen];\n\n if (xrefEntry === undefined) {\n throw new _core_utils.XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n }\n\n return xrefEntry;\n },\n\n async fetchIfRefAsync(obj, suppressEncryption) {\n if (obj instanceof _primitives.Ref) {\n return this.fetchAsync(obj, suppressEncryption);\n }\n\n return obj;\n },\n\n async fetchAsync(ref, suppressEncryption) {\n try {\n return this.fetch(ref, suppressEncryption);\n } catch (ex) {\n if (!(ex instanceof _core_utils.MissingDataException)) {\n throw ex;\n }\n\n await this.pdfManager.requestRange(ex.begin, ex.end);\n return this.fetchAsync(ref, suppressEncryption);\n }\n },\n\n getCatalogObj: function XRef_getCatalogObj() {\n return this.root;\n }\n };\n return XRef;\n}();\n\nexports.XRef = XRef;\n\nclass NameOrNumberTree {\n constructor(root, xref, type) {\n if (this.constructor === NameOrNumberTree) {\n (0, _util.unreachable)(\"Cannot initialize NameOrNumberTree.\");\n }\n\n this.root = root;\n this.xref = xref;\n this._type = type;\n }\n\n getAll() {\n const dict = Object.create(null);\n\n if (!this.root) {\n return dict;\n }\n\n const xref = this.xref;\n const processed = new _primitives.RefSet();\n processed.put(this.root);\n const queue = [this.root];\n\n while (queue.length > 0) {\n const obj = xref.fetchIfRef(queue.shift());\n\n if (!(0, _primitives.isDict)(obj)) {\n continue;\n }\n\n if (obj.has(\"Kids\")) {\n const kids = obj.get(\"Kids\");\n\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n\n if (processed.has(kid)) {\n throw new _util.FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n }\n\n queue.push(kid);\n processed.put(kid);\n }\n\n continue;\n }\n\n const entries = obj.get(this._type);\n\n if (Array.isArray(entries)) {\n for (let i = 0, ii = entries.length; i < ii; i += 2) {\n dict[xref.fetchIfRef(entries[i])] = xref.fetchIfRef(entries[i + 1]);\n }\n }\n }\n\n return dict;\n }\n\n get(key) {\n if (!this.root) {\n return null;\n }\n\n const xref = this.xref;\n let kidsOrEntries = xref.fetchIfRef(this.root);\n let loopCount = 0;\n const MAX_LEVELS = 10;\n\n while (kidsOrEntries.has(\"Kids\")) {\n if (++loopCount > MAX_LEVELS) {\n (0, _util.warn)(`Search depth limit reached for \"${this._type}\" tree.`);\n return null;\n }\n\n const kids = kidsOrEntries.get(\"Kids\");\n\n if (!Array.isArray(kids)) {\n return null;\n }\n\n let l = 0,\n r = kids.length - 1;\n\n while (l <= r) {\n const m = l + r >> 1;\n const kid = xref.fetchIfRef(kids[m]);\n const limits = kid.get(\"Limits\");\n\n if (key < xref.fetchIfRef(limits[0])) {\n r = m - 1;\n } else if (key > xref.fetchIfRef(limits[1])) {\n l = m + 1;\n } else {\n kidsOrEntries = xref.fetchIfRef(kids[m]);\n break;\n }\n }\n\n if (l > r) {\n return null;\n }\n }\n\n const entries = kidsOrEntries.get(this._type);\n\n if (Array.isArray(entries)) {\n let l = 0,\n r = entries.length - 2;\n\n while (l <= r) {\n const tmp = l + r >> 1,\n m = tmp + (tmp & 1);\n const currentKey = xref.fetchIfRef(entries[m]);\n\n if (key < currentKey) {\n r = m - 2;\n } else if (key > currentKey) {\n l = m + 2;\n } else {\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n\n (0, _util.info)(`Falling back to an exhaustive search, for key \"${key}\", ` + `in \"${this._type}\" tree.`);\n\n for (let m = 0, mm = entries.length; m < mm; m += 2) {\n const currentKey = xref.fetchIfRef(entries[m]);\n\n if (currentKey === key) {\n (0, _util.warn)(`The \"${key}\" key was found at an incorrect, ` + `i.e. out-of-order, position in \"${this._type}\" tree.`);\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n\n return null;\n }\n\n}\n\nclass NameTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Names\");\n }\n\n}\n\nclass NumberTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Nums\");\n }\n\n}\n\nvar FileSpec = function FileSpecClosure() {\n function FileSpec(root, xref) {\n if (!root || !(0, _primitives.isDict)(root)) {\n return;\n }\n\n this.xref = xref;\n this.root = root;\n\n if (root.has(\"FS\")) {\n this.fs = root.get(\"FS\");\n }\n\n this.description = root.has(\"Desc\") ? (0, _util.stringToPDFString)(root.get(\"Desc\")) : \"\";\n\n if (root.has(\"RF\")) {\n (0, _util.warn)(\"Related file specifications are not supported\");\n }\n\n this.contentAvailable = true;\n\n if (!root.has(\"EF\")) {\n this.contentAvailable = false;\n (0, _util.warn)(\"Non-embedded file specifications are not supported\");\n }\n }\n\n function pickPlatformItem(dict) {\n if (dict.has(\"UF\")) {\n return dict.get(\"UF\");\n } else if (dict.has(\"F\")) {\n return dict.get(\"F\");\n } else if (dict.has(\"Unix\")) {\n return dict.get(\"Unix\");\n } else if (dict.has(\"Mac\")) {\n return dict.get(\"Mac\");\n } else if (dict.has(\"DOS\")) {\n return dict.get(\"DOS\");\n }\n\n return null;\n }\n\n FileSpec.prototype = {\n get filename() {\n if (!this._filename && this.root) {\n var filename = pickPlatformItem(this.root) || \"unnamed\";\n this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\\\\\/g, \"\\\\\").replace(/\\\\\\//g, \"/\").replace(/\\\\/g, \"/\");\n }\n\n return this._filename;\n },\n\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n }\n\n var content = null;\n\n if (this.contentRef) {\n var xref = this.xref;\n var fileObj = xref.fetchIfRef(this.contentRef);\n\n if (fileObj && (0, _primitives.isStream)(fileObj)) {\n content = fileObj.getBytes();\n } else {\n (0, _util.warn)(\"Embedded file specification points to non-existing/invalid \" + \"content\");\n }\n } else {\n (0, _util.warn)(\"Embedded file specification does not have a content\");\n }\n\n return content;\n },\n\n get serializable() {\n return {\n filename: this.filename,\n content: this.content\n };\n }\n\n };\n return FileSpec;\n}();\n\nexports.FileSpec = FileSpec;\n\nconst ObjectLoader = function () {\n function mayHaveChildren(value) {\n return value instanceof _primitives.Ref || value instanceof _primitives.Dict || Array.isArray(value) || (0, _primitives.isStream)(value);\n }\n\n function addChildren(node, nodesToVisit) {\n if (node instanceof _primitives.Dict || (0, _primitives.isStream)(node)) {\n const dict = node instanceof _primitives.Dict ? node : node.dict;\n const dictKeys = dict.getKeys();\n\n for (let i = 0, ii = dictKeys.length; i < ii; i++) {\n const rawValue = dict.getRaw(dictKeys[i]);\n\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n } else if (Array.isArray(node)) {\n for (let i = 0, ii = node.length; i < ii; i++) {\n const value = node[i];\n\n if (mayHaveChildren(value)) {\n nodesToVisit.push(value);\n }\n }\n }\n }\n\n function ObjectLoader(dict, keys, xref) {\n this.dict = dict;\n this.keys = keys;\n this.xref = xref;\n this.refSet = null;\n }\n\n ObjectLoader.prototype = {\n async load() {\n if (!this.xref.stream.allChunksLoaded || this.xref.stream.allChunksLoaded()) {\n return undefined;\n }\n\n const {\n keys,\n dict\n } = this;\n this.refSet = new _primitives.RefSet();\n const nodesToVisit = [];\n\n for (let i = 0, ii = keys.length; i < ii; i++) {\n const rawValue = dict.getRaw(keys[i]);\n\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n\n return this._walk(nodesToVisit);\n },\n\n async _walk(nodesToVisit) {\n const nodesToRevisit = [];\n const pendingRequests = [];\n\n while (nodesToVisit.length) {\n let currentNode = nodesToVisit.pop();\n\n if (currentNode instanceof _primitives.Ref) {\n if (this.refSet.has(currentNode)) {\n continue;\n }\n\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof _core_utils.MissingDataException)) {\n throw ex;\n }\n\n nodesToRevisit.push(currentNode);\n pendingRequests.push({\n begin: ex.begin,\n end: ex.end\n });\n }\n }\n\n if (currentNode && currentNode.getBaseStreams) {\n const baseStreams = currentNode.getBaseStreams();\n let foundMissingData = false;\n\n for (let i = 0, ii = baseStreams.length; i < ii; i++) {\n const stream = baseStreams[i];\n\n if (stream.allChunksLoaded && !stream.allChunksLoaded()) {\n foundMissingData = true;\n pendingRequests.push({\n begin: stream.start,\n end: stream.end\n });\n }\n }\n\n if (foundMissingData) {\n nodesToRevisit.push(currentNode);\n }\n }\n\n addChildren(currentNode, nodesToVisit);\n }\n\n if (pendingRequests.length) {\n await this.xref.stream.manager.requestRanges(pendingRequests);\n\n for (let i = 0, ii = nodesToRevisit.length; i < ii; i++) {\n const node = nodesToRevisit[i];\n\n if (node instanceof _primitives.Ref) {\n this.refSet.remove(node);\n }\n }\n\n return this._walk(nodesToRevisit);\n }\n\n this.refSet = null;\n return undefined;\n }\n\n };\n return ObjectLoader;\n}();\n\nexports.ObjectLoader = ObjectLoader;\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.Parser = exports.Linearization = exports.Lexer = void 0;\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _ccitt_stream = __w_pdfjs_require__(13);\n\nvar _jbig2_stream = __w_pdfjs_require__(15);\n\nvar _jpeg_stream = __w_pdfjs_require__(18);\n\nvar _jpx_stream = __w_pdfjs_require__(20);\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n const bytesLength = bytes.length;\n let a = 1,\n b = 0;\n\n for (let i = 0; i < bytesLength; ++i) {\n a += bytes[i] & 0xff;\n b += a;\n }\n\n return b % 65521 << 16 | a % 65521;\n}\n\nclass Parser {\n constructor({\n lexer,\n xref,\n allowStreams = false,\n recoveryMode = false\n }) {\n this.lexer = lexer;\n this.xref = xref;\n this.allowStreams = allowStreams;\n this.recoveryMode = recoveryMode;\n this.imageCache = Object.create(null);\n this.refill();\n }\n\n refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n }\n\n shift() {\n if (this.buf2 instanceof _primitives.Cmd && this.buf2.cmd === \"ID\") {\n this.buf1 = this.buf2;\n this.buf2 = null;\n } else {\n this.buf1 = this.buf2;\n this.buf2 = this.lexer.getObj();\n }\n }\n\n tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof _core_utils.MissingDataException) {\n throw e;\n }\n\n return false;\n }\n }\n\n getObj(cipherTransform = null) {\n const buf1 = this.buf1;\n this.shift();\n\n if (buf1 instanceof _primitives.Cmd) {\n switch (buf1.cmd) {\n case \"BI\":\n return this.makeInlineImage(cipherTransform);\n\n case \"[\":\n const array = [];\n\n while (!(0, _primitives.isCmd)(this.buf1, \"]\") && !(0, _primitives.isEOF)(this.buf1)) {\n array.push(this.getObj(cipherTransform));\n }\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError(\"End of file inside array\");\n }\n\n return array;\n }\n\n this.shift();\n return array;\n\n case \"<<\":\n const dict = new _primitives.Dict(this.xref);\n\n while (!(0, _primitives.isCmd)(this.buf1, \">>\") && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n (0, _util.info)(\"Malformed dictionary: key must be a name object\");\n this.shift();\n continue;\n }\n\n const key = this.buf1.name;\n this.shift();\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n\n dict.set(key, this.getObj(cipherTransform));\n }\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError(\"End of file inside dictionary\");\n }\n\n return dict;\n }\n\n if ((0, _primitives.isCmd)(this.buf2, \"stream\")) {\n return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n }\n\n this.shift();\n return dict;\n\n default:\n return buf1;\n }\n }\n\n if (Number.isInteger(buf1)) {\n if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, \"R\")) {\n const ref = _primitives.Ref.get(buf1, this.buf1);\n\n this.shift();\n this.shift();\n return ref;\n }\n\n return buf1;\n }\n\n if (typeof buf1 === \"string\") {\n if (cipherTransform) {\n return cipherTransform.decryptString(buf1);\n }\n\n return buf1;\n }\n\n return buf1;\n }\n\n findDefaultInlineStreamEnd(stream) {\n const E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xa,\n CR = 0xd;\n const n = 10,\n NUL = 0x0;\n const startPos = stream.pos;\n let state = 0,\n ch,\n maybeEIPos;\n\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else {\n (0, _util.assert)(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n const followingBytes = stream.peekBytes(n);\n\n for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n continue;\n }\n\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n state = 0;\n break;\n }\n }\n\n if (state === 2) {\n break;\n }\n } else {\n state = 0;\n }\n }\n }\n\n if (ch === -1) {\n (0, _util.warn)(\"findDefaultInlineStreamEnd: \" + \"Reached the end of the stream without finding a valid EI marker\");\n\n if (maybeEIPos) {\n (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos));\n }\n }\n\n let endOffset = 4;\n stream.skip(-endOffset);\n ch = stream.peekByte();\n stream.skip(endOffset);\n\n if (!(0, _core_utils.isWhiteSpace)(ch)) {\n endOffset--;\n }\n\n return stream.pos - endOffset - startPos;\n }\n\n findDCTDecodeInlineStreamEnd(stream) {\n const startPos = stream.pos;\n let foundEOI = false,\n b,\n markerLength;\n\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xff) {\n continue;\n }\n\n switch (stream.getByte()) {\n case 0x00:\n break;\n\n case 0xff:\n stream.skip(-1);\n break;\n\n case 0xd9:\n foundEOI = true;\n break;\n\n case 0xc0:\n case 0xc1:\n case 0xc2:\n case 0xc3:\n case 0xc5:\n case 0xc6:\n case 0xc7:\n case 0xc9:\n case 0xca:\n case 0xcb:\n case 0xcd:\n case 0xce:\n case 0xcf:\n case 0xc4:\n case 0xcc:\n case 0xda:\n case 0xdb:\n case 0xdc:\n case 0xdd:\n case 0xde:\n case 0xdf:\n case 0xe0:\n case 0xe1:\n case 0xe2:\n case 0xe3:\n case 0xe4:\n case 0xe5:\n case 0xe6:\n case 0xe7:\n case 0xe8:\n case 0xe9:\n case 0xea:\n case 0xeb:\n case 0xec:\n case 0xed:\n case 0xee:\n case 0xef:\n case 0xfe:\n markerLength = stream.getUint16();\n\n if (markerLength > 2) {\n stream.skip(markerLength - 2);\n } else {\n stream.skip(-2);\n }\n\n break;\n }\n\n if (foundEOI) {\n break;\n }\n }\n\n const length = stream.pos - startPos;\n\n if (b === -1) {\n (0, _util.warn)(\"Inline DCTDecode image stream: \" + \"EOI marker not found, searching for /EI/ instead.\");\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n findASCII85DecodeInlineStreamEnd(stream) {\n const TILDE = 0x7e,\n GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE) {\n const tildePos = stream.pos;\n ch = stream.peekByte();\n\n while ((0, _core_utils.isWhiteSpace)(ch)) {\n stream.skip();\n ch = stream.peekByte();\n }\n\n if (ch === GT) {\n stream.skip();\n break;\n }\n\n if (stream.pos > tildePos) {\n const maybeEI = stream.peekBytes(2);\n\n if (maybeEI[0] === 0x45 && maybeEI[1] === 0x49) {\n break;\n }\n }\n }\n }\n\n const length = stream.pos - startPos;\n\n if (ch === -1) {\n (0, _util.warn)(\"Inline ASCII85Decode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n findASCIIHexDecodeInlineStreamEnd(stream) {\n const GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n\n const length = stream.pos - startPos;\n\n if (ch === -1) {\n (0, _util.warn)(\"Inline ASCIIHexDecode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n inlineStreamSkipEI(stream) {\n const E = 0x45,\n I = 0x49;\n let state = 0,\n ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n }\n\n makeInlineImage(cipherTransform) {\n const lexer = this.lexer;\n const stream = lexer.stream;\n const dict = new _primitives.Dict(this.xref);\n let dictLength;\n\n while (!(0, _primitives.isCmd)(this.buf1, \"ID\") && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n throw new _util.FormatError(\"Dictionary key must be a name object\");\n }\n\n const key = this.buf1.name;\n this.shift();\n\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n\n dict.set(key, this.getObj(cipherTransform));\n }\n\n if (lexer.beginInlineImagePos !== -1) {\n dictLength = stream.pos - lexer.beginInlineImagePos;\n }\n\n const filter = dict.get(\"Filter\", \"F\");\n let filterName;\n\n if ((0, _primitives.isName)(filter)) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n const filterZero = this.xref.fetchIfRef(filter[0]);\n\n if ((0, _primitives.isName)(filterZero)) {\n filterName = filterZero.name;\n }\n }\n\n const startPos = stream.pos;\n let length;\n\n if (filterName === \"DCTDecode\" || filterName === \"DCT\") {\n length = this.findDCTDecodeInlineStreamEnd(stream);\n } else if (filterName === \"ASCII85Decode\" || filterName === \"A85\") {\n length = this.findASCII85DecodeInlineStreamEnd(stream);\n } else if (filterName === \"ASCIIHexDecode\" || filterName === \"AHx\") {\n length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n } else {\n length = this.findDefaultInlineStreamEnd(stream);\n }\n\n let imageStream = stream.makeSubStream(startPos, length, dict);\n let cacheKey;\n\n if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n const imageBytes = imageStream.getBytes();\n imageStream.reset();\n const initialStreamPos = stream.pos;\n stream.pos = lexer.beginInlineImagePos;\n const dictBytes = stream.getBytes(dictLength);\n stream.pos = initialStreamPos;\n cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n const cacheEntry = this.imageCache[cacheKey];\n\n if (cacheEntry !== undefined) {\n this.buf2 = _primitives.Cmd.get(\"EI\");\n this.shift();\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n\n if (cacheKey !== undefined) {\n imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n this.imageCache[cacheKey] = imageStream;\n }\n\n this.buf2 = _primitives.Cmd.get(\"EI\");\n this.shift();\n return imageStream;\n }\n\n _findStreamLength(startPos, signature) {\n const {\n stream\n } = this.lexer;\n stream.pos = startPos;\n const SCAN_BLOCK_LENGTH = 2048;\n const signatureLength = signature.length;\n\n while (stream.pos < stream.end) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n break;\n }\n\n let pos = 0;\n\n while (pos < scanLength) {\n let j = 0;\n\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n stream.pos += pos;\n return stream.pos - startPos;\n }\n\n pos++;\n }\n\n stream.pos += scanLength;\n }\n\n return -1;\n }\n\n makeStream(dict, cipherTransform) {\n const lexer = this.lexer;\n let stream = lexer.stream;\n lexer.skipToNextLine();\n const startPos = stream.pos - 1;\n let length = dict.get(\"Length\");\n\n if (!Number.isInteger(length)) {\n (0, _util.info)(`Bad length \"${length}\" in stream`);\n length = 0;\n }\n\n stream.pos = startPos + length;\n lexer.nextChar();\n\n if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, \"endstream\")) {\n this.shift();\n } else {\n const ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]);\n\n let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n\n if (actualLength < 0) {\n const MAX_TRUNCATION = 1;\n\n for (let i = 1; i <= MAX_TRUNCATION; i++) {\n const end = ENDSTREAM_SIGNATURE.length - i;\n const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n const maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE);\n\n if (maybeLength >= 0) {\n const lastByte = stream.peekBytes(end + 1)[end];\n\n if (!(0, _core_utils.isWhiteSpace)(lastByte)) {\n break;\n }\n\n (0, _util.info)(`Found \"${(0, _util.bytesToString)(TRUNCATED_SIGNATURE)}\" when ` + \"searching for endstream command.\");\n actualLength = maybeLength;\n break;\n }\n }\n\n if (actualLength < 0) {\n throw new _util.FormatError(\"Missing endstream command.\");\n }\n }\n\n length = actualLength;\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n\n this.shift();\n stream = stream.makeSubStream(startPos, length, dict);\n\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n }\n\n filter(stream, dict, length) {\n let filter = dict.get(\"Filter\", \"F\");\n let params = dict.get(\"DecodeParms\", \"DP\");\n\n if ((0, _primitives.isName)(filter)) {\n if (Array.isArray(params)) {\n (0, _util.warn)(\"/DecodeParms should not contain an Array, \" + \"when /Filter contains a Name.\");\n }\n\n return this.makeFilter(stream, filter.name, length, params);\n }\n\n let maybeLength = length;\n\n if (Array.isArray(filter)) {\n const filterArray = filter;\n const paramsArray = params;\n\n for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n\n if (!(0, _primitives.isName)(filter)) {\n throw new _util.FormatError(`Bad filter name \"${filter}\"`);\n }\n\n params = null;\n\n if (Array.isArray(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n maybeLength = null;\n }\n }\n\n return stream;\n }\n\n makeFilter(stream, name, maybeLength, params) {\n if (maybeLength === 0) {\n (0, _util.warn)(`Empty \"${name}\" stream.`);\n return new _stream.NullStream();\n }\n\n try {\n const xrefStreamStats = this.xref.stats.streamTypes;\n\n if (name === \"FlateDecode\" || name === \"Fl\") {\n xrefStreamStats[_util.StreamType.FLATE] = true;\n\n if (params) {\n return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params);\n }\n\n return new _stream.FlateStream(stream, maybeLength);\n }\n\n if (name === \"LZWDecode\" || name === \"LZW\") {\n xrefStreamStats[_util.StreamType.LZW] = true;\n let earlyChange = 1;\n\n if (params) {\n if (params.has(\"EarlyChange\")) {\n earlyChange = params.get(\"EarlyChange\");\n }\n\n return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n }\n\n return new _stream.LZWStream(stream, maybeLength, earlyChange);\n }\n\n if (name === \"DCTDecode\" || name === \"DCT\") {\n xrefStreamStats[_util.StreamType.DCT] = true;\n return new _jpeg_stream.JpegStream(stream, maybeLength, stream.dict, params);\n }\n\n if (name === \"JPXDecode\" || name === \"JPX\") {\n xrefStreamStats[_util.StreamType.JPX] = true;\n return new _jpx_stream.JpxStream(stream, maybeLength, stream.dict, params);\n }\n\n if (name === \"ASCII85Decode\" || name === \"A85\") {\n xrefStreamStats[_util.StreamType.A85] = true;\n return new _stream.Ascii85Stream(stream, maybeLength);\n }\n\n if (name === \"ASCIIHexDecode\" || name === \"AHx\") {\n xrefStreamStats[_util.StreamType.AHX] = true;\n return new _stream.AsciiHexStream(stream, maybeLength);\n }\n\n if (name === \"CCITTFaxDecode\" || name === \"CCF\") {\n xrefStreamStats[_util.StreamType.CCF] = true;\n return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params);\n }\n\n if (name === \"RunLengthDecode\" || name === \"RL\") {\n xrefStreamStats[_util.StreamType.RLX] = true;\n return new _stream.RunLengthStream(stream, maybeLength);\n }\n\n if (name === \"JBIG2Decode\") {\n xrefStreamStats[_util.StreamType.JBIG] = true;\n return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params);\n }\n\n (0, _util.warn)(`Filter \"${name}\" is not supported.`);\n return stream;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(`Invalid stream: \"${ex}\"`);\n return new _stream.NullStream();\n }\n }\n\n}\n\nexports.Parser = Parser;\nconst specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\nfunction toHexDigit(ch) {\n if (ch >= 0x30 && ch <= 0x39) {\n return ch & 0x0f;\n }\n\n if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n return (ch & 0x0f) + 9;\n }\n\n return -1;\n}\n\nclass Lexer {\n constructor(stream, knownCommands = null) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n this.knownCommands = knownCommands;\n this._hexStringNumWarn = 0;\n this.beginInlineImagePos = -1;\n }\n\n nextChar() {\n return this.currentChar = this.stream.getByte();\n }\n\n peekChar() {\n return this.stream.peekByte();\n }\n\n getNumber() {\n let ch = this.currentChar;\n let eNotation = false;\n let divideBy = 0;\n let sign = 0;\n\n if (ch === 0x2d) {\n sign = -1;\n ch = this.nextChar();\n\n if (ch === 0x2d) {\n ch = this.nextChar();\n }\n } else if (ch === 0x2b) {\n sign = 1;\n ch = this.nextChar();\n }\n\n if (ch === 0x0a || ch === 0x0d) {\n do {\n ch = this.nextChar();\n } while (ch === 0x0a || ch === 0x0d);\n }\n\n if (ch === 0x2e) {\n divideBy = 10;\n ch = this.nextChar();\n }\n\n if (ch < 0x30 || ch > 0x39) {\n if (divideBy === 10 && sign === 0 && ((0, _core_utils.isWhiteSpace)(ch) || ch === -1)) {\n (0, _util.warn)(\"Lexer.getNumber - treating a single decimal point as zero.\");\n return 0;\n }\n\n throw new _util.FormatError(`Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`);\n }\n\n sign = sign || 1;\n let baseValue = ch - 0x30;\n let powerValue = 0;\n let powerValueSign = 1;\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= 0x30 && ch <= 0x39) {\n const currentDigit = ch - 0x30;\n\n if (eNotation) {\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n divideBy *= 10;\n }\n\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === 0x2e) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n break;\n }\n } else if (ch === 0x2d) {\n (0, _util.warn)(\"Badly formatted number: minus sign in the middle\");\n } else if (ch === 0x45 || ch === 0x65) {\n ch = this.peekChar();\n\n if (ch === 0x2b || ch === 0x2d) {\n powerValueSign = ch === 0x2d ? -1 : 1;\n this.nextChar();\n } else if (ch < 0x30 || ch > 0x39) {\n break;\n }\n\n eNotation = true;\n } else {\n break;\n }\n }\n\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n\n if (eNotation) {\n baseValue *= 10 ** (powerValueSign * powerValue);\n }\n\n return sign * baseValue;\n }\n\n getString() {\n let numParen = 1;\n let done = false;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n let ch = this.nextChar();\n\n while (true) {\n let charBuffered = false;\n\n switch (ch | 0) {\n case -1:\n (0, _util.warn)(\"Unterminated string\");\n done = true;\n break;\n\n case 0x28:\n ++numParen;\n strBuf.push(\"(\");\n break;\n\n case 0x29:\n if (--numParen === 0) {\n this.nextChar();\n done = true;\n } else {\n strBuf.push(\")\");\n }\n\n break;\n\n case 0x5c:\n ch = this.nextChar();\n\n switch (ch) {\n case -1:\n (0, _util.warn)(\"Unterminated string\");\n done = true;\n break;\n\n case 0x6e:\n strBuf.push(\"\\n\");\n break;\n\n case 0x72:\n strBuf.push(\"\\r\");\n break;\n\n case 0x74:\n strBuf.push(\"\\t\");\n break;\n\n case 0x62:\n strBuf.push(\"\\b\");\n break;\n\n case 0x66:\n strBuf.push(\"\\f\");\n break;\n\n case 0x5c:\n case 0x28:\n case 0x29:\n strBuf.push(String.fromCharCode(ch));\n break;\n\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n let x = ch & 0x0f;\n ch = this.nextChar();\n charBuffered = true;\n\n if (ch >= 0x30 && ch <= 0x37) {\n x = (x << 3) + (ch & 0x0f);\n ch = this.nextChar();\n\n if (ch >= 0x30 && ch <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0f);\n }\n }\n\n strBuf.push(String.fromCharCode(x));\n break;\n\n case 0x0d:\n if (this.peekChar() === 0x0a) {\n this.nextChar();\n }\n\n break;\n\n case 0x0a:\n break;\n\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n\n break;\n\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n\n if (done) {\n break;\n }\n\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n\n return strBuf.join(\"\");\n }\n\n getName() {\n let ch, previousCh;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === 0x23) {\n ch = this.nextChar();\n\n if (specialChars[ch]) {\n (0, _util.warn)(\"Lexer_getName: \" + \"NUMBER SIGN (#) should be followed by a hexadecimal number.\");\n strBuf.push(\"#\");\n break;\n }\n\n const x = toHexDigit(ch);\n\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n const x2 = toHexDigit(ch);\n\n if (x2 === -1) {\n (0, _util.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` + \"in hexadecimal number.\");\n strBuf.push(\"#\", String.fromCharCode(previousCh));\n\n if (specialChars[ch]) {\n break;\n }\n\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n\n strBuf.push(String.fromCharCode(x << 4 | x2));\n } else {\n strBuf.push(\"#\", String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n\n if (strBuf.length > 127) {\n (0, _util.warn)(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n }\n\n return _primitives.Name.get(strBuf.join(\"\"));\n }\n\n _hexStringWarn(ch) {\n const MAX_HEX_STRING_NUM_WARN = 5;\n\n if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n (0, _util.warn)(\"getHexString - ignoring additional invalid characters.\");\n return;\n }\n\n if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n return;\n }\n\n (0, _util.warn)(`getHexString - ignoring invalid character: ${ch}`);\n }\n\n getHexString() {\n const strBuf = this.strBuf;\n strBuf.length = 0;\n let ch = this.currentChar;\n let isFirstHex = true;\n let firstDigit, secondDigit;\n this._hexStringNumWarn = 0;\n\n while (true) {\n if (ch < 0) {\n (0, _util.warn)(\"Unterminated hex string\");\n break;\n } else if (ch === 0x3e) {\n this.nextChar();\n break;\n } else if (specialChars[ch] === 1) {\n ch = this.nextChar();\n continue;\n } else {\n if (isFirstHex) {\n firstDigit = toHexDigit(ch);\n\n if (firstDigit === -1) {\n this._hexStringWarn(ch);\n\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n\n if (secondDigit === -1) {\n this._hexStringWarn(ch);\n\n ch = this.nextChar();\n continue;\n }\n\n strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n }\n\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n\n return strBuf.join(\"\");\n }\n\n getObj() {\n let comment = false;\n let ch = this.currentChar;\n\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (specialChars[ch] !== 1) {\n break;\n }\n\n ch = this.nextChar();\n }\n\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2b:\n case 0x2d:\n case 0x2e:\n return this.getNumber();\n\n case 0x28:\n return this.getString();\n\n case 0x2f:\n return this.getName();\n\n case 0x5b:\n this.nextChar();\n return _primitives.Cmd.get(\"[\");\n\n case 0x5d:\n this.nextChar();\n return _primitives.Cmd.get(\"]\");\n\n case 0x3c:\n ch = this.nextChar();\n\n if (ch === 0x3c) {\n this.nextChar();\n return _primitives.Cmd.get(\"<<\");\n }\n\n return this.getHexString();\n\n case 0x3e:\n ch = this.nextChar();\n\n if (ch === 0x3e) {\n this.nextChar();\n return _primitives.Cmd.get(\">>\");\n }\n\n return _primitives.Cmd.get(\">\");\n\n case 0x7b:\n this.nextChar();\n return _primitives.Cmd.get(\"{\");\n\n case 0x7d:\n this.nextChar();\n return _primitives.Cmd.get(\"}\");\n\n case 0x29:\n this.nextChar();\n throw new _util.FormatError(`Illegal character: ${ch}`);\n }\n\n let str = String.fromCharCode(ch);\n const knownCommands = this.knownCommands;\n let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n const possibleCommand = str + String.fromCharCode(ch);\n\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n\n if (str.length === 128) {\n throw new _util.FormatError(`Command token too long: ${str.length}`);\n }\n\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n\n if (str === \"true\") {\n return true;\n }\n\n if (str === \"false\") {\n return false;\n }\n\n if (str === \"null\") {\n return null;\n }\n\n if (str === \"BI\") {\n this.beginInlineImagePos = this.stream.pos;\n }\n\n return _primitives.Cmd.get(str);\n }\n\n skipToNextLine() {\n let ch = this.currentChar;\n\n while (ch >= 0) {\n if (ch === 0x0d) {\n ch = this.nextChar();\n\n if (ch === 0x0a) {\n this.nextChar();\n }\n\n break;\n } else if (ch === 0x0a) {\n this.nextChar();\n break;\n }\n\n ch = this.nextChar();\n }\n }\n\n}\n\nexports.Lexer = Lexer;\n\nclass Linearization {\n static create(stream) {\n function getInt(linDict, name, allowZeroValue = false) {\n const obj = linDict.get(name);\n\n if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n\n throw new Error(`The \"${name}\" parameter in the linearization ` + \"dictionary is invalid.\");\n }\n\n function getHints(linDict) {\n const hints = linDict.get(\"H\");\n let hintsLength;\n\n if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n for (let index = 0; index < hintsLength; index++) {\n const hint = hints[index];\n\n if (!(Number.isInteger(hint) && hint > 0)) {\n throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`);\n }\n }\n\n return hints;\n }\n\n throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n }\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: null\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n const linDict = parser.getObj();\n let obj, length;\n\n if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, \"obj\") && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get(\"Linearized\")) && obj > 0)) {\n return null;\n } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n throw new Error('The \"L\" parameter in the linearization dictionary ' + \"does not equal the stream length.\");\n }\n\n return {\n length,\n hints: getHints(linDict),\n objectNumberFirst: getInt(linDict, \"O\"),\n endFirst: getInt(linDict, \"E\"),\n numPages: getInt(linDict, \"N\"),\n mainXRefEntriesOffset: getInt(linDict, \"T\"),\n pageFirst: linDict.has(\"P\") ? getInt(linDict, \"P\", true) : 0\n };\n }\n\n}\n\nexports.Linearization = Linearization;\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.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar Stream = function StreamClosure() {\n function Stream(arrayBuffer, start, length, dict) {\n this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n\n Stream.prototype = {\n get length() {\n return this.end - this.start;\n },\n\n get isEmpty() {\n return this.length === 0;\n },\n\n getByte: function Stream_getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n\n return this.bytes[this.pos++];\n },\n getUint16: function Stream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n\n return (b0 << 8) + b1;\n },\n getInt32: function Stream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n\n getBytes(length, forceClamped = false) {\n var bytes = this.bytes;\n var pos = this.pos;\n var strEnd = this.end;\n\n if (!length) {\n const subarray = bytes.subarray(pos, strEnd);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n\n var end = pos + length;\n\n if (end > strEnd) {\n end = strEnd;\n }\n\n this.pos = end;\n const subarray = bytes.subarray(pos, end);\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n },\n\n peekByte: function Stream_peekByte() {\n var peekedByte = this.getByte();\n\n if (peekedByte !== -1) {\n this.pos--;\n }\n\n return peekedByte;\n },\n\n peekBytes(length, forceClamped = false) {\n var bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n },\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n\n if (end > this.end) {\n end = this.end;\n }\n\n return this.bytes.subarray(begin, end);\n },\n\n skip: function Stream_skip(n) {\n if (!n) {\n n = 1;\n }\n\n this.pos += n;\n },\n reset: function Stream_reset() {\n this.pos = this.start;\n },\n moveStart: function Stream_moveStart() {\n this.start = this.pos;\n },\n makeSubStream: function Stream_makeSubStream(start, length, dict) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n };\n return Stream;\n}();\n\nexports.Stream = Stream;\n\nvar StringStream = function StringStreamClosure() {\n function StringStream(str) {\n const bytes = (0, _util.stringToBytes)(str);\n Stream.call(this, bytes);\n }\n\n StringStream.prototype = Stream.prototype;\n return StringStream;\n}();\n\nexports.StringStream = StringStream;\n\nvar DecodeStream = function DecodeStreamClosure() {\n var emptyBuffer = new Uint8Array(0);\n\n function DecodeStream(maybeMinBufferLength) {\n this._rawMinBufferLength = maybeMinBufferLength || 0;\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n\n if (maybeMinBufferLength) {\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n\n DecodeStream.prototype = {\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n\n return this.bufferLength === 0;\n },\n\n ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n var buffer = this.buffer;\n\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n\n var size = this.minBufferLength;\n\n while (size < requested) {\n size *= 2;\n }\n\n var buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return this.buffer = buffer2;\n },\n getByte: function DecodeStream_getByte() {\n var pos = this.pos;\n\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n\n this.readBlock();\n }\n\n return this.buffer[this.pos++];\n },\n getUint16: function DecodeStream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n\n return (b0 << 8) + b1;\n },\n getInt32: function DecodeStream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n\n getBytes(length, forceClamped = false) {\n var end,\n pos = this.pos;\n\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n\n var bufEnd = this.bufferLength;\n\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n\n end = this.bufferLength;\n }\n\n this.pos = end;\n const subarray = this.buffer.subarray(pos, end);\n return forceClamped && !(subarray instanceof Uint8ClampedArray) ? new Uint8ClampedArray(subarray) : subarray;\n },\n\n peekByte: function DecodeStream_peekByte() {\n var peekedByte = this.getByte();\n\n if (peekedByte !== -1) {\n this.pos--;\n }\n\n return peekedByte;\n },\n\n peekBytes(length, forceClamped = false) {\n var bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n },\n\n makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n var end = start + length;\n\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n\n return new Stream(this.buffer, start, length, dict);\n },\n\n getByteRange(begin, end) {\n (0, _util.unreachable)(\"Should not call DecodeStream.getByteRange\");\n },\n\n skip: function DecodeStream_skip(n) {\n if (!n) {\n n = 1;\n }\n\n this.pos += n;\n },\n reset: function DecodeStream_reset() {\n this.pos = 0;\n },\n getBaseStreams: function DecodeStream_getBaseStreams() {\n if (this.str && this.str.getBaseStreams) {\n return this.str.getBaseStreams();\n }\n\n return [];\n }\n };\n return DecodeStream;\n}();\n\nexports.DecodeStream = DecodeStream;\n\nvar StreamsSequenceStream = function StreamsSequenceStreamClosure() {\n function StreamsSequenceStream(streams) {\n this.streams = streams;\n let maybeLength = 0;\n\n for (let i = 0, ii = streams.length; i < ii; i++) {\n const stream = streams[i];\n\n if (stream instanceof DecodeStream) {\n maybeLength += stream._rawMinBufferLength;\n } else {\n maybeLength += stream.length;\n }\n }\n\n DecodeStream.call(this, maybeLength);\n }\n\n StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);\n\n StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() {\n var streams = this.streams;\n\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n\n var stream = streams.shift();\n var chunk = stream.getBytes();\n var bufferLength = this.bufferLength;\n var newLength = bufferLength + chunk.length;\n var buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n };\n\n StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() {\n var baseStreams = [];\n\n for (var i = 0, ii = this.streams.length; i < ii; i++) {\n var stream = this.streams[i];\n\n if (stream.getBaseStreams) {\n baseStreams.push(...stream.getBaseStreams());\n }\n }\n\n return baseStreams;\n };\n\n return StreamsSequenceStream;\n}();\n\nexports.StreamsSequenceStream = StreamsSequenceStream;\n\nvar FlateStream = function FlateStreamClosure() {\n var codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n var lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\n var distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\n var fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\n var fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\n\n function FlateStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n var cmf = str.getByte();\n var flg = str.getByte();\n\n if (cmf === -1 || flg === -1) {\n throw new _util.FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n }\n\n if ((cmf & 0x0f) !== 0x08) {\n throw new _util.FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`);\n }\n\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new _util.FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n }\n\n if (flg & 0x20) {\n throw new _util.FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n }\n\n this.codeSize = 0;\n this.codeBuf = 0;\n DecodeStream.call(this, maybeLength);\n }\n\n FlateStream.prototype = Object.create(DecodeStream.prototype);\n\n FlateStream.prototype.getBits = function FlateStream_getBits(bits) {\n var str = this.str;\n var codeSize = this.codeSize;\n var codeBuf = this.codeBuf;\n var b;\n\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad encoding in flate stream\");\n }\n\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n\n b = codeBuf & (1 << bits) - 1;\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n return b;\n };\n\n FlateStream.prototype.getCode = function FlateStream_getCode(table) {\n var str = this.str;\n var codes = table[0];\n var maxLen = table[1];\n var codeSize = this.codeSize;\n var codeBuf = this.codeBuf;\n var b;\n\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n break;\n }\n\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n\n var code = codes[codeBuf & (1 << maxLen) - 1];\n var codeLen = code >> 16;\n var codeVal = code & 0xffff;\n\n if (codeLen < 1 || codeSize < codeLen) {\n throw new _util.FormatError(\"Bad encoding in flate stream\");\n }\n\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n };\n\n FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) {\n var n = lengths.length;\n var maxLen = 0;\n var i;\n\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n\n var size = 1 << maxLen;\n var codes = new Int32Array(size);\n\n for (var len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n for (var val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n var code2 = 0;\n var t = code;\n\n for (i = 0; i < len; ++i) {\n code2 = code2 << 1 | t & 1;\n t >>= 1;\n }\n\n for (i = code2; i < size; i += skip) {\n codes[i] = len << 16 | val;\n }\n\n ++code;\n }\n }\n }\n\n return [codes, maxLen];\n };\n\n FlateStream.prototype.readBlock = function FlateStream_readBlock() {\n var buffer, len;\n var str = this.str;\n var hdr = this.getBits(3);\n\n if (hdr & 1) {\n this.eof = true;\n }\n\n hdr >>= 1;\n\n if (hdr === 0) {\n var b;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n var blockLen = b;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n blockLen |= b << 8;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n var check = b;\n\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError(\"Bad block header in flate stream\");\n }\n\n check |= b << 8;\n\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n throw new _util.FormatError(\"Bad uncompressed block length in flate stream\");\n }\n\n this.codeBuf = 0;\n this.codeSize = 0;\n const bufferLength = this.bufferLength,\n end = bufferLength + blockLen;\n buffer = this.ensureBuffer(end);\n this.bufferLength = end;\n\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n const block = str.getBytes(blockLen);\n buffer.set(block, bufferLength);\n\n if (block.length < blockLen) {\n this.eof = true;\n }\n }\n\n return;\n }\n\n var litCodeTable;\n var distCodeTable;\n\n if (hdr === 1) {\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n var numLitCodes = this.getBits(5) + 257;\n var numDistCodes = this.getBits(5) + 1;\n var numCodeLenCodes = this.getBits(4) + 4;\n var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n var i;\n\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n\n var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n len = 0;\n i = 0;\n var codes = numLitCodes + numDistCodes;\n var codeLengths = new Uint8Array(codes);\n var bitsLength, bitsOffset, what;\n\n while (i < codes) {\n var code = this.getCode(codeLenCodeTab);\n\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n\n var repeatLength = this.getBits(bitsLength) + bitsOffset;\n\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n\n litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n } else {\n throw new _util.FormatError(\"Unknown block type in flate stream\");\n }\n\n buffer = this.buffer;\n var limit = buffer ? buffer.length : 0;\n var pos = this.bufferLength;\n\n while (true) {\n var code1 = this.getCode(litCodeTable);\n\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n\n buffer[pos++] = code1;\n continue;\n }\n\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n\n code1 -= 257;\n code1 = lengthDecode[code1];\n var code2 = code1 >> 16;\n\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n\n var dist = (code1 & 0xffff) + code2;\n\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n\n for (var k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n };\n\n return FlateStream;\n}();\n\nexports.FlateStream = FlateStream;\n\nvar PredictorStream = function PredictorStreamClosure() {\n function PredictorStream(str, maybeLength, params) {\n if (!(0, _primitives.isDict)(params)) {\n return str;\n }\n\n var predictor = this.predictor = params.get(\"Predictor\") || 1;\n\n if (predictor <= 1) {\n return str;\n }\n\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new _util.FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n if (predictor === 2) {\n this.readBlock = this.readBlockTiff;\n } else {\n this.readBlock = this.readBlockPng;\n }\n\n this.str = str;\n this.dict = str.dict;\n var colors = this.colors = params.get(\"Colors\") || 1;\n var bits = this.bits = params.get(\"BitsPerComponent\") || 8;\n var columns = this.columns = params.get(\"Columns\") || 1;\n this.pixBytes = colors * bits + 7 >> 3;\n this.rowBytes = columns * colors * bits + 7 >> 3;\n DecodeStream.call(this, maybeLength);\n return this;\n }\n\n PredictorStream.prototype = Object.create(DecodeStream.prototype);\n\n PredictorStream.prototype.readBlockTiff = function predictorStreamReadBlockTiff() {\n var rowBytes = this.rowBytes;\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var bits = this.bits;\n var colors = this.colors;\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n\n if (this.eof) {\n return;\n }\n\n var inbuf = 0,\n outbuf = 0;\n var inbits = 0,\n outbits = 0;\n var pos = bufferLength;\n var i;\n\n if (bits === 1 && colors === 1) {\n for (i = 0; i < rowBytes; ++i) {\n var c = rawBytes[i] ^ inbuf;\n c ^= c >> 1;\n c ^= c >> 2;\n c ^= c >> 4;\n inbuf = (c & 1) << 7;\n buffer[pos++] = c;\n }\n } else if (bits === 8) {\n for (i = 0; i < colors; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n\n for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else if (bits === 16) {\n var bytesPerPixel = colors * 2;\n\n for (i = 0; i < bytesPerPixel; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n\n for (; i < rowBytes; i += 2) {\n var sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xff);\n buffer[pos++] = sum >> 8 & 0xff;\n buffer[pos++] = sum & 0xff;\n }\n } else {\n var compArray = new Uint8Array(colors + 1);\n var bitMask = (1 << bits) - 1;\n var j = 0,\n k = bufferLength;\n var columns = this.columns;\n\n for (i = 0; i < columns; ++i) {\n for (var kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = inbuf << 8 | rawBytes[j++] & 0xff;\n inbits += 8;\n }\n\n compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n inbits -= bits;\n outbuf = outbuf << bits | compArray[kk];\n outbits += bits;\n\n if (outbits >= 8) {\n buffer[k++] = outbuf >> outbits - 8 & 0xff;\n outbits -= 8;\n }\n }\n }\n\n if (outbits > 0) {\n buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n }\n }\n\n this.bufferLength += rowBytes;\n };\n\n PredictorStream.prototype.readBlockPng = function predictorStreamReadBlockPng() {\n var rowBytes = this.rowBytes;\n var pixBytes = this.pixBytes;\n var predictor = this.str.getByte();\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n\n if (this.eof) {\n return;\n }\n\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n\n var i,\n j = bufferLength,\n up,\n c;\n\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n\n break;\n\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n\n for (; i < rowBytes; ++i) {\n buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff;\n j++;\n }\n\n break;\n\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = prevRow[i] + rawBytes[i] & 0xff;\n }\n\n break;\n\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n\n for (; i < rowBytes; ++i) {\n buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff;\n j++;\n }\n\n break;\n\n case 4:\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\n\n for (; i < rowBytes; ++i) {\n up = prevRow[i];\n var upLeft = prevRow[i - pixBytes];\n var left = buffer[j - pixBytes];\n var p = left + up - upLeft;\n var pa = p - left;\n\n if (pa < 0) {\n pa = -pa;\n }\n\n var pb = p - up;\n\n if (pb < 0) {\n pb = -pb;\n }\n\n var pc = p - upLeft;\n\n if (pc < 0) {\n pc = -pc;\n }\n\n c = rawBytes[i];\n\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n this.bufferLength += rowBytes;\n };\n\n return PredictorStream;\n}();\n\nexports.PredictorStream = PredictorStream;\n\nvar DecryptStream = function DecryptStreamClosure() {\n function DecryptStream(str, maybeLength, decrypt) {\n this.str = str;\n this.dict = str.dict;\n this.decrypt = decrypt;\n this.nextChunk = null;\n this.initialized = false;\n DecodeStream.call(this, maybeLength);\n }\n\n var chunkSize = 512;\n DecryptStream.prototype = Object.create(DecodeStream.prototype);\n\n DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n var chunk;\n\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n\n this.nextChunk = this.str.getBytes(chunkSize);\n var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n var decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n var bufferLength = this.bufferLength;\n var i,\n n = chunk.length;\n var buffer = this.ensureBuffer(bufferLength + n);\n\n for (i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n\n this.bufferLength = bufferLength;\n };\n\n return DecryptStream;\n}();\n\nexports.DecryptStream = DecryptStream;\n\nvar Ascii85Stream = function Ascii85StreamClosure() {\n function Ascii85Stream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n\n if (maybeLength) {\n maybeLength = 0.8 * maybeLength;\n }\n\n DecodeStream.call(this, maybeLength);\n }\n\n Ascii85Stream.prototype = Object.create(DecodeStream.prototype);\n\n Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {\n var TILDA_CHAR = 0x7e;\n var Z_LOWER_CHAR = 0x7a;\n var EOF = -1;\n var str = this.str;\n var c = str.getByte();\n\n while ((0, _core_utils.isWhiteSpace)(c)) {\n c = str.getByte();\n }\n\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n\n var bufferLength = this.bufferLength,\n buffer;\n var i;\n\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n\n this.bufferLength += 4;\n } else {\n var input = this.input;\n input[0] = c;\n\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n\n while ((0, _core_utils.isWhiteSpace)(c)) {\n c = str.getByte();\n }\n\n input[i] = c;\n\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n\n this.eof = true;\n }\n\n var t = 0;\n\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xff;\n t >>= 8;\n }\n }\n };\n\n return Ascii85Stream;\n}();\n\nexports.Ascii85Stream = Ascii85Stream;\n\nvar AsciiHexStream = function AsciiHexStreamClosure() {\n function AsciiHexStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.firstDigit = -1;\n\n if (maybeLength) {\n maybeLength = 0.5 * maybeLength;\n }\n\n DecodeStream.call(this, maybeLength);\n }\n\n AsciiHexStream.prototype = Object.create(DecodeStream.prototype);\n\n AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {\n var UPSTREAM_BLOCK_SIZE = 8000;\n var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n\n var maxDecodeLength = bytes.length + 1 >> 1;\n var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n var bufferLength = this.bufferLength;\n var firstDigit = this.firstDigit;\n\n for (var i = 0, ii = bytes.length; i < ii; i++) {\n var ch = bytes[i],\n digit;\n\n if (ch >= 0x30 && ch <= 0x39) {\n digit = ch & 0x0f;\n } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n digit = (ch & 0x0f) + 9;\n } else if (ch === 0x3e) {\n this.eof = true;\n break;\n } else {\n continue;\n }\n\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = firstDigit << 4 | digit;\n firstDigit = -1;\n }\n }\n\n if (firstDigit >= 0 && this.eof) {\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n };\n\n return AsciiHexStream;\n}();\n\nexports.AsciiHexStream = AsciiHexStream;\n\nvar RunLengthStream = function RunLengthStreamClosure() {\n function RunLengthStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n DecodeStream.call(this, maybeLength);\n }\n\n RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n\n RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n var repeatHeader = this.str.getBytes(2);\n\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n\n var buffer;\n var bufferLength = this.bufferLength;\n var n = repeatHeader[0];\n\n if (n < 128) {\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n\n if (n > 0) {\n var source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n var b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n\n for (var i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n\n this.bufferLength = bufferLength;\n };\n\n return RunLengthStream;\n}();\n\nexports.RunLengthStream = RunLengthStream;\n\nvar LZWStream = function LZWStreamClosure() {\n function LZWStream(str, maybeLength, earlyChange) {\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\n var maxLzwDictionarySize = 4096;\n var lzwState = {\n earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0\n };\n\n for (var i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n\n this.lzwState = lzwState;\n DecodeStream.call(this, maybeLength);\n }\n\n LZWStream.prototype = Object.create(DecodeStream.prototype);\n\n LZWStream.prototype.readBits = function LZWStream_readBits(n) {\n var bitsCached = this.bitsCached;\n var cachedData = this.cachedData;\n\n while (bitsCached < n) {\n var c = this.str.getByte();\n\n if (c === -1) {\n this.eof = true;\n return null;\n }\n\n cachedData = cachedData << 8 | c;\n bitsCached += 8;\n }\n\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return cachedData >>> bitsCached & (1 << n) - 1;\n };\n\n LZWStream.prototype.readBlock = function LZWStream_readBlock() {\n var blockSize = 512;\n var estimatedDecodedSize = blockSize * 2,\n decodedSizeDelta = blockSize;\n var i, j, q;\n var lzwState = this.lzwState;\n\n if (!lzwState) {\n return;\n }\n\n var earlyChange = lzwState.earlyChange;\n var nextCode = lzwState.nextCode;\n var dictionaryValues = lzwState.dictionaryValues;\n var dictionaryLengths = lzwState.dictionaryLengths;\n var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n var codeLength = lzwState.codeLength;\n var prevCode = lzwState.prevCode;\n var currentSequence = lzwState.currentSequence;\n var currentSequenceLength = lzwState.currentSequenceLength;\n var decodedLength = 0;\n var currentBufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n for (i = 0; i < blockSize; i++) {\n var code = this.readBits(codeLength);\n var hasPrev = currentSequenceLength > 0;\n\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n }\n\n prevCode = code;\n decodedLength += currentSequenceLength;\n\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n this.bufferLength = currentBufferLength;\n };\n\n return LZWStream;\n}();\n\nexports.LZWStream = LZWStream;\n\nvar NullStream = function NullStreamClosure() {\n function NullStream() {\n Stream.call(this, new Uint8Array(0));\n }\n\n NullStream.prototype = Stream.prototype;\n return NullStream;\n}();\n\nexports.NullStream = NullStream;\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.CCITTFaxStream = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _ccitt = __w_pdfjs_require__(14);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar CCITTFaxStream = function CCITTFaxStreamClosure() {\n function CCITTFaxStream(str, maybeLength, params) {\n this.str = str;\n this.dict = str.dict;\n\n if (!(0, _primitives.isDict)(params)) {\n params = _primitives.Dict.empty;\n }\n\n const source = {\n next() {\n return str.getByte();\n }\n\n };\n this.ccittFaxDecoder = new _ccitt.CCITTFaxDecoder(source, {\n K: params.get(\"K\"),\n EndOfLine: params.get(\"EndOfLine\"),\n EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n Columns: params.get(\"Columns\"),\n Rows: params.get(\"Rows\"),\n EndOfBlock: params.get(\"EndOfBlock\"),\n BlackIs1: params.get(\"BlackIs1\")\n });\n\n _stream.DecodeStream.call(this, maybeLength);\n }\n\n CCITTFaxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n\n CCITTFaxStream.prototype.readBlock = function () {\n while (!this.eof) {\n const c = this.ccittFaxDecoder.readNextChar();\n\n if (c === -1) {\n this.eof = true;\n return;\n }\n\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n };\n\n return CCITTFaxStream;\n}();\n\nexports.CCITTFaxStream = CCITTFaxStream;\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.CCITTFaxDecoder = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CCITTFaxDecoder = function CCITTFaxDecoder() {\n const ccittEOL = -2;\n const ccittEOF = -1;\n const twoDimPass = 0;\n const twoDimHoriz = 1;\n const twoDimVert0 = 2;\n const twoDimVertR1 = 3;\n const twoDimVertL1 = 4;\n const twoDimVertR2 = 5;\n const twoDimVertL2 = 6;\n const twoDimVertR3 = 7;\n const twoDimVertL3 = 8;\n const twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]];\n const whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]];\n const whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]];\n const blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]];\n const blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];\n const blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];\n\n function CCITTFaxDecoder(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n\n this.source = source;\n this.eof = false;\n this.encoding = options.K || 0;\n this.eoline = options.EndOfLine || false;\n this.byteAlign = options.EncodedByteAlign || false;\n this.columns = options.Columns || 1728;\n this.rows = options.Rows || 0;\n let eoblock = options.EndOfBlock;\n\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n\n this.eoblock = eoblock;\n this.black = options.BlackIs1 || false;\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n this.rowsDone = false;\n let code1;\n\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n\n if (code1 === 1) {\n this._eatBits(12);\n }\n\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n\n this._eatBits(1);\n }\n }\n\n CCITTFaxDecoder.prototype = {\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n\n if (this.eof) {\n return -1;\n }\n\n this.err = false;\n let code1, code2, code3;\n\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n\n break;\n\n case twoDimHoriz:\n code1 = code2 = 0;\n\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n\n do {\n code2 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n\n break;\n\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n\n blackPixels ^= 1;\n\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n\n break;\n\n case ccittEOF:\n this._addPixels(columns, 0);\n\n this.eof = true;\n break;\n\n default:\n (0, _util.info)(\"bad 2d code\");\n\n this._addPixels(columns, 0);\n\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n }\n\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n blackPixels ^= 1;\n }\n }\n\n let gotEOL = false;\n\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n\n code1 = this._lookBits(12);\n }\n }\n\n if (code1 === 1) {\n this._eatBits(12);\n\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n\n if (code1 === 1) {\n this._eatBits(12);\n\n if (this.encoding > 0) {\n this._lookBits(1);\n\n this._eatBits(1);\n }\n\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n\n if (code1 !== 1) {\n (0, _util.info)(\"bad rtc code: \" + code1);\n }\n\n this._eatBits(12);\n\n if (this.encoding > 0) {\n this._lookBits(1);\n\n this._eatBits(1);\n }\n }\n }\n\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n\n if (code1 >> 1 === 1) {\n break;\n }\n\n this._eatBits(1);\n }\n\n this._eatBits(12);\n\n if (this.encoding > 0) {\n this._eatBits(1);\n\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[this.codingPos = 0];\n } else {\n this.outputBits = codingLine[this.codingPos = 1];\n }\n\n this.row++;\n }\n\n let c;\n\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n\n do {\n if (this.outputBits > bits) {\n c <<= bits;\n\n if (!(this.codingPos & 1)) {\n c |= 0xff >> 8 - bits;\n }\n\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n\n if (!(this.codingPos & 1)) {\n c |= 0xff >> 8 - this.outputBits;\n }\n\n bits -= this.outputBits;\n this.outputBits = 0;\n\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n\n if (this.black) {\n c ^= 0xff;\n }\n\n return c;\n },\n\n _addPixels(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n (0, _util.info)(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n\n if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n },\n\n _addPixelsNeg(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n (0, _util.info)(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n\n if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n (0, _util.info)(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n },\n\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n\n if (i < end) {\n code <<= end - i;\n }\n\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n\n if (p[0] === i) {\n this._eatBits(i);\n\n return [true, p[1], true];\n }\n }\n }\n\n return [false, 0, false];\n },\n\n _getTwoDimCode() {\n let code = 0;\n let p;\n\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n\n (0, _util.info)(\"Bad two dim code\");\n return ccittEOF;\n },\n\n _getWhiteCode() {\n let code = 0;\n let p;\n\n if (this.eoblock) {\n code = this._lookBits(12);\n\n if (code === ccittEOF) {\n return 1;\n }\n\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n\n if (result[0]) {\n return result[1];\n }\n }\n\n (0, _util.info)(\"bad white code\");\n\n this._eatBits(1);\n\n return 1;\n },\n\n _getBlackCode() {\n let code, p;\n\n if (this.eoblock) {\n code = this._lookBits(13);\n\n if (code === ccittEOF) {\n return 1;\n }\n\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n\n if (result[0]) {\n return result[1];\n }\n }\n\n (0, _util.info)(\"bad black code\");\n\n this._eatBits(1);\n\n return 1;\n },\n\n _lookBits(n) {\n let c;\n\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n\n return this.inputBuf << n - this.inputBits & 0xffff >> 16 - n;\n }\n\n this.inputBuf = this.inputBuf << 8 | c;\n this.inputBits += 8;\n }\n\n return this.inputBuf >> this.inputBits - n & 0xffff >> 16 - n;\n },\n\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n\n };\n return CCITTFaxDecoder;\n}();\n\nexports.CCITTFaxDecoder = CCITTFaxDecoder;\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.Jbig2Stream = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _jbig = __w_pdfjs_require__(16);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst Jbig2Stream = function Jbig2StreamClosure() {\n function Jbig2Stream(stream, maybeLength, dict, params) {\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n\n _stream.DecodeStream.call(this, maybeLength);\n }\n\n Jbig2Stream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(Jbig2Stream.prototype, \"bytes\", {\n get() {\n return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n },\n\n configurable: true\n });\n\n Jbig2Stream.prototype.ensureBuffer = function (requested) {};\n\n Jbig2Stream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n\n const jbig2Image = new _jbig.Jbig2Image();\n const chunks = [];\n\n if ((0, _primitives.isDict)(this.params)) {\n const globalsStream = this.params.get(\"JBIG2Globals\");\n\n if ((0, _primitives.isStream)(globalsStream)) {\n const globals = globalsStream.getBytes();\n chunks.push({\n data: globals,\n start: 0,\n end: globals.length\n });\n }\n }\n\n chunks.push({\n data: this.bytes,\n start: 0,\n end: this.bytes.length\n });\n const data = jbig2Image.parseChunks(chunks);\n const dataLength = data.length;\n\n for (let i = 0; i < dataLength; i++) {\n data[i] ^= 0xff;\n }\n\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n };\n\n return Jbig2Stream;\n}();\n\nexports.Jbig2Stream = Jbig2Stream;\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.Jbig2Image = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(17);\n\nvar _ccitt = __w_pdfjs_require__(14);\n\nclass Jbig2Error extends _util.BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`);\n }\n\n}\n\nvar Jbig2Image = function Jbig2ImageClosure() {\n function ContextCache() {}\n\n ContextCache.prototype = {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n\n return this[id] = new Int8Array(1 << 16);\n }\n\n };\n\n function DecodingContext(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n\n DecodingContext.prototype = {\n get decoder() {\n var decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end);\n return (0, _util.shadow)(this, \"decoder\", decoder);\n },\n\n get contextCache() {\n var cache = new ContextCache();\n return (0, _util.shadow)(this, \"contextCache\", cache);\n }\n\n };\n\n function decodeInteger(contextCache, procedure, decoder) {\n var contexts = contextCache.getContexts(procedure);\n var prev = 1;\n\n function readBits(length) {\n var v = 0;\n\n for (var i = 0; i < length; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n v = v << 1 | bit;\n }\n\n return v >>> 0;\n }\n\n var sign = readBits(1);\n var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2);\n\n if (sign === 0) {\n return value;\n } else if (value > 0) {\n return -value;\n }\n\n return null;\n }\n\n function decodeIAID(contextCache, decoder, codeLength) {\n var contexts = contextCache.getContexts(\"IAID\");\n var prev = 1;\n\n for (var i = 0; i < codeLength; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev << 1 | bit;\n }\n\n if (codeLength < 31) {\n return prev & (1 << codeLength) - 1;\n }\n\n return prev & 0x7fffffff;\n }\n\n var SegmentTypes = [\"SymbolDictionary\", null, null, null, \"IntermediateTextRegion\", null, \"ImmediateTextRegion\", \"ImmediateLosslessTextRegion\", null, null, null, null, null, null, null, null, \"PatternDictionary\", null, null, null, \"IntermediateHalftoneRegion\", null, \"ImmediateHalftoneRegion\", \"ImmediateLosslessHalftoneRegion\", null, null, null, null, null, null, null, null, null, null, null, null, \"IntermediateGenericRegion\", null, \"ImmediateGenericRegion\", \"ImmediateLosslessGenericRegion\", \"IntermediateGenericRefinementRegion\", null, \"ImmediateGenericRefinementRegion\", \"ImmediateLosslessGenericRefinementRegion\", null, null, null, null, \"PageInformation\", \"EndOfPage\", \"EndOfStripe\", \"EndOfFile\", \"Profiles\", \"Tables\", null, null, null, null, null, null, null, null, \"Extension\"];\n var CodingTemplates = [[{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: 2,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -3,\n y: -1\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }]];\n var RefinementTemplates = [{\n coding: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: -1,\n y: 1\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }, {\n coding: [{\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }];\n var ReusedContexts = [0x9b25, 0x0795, 0x00e5, 0x0195];\n var RefinementReusedContexts = [0x0020, 0x0008];\n\n function decodeBitmapTemplate0(width, height, decodingContext) {\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts(\"GB\");\n var contextLabel,\n i,\n j,\n pixel,\n row,\n row1,\n row2,\n bitmap = [];\n var OLD_PIXEL_MASK = 0x7bf7;\n\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4;\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n }\n }\n\n return bitmap;\n }\n\n function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n if (mmr) {\n const input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n return decodeMMRBitmap(input, width, height, false);\n }\n\n if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n var useskip = !!skip;\n var template = CodingTemplates[templateIndex].concat(at);\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n var templateLength = template.length;\n var templateX = new Int8Array(templateLength);\n var templateY = new Int8Array(templateLength);\n var changingTemplateEntries = [];\n var reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n var c, k;\n\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n\n if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) {\n reuseMask |= 1 << templateLength - 1 - k;\n } else {\n changingTemplateEntries.push(k);\n }\n }\n\n var changingEntriesLength = changingTemplateEntries.length;\n var changingTemplateX = new Int8Array(changingEntriesLength);\n var changingTemplateY = new Int8Array(changingEntriesLength);\n var changingTemplateBit = new Uint16Array(changingEntriesLength);\n\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << templateLength - 1 - k;\n }\n\n var sbb_left = -minX;\n var sbb_top = -minY;\n var sbb_right = width - maxX;\n var pseudoPixelContext = ReusedContexts[templateIndex];\n var row = new Uint8Array(width);\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts(\"GB\");\n var ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n\n if (ltp) {\n bitmap.push(row);\n continue;\n }\n }\n\n row = new Uint8Array(row);\n bitmap.push(row);\n\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n contextLabel = contextLabel << 1 & reuseMask;\n\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n contextLabel = 0;\n shift = templateLength - 1;\n\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n }\n\n function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n var codingTemplate = RefinementTemplates[templateIndex].coding;\n\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n\n var codingTemplateLength = codingTemplate.length;\n var codingTemplateX = new Int32Array(codingTemplateLength);\n var codingTemplateY = new Int32Array(codingTemplateLength);\n var k;\n\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n\n var referenceTemplate = RefinementTemplates[templateIndex].reference;\n\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n\n var referenceTemplateLength = referenceTemplate.length;\n var referenceTemplateX = new Int32Array(referenceTemplateLength);\n var referenceTemplateY = new Int32Array(referenceTemplateLength);\n\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n\n var referenceWidth = referenceBitmap[0].length;\n var referenceHeight = referenceBitmap.length;\n var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts(\"GR\");\n var ltp = 0;\n\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n\n var row = new Uint8Array(width);\n bitmap.push(row);\n\n for (var j = 0; j < width; j++) {\n var i0, j0;\n var contextLabel = 0;\n\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | bitmap[i0][j0];\n }\n }\n\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n }\n }\n\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n }\n\n function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n }\n\n var newSymbols = [];\n var currentHeight = 0;\n var symbolCodeLength = (0, _core_utils.log2)(symbols.length + numberOfNewSymbols);\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n\n if (huffman) {\n tableB1 = getStandardTable(1);\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1);\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n var deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, \"IADH\", decoder);\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n\n while (true) {\n var deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, \"IADW\", decoder);\n\n if (deltaWidth === null) {\n break;\n }\n\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n var bitmap;\n\n if (refinement) {\n var numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput);\n } else {\n var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n var rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n var rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext);\n }\n\n newSymbols.push(bitmap);\n } else if (huffman) {\n symbolWidths.push(currentWidth);\n } else {\n bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext);\n newSymbols.push(bitmap);\n }\n }\n\n if (huffman && !refinement) {\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n\n if (bitmapSize === 0) {\n collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight);\n } else {\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false);\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n\n const numberOfSymbolsDecoded = symbolWidths.length;\n\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n newSymbols.push(collectiveBitmap);\n } else {\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n var exportedSymbols = [];\n var flags = [],\n currentFlag = false;\n var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n\n while (flags.length < totalSymbolsLength) {\n var runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, \"IAEX\", decoder);\n\n while (runLength--) {\n flags.push(currentFlag);\n }\n\n currentFlag = !currentFlag;\n }\n\n for (var i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n\n for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n\n return exportedSymbols;\n }\n\n function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n var bitmap = [];\n var i, row;\n\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n\n if (defaultPixelValue) {\n for (var j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n\n bitmap.push(row);\n }\n\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n var stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, \"IADT\", decoder);\n var firstS = 0;\n i = 0;\n\n while (i < numberOfSymbolInstances) {\n var deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, \"IADT\", decoder);\n stripT += deltaT;\n var deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, \"IAFS\", decoder);\n firstS += deltaFirstS;\n var currentS = firstS;\n\n do {\n let currentT = 0;\n\n if (stripSize > 1) {\n currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n\n var t = stripSize * stripT + currentT;\n var symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength);\n var applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, \"IARI\", decoder));\n var symbolBitmap = inputSymbols[symbolId];\n var symbolWidth = symbolBitmap[0].length;\n var symbolHeight = symbolBitmap.length;\n\n if (applyRefinement) {\n var rdw = decodeInteger(contextCache, \"IARDW\", decoder);\n var rdh = decodeInteger(contextCache, \"IARDH\", decoder);\n var rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n var rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext);\n }\n\n var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n var offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n var s2, t2, symbolRow;\n\n if (transposed) {\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n\n if (!row) {\n continue;\n }\n\n symbolRow = symbolBitmap[s2];\n var maxWidth = Math.min(width - offsetT, symbolWidth);\n\n switch (combinationOperator) {\n case 0:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n\n break;\n\n case 2:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n\n break;\n\n default:\n throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n }\n }\n\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n\n if (!row) {\n continue;\n }\n\n symbolRow = symbolBitmap[t2];\n\n switch (combinationOperator) {\n case 0:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n\n break;\n\n case 2:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n\n break;\n\n default:\n throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n }\n }\n\n currentS += symbolWidth - 1;\n }\n\n i++;\n var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, \"IADS\", decoder);\n\n if (deltaS === null) {\n break;\n }\n\n currentS += deltaS + dsOffset;\n } while (true);\n }\n\n return bitmap;\n }\n\n function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n const at = [];\n\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0\n });\n\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n }\n\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n const patterns = [];\n\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n\n patterns.push(patternBitmap);\n }\n\n return patterns;\n }\n\n function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n const skip = null;\n\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\"operator \" + combinationOperator + \" is not supported in halftone region\");\n }\n\n const regionBitmap = [];\n let i, j, row;\n\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n\n regionBitmap.push(row);\n }\n\n const numberOfPatterns = patterns.length;\n const pattern0 = patterns[0];\n const patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n const bitsPerValue = (0, _core_utils.log2)(numberOfPatterns);\n const at = [];\n\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1\n });\n\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n }\n\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n\n if (mmr) {\n mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n }\n\n for (i = bitsPerValue - 1; i >= 0; i--) {\n if (mmr) {\n bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n } else {\n bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false, skip, at, decodingContext);\n }\n\n grayScaleBitPlanes[i] = bitmap;\n }\n\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit = grayScaleBitPlanes[j][mg][ng] ^ bit;\n patternIndex |= bit << j;\n }\n\n patternBitmap = patterns[patternIndex];\n x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n\n if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n\n return regionBitmap;\n }\n\n function readSegmentHeader(data, start) {\n var segmentHeader = {};\n segmentHeader.number = (0, _core_utils.readUint32)(data, start);\n var flags = data[start + 4];\n var segmentType = flags & 0x3f;\n\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n var pageAssociationFieldSize = !!(flags & 0x40);\n var referredFlags = data[start + 5];\n var referredToCount = referredFlags >> 5 & 7;\n var retainBits = [referredFlags & 31];\n var position = start + 6;\n\n if (referredFlags === 7) {\n referredToCount = (0, _core_utils.readUint32)(data, position - 1) & 0x1fffffff;\n position += 3;\n var bytes = referredToCount + 7 >> 3;\n retainBits[0] = data[position++];\n\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error(\"invalid referred-to flags\");\n }\n\n segmentHeader.retainBits = retainBits;\n let referredToSegmentNumberSize = 4;\n\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n\n var referredTo = [];\n var i, ii;\n\n for (i = 0; i < referredToCount; i++) {\n let number;\n\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = (0, _core_utils.readUint16)(data, position);\n } else {\n number = (0, _core_utils.readUint32)(data, position);\n }\n\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n\n segmentHeader.referredTo = referredTo;\n\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = (0, _core_utils.readUint32)(data, position);\n position += 4;\n }\n\n segmentHeader.length = (0, _core_utils.readUint32)(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n if (segmentType === 38) {\n var genericRegionInfo = readRegionSegmentInformation(data, position);\n var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength];\n var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n var searchPatternLength = 6;\n var searchPattern = new Uint8Array(searchPatternLength);\n\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\n }\n\n searchPattern[2] = genericRegionInfo.height >>> 24 & 0xff;\n searchPattern[3] = genericRegionInfo.height >> 16 & 0xff;\n searchPattern[4] = genericRegionInfo.height >> 8 & 0xff;\n searchPattern[5] = genericRegionInfo.height & 0xff;\n\n for (i = position, ii = data.length; i < ii; i++) {\n var j = 0;\n\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n\n if (segmentHeader.length === 0xffffffff) {\n throw new Jbig2Error(\"segment end was not found\");\n }\n } else {\n throw new Jbig2Error(\"invalid unknown segment length\");\n }\n }\n\n segmentHeader.headerEnd = position;\n return segmentHeader;\n }\n\n function readSegments(header, data, start, end) {\n var segments = [];\n var position = start;\n\n while (position < end) {\n var segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n var segment = {\n header: segmentHeader,\n data\n };\n\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n\n segments.push(segment);\n\n if (segmentHeader.type === 51) {\n break;\n }\n }\n\n if (header.randomAccess) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n\n return segments;\n }\n\n function readRegionSegmentInformation(data, start) {\n return {\n width: (0, _core_utils.readUint32)(data, start),\n height: (0, _core_utils.readUint32)(data, start + 4),\n x: (0, _core_utils.readUint32)(data, start + 8),\n y: (0, _core_utils.readUint32)(data, start + 12),\n combinationOperator: data[start + 16] & 7\n };\n }\n\n var RegionSegmentInformationFieldLength = 17;\n\n function processSegment(segment, visitor) {\n var header = segment.header;\n var data = segment.data,\n position = segment.start,\n end = segment.end;\n var args, at, i, atLength;\n\n switch (header.type) {\n case 0:\n var dictionary = {};\n var dictionaryFlags = (0, _core_utils.readUint16)(data, position);\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3;\n dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3;\n dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1;\n dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = dictionaryFlags >> 10 & 3;\n dictionary.refinementTemplate = dictionaryFlags >> 12 & 1;\n position += 2;\n\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n dictionary.at = at;\n }\n\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n dictionary.refinementAt = at;\n }\n\n dictionary.numberOfExportedSymbols = (0, _core_utils.readUint32)(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = (0, _core_utils.readUint32)(data, position);\n position += 4;\n args = [dictionary, header.number, header.referredTo, data, position, end];\n break;\n\n case 6:\n case 7:\n var textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var textRegionSegmentFlags = (0, _core_utils.readUint16)(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3;\n textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1;\n textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27;\n textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1;\n\n if (textRegion.huffman) {\n var textRegionHuffmanFlags = (0, _core_utils.readUint16)(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3;\n textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3;\n textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3;\n textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3;\n textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3;\n textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3;\n textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 0x4000);\n }\n\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n textRegion.refinementAt = at;\n }\n\n textRegion.numberOfSymbolInstances = (0, _core_utils.readUint32)(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n\n case 16:\n const patternDictionary = {};\n const patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = patternDictionaryFlags >> 1 & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = (0, _core_utils.readUint32)(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n\n case 22:\n case 23:\n const halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = halftoneRegionFlags >> 1 & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7;\n halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1;\n halftoneRegion.gridWidth = (0, _core_utils.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridHeight = (0, _core_utils.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = (0, _core_utils.readUint16)(data, position);\n position += 2;\n halftoneRegion.gridVectorY = (0, _core_utils.readUint16)(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n\n case 38:\n case 39:\n var genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = genericRegionSegmentFlags >> 1 & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _core_utils.readInt8)(data, position),\n y: (0, _core_utils.readInt8)(data, position + 1)\n });\n position += 2;\n }\n\n genericRegion.at = at;\n }\n\n args = [genericRegion, data, position, end];\n break;\n\n case 48:\n var pageInfo = {\n width: (0, _core_utils.readUint32)(data, position),\n height: (0, _core_utils.readUint32)(data, position + 4),\n resolutionX: (0, _core_utils.readUint32)(data, position + 8),\n resolutionY: (0, _core_utils.readUint32)(data, position + 12)\n };\n\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n\n var pageSegmentFlags = data[position + 16];\n (0, _core_utils.readUint16)(data, position + 17);\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1;\n pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n\n case 49:\n break;\n\n case 50:\n break;\n\n case 51:\n break;\n\n case 53:\n args = [header.number, data, position, end];\n break;\n\n case 62:\n break;\n\n default:\n throw new Jbig2Error(`segment type ${header.typeName}(${header.type})` + \" is not implemented\");\n }\n\n var callbackName = \"on\" + header.typeName;\n\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\n }\n }\n\n function processSegments(segments, visitor) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n }\n\n function parseJbig2Chunks(chunks) {\n var visitor = new SimpleSegmentVisitor();\n\n for (var i = 0, ii = chunks.length; i < ii; i++) {\n var chunk = chunks[i];\n var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n\n return visitor.buffer;\n }\n\n function parseJbig2(data) {\n const end = data.length;\n let position = 0;\n\n if (data[position] !== 0x97 || data[position + 1] !== 0x4a || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0d || data[position + 5] !== 0x0a || data[position + 6] !== 0x1a || data[position + 7] !== 0x0a) {\n throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n }\n\n const header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n\n if (!(flags & 2)) {\n header.numberOfPages = (0, _core_utils.readUint32)(data, position);\n position += 4;\n }\n\n const segments = readSegments(header, data, position, end);\n const visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n const {\n width,\n height\n } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return {\n imgData,\n width,\n height\n };\n }\n\n function SimpleSegmentVisitor() {}\n\n SimpleSegmentVisitor.prototype = {\n onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) {\n this.currentPageInfo = info;\n var rowSize = info.width + 7 >> 3;\n var buffer = new Uint8ClampedArray(rowSize * info.height);\n\n if (info.defaultPixelValue) {\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = 0xff;\n }\n }\n\n this.buffer = buffer;\n },\n drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n var pageInfo = this.currentPageInfo;\n var width = regionInfo.width,\n height = regionInfo.height;\n var rowSize = pageInfo.width + 7 >> 3;\n var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator;\n var buffer = this.buffer;\n var mask0 = 128 >> (regionInfo.x & 7);\n var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n var i, j, mask, offset;\n\n switch (combinationOperator) {\n case 0:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n\n mask >>= 1;\n\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n\n offset0 += rowSize;\n }\n\n break;\n\n case 2:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n\n mask >>= 1;\n\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n\n offset0 += rowSize;\n }\n\n break;\n\n default:\n throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n }\n },\n onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) {\n var regionInfo = region.info;\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n },\n onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) {\n let huffmanTables, huffmanInput;\n\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables);\n huffmanInput = new Reader(data, start, end);\n }\n\n var symbols = this.symbols;\n\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n var inputSymbols = [];\n\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n var decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput);\n },\n onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) {\n var regionInfo = region.info;\n let huffmanTables, huffmanInput;\n var symbols = this.symbols;\n var inputSymbols = [];\n\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n var symbolCodeLength = (0, _core_utils.log2)(inputSymbols.length);\n\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput);\n }\n\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext, region.logStripSize, huffmanInput);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n },\n\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n\n if (!patterns) {\n this.patterns = patterns = {};\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n },\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n },\n\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n\n if (!customTables) {\n this.customTables = customTables = {};\n }\n\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n\n };\n\n function HuffmanLine(lineData) {\n if (lineData.length === 2) {\n this.isOOB = true;\n this.rangeLow = 0;\n this.prefixLength = lineData[0];\n this.rangeLength = 0;\n this.prefixCode = lineData[1];\n this.isLowerRange = false;\n } else {\n this.isOOB = false;\n this.rangeLow = lineData[0];\n this.prefixLength = lineData[1];\n this.rangeLength = lineData[2];\n this.prefixCode = lineData[3];\n this.isLowerRange = lineData[4] === \"lower\";\n }\n }\n\n function HuffmanTreeNode(line) {\n this.children = [];\n\n if (line) {\n this.isLeaf = true;\n this.rangeLength = line.rangeLength;\n this.rangeLow = line.rangeLow;\n this.isLowerRange = line.isLowerRange;\n this.isOOB = line.isOOB;\n } else {\n this.isLeaf = false;\n }\n }\n\n HuffmanTreeNode.prototype = {\n buildTree(line, shift) {\n const bit = line.prefixCode >> shift & 1;\n\n if (shift <= 0) {\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n let node = this.children[bit];\n\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n\n node.buildTree(line, shift - 1);\n }\n },\n\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n\n const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n\n const node = this.children[reader.readBit()];\n\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n\n return node.decodeNode(reader);\n }\n\n };\n\n function HuffmanTable(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n\n this.rootNode = new HuffmanTreeNode(null);\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n\n HuffmanTable.prototype = {\n decode(reader) {\n return this.rootNode.decodeNode(reader);\n },\n\n assignPrefixCodes(lines) {\n const linesLength = lines.length;\n let prefixLengthMax = 0;\n\n for (let i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n\n const histogram = new Uint32Array(prefixLengthMax + 1);\n\n for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n\n let currentLength = 1,\n firstCode = 0,\n currentCode,\n currentTemp,\n line;\n histogram[0] = 0;\n\n while (currentLength <= prefixLengthMax) {\n firstCode = firstCode + histogram[currentLength - 1] << 1;\n currentCode = firstCode;\n currentTemp = 0;\n\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n\n currentTemp++;\n }\n\n currentLength++;\n }\n }\n\n };\n\n function decodeTablesSegment(data, start, end) {\n const flags = data[start];\n const lowestValue = (0, _core_utils.readUint32)(data, start + 1) & 0xffffffff;\n const highestValue = (0, _core_utils.readUint32)(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\n const prefixSizeBits = (flags >> 1 & 7) + 1;\n const rangeSizeBits = (flags >> 4 & 7) + 1;\n const lines = [];\n let prefixLength,\n rangeLength,\n currentRangeLow = lowestValue;\n\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0]));\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n\n return new HuffmanTable(lines, false);\n }\n\n const standardTablesCache = {};\n\n function getStandardTable(number) {\n let table = standardTablesCache[number];\n\n if (table) {\n return table;\n }\n\n let lines;\n\n switch (number) {\n case 1:\n lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]];\n break;\n\n case 2:\n lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [75, 6, 32, 0x3e], [6, 0x3f]];\n break;\n\n case 3:\n lines = [[-256, 8, 8, 0xfe], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [-257, 8, 32, 0xff, \"lower\"], [75, 7, 32, 0x7e], [6, 0x3e]];\n break;\n\n case 4:\n lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [76, 5, 32, 0x1f]];\n break;\n\n case 5:\n lines = [[-255, 7, 8, 0x7e], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [-256, 7, 32, 0x7f, \"lower\"], [76, 6, 32, 0x3e]];\n break;\n\n case 6:\n lines = [[-2048, 5, 10, 0x1c], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xa], [-128, 5, 6, 0x1d], [-64, 5, 5, 0x1e], [-32, 4, 5, 0xb], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xc], [1024, 4, 10, 0xd], [-2049, 6, 32, 0x3e, \"lower\"], [2048, 6, 32, 0x3f]];\n break;\n\n case 7:\n lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1a], [-64, 5, 5, 0x1b], [-32, 4, 5, 0xa], [0, 4, 5, 0xb], [32, 5, 5, 0x1c], [64, 5, 6, 0x1d], [128, 4, 7, 0xc], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1e, \"lower\"], [2048, 5, 32, 0x1f]];\n break;\n\n case 8:\n lines = [[-15, 8, 3, 0xfc], [-7, 9, 1, 0x1fc], [-5, 8, 1, 0xfd], [-3, 9, 0, 0x1fd], [-2, 7, 0, 0x7c], [-1, 4, 0, 0xa], [0, 2, 1, 0x0], [2, 5, 0, 0x1a], [3, 6, 0, 0x3a], [4, 3, 4, 0x4], [20, 6, 1, 0x3b], [22, 4, 4, 0xb], [38, 4, 5, 0xc], [70, 5, 6, 0x1b], [134, 5, 7, 0x1c], [262, 6, 7, 0x3c], [390, 7, 8, 0x7d], [646, 6, 10, 0x3d], [-16, 9, 32, 0x1fe, \"lower\"], [1670, 9, 32, 0x1ff], [2, 0x1]];\n break;\n\n case 9:\n lines = [[-31, 8, 4, 0xfc], [-15, 9, 2, 0x1fc], [-11, 8, 2, 0xfd], [-7, 9, 1, 0x1fd], [-5, 7, 1, 0x7c], [-3, 4, 1, 0xa], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1a], [5, 6, 1, 0x3a], [7, 3, 5, 0x4], [39, 6, 2, 0x3b], [43, 4, 5, 0xb], [75, 4, 6, 0xc], [139, 5, 7, 0x1b], [267, 5, 8, 0x1c], [523, 6, 8, 0x3c], [779, 7, 9, 0x7d], [1291, 6, 11, 0x3d], [-32, 9, 32, 0x1fe, \"lower\"], [3339, 9, 32, 0x1ff], [2, 0x0]];\n break;\n\n case 10:\n lines = [[-21, 7, 4, 0x7a], [-5, 8, 0, 0xfc], [-4, 7, 0, 0x7b], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7c], [5, 8, 0, 0xfd], [6, 2, 6, 0x1], [70, 5, 5, 0x1a], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3a], [582, 6, 9, 0x3b], [1094, 6, 10, 0x3c], [2118, 7, 11, 0x7d], [-22, 8, 32, 0xfe, \"lower\"], [4166, 8, 32, 0xff], [2, 0x2]];\n break;\n\n case 11:\n lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xc], [5, 4, 1, 0xd], [7, 5, 1, 0x1c], [9, 5, 2, 0x1d], [13, 6, 2, 0x3c], [17, 7, 2, 0x7a], [21, 7, 3, 0x7b], [29, 7, 4, 0x7c], [45, 7, 5, 0x7d], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n break;\n\n case 12:\n lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1c], [6, 5, 1, 0x1d], [8, 6, 1, 0x3c], [10, 7, 0, 0x7a], [11, 7, 1, 0x7b], [13, 7, 2, 0x7c], [17, 7, 3, 0x7d], [25, 7, 4, 0x7e], [41, 8, 5, 0xfe], [73, 8, 32, 0xff]];\n break;\n\n case 13:\n lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xc], [4, 5, 0, 0x1c], [5, 4, 1, 0xd], [7, 3, 3, 0x5], [15, 6, 1, 0x3a], [17, 6, 2, 0x3b], [21, 6, 3, 0x3c], [29, 6, 4, 0x3d], [45, 6, 5, 0x3e], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n break;\n\n case 14:\n lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]];\n break;\n\n case 15:\n lines = [[-24, 7, 4, 0x7c], [-8, 6, 2, 0x3c], [-4, 5, 1, 0x1c], [-2, 4, 0, 0xc], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xd], [3, 5, 1, 0x1d], [5, 6, 2, 0x3d], [9, 7, 4, 0x7d], [-25, 7, 32, 0x7e, \"lower\"], [25, 7, 32, 0x7f]];\n break;\n\n default:\n throw new Jbig2Error(`standard table B.${number} does not exist`);\n }\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\n }\n\n function Reader(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n this.position = start;\n this.shift = -1;\n this.currentByte = 0;\n }\n\n Reader.prototype = {\n readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error(\"end of data while reading bit\");\n }\n\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n\n const bit = this.currentByte >> this.shift & 1;\n this.shift--;\n return bit;\n },\n\n readBits(numBits) {\n let result = 0,\n i;\n\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n\n return result;\n },\n\n byteAlign() {\n this.shift = -1;\n },\n\n next() {\n if (this.position >= this.end) {\n return -1;\n }\n\n return this.data[this.position++];\n }\n\n };\n\n function getCustomHuffmanTable(index, referredTo, customTables) {\n let currentIndex = 0;\n\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n\n currentIndex++;\n }\n }\n\n throw new Jbig2Error(\"can't find custom Huffman table\");\n }\n\n function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) {\n const codes = [];\n\n for (let i = 0; i <= 34; i++) {\n const codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n\n const runCodesTable = new HuffmanTable(codes, false);\n codes.length = 0;\n\n for (let i = 0; i < numberOfSymbols;) {\n const codeLength = runCodesTable.decode(reader);\n\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\n }\n\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n\n reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\n let customIndex = 0,\n tableFirstS,\n tableDeltaS,\n tableDeltaT;\n\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n\n case 3:\n tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman FS selector\");\n }\n\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n\n case 3:\n tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DS selector\");\n }\n\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n\n case 3:\n tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n return {\n symbolIDTable,\n tableFirstS,\n tableDeltaS,\n tableDeltaT\n };\n }\n\n function getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) {\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DH selector\");\n }\n\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n break;\n\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables);\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables);\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n\n return {\n tableDeltaHeight,\n tableDeltaWidth,\n tableBitmapSize,\n tableAggregateInstances\n };\n }\n\n function readUncompressedBitmap(reader, width, height) {\n const bitmap = [];\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n\n reader.byteAlign();\n }\n\n return bitmap;\n }\n\n function decodeMMRBitmap(input, width, height, endOfBlock) {\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock\n };\n const decoder = new _ccitt.CCITTFaxDecoder(input, params);\n const bitmap = [];\n let currentByte,\n eof = false;\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n let shift = -1;\n\n for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n\n if (currentByte === -1) {\n currentByte = 0;\n eof = true;\n }\n\n shift = 7;\n }\n\n row[x] = currentByte >> shift & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n const lookForEOFLimit = 5;\n\n for (let i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n\n return bitmap;\n }\n\n function Jbig2Image() {}\n\n Jbig2Image.prototype = {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n },\n\n parse(data) {\n const {\n imgData,\n width,\n height\n } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n\n };\n return Jbig2Image;\n}();\n\nexports.Jbig2Image = Jbig2Image;\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.ArithmeticDecoder = void 0;\nconst QeTable = [{\n qe: 0x5601,\n nmps: 1,\n nlps: 1,\n switchFlag: 1\n}, {\n qe: 0x3401,\n nmps: 2,\n nlps: 6,\n switchFlag: 0\n}, {\n qe: 0x1801,\n nmps: 3,\n nlps: 9,\n switchFlag: 0\n}, {\n qe: 0x0ac1,\n nmps: 4,\n nlps: 12,\n switchFlag: 0\n}, {\n qe: 0x0521,\n nmps: 5,\n nlps: 29,\n switchFlag: 0\n}, {\n qe: 0x0221,\n nmps: 38,\n nlps: 33,\n switchFlag: 0\n}, {\n qe: 0x5601,\n nmps: 7,\n nlps: 6,\n switchFlag: 1\n}, {\n qe: 0x5401,\n nmps: 8,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x4801,\n nmps: 9,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x3801,\n nmps: 10,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x3001,\n nmps: 11,\n nlps: 17,\n switchFlag: 0\n}, {\n qe: 0x2401,\n nmps: 12,\n nlps: 18,\n switchFlag: 0\n}, {\n qe: 0x1c01,\n nmps: 13,\n nlps: 20,\n switchFlag: 0\n}, {\n qe: 0x1601,\n nmps: 29,\n nlps: 21,\n switchFlag: 0\n}, {\n qe: 0x5601,\n nmps: 15,\n nlps: 14,\n switchFlag: 1\n}, {\n qe: 0x5401,\n nmps: 16,\n nlps: 14,\n switchFlag: 0\n}, {\n qe: 0x5101,\n nmps: 17,\n nlps: 15,\n switchFlag: 0\n}, {\n qe: 0x4801,\n nmps: 18,\n nlps: 16,\n switchFlag: 0\n}, {\n qe: 0x3801,\n nmps: 19,\n nlps: 17,\n switchFlag: 0\n}, {\n qe: 0x3401,\n nmps: 20,\n nlps: 18,\n switchFlag: 0\n}, {\n qe: 0x3001,\n nmps: 21,\n nlps: 19,\n switchFlag: 0\n}, {\n qe: 0x2801,\n nmps: 22,\n nlps: 19,\n switchFlag: 0\n}, {\n qe: 0x2401,\n nmps: 23,\n nlps: 20,\n switchFlag: 0\n}, {\n qe: 0x2201,\n nmps: 24,\n nlps: 21,\n switchFlag: 0\n}, {\n qe: 0x1c01,\n nmps: 25,\n nlps: 22,\n switchFlag: 0\n}, {\n qe: 0x1801,\n nmps: 26,\n nlps: 23,\n switchFlag: 0\n}, {\n qe: 0x1601,\n nmps: 27,\n nlps: 24,\n switchFlag: 0\n}, {\n qe: 0x1401,\n nmps: 28,\n nlps: 25,\n switchFlag: 0\n}, {\n qe: 0x1201,\n nmps: 29,\n nlps: 26,\n switchFlag: 0\n}, {\n qe: 0x1101,\n nmps: 30,\n nlps: 27,\n switchFlag: 0\n}, {\n qe: 0x0ac1,\n nmps: 31,\n nlps: 28,\n switchFlag: 0\n}, {\n qe: 0x09c1,\n nmps: 32,\n nlps: 29,\n switchFlag: 0\n}, {\n qe: 0x08a1,\n nmps: 33,\n nlps: 30,\n switchFlag: 0\n}, {\n qe: 0x0521,\n nmps: 34,\n nlps: 31,\n switchFlag: 0\n}, {\n qe: 0x0441,\n nmps: 35,\n nlps: 32,\n switchFlag: 0\n}, {\n qe: 0x02a1,\n nmps: 36,\n nlps: 33,\n switchFlag: 0\n}, {\n qe: 0x0221,\n nmps: 37,\n nlps: 34,\n switchFlag: 0\n}, {\n qe: 0x0141,\n nmps: 38,\n nlps: 35,\n switchFlag: 0\n}, {\n qe: 0x0111,\n nmps: 39,\n nlps: 36,\n switchFlag: 0\n}, {\n qe: 0x0085,\n nmps: 40,\n nlps: 37,\n switchFlag: 0\n}, {\n qe: 0x0049,\n nmps: 41,\n nlps: 38,\n switchFlag: 0\n}, {\n qe: 0x0025,\n nmps: 42,\n nlps: 39,\n switchFlag: 0\n}, {\n qe: 0x0015,\n nmps: 43,\n nlps: 40,\n switchFlag: 0\n}, {\n qe: 0x0009,\n nmps: 44,\n nlps: 41,\n switchFlag: 0\n}, {\n qe: 0x0005,\n nmps: 45,\n nlps: 42,\n switchFlag: 0\n}, {\n qe: 0x0001,\n nmps: 45,\n nlps: 43,\n switchFlag: 0\n}, {\n qe: 0x5601,\n nmps: 46,\n nlps: 46,\n switchFlag: 0\n}];\n\nclass ArithmeticDecoder {\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n this.chigh = data[start];\n this.clow = 0;\n this.byteIn();\n this.chigh = this.chigh << 7 & 0xffff | this.clow >> 9 & 0x7f;\n this.clow = this.clow << 7 & 0xffff;\n this.ct -= 7;\n this.a = 0x8000;\n }\n\n byteIn() {\n const data = this.data;\n let bp = this.bp;\n\n if (data[bp] === 0xff) {\n if (data[bp + 1] > 0x8f) {\n this.clow += 0xff00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n this.ct = 8;\n this.bp = bp;\n }\n\n if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n readBit(contexts, pos) {\n let cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n const qeTableIcx = QeTable[cx_index];\n const qeIcx = qeTableIcx.qe;\n let d;\n let a = this.a - qeIcx;\n\n if (this.chigh < qeIcx) {\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n\n a <<= 1;\n this.chigh = this.chigh << 1 & 0xffff | this.clow >> 15 & 1;\n this.clow = this.clow << 1 & 0xffff;\n this.ct--;\n } while ((a & 0x8000) === 0);\n\n this.a = a;\n contexts[pos] = cx_index << 1 | cx_mps;\n return d;\n }\n\n}\n\nexports.ArithmeticDecoder = ArithmeticDecoder;\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.JpegStream = void 0;\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _jpg = __w_pdfjs_require__(19);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst JpegStream = function JpegStreamClosure() {\n function JpegStream(stream, maybeLength, dict, params) {\n let ch;\n\n while ((ch = stream.getByte()) !== -1) {\n if (ch === 0xff) {\n stream.skip(-1);\n break;\n }\n }\n\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n\n _stream.DecodeStream.call(this, maybeLength);\n }\n\n JpegStream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(JpegStream.prototype, \"bytes\", {\n get: function JpegStream_bytes() {\n return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n\n JpegStream.prototype.ensureBuffer = function (requested) {};\n\n JpegStream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n\n const jpegOptions = {\n decodeTransform: undefined,\n colorTransform: undefined\n };\n const decodeArr = this.dict.getArray(\"Decode\", \"D\");\n\n if (this.forceRGB && Array.isArray(decodeArr)) {\n const bitsPerComponent = this.dict.get(\"BitsPerComponent\") || 8;\n const decodeArrLength = decodeArr.length;\n const transform = new Int32Array(decodeArrLength);\n let transformNeeded = false;\n const maxValue = (1 << bitsPerComponent) - 1;\n\n for (let i = 0; i < decodeArrLength; i += 2) {\n transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n transform[i + 1] = decodeArr[i] * maxValue | 0;\n\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n\n if (transformNeeded) {\n jpegOptions.decodeTransform = transform;\n }\n }\n\n if ((0, _primitives.isDict)(this.params)) {\n const colorTransform = this.params.get(\"ColorTransform\");\n\n if (Number.isInteger(colorTransform)) {\n jpegOptions.colorTransform = colorTransform;\n }\n }\n\n const jpegImage = new _jpg.JpegImage(jpegOptions);\n jpegImage.parse(this.bytes);\n const data = jpegImage.getData({\n width: this.drawWidth,\n height: this.drawHeight,\n forceRGB: this.forceRGB,\n isSourcePDF: true\n });\n this.buffer = data;\n this.bufferLength = data.length;\n this.eof = true;\n };\n\n return JpegStream;\n}();\n\nexports.JpegStream = JpegStream;\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.JpegImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nclass JpegError extends _util.BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`);\n }\n\n}\n\nclass DNLMarkerError extends _util.BaseException {\n constructor(message, scanLines) {\n super(message);\n this.scanLines = scanLines;\n }\n\n}\n\nclass EOIMarkerError extends _util.BaseException {}\n\nvar JpegImage = function JpegImageClosure() {\n var dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n\n function JpegImage({\n decodeTransform = null,\n colorTransform = -1\n } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n function buildHuffmanTable(codeLengths, values) {\n var k = 0,\n code = [],\n i,\n j,\n length = 16;\n\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n\n code.push({\n children: [],\n index: 0\n });\n var p = code[0],\n q;\n\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n\n while (p.index > 0) {\n p = code.pop();\n }\n\n p.index++;\n code.push(p);\n\n while (code.length <= i) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n\n k++;\n }\n\n if (i + 1 < length) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n\n return code[0].children;\n }\n\n function getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n }\n\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) {\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n\n bitsData = data[offset++];\n\n if (bitsData === 0xff) {\n var nextByte = data[offset++];\n\n if (nextByte) {\n if (nextByte === 0xdc && parseDNLMarker) {\n offset += 2;\n const scanLines = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\"Found DNL marker (0xFFDC) while parsing scan data\", scanLines);\n }\n } else if (nextByte === 0xd9) {\n if (parseDNLMarker) {\n const maybeScanLines = blockRow * 8;\n\n if (maybeScanLines > 0 && maybeScanLines < frame.scanLines / 10) {\n throw new DNLMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data, \" + \"possibly caused by incorrect `scanLines` parameter\", maybeScanLines);\n }\n }\n\n throw new EOIMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data\");\n }\n\n throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`);\n }\n }\n\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n var node = tree;\n\n while (true) {\n node = node[readBit()];\n\n switch (typeof node) {\n case \"number\":\n return node;\n\n case \"object\":\n continue;\n }\n\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n var n = 0;\n\n while (length > 0) {\n n = n << 1 | readBit();\n length--;\n }\n\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n\n var n = receive(length);\n\n if (n >= 1 << length - 1) {\n return n;\n }\n\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n var k = 1;\n\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n\n if (s === 0) {\n if (r < 15) {\n break;\n }\n\n k += 16;\n continue;\n }\n\n k += r;\n var z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n var eobrun = 0;\n\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n\n var k = spectralStart,\n e = spectralEnd;\n\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n\n k += 16;\n continue;\n }\n\n k += r;\n var z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n var successiveACState = 0,\n successiveACNextValue;\n\n function decodeACSuccessive(component, blockOffset) {\n var k = spectralStart;\n var e = spectralEnd;\n var r = 0;\n var s;\n var rs;\n\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n\n switch (successiveACState) {\n case 0:\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n\n continue;\n\n case 1:\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n\n break;\n\n case 3:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n\n break;\n\n case 4:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n\n break;\n }\n\n k++;\n }\n\n if (successiveACState === 4) {\n eobrun--;\n\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = mcu / mcusPerLine | 0;\n var mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = mcu / component.blocksPerLine | 0;\n var blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n var mcu = 0,\n fileMarker;\n var mcuExpected;\n\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n var h, v;\n\n while (mcu <= mcuExpected) {\n var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n\n mcu++;\n }\n }\n }\n\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n\n if (!fileMarker) {\n break;\n }\n\n if (fileMarker.invalid) {\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n (0, _util.warn)(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);\n offset = fileMarker.offset;\n }\n\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n }\n\n function quantizeAndInverse(component, blockBufferOffset, p) {\n var qt = component.quantizationTable,\n blockData = component.blockData;\n var v0, v1, v2, v3, v4, v5, v6, v7;\n var p0, p1, p2, p3, p4, p5, p6, p7;\n var t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n for (var row = 0; row < 64; row += 8) {\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n p0 *= qt[row];\n\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 512 >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n v0 = dctSqrt2 * p0 + 128 >> 8;\n v1 = dctSqrt2 * p4 + 128 >> 8;\n v2 = p2;\n v3 = p6;\n v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;\n v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n v0 = v0 + v1 + 1 >> 1;\n v1 = v0 - v1;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n v4 = v4 + v6 + 1 >> 1;\n v6 = v4 - v6;\n v7 = v7 + v5 + 1 >> 1;\n v5 = v7 - v5;\n v0 = v0 + v3 + 1 >> 1;\n v3 = v0 - v3;\n v1 = v1 + v2 + 1 >> 1;\n v2 = v1 - v2;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n for (var col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 8192 >> 14;\n\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = t + 2056 >> 4;\n }\n\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n v0 = dctSqrt2 * p0 + 2048 >> 12;\n v1 = dctSqrt2 * p4 + 2048 >> 12;\n v2 = p2;\n v3 = p6;\n v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;\n v5 = p3;\n v6 = p5;\n v0 = (v0 + v1 + 1 >> 1) + 4112;\n v1 = v0 - v1;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n v4 = v4 + v6 + 1 >> 1;\n v6 = v4 - v6;\n v7 = v7 + v5 + 1 >> 1;\n v5 = v7 - v5;\n v0 = v0 + v3 + 1 >> 1;\n v3 = v0 - v3;\n v1 = v1 + v2 + 1 >> 1;\n v2 = v1 - v2;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n }\n\n function buildComponentData(frame, component) {\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var computationBuffer = new Int16Array(64);\n\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n\n return component.blockData;\n }\n\n function findNextFileMarker(data, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n var newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null;\n }\n\n var currentMarker = (0, _core_utils.readUint16)(data, currentPos);\n\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos\n };\n }\n\n var newMarker = (0, _core_utils.readUint16)(data, newPos);\n\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null;\n }\n\n newMarker = (0, _core_utils.readUint16)(data, newPos);\n }\n\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos\n };\n }\n\n JpegImage.prototype = {\n parse(data, {\n dnlScanLines = null\n } = {}) {\n function readDataBlock() {\n const length = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n var fileMarker = findNextFileMarker(data, endOffset, offset);\n\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)(\"readDataBlock - incorrect length, current marker is: \" + fileMarker.invalid);\n endOffset = fileMarker.offset;\n }\n\n var array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n var offset = 0;\n var jfif = null;\n var adobe = null;\n var frame, resetInterval;\n let numSOSMarkers = 0;\n var quantizationTables = [];\n var huffmanTablesAC = [],\n huffmanTablesDC = [];\n let fileMarker = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n if (fileMarker !== 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n\n fileMarker = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== 0xffd9) {\n var i, j, l;\n\n switch (fileMarker) {\n case 0xffe0:\n case 0xffe1:\n case 0xffe2:\n case 0xffe3:\n case 0xffe4:\n case 0xffe5:\n case 0xffe6:\n case 0xffe7:\n case 0xffe8:\n case 0xffe9:\n case 0xffea:\n case 0xffeb:\n case 0xffec:\n case 0xffed:\n case 0xffee:\n case 0xffef:\n case 0xfffe:\n var appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n jfif = {\n version: {\n major: appData[5],\n minor: appData[6]\n },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n\n if (fileMarker === 0xffee) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) {\n adobe = {\n version: appData[5] << 8 | appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n\n break;\n\n case 0xffdb:\n const quantizationTablesLength = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n var z;\n\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Uint16Array(64);\n\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n\n break;\n\n case 0xffc0:\n case 0xffc1:\n case 0xffc2:\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n\n offset += 2;\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n var componentsCount = data[offset++],\n componentId;\n var maxH = 0,\n maxV = 0;\n\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n\n if (maxH < h) {\n maxH = h;\n }\n\n if (maxV < v) {\n maxV = v;\n }\n\n var qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4:\n const huffmanLength = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n\n for (i = 2; i < huffmanLength;) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n\n var huffmanValues = new Uint8Array(codeLengthSum);\n\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n\n break;\n\n case 0xffdd:\n offset += 2;\n resetInterval = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n break;\n\n case 0xffda:\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n offset += 2;\n var selectorsCount = data[offset++];\n var components = [],\n component;\n\n for (i = 0; i < selectorsCount; i++) {\n var componentIndex = frame.componentIds[data[offset++]];\n component = frame.components[componentIndex];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n\n try {\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n (0, _util.warn)(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, {\n dnlScanLines: ex.scanLines\n });\n } else if (ex instanceof EOIMarkerError) {\n (0, _util.warn)(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n\n throw ex;\n }\n\n break;\n\n case 0xffdc:\n offset += 4;\n break;\n\n case 0xffff:\n if (data[offset] !== 0xff) {\n offset--;\n }\n\n break;\n\n default:\n const nextFileMarker = findNextFileMarker(data, offset - 2, offset - 3);\n\n if (nextFileMarker && nextFileMarker.invalid) {\n (0, _util.warn)(\"JpegImage.parse - unexpected data, current marker is: \" + nextFileMarker.invalid);\n offset = nextFileMarker.offset;\n break;\n }\n\n if (offset >= data.length - 1) {\n (0, _util.warn)(\"JpegImage.parse - reached the end of the image data \" + \"without finding an EOI marker (0xFFD9).\");\n break markerLoop;\n }\n\n throw new JpegError(\"JpegImage.parse - unknown marker: \" + fileMarker.toString(16));\n }\n\n fileMarker = (0, _core_utils.readUint16)(data, offset);\n offset += 2;\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n\n for (i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var quantizationTable = quantizationTables[component.quantizationId];\n\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn\n });\n }\n\n this.numComponents = this.components.length;\n return undefined;\n },\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n var scaleX = this.width / width,\n scaleY = this.height / height;\n var component, componentScaleX, componentScaleY, blocksPerScanline;\n var x, y, i, j, k;\n var index;\n var offset = 0;\n var output;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint8ClampedArray(dataLength);\n var xScaleBlockOffset = new Uint32Array(width);\n var mask3LSB = 0xfffffff8;\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = component.blocksPerLine + 1 << 3;\n\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | x * componentScaleX;\n xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n }\n\n lastComponentScaleX = componentScaleX;\n }\n\n for (y = 0; y < height; y++) {\n j = 0 | y * componentScaleY;\n index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n let transform = this._decodeTransform;\n\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength;) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n }\n }\n }\n\n return data;\n },\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n return !!this.adobe.transformCode;\n }\n\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n return false;\n }\n\n return true;\n }\n\n if (this._colorTransform === 1) {\n return true;\n }\n\n return false;\n },\n\n _convertYccToRgb: function convertYccToRgb(data) {\n var Y, Cb, Cr;\n\n for (var i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n\n return data;\n },\n _convertYcckToRgb: function convertYcckToRgb(data) {\n var Y, Cb, Cr, k;\n var offset = 0;\n\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776);\n data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665);\n data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n\n return data.subarray(0, offset);\n },\n _convertYcckToCmyk: function convertYcckToCmyk(data) {\n var Y, Cb, Cr;\n\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n }\n\n return data;\n },\n _convertCmykToRgb: function convertCmykToRgb(data) {\n var c, m, y, k;\n var offset = 0;\n\n for (var i = 0, length = data.length; i < length; i += 4) {\n c = data[i];\n m = data[i + 1];\n y = data[i + 2];\n k = data[i + 3];\n data[offset++] = 255 + c * (-0.00006747147073602441 * c + 0.0008379262121013727 * m + 0.0002894718188643294 * y + 0.003264231057537806 * k - 1.1185611867203937) + m * (0.000026374107616089405 * m - 0.00008626949158638572 * y - 0.0002748769067499491 * k - 0.02155688794978967) + y * (-0.00003878099212869363 * y - 0.0003267808279485286 * k + 0.0686742238595345) - k * (0.0003361971776183937 * k + 0.7430659151342254);\n data[offset++] = 255 + c * (0.00013596372813588848 * c + 0.000924537132573585 * m + 0.00010567359618683593 * y + 0.0004791864687436512 * k - 0.3109689587515875) + m * (-0.00023545346108370344 * m + 0.0002702845253534714 * y + 0.0020200308977307156 * k - 0.7488052167015494) + y * (0.00006834815998235662 * y + 0.00015168452363460973 * k - 0.09751927774728933) - k * (0.00031891311758832814 * k + 0.7364883807733168);\n data[offset++] = 255 + c * (0.000013598650411385307 * c + 0.00012423956175490851 * m + 0.0004751985097583589 * y - 0.0000036729317476630422 * k - 0.05562186980264034) + m * (0.00016141380598724676 * m + 0.0009692239130725186 * y + 0.0007782692450036253 * k - 0.44015232367526463) + y * (5.068882914068769e-7 * y + 0.0017778369011375071 * k - 0.7591454649749609) - k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n\n return data.subarray(0, offset);\n },\n\n getData({\n width,\n height,\n forceRGB = false,\n isSourcePDF = false\n }) {\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n\n var data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && forceRGB) {\n var dataLength = data.length;\n var rgbData = new Uint8ClampedArray(dataLength * 3);\n var offset = 0;\n\n for (var i = 0; i < dataLength; i++) {\n var grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n\n return data;\n }\n\n };\n return JpegImage;\n}();\n\nexports.JpegImage = JpegImage;\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.JpxStream = void 0;\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _jpx = __w_pdfjs_require__(21);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst JpxStream = function JpxStreamClosure() {\n function JpxStream(stream, maybeLength, dict, params) {\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n\n _stream.DecodeStream.call(this, maybeLength);\n }\n\n JpxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n Object.defineProperty(JpxStream.prototype, \"bytes\", {\n get: function JpxStream_bytes() {\n return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n\n JpxStream.prototype.ensureBuffer = function (requested) {};\n\n JpxStream.prototype.readBlock = function () {\n if (this.eof) {\n return;\n }\n\n const jpxImage = new _jpx.JpxImage();\n jpxImage.parse(this.bytes);\n const width = jpxImage.width;\n const height = jpxImage.height;\n const componentsCount = jpxImage.componentsCount;\n const tileCount = jpxImage.tiles.length;\n\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n const data = new Uint8ClampedArray(width * height * componentsCount);\n\n for (let k = 0; k < tileCount; k++) {\n const tileComponents = jpxImage.tiles[k];\n const tileWidth = tileComponents.width;\n const tileHeight = tileComponents.height;\n const tileLeft = tileComponents.left;\n const tileTop = tileComponents.top;\n const src = tileComponents.items;\n let srcPosition = 0;\n let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n const imgRowSize = width * componentsCount;\n const tileRowSize = tileWidth * componentsCount;\n\n for (let j = 0; j < tileHeight; j++) {\n const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n\n this.buffer = data;\n }\n\n this.bufferLength = this.buffer.length;\n this.eof = true;\n };\n\n return JpxStream;\n}();\n\nexports.JpxStream = JpxStream;\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.JpxImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(17);\n\nclass JpxError extends _util.BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`);\n }\n\n}\n\nvar JpxImage = function JpxImageClosure() {\n var SubbandsGainLog2 = {\n LL: 0,\n LH: 1,\n HL: 1,\n HH: 2\n };\n\n function JpxImage() {\n this.failOnCorruptedImage = false;\n }\n\n JpxImage.prototype = {\n parse: function JpxImage_parse(data) {\n var head = (0, _core_utils.readUint16)(data, 0);\n\n if (head === 0xff4f) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n var position = 0,\n length = data.length;\n\n while (position < length) {\n var headerSize = 8;\n var lbox = (0, _core_utils.readUint32)(data, position);\n var tbox = (0, _core_utils.readUint32)(data, position + 4);\n position += headerSize;\n\n if (lbox === 1) {\n lbox = (0, _core_utils.readUint32)(data, position) * 4294967296 + (0, _core_utils.readUint32)(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n\n var dataLength = lbox - headerSize;\n var jumpDataLength = true;\n\n switch (tbox) {\n case 0x6a703268:\n jumpDataLength = false;\n break;\n\n case 0x636f6c72:\n var method = data[position];\n\n if (method === 1) {\n var colorspace = (0, _core_utils.readUint32)(data, position + 3);\n\n switch (colorspace) {\n case 16:\n case 17:\n case 18:\n break;\n\n default:\n (0, _util.warn)(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n (0, _util.info)(\"ICC profile not supported\");\n }\n\n break;\n\n case 0x6a703263:\n this.parseCodestream(data, position, position + dataLength);\n break;\n\n case 0x6a502020:\n if ((0, _core_utils.readUint32)(data, position) !== 0x0d0a870a) {\n (0, _util.warn)(\"Invalid JP2 signature\");\n }\n\n break;\n\n case 0x6a501a1a:\n case 0x66747970:\n case 0x72726571:\n case 0x72657320:\n case 0x69686472:\n break;\n\n default:\n var headerType = String.fromCharCode(tbox >> 24 & 0xff, tbox >> 16 & 0xff, tbox >> 8 & 0xff, tbox & 0xff);\n (0, _util.warn)(\"Unsupported header type \" + tbox + \" (\" + headerType + \")\");\n break;\n }\n\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n },\n parseImageProperties: function JpxImage_parseImageProperties(stream) {\n var newByte = stream.getByte();\n\n while (newByte >= 0) {\n var oldByte = newByte;\n newByte = stream.getByte();\n var code = oldByte << 8 | newByte;\n\n if (code === 0xff51) {\n stream.skip(4);\n var Xsiz = stream.getInt32() >>> 0;\n var Ysiz = stream.getInt32() >>> 0;\n var XOsiz = stream.getInt32() >>> 0;\n var YOsiz = stream.getInt32() >>> 0;\n stream.skip(16);\n var Csiz = stream.getUint16();\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n this.bitsPerComponent = 8;\n return;\n }\n }\n\n throw new JpxError(\"No size marker found in JPX stream\");\n },\n parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n var context = {};\n var doNotRecover = false;\n\n try {\n var position = start;\n\n while (position + 1 < end) {\n var code = (0, _core_utils.readUint16)(data, position);\n position += 2;\n var length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n\n switch (code) {\n case 0xff4f:\n context.mainHeader = true;\n break;\n\n case 0xffd9:\n break;\n\n case 0xff51:\n length = (0, _core_utils.readUint16)(data, position);\n var siz = {};\n siz.Xsiz = (0, _core_utils.readUint32)(data, position + 4);\n siz.Ysiz = (0, _core_utils.readUint32)(data, position + 8);\n siz.XOsiz = (0, _core_utils.readUint32)(data, position + 12);\n siz.YOsiz = (0, _core_utils.readUint32)(data, position + 16);\n siz.XTsiz = (0, _core_utils.readUint32)(data, position + 20);\n siz.YTsiz = (0, _core_utils.readUint32)(data, position + 24);\n siz.XTOsiz = (0, _core_utils.readUint32)(data, position + 28);\n siz.YTOsiz = (0, _core_utils.readUint32)(data, position + 32);\n var componentsCount = (0, _core_utils.readUint16)(data, position + 36);\n siz.Csiz = componentsCount;\n var components = [];\n j = position + 38;\n\n for (var i = 0; i < componentsCount; i++) {\n var component = {\n precision: (data[j] & 0x7f) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2]\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n\n case 0xff5c:\n length = (0, _core_utils.readUint16)(data, position);\n var qcd = {};\n j = position + 2;\n sqcd = data[j++];\n\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n\n while (j < length + position) {\n var spqcd = {};\n\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n\n spqcds.push(spqcd);\n }\n\n qcd.SPqcds = spqcds;\n\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n\n break;\n\n case 0xff5d:\n length = (0, _core_utils.readUint16)(data, position);\n var qcc = {};\n j = position + 2;\n var cqcc;\n\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = (0, _core_utils.readUint16)(data, j);\n j += 2;\n }\n\n sqcd = data[j++];\n\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n\n while (j < length + position) {\n spqcd = {};\n\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n\n spqcds.push(spqcd);\n }\n\n qcc.SPqcds = spqcds;\n\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n\n break;\n\n case 0xff52:\n length = (0, _core_utils.readUint16)(data, position);\n var cod = {};\n j = position + 2;\n var scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = (0, _core_utils.readUint16)(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xf) + 2;\n cod.ycb = (data[j++] & 0xf) + 2;\n var blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticallyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n\n if (cod.entropyCoderWithCustomPrecincts) {\n var precinctsSizes = [];\n\n while (j < length + position) {\n var precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4\n });\n }\n\n cod.precinctsSizes = precinctsSizes;\n }\n\n var unsupported = [];\n\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n\n if (cod.resetContextProbabilities) {\n unsupported.push(\"resetContextProbabilities\");\n }\n\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n\n if (unsupported.length > 0) {\n doNotRecover = true;\n throw new Error(\"Unsupported COD options (\" + unsupported.join(\", \") + \")\");\n }\n\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n\n break;\n\n case 0xff90:\n length = (0, _core_utils.readUint16)(data, position);\n tile = {};\n tile.index = (0, _core_utils.readUint16)(data, position + 2);\n tile.length = (0, _core_utils.readUint32)(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n context.mainHeader = false;\n\n if (tile.partIndex === 0) {\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0);\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0);\n }\n\n context.currentTile = tile;\n break;\n\n case 0xff93:\n tile = context.currentTile;\n\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n\n case 0xff55:\n case 0xff57:\n case 0xff58:\n case 0xff64:\n length = (0, _core_utils.readUint16)(data, position);\n break;\n\n case 0xff53:\n throw new Error(\"Codestream code 0xFF53 (COC) is not implemented\");\n\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n (0, _util.warn)(\"JPX: Trying to recover from: \" + e.message);\n }\n }\n\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n };\n\n function calculateComponentDimensions(component, siz) {\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n }\n\n function calculateTileGrids(context, components) {\n var siz = context.SIZ;\n var tile,\n tiles = [];\n var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n\n for (var q = 0; q < numYtiles; q++) {\n for (var p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n\n context.tiles = tiles;\n var componentsCount = siz.Csiz;\n\n for (var i = 0, ii = componentsCount; i < ii; i++) {\n var component = components[i];\n\n for (var j = 0, jj = tiles.length; j < jj; j++) {\n var tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n }\n\n function getBlocksDimensions(context, component, r) {\n var codOrCoc = component.codingStyleParameters;\n var result = {};\n\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n\n result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n }\n\n function buildPrecincts(context, resolution, dimensions) {\n var precinctWidth = 1 << dimensions.PPx;\n var precinctHeight = 1 << dimensions.PPy;\n var isZeroRes = resolution.resLevel === 0;\n var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1);\n var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1);\n var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0;\n var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;\n var numprecincts = numprecinctswide * numprecinctshigh;\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband\n };\n }\n\n function buildCodeblocks(context, subband, dimensions) {\n var xcb_ = dimensions.xcb_;\n var ycb_ = dimensions.ycb_;\n var codeblockWidth = 1 << xcb_;\n var codeblockHeight = 1 << ycb_;\n var cbx0 = subband.tbx0 >> xcb_;\n var cby0 = subband.tby0 >> ycb_;\n var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_;\n var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_;\n var precinctParameters = subband.resolution.precinctParameters;\n var codeblocks = [];\n var precincts = [];\n var i, j, codeblock, precinctNumber;\n\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1)\n };\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband);\n var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband);\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n continue;\n }\n\n codeblocks.push(codeblock);\n var precinct = precincts[precinctNumber];\n\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j\n };\n }\n\n codeblock.precinct = precinct;\n }\n }\n\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n }\n\n function createPacket(resolution, precinctNumber, layerNumber) {\n var precinctCodeblocks = [];\n var subbands = resolution.subbands;\n\n for (var i = 0, ii = subbands.length; i < ii; i++) {\n var subband = subbands[i];\n var codeblocks = subband.codeblocks;\n\n for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n var codeblock = codeblocks[j];\n\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n\n precinctCodeblocks.push(codeblock);\n }\n }\n\n return {\n layerNumber,\n codeblocks: precinctCodeblocks\n };\n }\n\n function LayerResolutionComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n\n var l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n\n k = 0;\n }\n\n i = 0;\n }\n\n r = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function ResolutionLayerComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n\n var r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n\n k = 0;\n }\n\n i = 0;\n }\n\n l = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function ResolutionPositionComponentLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var l, r, c, p;\n var maxDecompositionLevelsCount = 0;\n\n for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n }\n\n var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n var maxNumPrecincts = 0;\n\n for (c = 0; c < componentsCount; ++c) {\n var resolutions = tile.components[c].resolutions;\n\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n }\n }\n\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n\n if (p >= numprecincts) {\n continue;\n }\n\n for (; l < layersCount;) {\n var packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n\n l = 0;\n }\n\n c = 0;\n }\n\n p = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function PositionComponentResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var precinctsIterationSizes = precinctsSizes;\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsSizes.components[c].resolutions[r];\n var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n if (k === null) {\n continue;\n }\n\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n\n l = 0;\n }\n\n r = 0;\n }\n\n c = 0;\n }\n\n px = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function ComponentPositionResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n for (; c < componentsCount; ++c) {\n var component = tile.components[c];\n var precinctsIterationSizes = precinctsSizes.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsIterationSizes.resolutions[r];\n var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n if (k === null) {\n continue;\n }\n\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n\n l = 0;\n }\n\n r = 0;\n }\n\n px = 0;\n }\n\n py = 0;\n }\n\n throw new JpxError(\"Out of packets\");\n };\n }\n\n function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n var posX = pxIndex * precinctIterationSizes.minWidth;\n var posY = pyIndex * precinctIterationSizes.minHeight;\n\n if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n return null;\n }\n\n var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n }\n\n function getPrecinctSizesInImageScale(tile) {\n var componentsCount = tile.components.length;\n var minWidth = Number.MAX_VALUE;\n var minHeight = Number.MAX_VALUE;\n var maxNumWide = 0;\n var maxNumHigh = 0;\n var sizePerComponent = new Array(componentsCount);\n\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var sizePerResolution = new Array(decompositionLevelsCount + 1);\n var minWidthCurrentComponent = Number.MAX_VALUE;\n var minHeightCurrentComponent = Number.MAX_VALUE;\n var maxNumWideCurrentComponent = 0;\n var maxNumHighCurrentComponent = 0;\n var scale = 1;\n\n for (var r = decompositionLevelsCount; r >= 0; --r) {\n var resolution = component.resolutions[r];\n var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth;\n var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution);\n minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution);\n maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide);\n maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh);\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution\n };\n scale <<= 1;\n }\n\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent\n };\n }\n\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh\n };\n }\n\n function buildPackets(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var componentsCount = siz.Csiz;\n\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var resolutions = [];\n var subbands = [];\n\n for (var r = 0; r <= decompositionLevelsCount; r++) {\n var blocksDimensions = getBlocksDimensions(context, component, r);\n var resolution = {};\n var scale = 1 << decompositionLevelsCount - r;\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n var subband;\n\n if (r === 0) {\n subband = {};\n subband.type = \"LL\";\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n var bscale = 1 << decompositionLevelsCount - r + 1;\n var resolutionSubbands = [];\n subband = {};\n subband.type = \"HL\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n subband = {};\n subband.type = \"LH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n subband = {};\n subband.type = \"HH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n resolution.subbands = resolutionSubbands;\n }\n }\n\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n\n var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n break;\n\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n break;\n\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n break;\n\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n break;\n\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n break;\n\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n }\n\n function parseTilePackets(context, data, offset, dataLength) {\n var position = 0;\n var buffer,\n bufferSize = 0,\n skipNextBit = false;\n\n function readBits(count) {\n while (bufferSize < count) {\n var b = data[offset + position];\n position++;\n\n if (skipNextBit) {\n buffer = buffer << 7 | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = buffer << 8 | b;\n bufferSize += 8;\n }\n\n if (b === 0xff) {\n skipNextBit = true;\n }\n }\n\n bufferSize -= count;\n return buffer >>> bufferSize & (1 << count) - 1;\n }\n\n function skipMarkerIfEqual(value) {\n if (data[offset + position - 1] === 0xff && data[offset + position] === value) {\n skipBytes(1);\n return true;\n } else if (data[offset + position] === 0xff && data[offset + position + 1] === value) {\n skipBytes(2);\n return true;\n }\n\n return false;\n }\n\n function skipBytes(count) {\n position += count;\n }\n\n function alignToByte() {\n bufferSize = 0;\n\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n\n if (readBits(1) === 0) {\n return 2;\n }\n\n var value = readBits(2);\n\n if (value < 3) {\n return value + 3;\n }\n\n value = readBits(5);\n\n if (value < 31) {\n return value + 6;\n }\n\n value = readBits(7);\n return value + 37;\n }\n\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var sopMarkerUsed = context.COD.sopMarkerUsed;\n var ephMarkerUsed = context.COD.ephMarkerUsed;\n var packetsIterator = tile.packetsIterator;\n\n while (position < dataLength) {\n alignToByte();\n\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n skipBytes(4);\n }\n\n var packet = packetsIterator.nextPacket();\n\n if (!readBits(1)) {\n continue;\n }\n\n var layerNumber = packet.layerNumber;\n var queue = [],\n codeblock;\n\n for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n var precinct = codeblock.precinct;\n var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n var codeblockRow = codeblock.cby - precinct.cbyMin;\n var codeblockIncluded = false;\n var firstTimeInclusion = false;\n var valueReady;\n\n if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n precinct = codeblock.precinct;\n var inclusionTree, zeroBitPlanesTree;\n\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n var width = precinct.cbxMax - precinct.cbxMin + 1;\n var height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n }\n\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n\n if (!codeblockIncluded) {\n continue;\n }\n\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n\n var codingpasses = readCodingpasses();\n\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n\n var codingpassesLog2 = (0, _core_utils.log2)(codingpasses);\n var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n var codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength\n });\n }\n\n alignToByte();\n\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n\n while (queue.length > 0) {\n var packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n\n if (codeblock.data === undefined) {\n codeblock.data = [];\n }\n\n codeblock.data.push({\n data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses\n });\n position += packetItem.dataLength;\n }\n }\n\n return position;\n }\n\n function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) {\n var x0 = subband.tbx0;\n var y0 = subband.tby0;\n var width = subband.tbx1 - subband.tbx0;\n var codeblocks = subband.codeblocks;\n var right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n var bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n var codeblock = codeblocks[i];\n var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n\n if (codeblock.data === undefined) {\n continue;\n }\n\n var bitModel, currentCodingpassType;\n bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb);\n currentCodingpassType = 2;\n var data = codeblock.data,\n totalLength = 0,\n codingpasses = 0;\n var j, jj, dataItem;\n\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n\n var encodedData = new Uint8Array(totalLength);\n var position = 0;\n\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n\n var decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n\n case 2:\n bitModel.runCleanupPass();\n\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n\n break;\n }\n\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n\n var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n var sign = bitModel.coefficentsSign;\n var magnitude = bitModel.coefficentsMagnitude;\n var bitsDecoded = bitModel.bitsDecoded;\n var magnitudeCorrection = reversible ? 0 : 0.5;\n var k, n, nb;\n position = 0;\n var interleave = subband.type !== \"LL\";\n\n for (j = 0; j < blockHeight; j++) {\n var row = offset / width | 0;\n var levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n\n if (sign[position] !== 0) {\n n = -n;\n }\n\n nb = bitsDecoded[position];\n var pos = interleave ? levelOffset + (offset << 1) : offset;\n\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << mb - nb);\n }\n }\n\n offset++;\n position++;\n }\n\n offset += width - blockWidth;\n }\n }\n }\n\n function transformTile(context, tile, c) {\n var component = tile.components[c];\n var codingStyleParameters = component.codingStyleParameters;\n var quantizationParameters = component.quantizationParameters;\n var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount;\n var spqcds = quantizationParameters.SPqcds;\n var scalarExpounded = quantizationParameters.scalarExpounded;\n var guardBits = quantizationParameters.guardBits;\n var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n var precision = context.components[c].precision;\n var reversible = codingStyleParameters.reversibleTransformation;\n var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform();\n var subbandCoefficients = [];\n var b = 0;\n\n for (var i = 0; i <= decompositionLevelsCount; i++) {\n var resolution = component.resolutions[i];\n var width = resolution.trx1 - resolution.trx0;\n var height = resolution.try1 - resolution.try0;\n var coefficients = new Float32Array(width * height);\n\n for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n var mu, epsilon;\n\n if (!scalarExpounded) {\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n\n var subband = resolution.subbands[j];\n var gainLog2 = SubbandsGainLog2[subband.type];\n var delta = reversible ? 1 : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n var mb = guardBits + epsilon - 1;\n copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed);\n }\n\n subbandCoefficients.push({\n width,\n height,\n items: coefficients\n });\n }\n\n var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0);\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items\n };\n }\n\n function transformComponents(context) {\n var siz = context.SIZ;\n var components = context.components;\n var componentsCount = siz.Csiz;\n var resultImages = [];\n\n for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n var tile = context.tiles[i];\n var transformedTiles = [];\n var c;\n\n for (c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n\n var tile0 = transformedTiles[0];\n var out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n var result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out\n };\n var shift, offset;\n var pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n var fourComponents = componentsCount === 4;\n var y0items = transformedTiles[0].items;\n var y1items = transformedTiles[1].items;\n var y2items = transformedTiles[2].items;\n var y3items = fourComponents ? transformedTiles[3].items : null;\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n var component0 = tile.components[0];\n var alpha01 = componentsCount - 3;\n jj = y0items.length;\n\n if (!component0.codingStyleParameters.reversibleTransformation) {\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = y0 + 1.402 * y2 >> shift;\n out[pos++] = y0 - 0.34413 * y1 - 0.71414 * y2 >> shift;\n out[pos++] = y0 + 1.772 * y1 >> shift;\n }\n } else {\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n const g = y0 - (y2 + y1 >> 2);\n out[pos++] = g + y2 >> shift;\n out[pos++] = g >> shift;\n out[pos++] = g + y1 >> shift;\n }\n }\n\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = y3items[j] + offset >> shift;\n }\n }\n } else {\n for (c = 0; c < componentsCount; c++) {\n var items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = items[j] + offset >> shift;\n pos += componentsCount;\n }\n }\n }\n\n resultImages.push(result);\n }\n\n return resultImages;\n }\n\n function initializeTile(context, tileIndex) {\n var siz = context.SIZ;\n var componentsCount = siz.Csiz;\n var tile = context.tiles[tileIndex];\n\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n }\n\n var TagTree = function TagTreeClosure() {\n function TagTree(width, height) {\n var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n\n for (var i = 0; i < levelsLength; i++) {\n var level = {\n width,\n height,\n items: []\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n TagTree.prototype = {\n reset: function TagTree_reset(i, j) {\n var currentLevel = 0,\n value = 0,\n level;\n\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n var index = i + j * level.width;\n\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n },\n incrementValue: function TagTree_incrementValue() {\n var level = this.levels[this.currentLevel];\n level.items[level.index]++;\n },\n nextLevel: function TagTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n currentLevel--;\n\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return TagTree;\n }();\n\n var InclusionTree = function InclusionTreeClosure() {\n function InclusionTree(width, height, defaultValue) {\n var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n\n for (var i = 0; i < levelsLength; i++) {\n var items = new Uint8Array(width * height);\n\n for (var j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n\n var level = {\n width,\n height,\n items\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n InclusionTree.prototype = {\n reset: function InclusionTree_reset(i, j, stopValue) {\n var currentLevel = 0;\n\n while (currentLevel < this.levels.length) {\n var level = this.levels[currentLevel];\n var index = i + j * level.width;\n level.index = index;\n var value = level.items[index];\n\n if (value === 0xff) {\n break;\n }\n\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n\n this.currentLevel = currentLevel - 1;\n return true;\n },\n incrementValue: function InclusionTree_incrementValue(stopValue) {\n var level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n },\n propagateValues: function InclusionTree_propagateValues() {\n var levelIndex = this.currentLevel;\n var level = this.levels[levelIndex];\n var currentValue = level.items[level.index];\n\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n },\n nextLevel: function InclusionTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n level.items[level.index] = 0xff;\n currentLevel--;\n\n if (currentLevel < 0) {\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return InclusionTree;\n }();\n\n var BitModel = function BitModelClosure() {\n var UNIFORM_CONTEXT = 17;\n var RUNLENGTH_CONTEXT = 18;\n var LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]);\n var HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]);\n var HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]);\n\n function BitModel(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n let contextLabelTable;\n\n if (subband === \"HH\") {\n contextLabelTable = HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = HLContextLabel;\n } else {\n contextLabelTable = LLAndLHContextsLabel;\n }\n\n this.contextLabelTable = contextLabelTable;\n var coefficientCount = width * height;\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\n\n if (mb > 14) {\n coefficentsMagnitude = new Uint32Array(coefficientCount);\n } else if (mb > 6) {\n coefficentsMagnitude = new Uint16Array(coefficientCount);\n } else {\n coefficentsMagnitude = new Uint8Array(coefficientCount);\n }\n\n this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n var bitsDecoded = new Uint8Array(coefficientCount);\n\n if (zeroBitPlanes !== 0) {\n for (var i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n\n this.bitsDecoded = bitsDecoded;\n this.reset();\n }\n\n BitModel.prototype = {\n setDecoder: function BitModel_setDecoder(decoder) {\n this.decoder = decoder;\n },\n reset: function BitModel_reset() {\n this.contexts = new Int8Array(19);\n this.contexts[0] = 4 << 1 | 0;\n this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0;\n this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0;\n },\n setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) {\n var neighborsSignificance = this.neighborsSignificance;\n var width = this.width,\n height = this.height;\n var left = column > 0;\n var right = column + 1 < width;\n var i;\n\n if (row > 0) {\n i = index - width;\n\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n\n neighborsSignificance[index] |= 0x80;\n },\n runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var neighborsSignificance = this.neighborsSignificance;\n var processingFlags = this.processingFlags;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processedInverseMask = ~1;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n\n for (var i0 = 0; i0 < height; i0 += 4) {\n for (var j = 0; j < width; j++) {\n var index = i0 * width + j;\n\n for (var i1 = 0; i1 < 4; i1++, index += width) {\n var i = i0 + i1;\n\n if (i >= height) {\n break;\n }\n\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n\n if (decision) {\n var sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n decodeSignBit: function BitModel_decodeSignBit(row, column, index) {\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contribution, sign0, sign1, significance1;\n var contextLabel, decoded;\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n\n var horizontalContribution = 3 * contribution;\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n\n return decoded;\n },\n runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var neighborsSignificance = this.neighborsSignificance;\n var contexts = this.contexts;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var length = width * height;\n var width4 = width * 4;\n\n for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n\n for (var j = 0; j < width; j++) {\n for (var index = index0 + j; index < indexNext; index += width) {\n if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n\n var contextLabel = 16;\n\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n var significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n var bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n runCleanupPass: function BitModel_runCleanupPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var neighborsSignificance = this.neighborsSignificance;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var oneRowDown = width;\n var twoRowsDown = width * 2;\n var threeRowsDown = width * 3;\n var iNext;\n\n for (var i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n var indexBase = i0 * width;\n var checkAllEmpty = i0 + 3 < height;\n\n for (var j = 0; j < width; j++) {\n var index0 = indexBase + j;\n var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0;\n var i1 = 0,\n index = index0;\n var i = i0,\n sign;\n\n if (allEmpty) {\n var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue;\n }\n\n i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n index = index0;\n\n for (var i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n\n bitsDecoded[index]++;\n }\n }\n }\n },\n checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n var decoder = this.decoder;\n var contexts = this.contexts;\n var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n };\n return BitModel;\n }();\n\n var Transform = function TransformClosure() {\n function Transform() {}\n\n Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) {\n var ll = subbands[0];\n\n for (var i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n\n return ll;\n };\n\n Transform.prototype.extend = function extend(buffer, offset, size) {\n var i1 = offset - 1,\n j1 = offset + 1;\n var i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n };\n\n Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) {\n var llWidth = ll.width,\n llHeight = ll.height,\n llItems = ll.items;\n var width = hl_lh_hh.width;\n var height = hl_lh_hh.height;\n var items = hl_lh_hh.items;\n var i, j, k, l, u, v;\n\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n\n llItems = ll.items = null;\n var bufferPadding = 4;\n var rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n if (width === 1) {\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n var numBuffers = 16;\n var colBuffers = [];\n\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n\n var b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n if (height === 1) {\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n\n currentBuffer = numBuffers;\n }\n\n currentBuffer--;\n var buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n\n return {\n width,\n height,\n items\n };\n };\n\n return Transform;\n }();\n\n var IrreversibleTransform = function IrreversibleTransformClosure() {\n function IrreversibleTransform() {\n Transform.call(this);\n }\n\n IrreversibleTransform.prototype = Object.create(Transform.prototype);\n\n IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n, current, next;\n var alpha = -1.586134342059924;\n var beta = -0.052980118572961;\n var gamma = 0.882911075530934;\n var delta = 0.443506852043971;\n var K = 1.230174104914001;\n var K_ = 1 / K;\n j = offset - 3;\n\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n j = offset - 2;\n current = delta * x[j - 1];\n\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n\n j = offset - 1;\n current = gamma * x[j - 1];\n\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n j = offset;\n current = beta * x[j - 1];\n\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n };\n\n return IrreversibleTransform;\n }();\n\n var ReversibleTransform = function ReversibleTransformClosure() {\n function ReversibleTransform() {\n Transform.call(this);\n }\n\n ReversibleTransform.prototype = Object.create(Transform.prototype);\n\n ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n;\n\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= x[j - 1] + x[j + 1] + 2 >> 2;\n }\n\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += x[j - 1] + x[j + 1] >> 1;\n }\n };\n\n return ReversibleTransform;\n }();\n\n return JpxImage;\n}();\n\nexports.JpxImage = JpxImage;\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.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar ARCFourCipher = function ARCFourCipherClosure() {\n function ARCFourCipher(key) {\n this.a = 0;\n this.b = 0;\n var s = new Uint8Array(256);\n var i,\n j = 0,\n tmp,\n keyLength = key.length;\n\n for (i = 0; i < 256; ++i) {\n s[i] = i;\n }\n\n for (i = 0; i < 256; ++i) {\n tmp = s[i];\n j = j + tmp + key[i % keyLength] & 0xff;\n s[i] = s[j];\n s[j] = tmp;\n }\n\n this.s = s;\n }\n\n ARCFourCipher.prototype = {\n encryptBlock: function ARCFourCipher_encryptBlock(data) {\n var i,\n n = data.length,\n tmp,\n tmp2;\n var a = this.a,\n b = this.b,\n s = this.s;\n var output = new Uint8Array(n);\n\n for (i = 0; i < n; ++i) {\n a = a + 1 & 0xff;\n tmp = s[a];\n b = b + tmp & 0xff;\n tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[tmp + tmp2 & 0xff];\n }\n\n this.a = a;\n this.b = b;\n return output;\n }\n };\n ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n return ARCFourCipher;\n}();\n\nexports.ARCFourCipher = ARCFourCipher;\n\nvar calculateMD5 = function calculateMD5Closure() {\n var r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n var k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]);\n\n function hash(data, offset, length) {\n var h0 = 1732584193,\n h1 = -271733879,\n h2 = -1732584194,\n h3 = 271733878;\n var paddedLength = length + 72 & ~63;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n\n padded[i++] = 0x80;\n n = paddedLength - 8;\n\n while (i < n) {\n padded[i++] = 0;\n }\n\n padded[i++] = length << 3 & 0xff;\n padded[i++] = length >> 5 & 0xff;\n padded[i++] = length >> 13 & 0xff;\n padded[i++] = length >> 21 & 0xff;\n padded[i++] = length >>> 29 & 0xff;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n var w = new Int32Array(16);\n\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n }\n\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = b & c | ~b & d;\n g = j;\n } else if (j < 32) {\n f = d & b | ~d & c;\n g = 5 * j + 1 & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = 3 * j + 5 & 15;\n } else {\n f = c ^ (b | ~d);\n g = 7 * j & 15;\n }\n\n var tmp = d,\n rotateArg = a + f + k[j] + w[g] | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n a = tmp;\n }\n\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n }\n\n return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n }\n\n return hash;\n}();\n\nexports.calculateMD5 = calculateMD5;\n\nvar Word64 = function Word64Closure() {\n function Word64(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n\n Word64.prototype = {\n and: function Word64_and(word) {\n this.high &= word.high;\n this.low &= word.low;\n },\n xor: function Word64_xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n },\n or: function Word64_or(word) {\n this.high |= word.high;\n this.low |= word.low;\n },\n shiftRight: function Word64_shiftRight(places) {\n if (places >= 32) {\n this.low = this.high >>> places - 32 | 0;\n this.high = 0;\n } else {\n this.low = this.low >>> places | this.high << 32 - places;\n this.high = this.high >>> places | 0;\n }\n },\n shiftLeft: function Word64_shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << places - 32;\n this.low = 0;\n } else {\n this.high = this.high << places | this.low >>> 32 - places;\n this.low = this.low << places;\n }\n },\n rotateRight: function Word64_rotateRight(places) {\n var low, high;\n\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n\n places &= 31;\n this.low = low >>> places | high << 32 - places;\n this.high = high >>> places | low << 32 - places;\n },\n not: function Word64_not() {\n this.high = ~this.high;\n this.low = ~this.low;\n },\n add: function Word64_add(word) {\n var lowAdd = (this.low >>> 0) + (word.low >>> 0);\n var highAdd = (this.high >>> 0) + (word.high >>> 0);\n\n if (lowAdd > 0xffffffff) {\n highAdd += 1;\n }\n\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n },\n copyTo: function Word64_copyTo(bytes, offset) {\n bytes[offset] = this.high >>> 24 & 0xff;\n bytes[offset + 1] = this.high >> 16 & 0xff;\n bytes[offset + 2] = this.high >> 8 & 0xff;\n bytes[offset + 3] = this.high & 0xff;\n bytes[offset + 4] = this.low >>> 24 & 0xff;\n bytes[offset + 5] = this.low >> 16 & 0xff;\n bytes[offset + 6] = this.low >> 8 & 0xff;\n bytes[offset + 7] = this.low & 0xff;\n },\n assign: function Word64_assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n };\n return Word64;\n}();\n\nvar calculateSHA256 = function calculateSHA256Closure() {\n function rotr(x, n) {\n return x >>> n | x << 32 - n;\n }\n\n function ch(x, y, z) {\n return x & y ^ ~x & z;\n }\n\n function maj(x, y, z) {\n return x & y ^ x & z ^ y & z;\n }\n\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n }\n\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\n }\n\n var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n function hash(data, offset, length) {\n var h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a,\n h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n var paddedLength = Math.ceil((length + 9) / 64) * 64;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n\n padded[i++] = 0x80;\n n = paddedLength - 8;\n\n while (i < n) {\n padded[i++] = 0;\n }\n\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xff;\n padded[i++] = length >> 21 & 0xff;\n padded[i++] = length >> 13 & 0xff;\n padded[i++] = length >> 5 & 0xff;\n padded[i++] = length << 3 & 0xff;\n var w = new Uint32Array(64);\n\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n i += 4;\n }\n\n for (j = 16; j < 64; ++j) {\n w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0;\n }\n\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n h4 = h4 + e | 0;\n h5 = h5 + f | 0;\n h6 = h6 + g | 0;\n h7 = h7 + h | 0;\n }\n\n return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n }\n\n return hash;\n}();\n\nexports.calculateSHA256 = calculateSHA256;\n\nvar calculateSHA512 = function calculateSHA512Closure() {\n function ch(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.not();\n tmp.and(z);\n result.xor(tmp);\n }\n\n function maj(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.and(z);\n result.xor(tmp);\n tmp.assign(y);\n tmp.and(z);\n result.xor(tmp);\n }\n\n function sigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(28);\n tmp.assign(x);\n tmp.rotateRight(34);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(39);\n result.xor(tmp);\n }\n\n function sigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(14);\n tmp.assign(x);\n tmp.rotateRight(18);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(41);\n result.xor(tmp);\n }\n\n function littleSigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(1);\n tmp.assign(x);\n tmp.rotateRight(8);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(7);\n result.xor(tmp);\n }\n\n function littleSigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(19);\n tmp.assign(x);\n tmp.rotateRight(61);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(6);\n result.xor(tmp);\n }\n\n var k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n function hash(data, offset, length, mode384) {\n mode384 = !!mode384;\n var h0, h1, h2, h3, h4, h5, h6, h7;\n\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n h1 = new Word64(0x629a292a, 0x367cd507);\n h2 = new Word64(0x9159015a, 0x3070dd17);\n h3 = new Word64(0x152fecd8, 0xf70e5939);\n h4 = new Word64(0x67332667, 0xffc00b31);\n h5 = new Word64(0x8eb44a87, 0x68581511);\n h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n }\n\n var paddedLength = Math.ceil((length + 17) / 128) * 128;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n\n padded[i++] = 0x80;\n n = paddedLength - 16;\n\n while (i < n) {\n padded[i++] = 0;\n }\n\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xff;\n padded[i++] = length >> 21 & 0xff;\n padded[i++] = length >> 13 & 0xff;\n padded[i++] = length >> 5 & 0xff;\n padded[i++] = length << 3 & 0xff;\n var w = new Array(80);\n\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n\n var a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n var d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n var g = new Word64(0, 0),\n h = new Word64(0, 0);\n var t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n var tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0),\n tmp3;\n\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n i += 8;\n }\n\n for (j = 16; j < 80; ++j) {\n tmp3 = w[j];\n littleSigmaPrime(tmp3, w[j - 2], tmp2);\n tmp3.add(w[j - 7]);\n littleSigma(tmp1, w[j - 15], tmp2);\n tmp3.add(tmp1);\n tmp3.add(w[j - 16]);\n }\n\n a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\n tmp3 = h;\n h = g;\n g = f;\n f = e;\n d.add(t1);\n e = d;\n d = c;\n c = b;\n b = a;\n tmp3.assign(t1);\n tmp3.add(t2);\n a = tmp3;\n }\n\n h0.add(a);\n h1.add(b);\n h2.add(c);\n h3.add(d);\n h4.add(e);\n h5.add(f);\n h6.add(g);\n h7.add(h);\n }\n\n var result;\n\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n\n return result;\n }\n\n return hash;\n}();\n\nexports.calculateSHA512 = calculateSHA512;\n\nvar calculateSHA384 = function calculateSHA384Closure() {\n function hash(data, offset, length) {\n return calculateSHA512(data, offset, length, true);\n }\n\n return hash;\n}();\n\nexports.calculateSHA384 = calculateSHA384;\n\nvar NullCipher = function NullCipherClosure() {\n function NullCipher() {}\n\n NullCipher.prototype = {\n decryptBlock: function NullCipher_decryptBlock(data) {\n return data;\n }\n };\n return NullCipher;\n}();\n\nclass AESBaseCipher {\n constructor() {\n if (this.constructor === AESBaseCipher) {\n (0, _util.unreachable)(\"Cannot initialize AESBaseCipher.\");\n }\n\n this._s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n this._inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n this._mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n this._mixCol = new Uint8Array(256);\n\n for (let i = 0; i < 256; i++) {\n if (i < 128) {\n this._mixCol[i] = i << 1;\n } else {\n this._mixCol[i] = i << 1 ^ 0x1b;\n }\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n\n _expandKey(cipherKey) {\n (0, _util.unreachable)(\"Cannot call `_expandKey` on the base class\");\n }\n\n _decrypt(input, key) {\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n\n for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n }\n\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n\n for (let j = 0; j < 16; j += 4) {\n const s0 = this._mix[state[j]];\n const s1 = this._mix[state[j + 1]];\n const s2 = this._mix[state[j + 2]];\n const s3 = this._mix[state[j + 3]];\n t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n state[j] = t >>> 24 & 0xff;\n state[j + 1] = t >> 16 & 0xff;\n state[j + 2] = t >> 8 & 0xff;\n state[j + 3] = t & 0xff;\n }\n }\n\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n state[j] ^= key[j];\n }\n\n return state;\n }\n\n _encrypt(input, key) {\n const s = this._s;\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n for (let j = 0; j < 16; ++j) {\n state[j] ^= key[j];\n }\n\n for (let i = 1; i < this._cyclesOfRepetition; i++) {\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n\n for (let j = 0; j < 16; j += 4) {\n const s0 = state[j + 0];\n const s1 = state[j + 1];\n const s2 = state[j + 2];\n const s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n }\n\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n\n return state;\n }\n\n _decryptBlock2(data, finalize) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n let iv = this.iv;\n\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n\n if (bufferLength < 16) {\n continue;\n }\n\n const plain = this._decrypt(buffer, this._key);\n\n for (let j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n\n let outputLength = 16 * result.length;\n\n if (finalize) {\n const lastBlock = result[result.length - 1];\n let psLen = lastBlock[15];\n\n if (psLen <= 16) {\n for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n psLen = 0;\n break;\n }\n }\n\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n\n const output = new Uint8Array(outputLength);\n\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n\n return output;\n }\n\n decryptBlock(data, finalize, iv = null) {\n const sourceLength = data.length;\n const buffer = this.buffer;\n let bufferLength = this.bufferPosition;\n\n if (iv) {\n this.iv = iv;\n } else {\n for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n buffer[bufferLength] = data[i];\n }\n\n if (bufferLength < 16) {\n this.bufferLength = bufferLength;\n return new Uint8Array(0);\n }\n\n this.iv = buffer;\n data = data.subarray(16);\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n this.decryptBlock = this._decryptBlock2;\n return this.decryptBlock(data, finalize);\n }\n\n encrypt(data, iv) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n\n if (!iv) {\n iv = new Uint8Array(16);\n }\n\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n\n if (bufferLength < 16) {\n continue;\n }\n\n for (let j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n\n const cipher = this._encrypt(buffer, this._key);\n\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n\n const outputLength = 16 * result.length;\n const output = new Uint8Array(outputLength);\n\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n\n return output;\n }\n\n}\n\nclass AES128Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n this._cyclesOfRepetition = 10;\n this._keySize = 160;\n this._rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 176;\n const s = this._s;\n const rcon = this._rcon;\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n for (let j = 16, i = 1; j < b; ++i) {\n let t1 = result[j - 3];\n let t2 = result[j - 2];\n let t3 = result[j - 1];\n let t4 = result[j - 4];\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ rcon[i];\n\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n\n return result;\n }\n\n}\n\nexports.AES128Cipher = AES128Cipher;\n\nclass AES256Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n this._cyclesOfRepetition = 14;\n this._keySize = 224;\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 240;\n const s = this._s;\n const result = new Uint8Array(b);\n result.set(cipherKey);\n let r = 1;\n let t1, t2, t3, t4;\n\n for (let j = 32, i = 1; j < b; ++i) {\n if (j % 32 === 16) {\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n } else if (j % 32 === 0) {\n t1 = result[j - 3];\n t2 = result[j - 2];\n t3 = result[j - 1];\n t4 = result[j - 4];\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ r;\n\n if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xff;\n }\n }\n\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n\n return result;\n }\n\n}\n\nexports.AES256Cipher = AES256Cipher;\n\nvar PDF17 = function PDF17Closure() {\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function PDF17() {}\n\n PDF17.prototype = {\n checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF17_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF17_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF17;\n}();\n\nexports.PDF17 = PDF17;\n\nvar PDF20 = function PDF20Closure() {\n function concatArrays(array1, array2) {\n var t = new Uint8Array(array1.length + array2.length);\n t.set(array1, 0);\n t.set(array2, array1.length);\n return t;\n }\n\n function calculatePDF20Hash(password, input, userBytes) {\n var k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n var e = [0];\n var i = 0;\n\n while (i < 64 || e[e.length - 1] > i - 32) {\n var arrayLength = password.length + k.length + userBytes.length;\n var k1 = new Uint8Array(arrayLength * 64);\n var array = concatArrays(password, k);\n array = concatArrays(array, userBytes);\n\n for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) {\n k1.set(array, pos);\n }\n\n var cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n var remainder = 0;\n\n for (var z = 0; z < 16; z++) {\n remainder *= 256 % 3;\n remainder %= 3;\n remainder += (e[z] >>> 0) % 3;\n remainder %= 3;\n }\n\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n\n i++;\n }\n\n return k.subarray(0, 32);\n }\n\n function PDF20() {}\n\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n PDF20.prototype = {\n hash: function PDF20_hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n },\n checkOwnerPassword: function PDF20_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculatePDF20Hash(password, hashData, userBytes);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF20_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculatePDF20Hash(password, hashData, []);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculatePDF20Hash(password, hashData, userBytes);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF20_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculatePDF20Hash(password, hashData, []);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF20;\n}();\n\nexports.PDF20 = PDF20;\n\nvar CipherTransform = function CipherTransformClosure() {\n function CipherTransform(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n\n CipherTransform.prototype = {\n createStream: function CipherTransform_createStream(stream, length) {\n var cipher = new this.StreamCipherConstructor();\n return new _stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n });\n },\n decryptString: function CipherTransform_decryptString(s) {\n var cipher = new this.StringCipherConstructor();\n var data = (0, _util.stringToBytes)(s);\n data = cipher.decryptBlock(data, true);\n return (0, _util.bytesToString)(data);\n }\n };\n return CipherTransform;\n}();\n\nvar CipherTransformFactory = function CipherTransformFactoryClosure() {\n var defaultPasswordBytes = new Uint8Array([0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);\n\n function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n if (password) {\n var passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n\n var pdfAlgorithm;\n\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\n }\n\n if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n }\n\n return null;\n }\n\n function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n var hashDataSize = 40 + ownerPassword.length + fileId.length;\n var hashData = new Uint8Array(hashDataSize),\n i = 0,\n j,\n n;\n\n if (password) {\n n = Math.min(32, password.length);\n\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n\n j = 0;\n\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n\n hashData[i++] = flags & 0xff;\n hashData[i++] = flags >> 8 & 0xff;\n hashData[i++] = flags >> 16 & 0xff;\n hashData[i++] = flags >>> 24 & 0xff;\n\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n }\n\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n\n var encryptionKey = hash.subarray(0, keyLengthInBytes);\n var cipher, checkData;\n\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = defaultPasswordBytes[i];\n }\n\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n var derivedKey = new Uint8Array(n),\n k;\n\n for (j = 1; j <= 19; ++j) {\n for (k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(defaultPasswordBytes);\n\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n\n return encryptionKey;\n }\n\n function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n var hashData = new Uint8Array(32),\n i = 0,\n j,\n n;\n n = Math.min(32, password.length);\n\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n\n j = 0;\n\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n\n var cipher, userPassword;\n\n if (revision >= 3) {\n userPassword = ownerPassword;\n var derivedKey = new Uint8Array(keyLengthInBytes),\n k;\n\n for (j = 19; j >= 0; j--) {\n for (k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n\n return userPassword;\n }\n\n var identityName = _primitives.Name.get(\"Identity\");\n\n function CipherTransformFactory(dict, fileId, password) {\n var filter = dict.get(\"Filter\");\n\n if (!(0, _primitives.isName)(filter, \"Standard\")) {\n throw new _util.FormatError(\"unknown encryption method\");\n }\n\n this.dict = dict;\n var algorithm = dict.get(\"V\");\n\n if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n throw new _util.FormatError(\"unsupported encryption algorithm\");\n }\n\n this.algorithm = algorithm;\n var keyLength = dict.get(\"Length\");\n\n if (!keyLength) {\n if (algorithm <= 3) {\n keyLength = 40;\n } else {\n var cfDict = dict.get(\"CF\");\n var streamCryptoName = dict.get(\"StmF\");\n\n if ((0, _primitives.isDict)(cfDict) && (0, _primitives.isName)(streamCryptoName)) {\n cfDict.suppressEncryption = true;\n var handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = handlerDict && handlerDict.get(\"Length\") || 128;\n\n if (keyLength < 40) {\n keyLength <<= 3;\n }\n }\n }\n }\n\n if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n throw new _util.FormatError(\"invalid key length\");\n }\n\n var ownerPassword = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(0, 32);\n var userPassword = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 32);\n var flags = dict.get(\"P\");\n var revision = dict.get(\"R\");\n var encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get(\"EncryptMetadata\") !== false;\n this.encryptMetadata = encryptMetadata;\n var fileIdBytes = (0, _util.stringToBytes)(fileId);\n var passwordBytes;\n\n if (password) {\n if (revision === 6) {\n try {\n password = (0, _util.utf8StringToString)(password);\n } catch (ex) {\n (0, _util.warn)(\"CipherTransformFactory: \" + \"Unable to convert UTF8 encoded password.\");\n }\n }\n\n passwordBytes = (0, _util.stringToBytes)(password);\n }\n\n var encryptionKey;\n\n if (algorithm !== 5) {\n encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n } else {\n var ownerValidationSalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(32, 40);\n var ownerKeySalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(40, 48);\n var uBytes = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 48);\n var userValidationSalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(32, 40);\n var userKeySalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(40, 48);\n var ownerEncryption = (0, _util.stringToBytes)(dict.get(\"OE\"));\n var userEncryption = (0, _util.stringToBytes)(dict.get(\"UE\"));\n var perms = (0, _util.stringToBytes)(dict.get(\"Perms\"));\n encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n }\n\n if (!encryptionKey && !password) {\n throw new _util.PasswordException(\"No password given\", _util.PasswordResponses.NEED_PASSWORD);\n } else if (!encryptionKey && password) {\n var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n }\n\n if (!encryptionKey) {\n throw new _util.PasswordException(\"Incorrect Password\", _util.PasswordResponses.INCORRECT_PASSWORD);\n }\n\n this.encryptionKey = encryptionKey;\n\n if (algorithm >= 4) {\n var cf = dict.get(\"CF\");\n\n if ((0, _primitives.isDict)(cf)) {\n cf.suppressEncryption = true;\n }\n\n this.cf = cf;\n this.stmf = dict.get(\"StmF\") || identityName;\n this.strf = dict.get(\"StrF\") || identityName;\n this.eff = dict.get(\"EFF\") || this.stmf;\n }\n }\n\n function buildObjectKey(num, gen, encryptionKey, isAes) {\n var key = new Uint8Array(encryptionKey.length + 9),\n i,\n n;\n\n for (i = 0, n = encryptionKey.length; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n\n key[i++] = num & 0xff;\n key[i++] = num >> 8 & 0xff;\n key[i++] = num >> 16 & 0xff;\n key[i++] = gen & 0xff;\n key[i++] = gen >> 8 & 0xff;\n\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6c;\n key[i++] = 0x54;\n }\n\n var hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n\n function buildCipherConstructor(cf, name, num, gen, key) {\n if (!(0, _primitives.isName)(name)) {\n throw new _util.FormatError(\"Invalid crypt filter name.\");\n }\n\n var cryptFilter = cf.get(name.name);\n var cfm;\n\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get(\"CFM\");\n }\n\n if (!cfm || cfm.name === \"None\") {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n\n if (cfm.name === \"V2\") {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n };\n }\n\n if (cfm.name === \"AESV2\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(buildObjectKey(num, gen, key, true));\n };\n }\n\n if (cfm.name === \"AESV3\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n\n throw new _util.FormatError(\"Unknown crypto method\");\n }\n\n CipherTransformFactory.prototype = {\n createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey));\n }\n\n var key = buildObjectKey(num, gen, this.encryptionKey, false);\n\n var cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n };\n return CipherTransformFactory;\n}();\n\nexports.CipherTransformFactory = CipherTransformFactory;\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.ColorSpace = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n const COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1 * COMPONENTS;\n\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n\n for (let j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n}\n\nclass ColorSpace {\n constructor(name, numComps) {\n if (this.constructor === ColorSpace) {\n (0, _util.unreachable)(\"Cannot initialize ColorSpace.\");\n }\n\n this.name = name;\n this.numComps = numComps;\n }\n\n getRgb(src, srcOffset) {\n const rgb = new Uint8ClampedArray(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n (0, _util.unreachable)(\"Should not call ColorSpace.getRgbItem\");\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n (0, _util.unreachable)(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n getOutputLength(inputLength, alpha01) {\n (0, _util.unreachable)(\"Should not call ColorSpace.getOutputLength\");\n }\n\n isPassthrough(bits) {\n return false;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n\n fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n const count = originalWidth * originalHeight;\n let rgbBuf = null;\n const numComponentColors = 1 << bpc;\n const needsResizing = originalHeight !== height || originalWidth !== width;\n\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (this.numComps === 1 && count > numComponentColors && this.name !== \"DeviceGray\" && this.name !== \"DeviceRGB\") {\n const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n\n if (!needsResizing) {\n let destPos = 0;\n\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n let rgbPos = 0;\n\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else {\n if (!needsResizing) {\n this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n }\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);\n } else {\n let destPos = 0,\n rgbPos = 0;\n\n for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n }\n\n get usesZeroToOneRange() {\n return (0, _util.shadow)(this, \"usesZeroToOneRange\", true);\n }\n\n static parse(cs, xref, res, pdfFunctionFactory) {\n const IR = this.parseToIR(cs, xref, res, pdfFunctionFactory);\n return this.fromIR(IR);\n }\n\n static fromIR(IR) {\n const name = Array.isArray(IR) ? IR[0] : IR;\n let whitePoint, blackPoint, gamma;\n\n switch (name) {\n case \"DeviceGrayCS\":\n return this.singletons.gray;\n\n case \"DeviceRgbCS\":\n return this.singletons.rgb;\n\n case \"DeviceCmykCS\":\n return this.singletons.cmyk;\n\n case \"CalGrayCS\":\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n\n case \"CalRGBCS\":\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n const matrix = IR[4];\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n\n case \"PatternCS\":\n let basePatternCS = IR[1];\n\n if (basePatternCS) {\n basePatternCS = this.fromIR(basePatternCS);\n }\n\n return new PatternCS(basePatternCS);\n\n case \"IndexedCS\":\n const baseIndexedCS = IR[1];\n const hiVal = IR[2];\n const lookup = IR[3];\n return new IndexedCS(this.fromIR(baseIndexedCS), hiVal, lookup);\n\n case \"AlternateCS\":\n const numComps = IR[1];\n const alt = IR[2];\n const tintFn = IR[3];\n return new AlternateCS(numComps, this.fromIR(alt), tintFn);\n\n case \"LabCS\":\n whitePoint = IR[1];\n blackPoint = IR[2];\n const range = IR[3];\n return new LabCS(whitePoint, blackPoint, range);\n\n default:\n throw new _util.FormatError(`Unknown colorspace name: ${name}`);\n }\n }\n\n static parseToIR(cs, xref, res = null, pdfFunctionFactory) {\n cs = xref.fetchIfRef(cs);\n\n if ((0, _primitives.isName)(cs)) {\n switch (cs.name) {\n case \"DeviceGray\":\n case \"G\":\n return \"DeviceGrayCS\";\n\n case \"DeviceRGB\":\n case \"RGB\":\n return \"DeviceRgbCS\";\n\n case \"DeviceCMYK\":\n case \"CMYK\":\n return \"DeviceCmykCS\";\n\n case \"Pattern\":\n return [\"PatternCS\", null];\n\n default:\n if ((0, _primitives.isDict)(res)) {\n const colorSpaces = res.get(\"ColorSpace\");\n\n if ((0, _primitives.isDict)(colorSpaces)) {\n const resCS = colorSpaces.get(cs.name);\n\n if (resCS) {\n if ((0, _primitives.isName)(resCS)) {\n return this.parseToIR(resCS, xref, res, pdfFunctionFactory);\n }\n\n cs = resCS;\n break;\n }\n }\n }\n\n throw new _util.FormatError(`unrecognized colorspace ${cs.name}`);\n }\n }\n\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let numComps, params, alt, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"DeviceGray\":\n case \"G\":\n return \"DeviceGrayCS\";\n\n case \"DeviceRGB\":\n case \"RGB\":\n return \"DeviceRgbCS\";\n\n case \"DeviceCMYK\":\n case \"CMYK\":\n return \"DeviceCmykCS\";\n\n case \"CalGray\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.get(\"Gamma\");\n return [\"CalGrayCS\", whitePoint, blackPoint, gamma];\n\n case \"CalRGB\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.getArray(\"Gamma\");\n const matrix = params.getArray(\"Matrix\");\n return [\"CalRGBCS\", whitePoint, blackPoint, gamma, matrix];\n\n case \"ICCBased\":\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n alt = dict.get(\"Alternate\");\n\n if (alt) {\n const altIR = this.parseToIR(alt, xref, res, pdfFunctionFactory);\n const altCS = this.fromIR(altIR, pdfFunctionFactory);\n\n if (altCS.numComps === numComps) {\n return altIR;\n }\n\n (0, _util.warn)(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n\n if (numComps === 1) {\n return \"DeviceGrayCS\";\n } else if (numComps === 3) {\n return \"DeviceRgbCS\";\n } else if (numComps === 4) {\n return \"DeviceCmykCS\";\n }\n\n break;\n\n case \"Pattern\":\n let basePatternCS = cs[1] || null;\n\n if (basePatternCS) {\n basePatternCS = this.parseToIR(basePatternCS, xref, res, pdfFunctionFactory);\n }\n\n return [\"PatternCS\", basePatternCS];\n\n case \"Indexed\":\n case \"I\":\n const baseIndexedCS = this.parseToIR(cs[1], xref, res, pdfFunctionFactory);\n const hiVal = xref.fetchIfRef(cs[2]) + 1;\n let lookup = xref.fetchIfRef(cs[3]);\n\n if ((0, _primitives.isStream)(lookup)) {\n lookup = lookup.getBytes();\n }\n\n return [\"IndexedCS\", baseIndexedCS, hiVal, lookup];\n\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n alt = this.parseToIR(cs[2], xref, res, pdfFunctionFactory);\n const tintFn = pdfFunctionFactory.create(xref.fetchIfRef(cs[3]));\n return [\"AlternateCS\", numComps, alt, tintFn];\n\n case \"Lab\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n const range = params.getArray(\"Range\");\n return [\"LabCS\", whitePoint, blackPoint, range];\n\n default:\n throw new _util.FormatError(`unimplemented color space object \"${mode}\"`);\n }\n }\n\n throw new _util.FormatError(`unrecognized color space object: \"${cs}\"`);\n }\n\n static isDefaultDecode(decode, numComps) {\n if (!Array.isArray(decode)) {\n return true;\n }\n\n if (numComps * 2 !== decode.length) {\n (0, _util.warn)(\"The decode map is not the correct length\");\n return true;\n }\n\n for (let i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n\n return true;\n }\n\n static get singletons() {\n return (0, _util.shadow)(this, \"singletons\", {\n get gray() {\n return (0, _util.shadow)(this, \"gray\", new DeviceGrayCS());\n },\n\n get rgb() {\n return (0, _util.shadow)(this, \"rgb\", new DeviceRgbCS());\n },\n\n get cmyk() {\n return (0, _util.shadow)(this, \"cmyk\", new DeviceCmykCS());\n }\n\n });\n }\n\n}\n\nexports.ColorSpace = ColorSpace;\n\nclass AlternateCS extends ColorSpace {\n constructor(numComps, base, tintFn) {\n super(\"Alternate\", numComps);\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n const tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const tintFn = this.tintFn;\n const base = this.base;\n const scale = 1 / ((1 << bits) - 1);\n const baseNumComps = base.numComps;\n const usesZeroToOneRange = base.usesZeroToOneRange;\n const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\n const scaled = new Float32Array(numComps);\n const tinted = new Float32Array(baseNumComps);\n let i, j;\n\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n\n tintFn(scaled, 0, tinted, 0);\n\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n }\n\n}\n\nclass PatternCS extends ColorSpace {\n constructor(baseCS) {\n super(\"Pattern\", null);\n this.base = baseCS;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n (0, _util.unreachable)(\"Should not call PatternCS.isDefaultDecode\");\n }\n\n}\n\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n const baseNumComps = base.numComps;\n const length = baseNumComps * highVal;\n\n if ((0, _primitives.isStream)(lookup)) {\n this.lookup = new Uint8Array(length);\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if ((0, _util.isString)(lookup)) {\n this.lookup = new Uint8Array(length);\n\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i);\n }\n } else if (lookup instanceof Uint8Array) {\n this.lookup = lookup;\n } else {\n throw new _util.FormatError(`Unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n const numComps = this.base.numComps;\n const start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const base = this.base;\n const numComps = base.numComps;\n const outputDelta = base.getOutputLength(numComps, alpha01);\n const lookup = this.lookup;\n\n for (let i = 0; i < count; ++i) {\n const lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n\n isDefaultDecode(decodeMap, bpc) {\n if (!Array.isArray(decodeMap)) {\n return true;\n }\n\n if (decodeMap.length !== 2) {\n (0, _util.warn)(\"Decode map length is not correct\");\n return true;\n }\n\n if (!Number.isInteger(bpc) || bpc < 1) {\n (0, _util.warn)(\"Bits per component is not correct\");\n return true;\n }\n\n return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n }\n\n}\n\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n const c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n\n for (let i = 0; i < count; ++i) {\n const c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n\n}\n\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n dest[destOffset] = src[srcOffset] * 255;\n dest[destOffset + 1] = src[srcOffset + 1] * 255;\n dest[destOffset + 2] = src[srcOffset + 2] * 255;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n\n for (let i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n\n}\n\nconst DeviceCmykCS = function DeviceCmykCSClosure() {\n function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n const c = src[srcOffset] * srcScale;\n const m = src[srcOffset + 1] * srcScale;\n const y = src[srcOffset + 2] * srcScale;\n const k = src[srcOffset + 3] * srcScale;\n dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747);\n dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578);\n dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n class DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; i++) {\n convertToRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength / 4 * (3 + alpha01) | 0;\n }\n\n }\n\n return DeviceCmykCS;\n}();\n\nconst CalGrayCS = function CalGrayCSClosure() {\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n const A = src[srcOffset] * scale;\n const AG = A ** cs.G;\n const L = cs.YW * AG;\n const val = Math.max(295.8 * L ** 0.333333333333333333 - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n class CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new _util.FormatError(\"WhitePoint missing - required for color space CalGray\");\n }\n\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n this.G = gamma;\n\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.info)(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n (0, _util.warn)(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`);\n }\n\n if (this.G < 1) {\n (0, _util.info)(`Invalid Gamma: ${this.G} for ${this.name}, ` + \"falling back to default.\");\n this.G = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n\n }\n\n return CalGrayCS;\n}();\n\nconst CalRGBCS = function CalRGBCSClosure() {\n const BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n const tempNormalizeMatrix = new Float32Array(3);\n const tempConvertMatrix1 = new Float32Array(3);\n const tempConvertMatrix2 = new Float32Array(3);\n const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n function matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n\n function convertToFlat(sourceWhitePoint, LMS, result) {\n result[0] = LMS[0] * 1 / sourceWhitePoint[0];\n result[1] = LMS[1] * 1 / sourceWhitePoint[1];\n result[2] = LMS[2] * 1 / sourceWhitePoint[2];\n }\n\n function convertToD65(sourceWhitePoint, LMS, result) {\n const D65X = 0.95047;\n const D65Y = 1;\n const D65Z = 1.08883;\n result[0] = LMS[0] * D65X / sourceWhitePoint[0];\n result[1] = LMS[1] * D65Y / sourceWhitePoint[1];\n result[2] = LMS[2] * D65Z / sourceWhitePoint[2];\n }\n\n function sRGBTransferFunction(color) {\n if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n\n return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n }\n\n function adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n\n function decodeL(L) {\n if (L < 0) {\n return -decodeL(-L);\n }\n\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n\n return L * DECODE_L_CONSTANT;\n }\n\n function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n const zeroDecodeL = decodeL(0);\n const X_DST = zeroDecodeL;\n const X_SRC = decodeL(sourceBlackPoint[0]);\n const Y_DST = zeroDecodeL;\n const Y_SRC = decodeL(sourceBlackPoint[1]);\n const Z_DST = zeroDecodeL;\n const Z_SRC = decodeL(sourceBlackPoint[2]);\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n\n function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n const LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n }\n\n function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n const LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n const A = adjustToRange(0, 1, src[srcOffset] * scale);\n const B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n const C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n const AGR = A ** cs.GR;\n const BGG = B ** cs.GG;\n const CGB = C ** cs.GB;\n const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n const XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = tempConvertMatrix2;\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n const XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n const XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n const SRGB = tempConvertMatrix1;\n matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n }\n\n class CalRGBCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new _util.FormatError(\"WhitePoint missing - required for color space CalRGB\");\n }\n\n blackPoint = blackPoint || new Float32Array(3);\n gamma = gamma || new Float32Array([1, 1, 1]);\n matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n const XW = whitePoint[0];\n const YW = whitePoint[1];\n const ZW = whitePoint[2];\n this.whitePoint = whitePoint;\n const XB = blackPoint[0];\n const YB = blackPoint[1];\n const ZB = blackPoint[2];\n this.blackPoint = blackPoint;\n this.GR = gamma[0];\n this.GG = gamma[1];\n this.GB = gamma[2];\n this.MXA = matrix[0];\n this.MYA = matrix[1];\n this.MZA = matrix[2];\n this.MXB = matrix[3];\n this.MYB = matrix[4];\n this.MZB = matrix[5];\n this.MXC = matrix[6];\n this.MYC = matrix[7];\n this.MZC = matrix[8];\n\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n (0, _util.info)(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + \"falling back to default.\");\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n (0, _util.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`);\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n }\n\n }\n\n return CalRGBCS;\n}();\n\nconst LabCS = function LabCSClosure() {\n function fn_g(x) {\n let result;\n\n if (x >= 6 / 29) {\n result = x * x * x;\n } else {\n result = 108 / 841 * (x - 4 / 29);\n }\n\n return result;\n }\n\n function decode(value, high1, low2, high2) {\n return low2 + value * (high2 - low2) / high1;\n }\n\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n\n if (maxVal !== false) {\n Ls = decode(Ls, maxVal, 0, 100);\n as = decode(as, maxVal, cs.amin, cs.amax);\n bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n }\n\n if (as > cs.amax) {\n as = cs.amax;\n } else if (as < cs.amin) {\n as = cs.amin;\n }\n\n if (bs > cs.bmax) {\n bs = cs.bmax;\n } else if (bs < cs.bmin) {\n bs = cs.bmin;\n }\n\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\n const X = cs.XW * fn_g(L);\n const Y = cs.YW * fn_g(M);\n const Z = cs.ZW * fn_g(N);\n let r, g, b;\n\n if (cs.ZW < 1) {\n r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n } else {\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n }\n\n dest[destOffset] = Math.sqrt(r) * 255;\n dest[destOffset + 1] = Math.sqrt(g) * 255;\n dest[destOffset + 2] = Math.sqrt(b) * 255;\n }\n\n class LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new _util.FormatError(\"WhitePoint missing - required for color space Lab\");\n }\n\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.amin = range[0];\n this.amax = range[1];\n this.bmin = range[2];\n this.bmax = range[3];\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError(\"Invalid WhitePoint components, no fallback available\");\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.info)(\"Invalid BlackPoint, falling back to default\");\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.amin > this.amax || this.bmin > this.bmax) {\n (0, _util.info)(\"Invalid Range, falling back to defaults\");\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n const maxVal = (1 << bits) - 1;\n\n for (let i = 0; i < count; i++) {\n convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n return true;\n }\n\n get usesZeroToOneRange() {\n return (0, _util.shadow)(this, \"usesZeroToOneRange\", false);\n }\n\n }\n\n return LabCS;\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.GlobalImageCache = exports.LocalImageCache = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nclass LocalImageCache {\n constructor() {\n this._nameRefMap = new Map();\n this._imageMap = new Map();\n this._imageCache = new _primitives.RefSetCache();\n }\n\n getByName(name) {\n const ref = this._nameRefMap.get(name);\n\n if (ref) {\n return this.getByRef(ref);\n }\n\n return this._imageMap.get(name) || null;\n }\n\n getByRef(ref) {\n return this._imageCache.get(ref) || null;\n }\n\n set(name, ref = null, data) {\n if (!name) {\n throw new Error('LocalImageCache.set - expected \"name\" argument.');\n }\n\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n\n this._nameRefMap.set(name, ref);\n\n this._imageCache.put(ref, data);\n\n return;\n }\n\n if (this._imageMap.has(name)) {\n return;\n }\n\n this._imageMap.set(name, data);\n }\n\n}\n\nexports.LocalImageCache = LocalImageCache;\n\nclass GlobalImageCache {\n static get NUM_PAGES_THRESHOLD() {\n return (0, _util.shadow)(this, \"NUM_PAGES_THRESHOLD\", 2);\n }\n\n static get MAX_IMAGES_TO_CACHE() {\n return (0, _util.shadow)(this, \"MAX_IMAGES_TO_CACHE\", 10);\n }\n\n constructor() {\n this._refCache = new _primitives.RefSetCache();\n this._imageCache = new _primitives.RefSetCache();\n }\n\n shouldCache(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n\n const numPages = pageIndexSet ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1) : 1;\n\n if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return false;\n }\n\n if (!this._imageCache.has(ref) && this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) {\n return false;\n }\n\n return true;\n }\n\n addPageIndex(ref, pageIndex) {\n let pageIndexSet = this._refCache.get(ref);\n\n if (!pageIndexSet) {\n pageIndexSet = new Set();\n\n this._refCache.put(ref, pageIndexSet);\n }\n\n pageIndexSet.add(pageIndex);\n }\n\n getData(ref, pageIndex) {\n if (!this._refCache.has(ref)) {\n return null;\n }\n\n const pageIndexSet = this._refCache.get(ref);\n\n if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return null;\n }\n\n if (!this._imageCache.has(ref)) {\n return null;\n }\n\n pageIndexSet.add(pageIndex);\n return this._imageCache.get(ref);\n }\n\n setData(ref, data) {\n if (!this._refCache.has(ref)) {\n throw new Error('GlobalImageCache.setData - expected \"addPageIndex\" to have been called.');\n }\n\n if (this._imageCache.has(ref)) {\n return;\n }\n\n if (this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) {\n (0, _util.info)(\"GlobalImageCache.setData - ignoring image above MAX_IMAGES_TO_CACHE.\");\n return;\n }\n\n this._imageCache.put(ref, data);\n }\n\n clear(onlyData = false) {\n if (!onlyData) {\n this._refCache.clear();\n }\n\n this._imageCache.clear();\n }\n\n}\n\nexports.GlobalImageCache = GlobalImageCache;\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.getQuadPoints = getQuadPoints;\nexports.MarkupAnnotation = exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _obj = __w_pdfjs_require__(10);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _stream = __w_pdfjs_require__(12);\n\nclass AnnotationFactory {\n static create(xref, ref, pdfManager, idFactory) {\n return pdfManager.ensure(this, \"_create\", [xref, ref, pdfManager, idFactory]);\n }\n\n static _create(xref, ref, pdfManager, idFactory) {\n const dict = xref.fetchIfRef(ref);\n\n if (!(0, _primitives.isDict)(dict)) {\n return undefined;\n }\n\n const id = (0, _primitives.isRef)(ref) ? ref.toString() : `annot_${idFactory.createObjId()}`;\n let subtype = dict.get(\"Subtype\");\n subtype = (0, _primitives.isName)(subtype) ? subtype.name : null;\n const parameters = {\n xref,\n dict,\n subtype,\n id,\n pdfManager\n };\n\n switch (subtype) {\n case \"Link\":\n return new LinkAnnotation(parameters);\n\n case \"Text\":\n return new TextAnnotation(parameters);\n\n case \"Widget\":\n let fieldType = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"FT\"\n });\n fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotation(parameters);\n\n case \"Btn\":\n return new ButtonWidgetAnnotation(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotation(parameters);\n }\n\n (0, _util.warn)('Unimplemented widget field type \"' + fieldType + '\", ' + \"falling back to base field type.\");\n return new WidgetAnnotation(parameters);\n\n case \"Popup\":\n return new PopupAnnotation(parameters);\n\n case \"FreeText\":\n return new FreeTextAnnotation(parameters);\n\n case \"Line\":\n return new LineAnnotation(parameters);\n\n case \"Square\":\n return new SquareAnnotation(parameters);\n\n case \"Circle\":\n return new CircleAnnotation(parameters);\n\n case \"PolyLine\":\n return new PolylineAnnotation(parameters);\n\n case \"Polygon\":\n return new PolygonAnnotation(parameters);\n\n case \"Caret\":\n return new CaretAnnotation(parameters);\n\n case \"Ink\":\n return new InkAnnotation(parameters);\n\n case \"Highlight\":\n return new HighlightAnnotation(parameters);\n\n case \"Underline\":\n return new UnderlineAnnotation(parameters);\n\n case \"Squiggly\":\n return new SquigglyAnnotation(parameters);\n\n case \"StrikeOut\":\n return new StrikeOutAnnotation(parameters);\n\n case \"Stamp\":\n return new StampAnnotation(parameters);\n\n case \"FileAttachment\":\n return new FileAttachmentAnnotation(parameters);\n\n default:\n if (!subtype) {\n (0, _util.warn)(\"Annotation is missing the required /Subtype.\");\n } else {\n (0, _util.warn)('Unimplemented annotation type \"' + subtype + '\", ' + \"falling back to base annotation.\");\n }\n\n return new Annotation(parameters);\n }\n }\n\n}\n\nexports.AnnotationFactory = AnnotationFactory;\n\nfunction getQuadPoints(dict, rect) {\n if (!dict.has(\"QuadPoints\")) {\n return null;\n }\n\n const quadPoints = dict.getArray(\"QuadPoints\");\n\n if (!Array.isArray(quadPoints) || quadPoints.length % 8 > 0) {\n return null;\n }\n\n const quadPointsLists = [];\n\n for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n quadPointsLists.push([]);\n\n for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n const x = quadPoints[j];\n const y = quadPoints[j + 1];\n\n if (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3]) {\n return null;\n }\n\n quadPointsLists[i].push({\n x,\n y\n });\n }\n }\n\n return quadPointsLists;\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n const [minX, minY, maxX, maxY] = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n\n if (minX === maxX || minY === maxY) {\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n\n const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n}\n\nclass Annotation {\n constructor(params) {\n const dict = params.dict;\n this.setContents(dict.get(\"Contents\"));\n this.setModificationDate(dict.get(\"M\"));\n this.setFlags(dict.get(\"F\"));\n this.setRectangle(dict.getArray(\"Rect\"));\n this.setColor(dict.getArray(\"C\"));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.data = {\n annotationFlags: this.flags,\n borderStyle: this.borderStyle,\n color: this.color,\n contents: this.contents,\n hasAppearance: !!this.appearance,\n id: params.id,\n modificationDate: this.modificationDate,\n rect: this.rectangle,\n subtype: params.subtype\n };\n }\n\n _hasFlag(flags, flag) {\n return !!(flags & flag);\n }\n\n _isViewable(flags) {\n return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n }\n\n _isPrintable(flags) {\n return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN);\n }\n\n get viewable() {\n if (this.flags === 0) {\n return true;\n }\n\n return this._isViewable(this.flags);\n }\n\n get printable() {\n if (this.flags === 0) {\n return false;\n }\n\n return this._isPrintable(this.flags);\n }\n\n setContents(contents) {\n this.contents = (0, _util.stringToPDFString)(contents || \"\");\n }\n\n setModificationDate(modificationDate) {\n this.modificationDate = (0, _util.isString)(modificationDate) ? modificationDate : null;\n }\n\n setFlags(flags) {\n this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n }\n\n hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n }\n\n setRectangle(rectangle) {\n if (Array.isArray(rectangle) && rectangle.length === 4) {\n this.rectangle = _util.Util.normalizeRect(rectangle);\n } else {\n this.rectangle = [0, 0, 0, 0];\n }\n }\n\n setColor(color) {\n const rgbColor = new Uint8ClampedArray(3);\n\n if (!Array.isArray(color)) {\n this.color = rgbColor;\n return;\n }\n\n switch (color.length) {\n case 0:\n this.color = null;\n break;\n\n case 1:\n _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n\n this.color = rgbColor;\n break;\n\n case 3:\n _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n\n this.color = rgbColor;\n break;\n\n case 4:\n _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n\n this.color = rgbColor;\n break;\n\n default:\n this.color = rgbColor;\n break;\n }\n }\n\n setBorderStyle(borderStyle) {\n this.borderStyle = new AnnotationBorderStyle();\n\n if (!(0, _primitives.isDict)(borderStyle)) {\n return;\n }\n\n if (borderStyle.has(\"BS\")) {\n const dict = borderStyle.get(\"BS\");\n const dictType = dict.get(\"Type\");\n\n if (!dictType || (0, _primitives.isName)(dictType, \"Border\")) {\n this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n this.borderStyle.setStyle(dict.get(\"S\"));\n this.borderStyle.setDashArray(dict.getArray(\"D\"));\n }\n } else if (borderStyle.has(\"Border\")) {\n const array = borderStyle.getArray(\"Border\");\n\n if (Array.isArray(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2], this.rectangle);\n\n if (array.length === 4) {\n this.borderStyle.setDashArray(array[3]);\n }\n }\n } else {\n this.borderStyle.setWidth(0);\n }\n }\n\n setAppearance(dict) {\n this.appearance = null;\n const appearanceStates = dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n\n const normalAppearanceState = appearanceStates.get(\"N\");\n\n if ((0, _primitives.isStream)(normalAppearanceState)) {\n this.appearance = normalAppearanceState;\n return;\n }\n\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n\n const as = dict.get(\"AS\");\n\n if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) {\n return;\n }\n\n this.appearance = normalAppearanceState.get(as.name);\n }\n\n loadResources(keys) {\n return this.appearance.dict.getAsync(\"Resources\").then(resources => {\n if (!resources) {\n return undefined;\n }\n\n const objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n }\n\n getOperatorList(evaluator, task, renderForms) {\n if (!this.appearance) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n const data = this.data;\n const appearanceDict = this.appearance.dict;\n const resourcesPromise = this.loadResources([\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"]);\n const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n const transform = getTransformMatrix(data.rect, bbox, matrix);\n return resourcesPromise.then(resources => {\n const opList = new _operator_list.OperatorList();\n opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]);\n return evaluator.getOperatorList({\n stream: this.appearance,\n task,\n resources,\n operatorList: opList\n }).then(() => {\n opList.addOp(_util.OPS.endAnnotation, []);\n this.appearance.reset();\n return opList;\n });\n });\n }\n\n}\n\nexports.Annotation = Annotation;\n\nclass AnnotationBorderStyle {\n constructor() {\n this.width = 1;\n this.style = _util.AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n\n setWidth(width, rect = [0, 0, 0, 0]) {\n if ((0, _primitives.isName)(width)) {\n this.width = 0;\n return;\n }\n\n if (Number.isInteger(width)) {\n if (width > 0) {\n const maxWidth = (rect[2] - rect[0]) / 2;\n const maxHeight = (rect[3] - rect[1]) / 2;\n\n if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) {\n (0, _util.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n width = 1;\n }\n }\n\n this.width = width;\n }\n }\n\n setStyle(style) {\n if (!(0, _primitives.isName)(style)) {\n return;\n }\n\n switch (style.name) {\n case \"S\":\n this.style = _util.AnnotationBorderStyleType.SOLID;\n break;\n\n case \"D\":\n this.style = _util.AnnotationBorderStyleType.DASHED;\n break;\n\n case \"B\":\n this.style = _util.AnnotationBorderStyleType.BEVELED;\n break;\n\n case \"I\":\n this.style = _util.AnnotationBorderStyleType.INSET;\n break;\n\n case \"U\":\n this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n break;\n\n default:\n break;\n }\n }\n\n setDashArray(dashArray) {\n if (Array.isArray(dashArray) && dashArray.length > 0) {\n let isValid = true;\n let allZeros = true;\n\n for (const element of dashArray) {\n const validNumber = +element >= 0;\n\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n } else {\n this.width = 0;\n }\n } else if (dashArray) {\n this.width = 0;\n }\n }\n\n setHorizontalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.horizontalCornerRadius = radius;\n }\n }\n\n setVerticalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.verticalCornerRadius = radius;\n }\n }\n\n}\n\nexports.AnnotationBorderStyle = AnnotationBorderStyle;\n\nclass MarkupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n const dict = parameters.dict;\n\n if (dict.has(\"IRT\")) {\n const rawIRT = dict.getRaw(\"IRT\");\n this.data.inReplyTo = (0, _primitives.isRef)(rawIRT) ? rawIRT.toString() : null;\n const rt = dict.get(\"RT\");\n this.data.replyType = (0, _primitives.isName)(rt) ? rt.name : _util.AnnotationReplyType.REPLY;\n }\n\n if (this.data.replyType === _util.AnnotationReplyType.GROUP) {\n const parent = dict.get(\"IRT\");\n this.data.title = (0, _util.stringToPDFString)(parent.get(\"T\") || \"\");\n this.setContents(parent.get(\"Contents\"));\n this.data.contents = this.contents;\n\n if (!parent.has(\"CreationDate\")) {\n this.data.creationDate = null;\n } else {\n this.setCreationDate(parent.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n }\n\n if (!parent.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parent.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n this.data.hasPopup = parent.has(\"Popup\");\n\n if (!parent.has(\"C\")) {\n this.data.color = null;\n } else {\n this.setColor(parent.getArray(\"C\"));\n this.data.color = this.color;\n }\n } else {\n this.data.title = (0, _util.stringToPDFString)(dict.get(\"T\") || \"\");\n this.setCreationDate(dict.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n this.data.hasPopup = dict.has(\"Popup\");\n\n if (!dict.has(\"C\")) {\n this.data.color = null;\n }\n }\n }\n\n setCreationDate(creationDate) {\n this.creationDate = (0, _util.isString)(creationDate) ? creationDate : null;\n }\n\n}\n\nexports.MarkupAnnotation = MarkupAnnotation;\n\nclass WidgetAnnotation extends Annotation {\n constructor(params) {\n super(params);\n const dict = params.dict;\n const data = this.data;\n data.annotationType = _util.AnnotationType.WIDGET;\n data.fieldName = this._constructFieldName(dict);\n data.fieldValue = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"V\",\n getArray: true\n });\n data.alternativeText = (0, _util.stringToPDFString)(dict.get(\"TU\") || \"\");\n data.defaultAppearance = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DA\"\n }) || \"\";\n const fieldType = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"FT\"\n });\n data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n this.fieldResources = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"DR\"\n }) || _primitives.Dict.empty;\n data.fieldFlags = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"Ff\"\n });\n\n if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n\n data.readOnly = this.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n\n if (data.fieldType === \"Sig\") {\n data.fieldValue = null;\n this.setFlags(_util.AnnotationFlag.HIDDEN);\n }\n }\n\n _constructFieldName(dict) {\n if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n (0, _util.warn)(\"Unknown field name, falling back to empty field name.\");\n return \"\";\n }\n\n if (!dict.has(\"Parent\")) {\n return (0, _util.stringToPDFString)(dict.get(\"T\"));\n }\n\n const fieldName = [];\n\n if (dict.has(\"T\")) {\n fieldName.unshift((0, _util.stringToPDFString)(dict.get(\"T\")));\n }\n\n let loopDict = dict;\n\n while (loopDict.has(\"Parent\")) {\n loopDict = loopDict.get(\"Parent\");\n\n if (!(0, _primitives.isDict)(loopDict)) {\n break;\n }\n\n if (loopDict.has(\"T\")) {\n fieldName.unshift((0, _util.stringToPDFString)(loopDict.get(\"T\")));\n }\n }\n\n return fieldName.join(\".\");\n }\n\n hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n\n getOperatorList(evaluator, task, renderForms) {\n if (renderForms) {\n return Promise.resolve(new _operator_list.OperatorList());\n }\n\n return super.getOperatorList(evaluator, task, renderForms);\n }\n\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n const dict = params.dict;\n this.data.fieldValue = (0, _util.stringToPDFString)(this.data.fieldValue || \"\");\n let alignment = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"Q\"\n });\n\n if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n\n this.data.textAlignment = alignment;\n let maximumLength = (0, _core_utils.getInheritableProperty)({\n dict,\n key: \"MaxLen\"\n });\n\n if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n\n this.data.maxLen = maximumLength;\n this.data.multiLine = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n this.data.comb = this.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== null;\n }\n\n getOperatorList(evaluator, task, renderForms) {\n if (renderForms || this.appearance) {\n return super.getOperatorList(evaluator, task, renderForms);\n }\n\n const operatorList = new _operator_list.OperatorList();\n\n if (!this.data.defaultAppearance) {\n return Promise.resolve(operatorList);\n }\n\n const stream = new _stream.Stream((0, _util.stringToBytes)(this.data.defaultAppearance));\n return evaluator.getOperatorList({\n stream,\n task,\n resources: this.fieldResources,\n operatorList\n }).then(function () {\n return operatorList;\n });\n }\n\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n this.data.checkBox = !this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n this.data.radioButton = this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n this.data.pushButton = this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n\n if (this.data.checkBox) {\n this._processCheckBox(params);\n } else if (this.data.radioButton) {\n this._processRadioButton(params);\n } else if (this.data.pushButton) {\n this._processPushButton(params);\n } else {\n (0, _util.warn)(\"Invalid field flags for button widget annotation\");\n }\n }\n\n _processCheckBox(params) {\n if ((0, _primitives.isName)(this.data.fieldValue)) {\n this.data.fieldValue = this.data.fieldValue.name;\n }\n\n const customAppearance = params.dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(customAppearance)) {\n return;\n }\n\n const exportValueOptionsDict = customAppearance.get(\"D\");\n\n if (!(0, _primitives.isDict)(exportValueOptionsDict)) {\n return;\n }\n\n const exportValues = exportValueOptionsDict.getKeys();\n const hasCorrectOptionCount = exportValues.length === 2;\n\n if (!hasCorrectOptionCount) {\n return;\n }\n\n this.data.exportValue = exportValues[0] === \"Off\" ? exportValues[1] : exportValues[0];\n }\n\n _processRadioButton(params) {\n this.data.fieldValue = this.data.buttonValue = null;\n const fieldParent = params.dict.get(\"Parent\");\n\n if ((0, _primitives.isDict)(fieldParent) && fieldParent.has(\"V\")) {\n const fieldParentValue = fieldParent.get(\"V\");\n\n if ((0, _primitives.isName)(fieldParentValue)) {\n this.data.fieldValue = fieldParentValue.name;\n }\n }\n\n const appearanceStates = params.dict.get(\"AP\");\n\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n\n const normalAppearanceState = appearanceStates.get(\"N\");\n\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n\n for (const key of normalAppearanceState.getKeys()) {\n if (key !== \"Off\") {\n this.data.buttonValue = key;\n break;\n }\n }\n }\n\n _processPushButton(params) {\n if (!params.dict.has(\"A\")) {\n (0, _util.warn)(\"Push buttons without action dictionaries are not supported\");\n return;\n }\n\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n this.data.options = [];\n const options = (0, _core_utils.getInheritableProperty)({\n dict: params.dict,\n key: \"Opt\"\n });\n\n if (Array.isArray(options)) {\n const xref = params.xref;\n\n for (let i = 0, ii = options.length; i < ii; i++) {\n const option = xref.fetchIfRef(options[i]);\n const isOptionArray = Array.isArray(option);\n this.data.options[i] = {\n exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,\n displayValue: (0, _util.stringToPDFString)(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n };\n }\n }\n\n if (!Array.isArray(this.data.fieldValue)) {\n this.data.fieldValue = [this.data.fieldValue];\n }\n\n this.data.combo = this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n }\n\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n const DEFAULT_ICON_SIZE = 22;\n super(parameters);\n const dict = parameters.dict;\n this.data.annotationType = _util.AnnotationType.TEXT;\n\n if (this.data.hasAppearance) {\n this.data.name = \"NoIcon\";\n } else {\n this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n }\n\n if (dict.has(\"State\")) {\n this.data.state = dict.get(\"State\") || null;\n this.data.stateModel = dict.get(\"StateModel\") || null;\n } else {\n this.data.state = null;\n this.data.stateModel = null;\n }\n }\n\n}\n\nclass LinkAnnotation extends Annotation {\n constructor(params) {\n super(params);\n this.data.annotationType = _util.AnnotationType.LINK;\n const quadPoints = getQuadPoints(params.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n\n}\n\nclass PopupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POPUP;\n let parentItem = parameters.dict.get(\"Parent\");\n\n if (!parentItem) {\n (0, _util.warn)(\"Popup annotation has a missing or invalid parent annotation.\");\n return;\n }\n\n const parentSubtype = parentItem.get(\"Subtype\");\n this.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;\n const rawParent = parameters.dict.getRaw(\"Parent\");\n this.data.parentId = (0, _primitives.isRef)(rawParent) ? rawParent.toString() : null;\n const rt = parentItem.get(\"RT\");\n\n if ((0, _primitives.isName)(rt, _util.AnnotationReplyType.GROUP)) {\n parentItem = parentItem.get(\"IRT\");\n }\n\n if (!parentItem.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parentItem.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n if (!parentItem.has(\"C\")) {\n this.data.color = null;\n } else {\n this.setColor(parentItem.getArray(\"C\"));\n this.data.color = this.color;\n }\n\n if (!this.viewable) {\n const parentFlags = parentItem.get(\"F\");\n\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n\n this.data.title = (0, _util.stringToPDFString)(parentItem.get(\"T\") || \"\");\n this.data.contents = (0, _util.stringToPDFString)(parentItem.get(\"Contents\") || \"\");\n }\n\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.FREETEXT;\n }\n\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.LINE;\n this.data.lineCoordinates = _util.Util.normalizeRect(parameters.dict.getArray(\"L\"));\n }\n\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.SQUARE;\n }\n\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.CIRCLE;\n }\n\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POLYLINE;\n const rawVertices = parameters.dict.getArray(\"Vertices\");\n this.data.vertices = [];\n\n for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n this.data.vertices.push({\n x: rawVertices[i],\n y: rawVertices[i + 1]\n });\n }\n }\n\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.POLYGON;\n }\n\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.CARET;\n }\n\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.INK;\n const xref = parameters.xref;\n const originalInkLists = parameters.dict.getArray(\"InkList\");\n this.data.inkLists = [];\n\n for (let i = 0, ii = originalInkLists.length; i < ii; ++i) {\n this.data.inkLists.push([]);\n\n for (let j = 0, jj = originalInkLists[i].length; j < jj; j += 2) {\n this.data.inkLists[i].push({\n x: xref.fetchIfRef(originalInkLists[i][j]),\n y: xref.fetchIfRef(originalInkLists[i][j + 1])\n });\n }\n }\n }\n\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.UNDERLINE;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.SQUIGGLY;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.STRIKEOUT;\n const quadPoints = getQuadPoints(parameters.dict, this.rectangle);\n\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n }\n\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n this.data.annotationType = _util.AnnotationType.STAMP;\n }\n\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n const file = new _obj.FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n this.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n this.data.file = file.serializable;\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.OperatorList = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar QueueOptimizer = function QueueOptimizerClosure() {\n function addState(parentState, pattern, checkFn, iterateFn, processFn) {\n var state = parentState;\n\n for (var i = 0, ii = pattern.length - 1; i < ii; i++) {\n var item = pattern[i];\n state = state[item] || (state[item] = []);\n }\n\n state[pattern[pattern.length - 1]] = {\n checkFn,\n iterateFn,\n processFn\n };\n }\n\n function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {\n var iFirstPIMXO = iFirstSave + 2;\n\n for (var i = 0; i < count; i++) {\n var arg = argsArray[iFirstPIMXO + 4 * i];\n var imageMask = arg.length === 1 && arg[0];\n\n if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {\n fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;\n continue;\n }\n\n break;\n }\n\n return count - i;\n }\n\n var InitialState = [];\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {\n var fnArray = context.fnArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n\n case 1:\n return fnArray[i] === _util.OPS.transform;\n\n case 2:\n return fnArray[i] === _util.OPS.paintInlineImageXObject;\n\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n\n throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n }, function foundInlineImageGroup(context, i) {\n var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n var MAX_WIDTH = 1000;\n var IMAGE_PADDING = 1;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIIXO = curr - 1;\n var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n\n var maxX = 0;\n var map = [],\n maxLineHeight = 0;\n var currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n var q;\n\n for (q = 0; q < count; q++) {\n var transform = argsArray[iFirstTransform + (q << 2)];\n var img = argsArray[iFirstPIIXO + (q << 2)][0];\n\n if (currentX + img.width > MAX_WIDTH) {\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n\n map.push({\n transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n\n var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n var imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4);\n var imgRowSize = imgWidth << 2;\n\n for (q = 0; q < count; q++) {\n var data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n var rowSize = map[q].w << 2;\n var dataOffset = 0;\n var offset = map[q].x + map[q].y * imgWidth << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n\n for (var k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [{\n width: imgWidth,\n height: imgHeight,\n kind: _util.ImageKind.RGBA_32BPP,\n data: imgData\n }, map]);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) {\n var fnArray = context.fnArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n\n case 1:\n return fnArray[i] === _util.OPS.transform;\n\n case 2:\n return fnArray[i] === _util.OPS.paintImageMaskXObject;\n\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n\n throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n }, function foundImageMaskGroup(context, i) {\n var MIN_IMAGES_IN_MASKS_BLOCK = 10;\n var MAX_IMAGES_IN_MASKS_BLOCK = 100;\n var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIMXO = curr - 1;\n var count = Math.floor((i - iFirstSave) / 4);\n count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);\n\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n\n var q;\n var isSameImage = false;\n var iTransform, transformArgs;\n var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n\n if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {\n isSameImage = true;\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n iTransform = iFirstTransform + 4;\n var iPIMXO = iFirstPIMXO + 4;\n\n for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n\n if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n\n break;\n }\n }\n }\n\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n var positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n\n for (q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n var images = [];\n\n for (q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n transform: transformArgs\n });\n }\n\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n var argsArray = context.argsArray;\n var iFirstTransform = context.iCurr - 2;\n return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\n }, function iterateImageGroup(context, i) {\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var iFirstSave = context.iCurr - 3;\n var pos = (i - iFirstSave) % 4;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.save;\n\n case 1:\n if (fnArray[i] !== _util.OPS.transform) {\n return false;\n }\n\n var iFirstTransform = context.iCurr - 2;\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {\n return false;\n }\n\n return true;\n\n case 2:\n if (fnArray[i] !== _util.OPS.paintImageXObject) {\n return false;\n }\n\n var iFirstPIXO = context.iCurr - 1;\n var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n\n if (argsArray[i][0] !== firstPIXOArg0) {\n return false;\n }\n\n return true;\n\n case 3:\n return fnArray[i] === _util.OPS.restore;\n }\n\n throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n }, function (context, i) {\n var MIN_IMAGES_IN_BLOCK = 3;\n var MAX_IMAGES_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIXO = curr - 1;\n var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);\n\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i - (i - iFirstSave) % 4;\n }\n\n var positions = new Float32Array(count * 2);\n var iTransform = iFirstTransform;\n\n for (var q = 0; q < count; q++, iTransform += 4) {\n var transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function iterateShowTextGroup(context, i) {\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var iFirstSave = context.iCurr - 4;\n var pos = (i - iFirstSave) % 5;\n\n switch (pos) {\n case 0:\n return fnArray[i] === _util.OPS.beginText;\n\n case 1:\n return fnArray[i] === _util.OPS.setFont;\n\n case 2:\n return fnArray[i] === _util.OPS.setTextMatrix;\n\n case 3:\n if (fnArray[i] !== _util.OPS.showText) {\n return false;\n }\n\n var iFirstSetFont = context.iCurr - 3;\n var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {\n return false;\n }\n\n return true;\n\n case 4:\n return fnArray[i] === _util.OPS.endText;\n }\n\n throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n }, function (context, i) {\n var MIN_CHARS_IN_BLOCK = 3;\n var MAX_CHARS_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstBeginText = curr - 4;\n var iFirstSetFont = curr - 3;\n var iFirstSetTextMatrix = curr - 2;\n var iFirstShowText = curr - 1;\n var iFirstEndText = curr;\n var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n var count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);\n\n if (count < MIN_CHARS_IN_BLOCK) {\n return i - (i - iFirstBeginText) % 5;\n }\n\n var iFirst = iFirstBeginText;\n\n if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {\n count++;\n iFirst -= 5;\n }\n\n var iEndText = iFirst + 4;\n\n for (var q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n\n return iEndText + 1;\n });\n\n function QueueOptimizer(queue) {\n this.queue = queue;\n this.state = null;\n this.context = {\n iCurr: 0,\n fnArray: queue.fnArray,\n argsArray: queue.argsArray\n };\n this.match = null;\n this.lastProcessed = 0;\n }\n\n QueueOptimizer.prototype = {\n _optimize() {\n const fnArray = this.queue.fnArray;\n let i = this.lastProcessed,\n ii = fnArray.length;\n let state = this.state;\n let match = this.match;\n\n if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n this.lastProcessed = ii;\n return;\n }\n\n const context = this.context;\n\n while (i < ii) {\n if (match) {\n const iterate = (0, match.iterateFn)(context, i);\n\n if (iterate) {\n i++;\n continue;\n }\n\n i = (0, match.processFn)(context, i + 1);\n ii = fnArray.length;\n match = null;\n state = null;\n\n if (i >= ii) {\n break;\n }\n }\n\n state = (state || InitialState)[fnArray[i]];\n\n if (!state || Array.isArray(state)) {\n i++;\n continue;\n }\n\n context.iCurr = i;\n i++;\n\n if (state.checkFn && !(0, state.checkFn)(context)) {\n state = null;\n continue;\n }\n\n match = state;\n state = null;\n }\n\n this.state = state;\n this.match = match;\n this.lastProcessed = i;\n },\n\n push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n\n this._optimize();\n },\n\n flush() {\n while (this.match) {\n const length = this.queue.fnArray.length;\n this.lastProcessed = (0, this.match.processFn)(this.context, length);\n this.match = null;\n this.state = null;\n\n this._optimize();\n }\n },\n\n reset() {\n this.state = null;\n this.match = null;\n this.lastProcessed = 0;\n }\n\n };\n return QueueOptimizer;\n}();\n\nvar NullOptimizer = function NullOptimizerClosure() {\n function NullOptimizer(queue) {\n this.queue = queue;\n }\n\n NullOptimizer.prototype = {\n push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n },\n\n flush() {},\n\n reset() {}\n\n };\n return NullOptimizer;\n}();\n\nvar OperatorList = function OperatorListClosure() {\n var CHUNK_SIZE = 1000;\n var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;\n\n function OperatorList(intent, streamSink, pageIndex) {\n this._streamSink = streamSink;\n this.fnArray = [];\n this.argsArray = [];\n\n if (streamSink && intent !== \"oplist\") {\n this.optimizer = new QueueOptimizer(this);\n } else {\n this.optimizer = new NullOptimizer(this);\n }\n\n this.dependencies = Object.create(null);\n this._totalLength = 0;\n this.pageIndex = pageIndex;\n this.intent = intent;\n this.weight = 0;\n this._resolved = streamSink ? null : Promise.resolve();\n }\n\n OperatorList.prototype = {\n get length() {\n return this.argsArray.length;\n },\n\n get ready() {\n return this._resolved || this._streamSink.ready;\n },\n\n get totalLength() {\n return this._totalLength + this.length;\n },\n\n addOp(fn, args) {\n this.optimizer.push(fn, args);\n this.weight++;\n\n if (this._streamSink) {\n if (this.weight >= CHUNK_SIZE) {\n this.flush();\n } else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {\n this.flush();\n }\n }\n },\n\n addDependency(dependency) {\n if (dependency in this.dependencies) {\n return;\n }\n\n this.dependencies[dependency] = true;\n this.addOp(_util.OPS.dependency, [dependency]);\n },\n\n addDependencies(dependencies) {\n for (var key in dependencies) {\n this.addDependency(key);\n }\n },\n\n addOpList(opList) {\n if (!(opList instanceof OperatorList)) {\n (0, _util.warn)('addOpList - ignoring invalid \"opList\" parameter.');\n return;\n }\n\n Object.assign(this.dependencies, opList.dependencies);\n\n for (var i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n },\n\n getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length\n };\n },\n\n get _transfers() {\n const transfers = [];\n const {\n fnArray,\n argsArray,\n length\n } = this;\n\n for (let i = 0; i < length; i++) {\n switch (fnArray[i]) {\n case _util.OPS.paintInlineImageXObject:\n case _util.OPS.paintInlineImageXObjectGroup:\n case _util.OPS.paintImageMaskXObject:\n const arg = argsArray[i][0];\n ;\n\n if (!arg.cached) {\n transfers.push(arg.data.buffer);\n }\n\n break;\n }\n }\n\n return transfers;\n },\n\n flush(lastChunk = false) {\n this.optimizer.flush();\n const length = this.length;\n this._totalLength += length;\n\n this._streamSink.enqueue({\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk,\n length\n }, 1, this._transfers);\n\n this.dependencies = Object.create(null);\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n this.weight = 0;\n this.optimizer.reset();\n }\n\n };\n return OperatorList;\n}();\n\nexports.OperatorList = OperatorList;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PartialEvaluator = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cmap = __w_pdfjs_require__(28);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _fonts = __w_pdfjs_require__(29);\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _unicode = __w_pdfjs_require__(35);\n\nvar _standard_fonts = __w_pdfjs_require__(34);\n\nvar _pattern = __w_pdfjs_require__(38);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _bidi = __w_pdfjs_require__(39);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _glyphlist = __w_pdfjs_require__(33);\n\nvar _metrics = __w_pdfjs_require__(40);\n\nvar _function = __w_pdfjs_require__(41);\n\nvar _image_utils = __w_pdfjs_require__(24);\n\nvar _murmurhash = __w_pdfjs_require__(43);\n\nvar _operator_list = __w_pdfjs_require__(26);\n\nvar _image = __w_pdfjs_require__(44);\n\nvar PartialEvaluator = function PartialEvaluatorClosure() {\n const DefaultPartialEvaluatorOptions = {\n maxImageSize: -1,\n disableFontFace: false,\n ignoreErrors: false,\n isEvalSupported: true,\n fontExtraProperties: false\n };\n\n function PartialEvaluator({\n xref,\n handler,\n pageIndex,\n idFactory,\n fontCache,\n builtInCMapCache,\n globalImageCache,\n options = null,\n pdfFunctionFactory\n }) {\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.globalImageCache = globalImageCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.pdfFunctionFactory = pdfFunctionFactory;\n this.parsingType3Font = false;\n\n this.fetchBuiltInCMap = async name => {\n if (this.builtInCMapCache.has(name)) {\n return this.builtInCMapCache.get(name);\n }\n\n const readableStream = this.handler.sendWithStream(\"FetchBuiltInCMap\", {\n name\n });\n const reader = readableStream.getReader();\n const data = await new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n return;\n }\n\n resolve(value);\n pump();\n }, reject);\n }\n\n pump();\n });\n\n if (data.compressionType !== _util.CMapCompressionType.NONE) {\n this.builtInCMapCache.set(name, data);\n }\n\n return data;\n };\n }\n\n var TIME_SLOT_DURATION_MS = 20;\n var CHECK_TIME_EVERY = 100;\n\n function TimeSlotManager() {\n this.reset();\n }\n\n TimeSlotManager.prototype = {\n check: function TimeSlotManager_check() {\n if (++this.checked < CHECK_TIME_EVERY) {\n return false;\n }\n\n this.checked = 0;\n return this.endTime <= Date.now();\n },\n reset: function TimeSlotManager_reset() {\n this.endTime = Date.now() + TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n };\n\n function normalizeBlendMode(value, parsingArray = false) {\n if (Array.isArray(value)) {\n for (let i = 0, ii = value.length; i < ii; i++) {\n const maybeBM = normalizeBlendMode(value[i], true);\n\n if (maybeBM) {\n return maybeBM;\n }\n }\n\n (0, _util.warn)(`Unsupported blend mode Array: ${value}`);\n return \"source-over\";\n }\n\n if (!(0, _primitives.isName)(value)) {\n if (parsingArray) {\n return null;\n }\n\n return \"source-over\";\n }\n\n switch (value.name) {\n case \"Normal\":\n case \"Compatible\":\n return \"source-over\";\n\n case \"Multiply\":\n return \"multiply\";\n\n case \"Screen\":\n return \"screen\";\n\n case \"Overlay\":\n return \"overlay\";\n\n case \"Darken\":\n return \"darken\";\n\n case \"Lighten\":\n return \"lighten\";\n\n case \"ColorDodge\":\n return \"color-dodge\";\n\n case \"ColorBurn\":\n return \"color-burn\";\n\n case \"HardLight\":\n return \"hard-light\";\n\n case \"SoftLight\":\n return \"soft-light\";\n\n case \"Difference\":\n return \"difference\";\n\n case \"Exclusion\":\n return \"exclusion\";\n\n case \"Hue\":\n return \"hue\";\n\n case \"Saturation\":\n return \"saturation\";\n\n case \"Color\":\n return \"color\";\n\n case \"Luminosity\":\n return \"luminosity\";\n }\n\n if (parsingArray) {\n return null;\n }\n\n (0, _util.warn)(`Unsupported blend mode: ${value.name}`);\n return \"source-over\";\n }\n\n var deferred = Promise.resolve();\n var TILING_PATTERN = 1,\n SHADING_PATTERN = 2;\n PartialEvaluator.prototype = {\n clone(newOptions = DefaultPartialEvaluatorOptions) {\n var newEvaluator = Object.create(this);\n newEvaluator.options = newOptions;\n return newEvaluator;\n },\n\n hasBlendModes: function PartialEvaluator_hasBlendModes(resources) {\n if (!(resources instanceof _primitives.Dict)) {\n return false;\n }\n\n var processed = Object.create(null);\n\n if (resources.objId) {\n processed[resources.objId] = true;\n }\n\n var nodes = [resources],\n xref = this.xref;\n\n while (nodes.length) {\n var node = nodes.shift();\n var graphicStates = node.get(\"ExtGState\");\n\n if (graphicStates instanceof _primitives.Dict) {\n var graphicStatesKeys = graphicStates.getKeys();\n\n for (let i = 0, ii = graphicStatesKeys.length; i < ii; i++) {\n const key = graphicStatesKeys[i];\n let graphicState = graphicStates.getRaw(key);\n\n if (graphicState instanceof _primitives.Ref) {\n if (processed[graphicState.toString()]) {\n continue;\n }\n\n try {\n graphicState = xref.fetch(graphicState);\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n if (this.options.ignoreErrors) {\n if (graphicState instanceof _primitives.Ref) {\n processed[graphicState.toString()] = true;\n }\n\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorExtGState\n });\n (0, _util.warn)(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n continue;\n }\n\n throw ex;\n }\n }\n\n if (!(graphicState instanceof _primitives.Dict)) {\n continue;\n }\n\n if (graphicState.objId) {\n processed[graphicState.objId] = true;\n }\n\n const bm = graphicState.get(\"BM\");\n\n if (bm instanceof _primitives.Name) {\n if (bm.name !== \"Normal\") {\n return true;\n }\n\n continue;\n }\n\n if (bm !== undefined && Array.isArray(bm)) {\n for (let j = 0, jj = bm.length; j < jj; j++) {\n if (bm[j] instanceof _primitives.Name && bm[j].name !== \"Normal\") {\n return true;\n }\n }\n }\n }\n }\n\n var xObjects = node.get(\"XObject\");\n\n if (!(xObjects instanceof _primitives.Dict)) {\n continue;\n }\n\n var xObjectsKeys = xObjects.getKeys();\n\n for (let i = 0, ii = xObjectsKeys.length; i < ii; i++) {\n const key = xObjectsKeys[i];\n var xObject = xObjects.getRaw(key);\n\n if (xObject instanceof _primitives.Ref) {\n if (processed[xObject.toString()]) {\n continue;\n }\n\n try {\n xObject = xref.fetch(xObject);\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n if (this.options.ignoreErrors) {\n if (xObject instanceof _primitives.Ref) {\n processed[xObject.toString()] = true;\n }\n\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorXObject\n });\n (0, _util.warn)(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n continue;\n }\n\n throw ex;\n }\n }\n\n if (!(0, _primitives.isStream)(xObject)) {\n continue;\n }\n\n if (xObject.dict.objId) {\n if (processed[xObject.dict.objId]) {\n continue;\n }\n\n processed[xObject.dict.objId] = true;\n }\n\n var xResources = xObject.dict.get(\"Resources\");\n\n if (xResources instanceof _primitives.Dict && (!xResources.objId || !processed[xResources.objId])) {\n nodes.push(xResources);\n\n if (xResources.objId) {\n processed[xResources.objId] = true;\n }\n }\n }\n }\n\n return false;\n },\n\n async buildFormXObject(resources, xobj, smask, operatorList, task, initialState) {\n var dict = xobj.dict;\n var matrix = dict.getArray(\"Matrix\");\n var bbox = dict.getArray(\"BBox\");\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n bbox = _util.Util.normalizeRect(bbox);\n } else {\n bbox = null;\n }\n\n var group = dict.get(\"Group\");\n\n if (group) {\n var groupOptions = {\n matrix,\n bbox,\n smask,\n isolated: false,\n knockout: false\n };\n var groupSubtype = group.get(\"S\");\n var colorSpace = null;\n\n if ((0, _primitives.isName)(groupSubtype, \"Transparency\")) {\n groupOptions.isolated = group.get(\"I\") || false;\n groupOptions.knockout = group.get(\"K\") || false;\n\n if (group.has(\"CS\")) {\n colorSpace = await this.parseColorSpace({\n cs: group.get(\"CS\"),\n resources\n });\n }\n }\n\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n\n operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n }\n\n operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]);\n return this.getOperatorList({\n stream: xobj,\n task,\n resources: dict.get(\"Resources\") || resources,\n operatorList,\n initialState\n }).then(function () {\n operatorList.addOp(_util.OPS.paintFormXObjectEnd, []);\n\n if (group) {\n operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n }\n });\n },\n\n async buildPaintImageXObject({\n resources,\n image,\n isInline = false,\n operatorList,\n cacheKey,\n localImageCache\n }) {\n var dict = image.dict;\n const imageRef = dict.objId;\n var w = dict.get(\"Width\", \"W\");\n var h = dict.get(\"Height\", \"H\");\n\n if (!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) {\n (0, _util.warn)(\"Image dimensions are missing, or not numbers.\");\n return undefined;\n }\n\n var maxImageSize = this.options.maxImageSize;\n\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n (0, _util.warn)(\"Image exceeded maximum allowed size and was removed.\");\n return undefined;\n }\n\n var imageMask = dict.get(\"ImageMask\", \"IM\") || false;\n var imgData, args;\n\n if (imageMask) {\n var width = dict.get(\"Width\", \"W\");\n var height = dict.get(\"Height\", \"H\");\n var bitStrideLength = width + 7 >> 3;\n var imgArray = image.getBytes(bitStrideLength * height, true);\n var decode = dict.getArray(\"Decode\", \"D\");\n imgData = _image.PDFImage.createMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream: image instanceof _stream.DecodeStream,\n inverseDecode: !!decode && decode[0] > 0\n });\n imgData.cached = !!cacheKey;\n args = [imgData];\n operatorList.addOp(_util.OPS.paintImageMaskXObject, args);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: _util.OPS.paintImageMaskXObject,\n args\n });\n }\n\n return undefined;\n }\n\n var softMask = dict.get(\"SMask\", \"SM\") || false;\n var mask = dict.get(\"Mask\") || false;\n var SMALL_IMAGE_DIMENSIONS = 200;\n\n if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n const imageObj = new _image.PDFImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this.pdfFunctionFactory\n });\n imgData = imageObj.createImageData(true);\n operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);\n return undefined;\n }\n\n let objId = `img_${this.idFactory.createObjId()}`,\n cacheGlobally = false;\n\n if (this.parsingType3Font) {\n objId = `${this.idFactory.getDocId()}_type3res_${objId}`;\n } else if (imageRef) {\n cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex);\n\n if (cacheGlobally) {\n objId = `${this.idFactory.getDocId()}_${objId}`;\n }\n }\n\n operatorList.addDependency(objId);\n args = [objId, w, h];\n\n const imgPromise = _image.PDFImage.buildImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this.pdfFunctionFactory\n }).then(imageObj => {\n imgData = imageObj.createImageData(false);\n\n if (this.parsingType3Font) {\n return this.handler.sendWithPromise(\"commonobj\", [objId, \"FontType3Res\", imgData], [imgData.data.buffer]);\n } else if (cacheGlobally) {\n this.handler.send(\"commonobj\", [objId, \"Image\", imgData], [imgData.data.buffer]);\n return undefined;\n }\n\n this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", imgData], [imgData.data.buffer]);\n return undefined;\n }).catch(reason => {\n (0, _util.warn)(\"Unable to decode image: \" + reason);\n\n if (this.parsingType3Font) {\n return this.handler.sendWithPromise(\"commonobj\", [objId, \"FontType3Res\", null]);\n } else if (cacheGlobally) {\n this.handler.send(\"commonobj\", [objId, \"Image\", null]);\n return undefined;\n }\n\n this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", null]);\n return undefined;\n });\n\n if (this.parsingType3Font) {\n await imgPromise;\n }\n\n operatorList.addOp(_util.OPS.paintImageXObject, args);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: _util.OPS.paintImageXObject,\n args\n });\n\n if (imageRef) {\n (0, _util.assert)(!isInline, \"Cannot cache an inline image globally.\");\n this.globalImageCache.addPageIndex(imageRef, this.pageIndex);\n\n if (cacheGlobally) {\n this.globalImageCache.setData(imageRef, {\n objId,\n fn: _util.OPS.paintImageXObject,\n args\n });\n }\n }\n }\n\n return undefined;\n },\n\n handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) {\n var smaskContent = smask.get(\"G\");\n var smaskOptions = {\n subtype: smask.get(\"S\").name,\n backdrop: smask.get(\"BC\")\n };\n var transferObj = smask.get(\"TR\");\n\n if ((0, _function.isPDFFunction)(transferObj)) {\n const transferFn = this.pdfFunctionFactory.create(transferObj);\n var transferMap = new Uint8Array(256);\n var tmp = new Float32Array(1);\n\n for (var i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = tmp[0] * 255 | 0;\n }\n\n smaskOptions.transferMap = transferMap;\n }\n\n return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone());\n },\n\n handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {\n const tilingOpList = new _operator_list.OperatorList();\n const resourcesArray = [patternDict.get(\"Resources\"), resources];\n\n const patternResources = _primitives.Dict.merge(this.xref, resourcesArray);\n\n return this.getOperatorList({\n stream: pattern,\n task,\n resources: patternResources,\n operatorList: tilingOpList\n }).then(function () {\n return (0, _pattern.getTilingPatternIR)({\n fnArray: tilingOpList.fnArray,\n argsArray: tilingOpList.argsArray\n }, patternDict, args);\n }).then(function (tilingPatternIR) {\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n }, reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorTilingPattern\n });\n (0, _util.warn)(`handleTilingType - ignoring pattern: \"${reason}\".`);\n return;\n }\n\n throw reason;\n });\n },\n\n handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {\n var fontName;\n\n if (fontArgs) {\n fontArgs = fontArgs.slice();\n fontName = fontArgs[0].name;\n }\n\n return this.loadFont(fontName, fontRef, resources).then(translated => {\n if (!translated.font.isType3Font) {\n return translated;\n }\n\n return translated.loadType3Data(this, resources, operatorList, task).then(function () {\n return translated;\n }).catch(reason => {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadType3\n });\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new _fonts.ErrorFont(`Type3 font load error: ${reason}`),\n dict: translated.font,\n extraProperties: this.options.fontExtraProperties\n });\n });\n }).then(translated => {\n state.font = translated.font;\n translated.send(this.handler);\n return translated.loadedName;\n });\n },\n\n handleText(chars, state) {\n const font = state.font;\n const glyphs = font.charsToGlyphs(chars);\n\n if (font.data) {\n const isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n\n if (isAddToPathSet || state.fillColorSpace.name === \"Pattern\" || font.disableFontFace || this.options.disableFontFace) {\n PartialEvaluator.buildFontPaths(font, glyphs, this.handler);\n }\n }\n\n return glyphs;\n },\n\n ensureStateFont(state) {\n if (state.font) {\n return;\n }\n\n const reason = new _util.FormatError(\"Missing setFont (Tf) operator before text rendering operator.\");\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontState\n });\n (0, _util.warn)(`ensureStateFont: \"${reason}\".`);\n return;\n }\n\n throw reason;\n },\n\n setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {\n var gStateObj = [];\n var gStateKeys = gState.getKeys();\n var promise = Promise.resolve();\n\n for (var i = 0, ii = gStateKeys.length; i < ii; i++) {\n const key = gStateKeys[i];\n const value = gState.get(key);\n\n switch (key) {\n case \"Type\":\n break;\n\n case \"LW\":\n case \"LC\":\n case \"LJ\":\n case \"ML\":\n case \"D\":\n case \"RI\":\n case \"FL\":\n case \"CA\":\n case \"ca\":\n gStateObj.push([key, value]);\n break;\n\n case \"Font\":\n promise = promise.then(() => {\n return this.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n gStateObj.push([key, [loadedName, value[1]]]);\n });\n });\n break;\n\n case \"BM\":\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n\n case \"SMask\":\n if ((0, _primitives.isName)(value, \"None\")) {\n gStateObj.push([key, false]);\n break;\n }\n\n if ((0, _primitives.isDict)(value)) {\n promise = promise.then(() => {\n return this.handleSMask(value, resources, operatorList, task, stateManager);\n });\n gStateObj.push([key, true]);\n } else {\n (0, _util.warn)(\"Unsupported SMask type\");\n }\n\n break;\n\n case \"OP\":\n case \"op\":\n case \"OPM\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n case \"TR\":\n case \"TR2\":\n case \"HT\":\n case \"SM\":\n case \"SA\":\n case \"AIS\":\n case \"TK\":\n (0, _util.info)(\"graphic state operator \" + key);\n break;\n\n default:\n (0, _util.info)(\"Unknown graphic state operator \" + key);\n break;\n }\n }\n\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n }\n });\n },\n loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {\n const errorFont = () => {\n return Promise.resolve(new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new _fonts.ErrorFont(`Font \"${fontName}\" is not available.`),\n dict: font,\n extraProperties: this.options.fontExtraProperties\n }));\n };\n\n var fontRef,\n xref = this.xref;\n\n if (font) {\n if (!(0, _primitives.isRef)(font)) {\n throw new _util.FormatError('The \"font\" object should be a reference.');\n }\n\n fontRef = font;\n } else {\n var fontRes = resources.get(\"Font\");\n\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n }\n }\n\n if (!fontRef) {\n const partialMsg = `Font \"${fontName || font && font.toString()}\" is not available`;\n\n if (!this.options.ignoreErrors && !this.parsingType3Font) {\n (0, _util.warn)(`${partialMsg}.`);\n return errorFont();\n }\n\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontMissing\n });\n (0, _util.warn)(`${partialMsg} -- attempting to fallback to a default font.`);\n fontRef = PartialEvaluator.getFallbackFontDict();\n }\n\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n\n font = xref.fetchIfRef(fontRef);\n\n if (!(0, _primitives.isDict)(font)) {\n return errorFont();\n }\n\n if (font.translated) {\n return font.translated;\n }\n\n var fontCapability = (0, _util.createPromiseCapability)();\n var preEvaluatedFont = this.preEvaluateFont(font);\n const {\n descriptor,\n hash\n } = preEvaluatedFont;\n var fontRefIsRef = (0, _primitives.isRef)(fontRef),\n fontID;\n\n if (fontRefIsRef) {\n fontID = fontRef.toString();\n }\n\n if (hash && (0, _primitives.isDict)(descriptor)) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n\n var fontAliases = descriptor.fontAliases;\n\n if (fontAliases[hash]) {\n var aliasFontRef = fontAliases[hash].aliasRef;\n\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = {\n fontID: _fonts.Font.getFontID()\n };\n }\n\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n\n fontID = fontAliases[hash].fontID;\n }\n\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createObjId();\n }\n\n this.fontCache.put(`id_${fontID}`, fontCapability.promise);\n }\n\n (0, _util.assert)(fontID, 'The \"fontID\" must be defined.');\n font.loadedName = `${this.idFactory.getDocId()}_f${fontID}`;\n font.translated = fontCapability.promise;\n var translatedPromise;\n\n try {\n translatedPromise = this.translateFont(preEvaluatedFont);\n } catch (e) {\n translatedPromise = Promise.reject(e);\n }\n\n translatedPromise.then(translatedFont => {\n if (translatedFont.fontType !== undefined) {\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[translatedFont.fontType] = true;\n }\n\n fontCapability.resolve(new TranslatedFont({\n loadedName: font.loadedName,\n font: translatedFont,\n dict: font,\n extraProperties: this.options.fontExtraProperties\n }));\n }).catch(reason => {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontTranslate\n });\n\n try {\n var fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n var subtype = fontFile3 && fontFile3.get(\"Subtype\");\n var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name);\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[fontType] = true;\n } catch (ex) {}\n\n fontCapability.resolve(new TranslatedFont({\n loadedName: font.loadedName,\n font: new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason),\n dict: font,\n extraProperties: this.options.fontExtraProperties\n }));\n });\n return fontCapability.promise;\n },\n\n buildPath(operatorList, fn, args, parsingText = false) {\n var lastIndex = operatorList.length - 1;\n\n if (!args) {\n args = [];\n }\n\n if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n if (parsingText) {\n (0, _util.warn)(`Encountered path operator \"${fn}\" inside of a text object.`);\n operatorList.addOp(_util.OPS.save, null);\n }\n\n operatorList.addOp(_util.OPS.constructPath, [[fn], args]);\n\n if (parsingText) {\n operatorList.addOp(_util.OPS.restore, null);\n }\n } else {\n var opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n Array.prototype.push.apply(opArgs[1], args);\n }\n },\n\n parseColorSpace({\n cs,\n resources\n }) {\n return new Promise(resolve => {\n resolve(_colorspace.ColorSpace.parse(cs, this.xref, resources, this.pdfFunctionFactory));\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return null;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorColorSpace\n });\n (0, _util.warn)(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n return null;\n }\n\n throw reason;\n });\n },\n\n async handleColorN(operatorList, fn, args, cs, patterns, resources, task) {\n var patternName = args[args.length - 1];\n var pattern;\n\n if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) {\n var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;\n var typeNum = dict.get(\"PatternType\");\n\n if (typeNum === TILING_PATTERN) {\n var color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task);\n } else if (typeNum === SHADING_PATTERN) {\n var shading = dict.get(\"Shading\");\n var matrix = dict.getArray(\"Matrix\");\n pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this.pdfFunctionFactory);\n operatorList.addOp(fn, pattern.getIR());\n return undefined;\n }\n\n throw new _util.FormatError(`Unknown PatternType: ${typeNum}`);\n }\n\n throw new _util.FormatError(`Unknown PatternName: ${patternName}`);\n },\n\n getOperatorList({\n stream,\n task,\n resources,\n operatorList,\n initialState = null\n }) {\n resources = resources || _primitives.Dict.empty;\n initialState = initialState || new EvalState();\n\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n\n var self = this;\n var xref = this.xref;\n let parsingText = false;\n const localImageCache = new _image_utils.LocalImageCache();\n\n var xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n\n var patterns = resources.get(\"Pattern\") || _primitives.Dict.empty;\n\n var stateManager = new StateManager(initialState);\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var timeSlotManager = new TimeSlotManager();\n\n function closePendingRestoreOPS(argument) {\n for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(_util.OPS.restore, []);\n }\n }\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n Promise.all([promise, operatorList.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n i,\n ii,\n cs;\n\n while (!(stop = timeSlotManager.check())) {\n operation.args = null;\n\n if (!preprocessor.read(operation)) {\n break;\n }\n\n var args = operation.args;\n var fn = operation.fn;\n\n switch (fn | 0) {\n case _util.OPS.paintXObject:\n var name = args[0].name;\n\n if (name) {\n const localImage = localImageCache.getByName(name);\n\n if (localImage) {\n operatorList.addOp(localImage.fn, localImage.args);\n args = null;\n continue;\n }\n }\n\n next(new Promise(function (resolveXObject, rejectXObject) {\n if (!name) {\n throw new _util.FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n\n if (xobj instanceof _primitives.Ref) {\n const localImage = localImageCache.getByRef(xobj);\n\n if (localImage) {\n operatorList.addOp(localImage.fn, localImage.args);\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);\n\n if (globalImage) {\n operatorList.addDependency(globalImage.objId);\n operatorList.addOp(globalImage.fn, globalImage.args);\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!xobj) {\n operatorList.addOp(fn, args);\n resolveXObject();\n return;\n }\n\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name === \"Form\") {\n stateManager.save();\n self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === \"Image\") {\n self.buildPaintImageXObject({\n resources,\n image: xobj,\n operatorList,\n cacheKey: name,\n localImageCache\n }).then(resolveXObject, rejectXObject);\n return;\n } else if (type.name === \"PS\") {\n (0, _util.info)(\"Ignored XObject subtype PS\");\n } else {\n throw new _util.FormatError(`Unhandled XObject subtype ${type.name}`);\n }\n\n resolveXObject();\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n self.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorXObject\n });\n (0, _util.warn)(`getOperatorList - ignoring XObject: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n\n case _util.OPS.setFont:\n var fontSize = args[1];\n next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n }));\n return;\n\n case _util.OPS.beginText:\n parsingText = true;\n break;\n\n case _util.OPS.endText:\n parsingText = false;\n break;\n\n case _util.OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n\n if (cacheKey) {\n const localImage = localImageCache.getByName(cacheKey);\n\n if (localImage) {\n operatorList.addOp(localImage.fn, localImage.args);\n args = null;\n continue;\n }\n }\n\n next(self.buildPaintImageXObject({\n resources,\n image: args[0],\n isInline: true,\n operatorList,\n cacheKey,\n localImageCache\n }));\n return;\n\n case _util.OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n\n case _util.OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n\n for (i = 0; i < arrLength; ++i) {\n var arrItem = arr[i];\n\n if ((0, _util.isString)(arrItem)) {\n Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state));\n } else if ((0, _util.isNum)(arrItem)) {\n combinedGlyphs.push(arrItem);\n }\n }\n\n args[0] = combinedGlyphs;\n fn = _util.OPS.showText;\n break;\n\n case _util.OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n operatorList.addOp(_util.OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n\n case _util.OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n operatorList.addOp(_util.OPS.nextLine);\n operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n\n case _util.OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n\n case _util.OPS.setFillColorSpace:\n next(self.parseColorSpace({\n cs: args[0],\n resources\n }).then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.fillColorSpace = colorSpace;\n }\n }));\n return;\n\n case _util.OPS.setStrokeColorSpace:\n next(self.parseColorSpace({\n cs: args[0],\n resources\n }).then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.strokeColorSpace = colorSpace;\n }\n }));\n return;\n\n case _util.OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.setFillGray:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n\n case _util.OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n\n if (cs.name === \"Pattern\") {\n next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task));\n return;\n }\n\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n\n case _util.OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n\n if (cs.name === \"Pattern\") {\n next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task));\n return;\n }\n\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n\n case _util.OPS.shadingFill:\n var shadingRes = resources.get(\"Shading\");\n\n if (!shadingRes) {\n throw new _util.FormatError(\"No shading resource found\");\n }\n\n var shading = shadingRes.get(args[0].name);\n\n if (!shading) {\n throw new _util.FormatError(\"No shading object found\");\n }\n\n var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler, self.pdfFunctionFactory);\n\n var patternIR = shadingFill.getIR();\n args = [patternIR];\n fn = _util.OPS.shadingFill;\n break;\n\n case _util.OPS.setGState:\n var dictName = args[0];\n var extGState = resources.get(\"ExtGState\");\n\n if (!(0, _primitives.isDict)(extGState) || !extGState.has(dictName.name)) {\n break;\n }\n\n var gState = extGState.get(dictName.name);\n next(self.setGState(resources, gState, operatorList, task, stateManager));\n return;\n\n case _util.OPS.moveTo:\n case _util.OPS.lineTo:\n case _util.OPS.curveTo:\n case _util.OPS.curveTo2:\n case _util.OPS.curveTo3:\n case _util.OPS.closePath:\n case _util.OPS.rectangle:\n self.buildPath(operatorList, fn, args, parsingText);\n continue;\n\n case _util.OPS.markPoint:\n case _util.OPS.markPointProps:\n case _util.OPS.beginMarkedContent:\n case _util.OPS.beginMarkedContentProps:\n case _util.OPS.endMarkedContent:\n case _util.OPS.beginCompat:\n case _util.OPS.endCompat:\n continue;\n\n default:\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof _primitives.Dict) {\n break;\n }\n }\n\n if (i < ii) {\n (0, _util.warn)(\"getOperatorList - ignoring operator: \" + fn);\n continue;\n }\n }\n\n }\n\n operatorList.addOp(fn, args);\n }\n\n if (stop) {\n next(deferred);\n return;\n }\n\n closePendingRestoreOPS();\n resolve();\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n });\n (0, _util.warn)(`getOperatorList - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n closePendingRestoreOPS();\n return;\n }\n\n throw reason;\n });\n },\n\n getTextContent({\n stream,\n task,\n resources,\n stateManager = null,\n normalizeWhitespace = false,\n combineTextItems = false,\n sink,\n seenStyles = Object.create(null)\n }) {\n resources = resources || _primitives.Dict.empty;\n stateManager = stateManager || new StateManager(new TextState());\n var WhitespaceRegexp = /\\s/g;\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n var textContentItem = {\n initialized: false,\n str: [],\n width: 0,\n height: 0,\n vertical: false,\n lastAdvanceWidth: 0,\n lastAdvanceHeight: 0,\n textAdvanceScale: 0,\n spaceWidth: 0,\n fakeSpaceMin: Infinity,\n fakeMultiSpaceMin: Infinity,\n fakeMultiSpaceMax: -0,\n textRunBreakAllowed: false,\n transform: null,\n fontName: null\n };\n var SPACE_FACTOR = 0.3;\n var MULTI_SPACE_FACTOR = 1.5;\n var MULTI_SPACE_FACTOR_MAX = 4;\n var self = this;\n var xref = this.xref;\n var xobjs = null;\n const emptyXObjectCache = new _image_utils.LocalImageCache();\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var textState;\n\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n\n var font = textState.font;\n\n if (!(font.loadedName in seenStyles)) {\n seenStyles[font.loadedName] = true;\n textContent.styles[font.loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical\n };\n }\n\n textContentItem.fontName = font.loadedName;\n var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n\n if (font.isType3Font && textState.fontSize <= 1 && !(0, _util.isArrayEqual)(textState.fontMatrix, _util.FONT_IDENTITY_MATRIX)) {\n const glyphHeight = font.bbox[3] - font.bbox[1];\n\n if (glyphHeight > 0) {\n tsm[3] *= glyphHeight * textState.fontMatrix[3];\n }\n }\n\n var trm = _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n\n textContentItem.transform = trm;\n\n if (!font.vertical) {\n textContentItem.width = 0;\n textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]);\n textContentItem.vertical = false;\n } else {\n textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]);\n textContentItem.height = 0;\n textContentItem.vertical = true;\n }\n\n var a = textState.textLineMatrix[0];\n var b = textState.textLineMatrix[1];\n var scaleLineX = Math.sqrt(a * a + b * b);\n a = textState.ctm[0];\n b = textState.ctm[1];\n var scaleCtmX = Math.sqrt(a * a + b * b);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n textContentItem.lastAdvanceWidth = 0;\n textContentItem.lastAdvanceHeight = 0;\n var spaceWidth = font.spaceWidth / 1000 * textState.fontSize;\n\n if (spaceWidth) {\n textContentItem.spaceWidth = spaceWidth;\n textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMax = spaceWidth * MULTI_SPACE_FACTOR_MAX;\n textContentItem.textRunBreakAllowed = !font.isMonospace;\n } else {\n textContentItem.spaceWidth = 0;\n textContentItem.fakeSpaceMin = Infinity;\n textContentItem.fakeMultiSpaceMin = Infinity;\n textContentItem.fakeMultiSpaceMax = 0;\n textContentItem.textRunBreakAllowed = false;\n }\n\n textContentItem.initialized = true;\n return textContentItem;\n }\n\n function replaceWhitespace(str) {\n var i = 0,\n ii = str.length,\n code;\n\n while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7f) {\n i++;\n }\n\n return i < ii ? str.replace(WhitespaceRegexp, \" \") : str;\n }\n\n function runBidiTransform(textChunk) {\n var str = textChunk.str.join(\"\");\n var bidiResult = (0, _bidi.bidi)(str, -1, textChunk.vertical);\n return {\n str: normalizeWhitespace ? replaceWhitespace(bidiResult.str) : bidiResult.str,\n dir: bidiResult.dir,\n width: textChunk.width,\n height: textChunk.height,\n transform: textChunk.transform,\n fontName: textChunk.fontName\n };\n }\n\n function handleSetFont(fontName, fontRef) {\n return self.loadFont(fontName, fontRef, resources).then(function (translated) {\n textState.font = translated.font;\n textState.fontMatrix = translated.font.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n });\n }\n\n function buildTextContentItem(chars) {\n var font = textState.font;\n var textChunk = ensureTextContentItem();\n var width = 0;\n var height = 0;\n var glyphs = font.charsToGlyphs(chars);\n\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n var glyphWidth = null;\n\n if (font.vertical && glyph.vmetric) {\n glyphWidth = glyph.vmetric[0];\n } else {\n glyphWidth = glyph.width;\n }\n\n var glyphUnicode = glyph.unicode;\n var NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();\n\n if (NormalizedUnicodes[glyphUnicode] !== undefined) {\n glyphUnicode = NormalizedUnicodes[glyphUnicode];\n }\n\n glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n var charSpacing = textState.charSpacing;\n\n if (glyph.isSpace) {\n var wordSpacing = textState.wordSpacing;\n charSpacing += wordSpacing;\n\n if (wordSpacing > 0) {\n addFakeSpaces(wordSpacing, textChunk.str);\n }\n }\n\n var tx = 0;\n var ty = 0;\n\n if (!font.vertical) {\n var w0 = glyphWidth * textState.fontMatrix[0];\n tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale;\n width += tx;\n } else {\n var w1 = glyphWidth * textState.fontMatrix[0];\n ty = w1 * textState.fontSize + charSpacing;\n height += ty;\n }\n\n textState.translateTextMatrix(tx, ty);\n textChunk.str.push(glyphUnicode);\n }\n\n if (!font.vertical) {\n textChunk.lastAdvanceWidth = width;\n textChunk.width += width;\n } else {\n textChunk.lastAdvanceHeight = height;\n textChunk.height += Math.abs(height);\n }\n\n return textChunk;\n }\n\n function addFakeSpaces(width, strBuf) {\n if (width < textContentItem.fakeSpaceMin) {\n return;\n }\n\n if (width < textContentItem.fakeMultiSpaceMin) {\n strBuf.push(\" \");\n return;\n }\n\n var fakeSpaces = Math.round(width / textContentItem.spaceWidth);\n\n while (fakeSpaces-- > 0) {\n strBuf.push(\" \");\n }\n }\n\n function flushTextContentItem() {\n if (!textContentItem.initialized) {\n return;\n }\n\n if (!textContentItem.vertical) {\n textContentItem.width *= textContentItem.textAdvanceScale;\n } else {\n textContentItem.height *= textContentItem.textAdvanceScale;\n }\n\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n\n function enqueueChunk() {\n const length = textContent.items.length;\n\n if (length > 0) {\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n }\n\n var timeSlotManager = new TimeSlotManager();\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n enqueueChunk();\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n args = [];\n\n while (!(stop = timeSlotManager.check())) {\n args.length = 0;\n operation.args = args;\n\n if (!preprocessor.read(operation)) {\n break;\n }\n\n textState = stateManager.state;\n var fn = operation.fn;\n args = operation.args;\n var advance, diff;\n\n switch (fn | 0) {\n case _util.OPS.setFont:\n var fontNameArg = args[0].name,\n fontSizeArg = args[1];\n\n if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n break;\n }\n\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return;\n\n case _util.OPS.setTextRise:\n flushTextContentItem();\n textState.textRise = args[0];\n break;\n\n case _util.OPS.setHScale:\n flushTextContentItem();\n textState.textHScale = args[0] / 100;\n break;\n\n case _util.OPS.setLeading:\n flushTextContentItem();\n textState.leading = args[0];\n break;\n\n case _util.OPS.moveText:\n var isSameTextLine = !textState.font ? false : (textState.font.vertical ? args[0] : args[1]) === 0;\n advance = args[0] - args[1];\n\n if (combineTextItems && isSameTextLine && textContentItem.initialized && advance > 0 && advance <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(args[0], args[1]);\n textContentItem.width += args[0] - textContentItem.lastAdvanceWidth;\n textContentItem.height += args[1] - textContentItem.lastAdvanceHeight;\n diff = args[0] - textContentItem.lastAdvanceWidth - (args[1] - textContentItem.lastAdvanceHeight);\n addFakeSpaces(diff, textContentItem.str);\n break;\n }\n\n flushTextContentItem();\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n\n case _util.OPS.setLeadingMoveText:\n flushTextContentItem();\n textState.leading = -args[1];\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n\n case _util.OPS.nextLine:\n flushTextContentItem();\n textState.carriageReturn();\n break;\n\n case _util.OPS.setTextMatrix:\n advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]);\n\n if (combineTextItems && advance !== null && textContentItem.initialized && advance.value > 0 && advance.value <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(advance.width, advance.height);\n textContentItem.width += advance.width - textContentItem.lastAdvanceWidth;\n textContentItem.height += advance.height - textContentItem.lastAdvanceHeight;\n diff = advance.width - textContentItem.lastAdvanceWidth - (advance.height - textContentItem.lastAdvanceHeight);\n addFakeSpaces(diff, textContentItem.str);\n break;\n }\n\n flushTextContentItem();\n textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n\n case _util.OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n\n case _util.OPS.beginText:\n flushTextContentItem();\n textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n break;\n\n case _util.OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n var items = args[0];\n var offset;\n\n for (var j = 0, jj = items.length; j < jj; j++) {\n if (typeof items[j] === \"string\") {\n buildTextContentItem(items[j]);\n } else if ((0, _util.isNum)(items[j])) {\n ensureTextContentItem();\n advance = items[j] * textState.fontSize / 1000;\n var breakTextRun = false;\n\n if (textState.font.vertical) {\n offset = advance;\n textState.translateTextMatrix(0, offset);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n if (!breakTextRun) {\n textContentItem.height += offset;\n }\n } else {\n advance = -advance;\n offset = advance * textState.textHScale;\n textState.translateTextMatrix(offset, 0);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n if (!breakTextRun) {\n textContentItem.width += offset;\n }\n }\n\n if (breakTextRun) {\n flushTextContentItem();\n } else if (advance > 0) {\n addFakeSpaces(advance, textContentItem.str);\n }\n }\n }\n\n break;\n\n case _util.OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n buildTextContentItem(args[0]);\n break;\n\n case _util.OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n flushTextContentItem();\n textState.carriageReturn();\n buildTextContentItem(args[0]);\n break;\n\n case _util.OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n flushTextContentItem();\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem(args[2]);\n break;\n\n case _util.OPS.paintXObject:\n flushTextContentItem();\n\n if (!xobjs) {\n xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n }\n\n var name = args[0].name;\n\n if (name && emptyXObjectCache.getByName(name)) {\n break;\n }\n\n next(new Promise(function (resolveXObject, rejectXObject) {\n if (!name) {\n throw new _util.FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n\n if (xobj instanceof _primitives.Ref) {\n if (emptyXObjectCache.getByRef(xobj)) {\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!xobj) {\n resolveXObject();\n return;\n }\n\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name !== \"Form\") {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n resolveXObject();\n return;\n }\n\n const currentState = stateManager.state.clone();\n const xObjStateManager = new StateManager(currentState);\n const matrix = xobj.dict.getArray(\"Matrix\");\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n\n enqueueChunk();\n const sinkWrapper = {\n enqueueInvoked: false,\n\n enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n\n get desiredSize() {\n return sink.desiredSize;\n },\n\n get ready() {\n return sink.ready;\n }\n\n };\n self.getTextContent({\n stream: xobj,\n task,\n resources: xobj.dict.get(\"Resources\") || resources,\n stateManager: xObjStateManager,\n normalizeWhitespace,\n combineTextItems,\n sink: sinkWrapper,\n seenStyles\n }).then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n }\n\n resolveXObject();\n }, rejectXObject);\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (self.options.ignoreErrors) {\n (0, _util.warn)(`getTextContent - ignoring XObject: \"${reason}\".`);\n return;\n }\n\n throw reason;\n }));\n return;\n\n case _util.OPS.setGState:\n flushTextContentItem();\n var dictName = args[0];\n var extGState = resources.get(\"ExtGState\");\n\n if (!(0, _primitives.isDict)(extGState) || !(0, _primitives.isName)(dictName)) {\n break;\n }\n\n var gState = extGState.get(dictName.name);\n\n if (!(0, _primitives.isDict)(gState)) {\n break;\n }\n\n var gStateFont = gState.get(\"Font\");\n\n if (gStateFont) {\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n next(handleSetFont(null, gStateFont[0]));\n return;\n }\n\n break;\n }\n\n if (textContent.items.length >= sink.desiredSize) {\n stop = true;\n break;\n }\n }\n\n if (stop) {\n next(deferred);\n return;\n }\n\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(reason => {\n if (reason instanceof _util.AbortException) {\n return;\n }\n\n if (this.options.ignoreErrors) {\n (0, _util.warn)(`getTextContent - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n\n throw reason;\n });\n },\n\n extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {\n const xref = this.xref;\n let cidToGidBytes;\n var toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);\n\n if (properties.composite) {\n var cidSystemInfo = dict.get(\"CIDSystemInfo\");\n\n if ((0, _primitives.isDict)(cidSystemInfo)) {\n properties.cidSystemInfo = {\n registry: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Registry\")),\n ordering: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Ordering\")),\n supplement: cidSystemInfo.get(\"Supplement\")\n };\n }\n\n var cidToGidMap = dict.get(\"CIDToGIDMap\");\n\n if ((0, _primitives.isStream)(cidToGidMap)) {\n cidToGidBytes = cidToGidMap.getBytes();\n }\n }\n\n var differences = [];\n var baseEncodingName = null;\n var encoding;\n\n if (dict.has(\"Encoding\")) {\n encoding = dict.get(\"Encoding\");\n\n if ((0, _primitives.isDict)(encoding)) {\n baseEncodingName = encoding.get(\"BaseEncoding\");\n baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null;\n\n if (encoding.has(\"Differences\")) {\n var diffEncoding = encoding.get(\"Differences\");\n var index = 0;\n\n for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n var data = xref.fetchIfRef(diffEncoding[j]);\n\n if ((0, _util.isNum)(data)) {\n index = data;\n } else if ((0, _primitives.isName)(data)) {\n differences[index++] = data.name;\n } else {\n throw new _util.FormatError(`Invalid entry in 'Differences' array: ${data}`);\n }\n }\n }\n } else if ((0, _primitives.isName)(encoding)) {\n baseEncodingName = encoding.name;\n } else {\n throw new _util.FormatError(\"Encoding is not a Name nor a Dict\");\n }\n\n if (baseEncodingName !== \"MacRomanEncoding\" && baseEncodingName !== \"MacExpertEncoding\" && baseEncodingName !== \"WinAnsiEncoding\") {\n baseEncodingName = null;\n }\n }\n\n if (baseEncodingName) {\n properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice();\n } else {\n var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic);\n var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic);\n encoding = _encodings.StandardEncoding;\n\n if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n encoding = _encodings.WinAnsiEncoding;\n }\n\n if (isSymbolicFont) {\n encoding = _encodings.MacRomanEncoding;\n\n if (!properties.file) {\n if (/Symbol/i.test(properties.name)) {\n encoding = _encodings.SymbolSetEncoding;\n } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n encoding = _encodings.ZapfDingbatsEncoding;\n }\n }\n }\n\n properties.defaultEncoding = encoding;\n }\n\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise.then(readToUnicode => {\n properties.toUnicode = readToUnicode;\n return this.buildToUnicode(properties);\n }).then(builtToUnicode => {\n properties.toUnicode = builtToUnicode;\n\n if (cidToGidBytes) {\n properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode);\n }\n\n return properties;\n });\n },\n\n _buildSimpleFontToUnicode(properties, forceGlyphs = false) {\n (0, _util.assert)(!properties.composite, \"Must be a simple font.\");\n const toUnicode = [];\n const encoding = properties.defaultEncoding.slice();\n const baseEncodingName = properties.baseEncodingName;\n const differences = properties.differences;\n\n for (const charcode in differences) {\n const glyphName = differences[charcode];\n\n if (glyphName === \".notdef\") {\n continue;\n }\n\n encoding[charcode] = glyphName;\n }\n\n const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n for (const charcode in encoding) {\n let glyphName = encoding[charcode];\n\n if (glyphName === \"\") {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n let code = 0;\n\n switch (glyphName[0]) {\n case \"G\":\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substring(1), 16);\n }\n\n break;\n\n case \"g\":\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substring(1), 16);\n }\n\n break;\n\n case \"C\":\n case \"c\":\n if (glyphName.length >= 3 && glyphName.length <= 4) {\n const codeStr = glyphName.substring(1);\n\n if (forceGlyphs) {\n code = parseInt(codeStr, 16);\n break;\n }\n\n code = +codeStr;\n\n if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) {\n return this._buildSimpleFontToUnicode(properties, true);\n }\n }\n\n break;\n\n default:\n const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n code = unicode;\n }\n\n }\n\n if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n if (baseEncodingName && code === +charcode) {\n const baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n continue;\n }\n }\n\n toUnicode[charcode] = String.fromCodePoint(code);\n }\n\n continue;\n }\n\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n\n return new _fonts.ToUnicodeMap(toUnicode);\n },\n\n buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n\n if (properties.hasIncludedToUnicodeMap) {\n if (!properties.composite && properties.hasEncoding) {\n properties.fallbackToUnicode = this._buildSimpleFontToUnicode(properties);\n }\n\n return Promise.resolve(properties.toUnicode);\n }\n\n if (!properties.composite) {\n return Promise.resolve(this._buildSimpleFontToUnicode(properties));\n }\n\n if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === \"Adobe\" && (properties.cidSystemInfo.ordering === \"GB1\" || properties.cidSystemInfo.ordering === \"CNS1\" || properties.cidSystemInfo.ordering === \"Japan1\" || properties.cidSystemInfo.ordering === \"Korea1\"))) {\n const registry = properties.cidSystemInfo.registry;\n const ordering = properties.cidSystemInfo.ordering;\n\n const ucs2CMapName = _primitives.Name.get(registry + \"-\" + ordering + \"-UCS2\");\n\n return _cmap.CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (ucs2CMap) {\n const cMap = properties.cMap;\n const toUnicode = [];\n cMap.forEach(function (charcode, cid) {\n if (cid > 0xffff) {\n throw new _util.FormatError(\"Max size of CID is 65,535\");\n }\n\n const ucs2 = ucs2CMap.lookup(cid);\n\n if (ucs2) {\n toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1));\n }\n });\n return new _fonts.ToUnicodeMap(toUnicode);\n });\n }\n\n return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar));\n },\n\n readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {\n var cmapObj = toUnicode;\n\n if ((0, _primitives.isName)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xffff);\n }\n\n return new _fonts.ToUnicodeMap(cmap.getMap());\n });\n } else if ((0, _primitives.isStream)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xffff);\n }\n\n var map = new Array(cmap.length);\n cmap.forEach(function (charCode, token) {\n var str = [];\n\n for (var k = 0; k < token.length; k += 2) {\n var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n\n if ((w1 & 0xf800) !== 0xd800) {\n str.push(w1);\n continue;\n }\n\n k += 2;\n var w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n\n map[charCode] = String.fromCodePoint.apply(String, str);\n });\n return new _fonts.ToUnicodeMap(map);\n }, reason => {\n if (reason instanceof _util.AbortException) {\n return null;\n }\n\n if (this.options.ignoreErrors) {\n this.handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.errorFontToUnicode\n });\n (0, _util.warn)(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n return null;\n }\n\n throw reason;\n });\n }\n\n return Promise.resolve(null);\n },\n\n readCidToGidMap(glyphsData, toUnicode) {\n var result = [];\n\n for (var j = 0, jj = glyphsData.length; j < jj; j++) {\n var glyphID = glyphsData[j++] << 8 | glyphsData[j];\n const code = j >> 1;\n\n if (glyphID === 0 && !toUnicode.has(code)) {\n continue;\n }\n\n result[code] = glyphID;\n }\n\n return result;\n },\n\n extractWidths: function PartialEvaluator_extractWidths(dict, descriptor, properties) {\n var xref = this.xref;\n var glyphsWidths = [];\n var defaultWidth = 0;\n var glyphsVMetrics = [];\n var defaultVMetrics;\n var i, ii, j, jj, start, code, widths;\n\n if (properties.composite) {\n defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n widths = dict.get(\"W\");\n\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n var width = xref.fetchIfRef(widths[++i]);\n\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n\n if (properties.vertical) {\n var vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get(\"W2\");\n\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n }\n } else {\n var vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])];\n\n for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n var firstChar = properties.firstChar;\n widths = dict.get(\"Widths\");\n\n if (widths) {\n j = firstChar;\n\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n\n defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n } else {\n var baseFontName = dict.get(\"BaseFont\");\n\n if ((0, _primitives.isName)(baseFontName)) {\n var metrics = this.getBaseFontMetrics(baseFontName.name);\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n\n var isMonospace = true;\n var firstWidth = defaultWidth;\n\n for (var glyph in glyphsWidths) {\n var glyphWidth = glyphsWidths[glyph];\n\n if (!glyphWidth) {\n continue;\n }\n\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n\n if (isMonospace) {\n properties.flags |= _fonts.FontFlags.FixedPitch;\n }\n\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n },\n isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) {\n var fontNameWoStyle = baseFontName.split(\"-\")[0];\n return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n },\n getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {\n var defaultWidth = 0;\n var widths = [];\n var monospace = false;\n var stdFontMap = (0, _standard_fonts.getStdFontMap)();\n var lookupName = stdFontMap[name] || name;\n var Metrics = (0, _metrics.getMetrics)();\n\n if (!(lookupName in Metrics)) {\n if (this.isSerifFont(name)) {\n lookupName = \"Times-Roman\";\n } else {\n lookupName = \"Helvetica\";\n }\n }\n\n var glyphWidths = Metrics[lookupName];\n\n if ((0, _util.isNum)(glyphWidths)) {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths();\n }\n\n return {\n defaultWidth,\n monospace,\n widths\n };\n },\n buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, properties) {\n var widths = Object.create(null);\n var differences = properties.differences;\n var encoding = properties.defaultEncoding;\n\n for (var charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n\n return widths;\n },\n preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) {\n var baseDict = dict;\n var type = dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"invalid font Subtype\");\n }\n\n var composite = false;\n var uint8array;\n\n if (type.name === \"Type0\") {\n var df = dict.get(\"DescendantFonts\");\n\n if (!df) {\n throw new _util.FormatError(\"Descendant fonts are not specified\");\n }\n\n dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n type = dict.get(\"Subtype\");\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError(\"invalid font Subtype\");\n }\n\n composite = true;\n }\n\n var descriptor = dict.get(\"FontDescriptor\");\n\n if (descriptor) {\n var hash = new _murmurhash.MurmurHash3_64();\n var encoding = baseDict.getRaw(\"Encoding\");\n\n if ((0, _primitives.isName)(encoding)) {\n hash.update(encoding.name);\n } else if ((0, _primitives.isRef)(encoding)) {\n hash.update(encoding.toString());\n } else if ((0, _primitives.isDict)(encoding)) {\n var keys = encoding.getKeys();\n\n for (var i = 0, ii = keys.length; i < ii; i++) {\n var entry = encoding.getRaw(keys[i]);\n\n if ((0, _primitives.isName)(entry)) {\n hash.update(entry.name);\n } else if ((0, _primitives.isRef)(entry)) {\n hash.update(entry.toString());\n } else if (Array.isArray(entry)) {\n var diffLength = entry.length,\n diffBuf = new Array(diffLength);\n\n for (var j = 0; j < diffLength; j++) {\n var diffEntry = entry[j];\n\n if ((0, _primitives.isName)(diffEntry)) {\n diffBuf[j] = diffEntry.name;\n } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) {\n diffBuf[j] = diffEntry.toString();\n }\n }\n\n hash.update(diffBuf.join());\n }\n }\n }\n\n const firstChar = dict.get(\"FirstChar\") || 0;\n const lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n hash.update(`${firstChar}-${lastChar}`);\n var toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n\n if ((0, _primitives.isStream)(toUnicode)) {\n var stream = toUnicode.str || toUnicode;\n uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n hash.update(uint8array);\n } else if ((0, _primitives.isName)(toUnicode)) {\n hash.update(toUnicode.name);\n }\n\n var widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n\n if (widths) {\n uint8array = new Uint8Array(new Uint32Array(widths).buffer);\n hash.update(uint8array);\n }\n }\n\n return {\n descriptor,\n dict,\n baseDict,\n composite,\n type: type.name,\n hash: hash ? hash.hexdigest() : \"\"\n };\n },\n translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {\n var baseDict = preEvaluatedFont.baseDict;\n var dict = preEvaluatedFont.dict;\n var composite = preEvaluatedFont.composite;\n var descriptor = preEvaluatedFont.descriptor;\n var type = preEvaluatedFont.type;\n var maxCharIndex = composite ? 0xffff : 0xff;\n var properties;\n const firstChar = dict.get(\"FirstChar\") || 0;\n const lastChar = dict.get(\"LastChar\") || maxCharIndex;\n\n if (!descriptor) {\n if (type === \"Type3\") {\n descriptor = new _primitives.Dict(null);\n descriptor.set(\"FontName\", _primitives.Name.get(type));\n descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n } else {\n var baseFontName = dict.get(\"BaseFont\");\n\n if (!(0, _primitives.isName)(baseFontName)) {\n throw new _util.FormatError(\"Base font is not specified\");\n }\n\n baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n var metrics = this.getBaseFontMetrics(baseFontName);\n var fontNameWoStyle = baseFontName.split(\"-\")[0];\n var flags = (this.isSerifFont(fontNameWoStyle) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic);\n properties = {\n type,\n name: baseFontName,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n flags,\n firstChar,\n lastChar\n };\n const widths = dict.get(\"Widths\");\n return this.extractDataStructures(dict, dict, properties).then(newProperties => {\n if (widths) {\n const glyphWidths = [];\n let j = firstChar;\n\n for (let i = 0, ii = widths.length; i < ii; i++) {\n glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n }\n\n newProperties.widths = glyphWidths;\n } else {\n newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties);\n }\n\n return new _fonts.Font(baseFontName, null, newProperties);\n });\n }\n }\n\n var fontName = descriptor.get(\"FontName\");\n var baseFont = dict.get(\"BaseFont\");\n\n if ((0, _util.isString)(fontName)) {\n fontName = _primitives.Name.get(fontName);\n }\n\n if ((0, _util.isString)(baseFont)) {\n baseFont = _primitives.Name.get(baseFont);\n }\n\n if (type !== \"Type3\") {\n var fontNameStr = fontName && fontName.name;\n var baseFontStr = baseFont && baseFont.name;\n\n if (fontNameStr !== baseFontStr) {\n (0, _util.info)(`The FontDescriptor\\'s FontName is \"${fontNameStr}\" but ` + `should be the same as the Font\\'s BaseFont \"${baseFontStr}\".`);\n\n if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n fontName = baseFont;\n }\n }\n }\n\n fontName = fontName || baseFont;\n\n if (!(0, _primitives.isName)(fontName)) {\n throw new _util.FormatError(\"invalid font name\");\n }\n\n var fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n\n if (fontFile) {\n if (fontFile.dict) {\n var subtype = fontFile.dict.get(\"Subtype\");\n\n if (subtype) {\n subtype = subtype.name;\n }\n\n var length1 = fontFile.dict.get(\"Length1\");\n var length2 = fontFile.dict.get(\"Length2\");\n var length3 = fontFile.dict.get(\"Length3\");\n }\n }\n\n properties = {\n type,\n name: fontName.name,\n subtype,\n file: fontFile,\n length1,\n length2,\n length3,\n loadedName: baseDict.loadedName,\n composite,\n fixedPitch: false,\n fontMatrix: dict.getArray(\"FontMatrix\") || _util.FONT_IDENTITY_MATRIX,\n firstChar: firstChar || 0,\n lastChar: lastChar || maxCharIndex,\n bbox: descriptor.getArray(\"FontBBox\"),\n ascent: descriptor.get(\"Ascent\"),\n descent: descriptor.get(\"Descent\"),\n xHeight: descriptor.get(\"XHeight\"),\n capHeight: descriptor.get(\"CapHeight\"),\n flags: descriptor.get(\"Flags\"),\n italicAngle: descriptor.get(\"ItalicAngle\"),\n isType3Font: false\n };\n var cMapPromise;\n\n if (composite) {\n var cidEncoding = baseDict.get(\"Encoding\");\n\n if ((0, _primitives.isName)(cidEncoding)) {\n properties.cidEncoding = cidEncoding.name;\n }\n\n cMapPromise = _cmap.CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cMap) {\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n });\n } else {\n cMapPromise = Promise.resolve(undefined);\n }\n\n return cMapPromise.then(() => {\n return this.extractDataStructures(dict, baseDict, properties);\n }).then(newProperties => {\n this.extractWidths(dict, descriptor, newProperties);\n\n if (type === \"Type3\") {\n newProperties.isType3Font = true;\n }\n\n return new _fonts.Font(fontName.name, fontFile, newProperties);\n });\n }\n };\n\n PartialEvaluator.buildFontPaths = function (font, glyphs, handler) {\n function buildPath(fontChar) {\n if (font.renderer.hasBuiltPath(fontChar)) {\n return;\n }\n\n handler.send(\"commonobj\", [`${font.loadedName}_path_${fontChar}`, \"FontPath\", font.renderer.getPathJs(fontChar)]);\n }\n\n for (const glyph of glyphs) {\n buildPath(glyph.fontChar);\n const accent = glyph.accent;\n\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n };\n\n PartialEvaluator.getFallbackFontDict = function () {\n if (this._fallbackFontDict) {\n return this._fallbackFontDict;\n }\n\n const dict = new _primitives.Dict();\n dict.set(\"BaseFont\", _primitives.Name.get(\"PDFJS-FallbackFont\"));\n dict.set(\"Type\", _primitives.Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", _primitives.Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", _primitives.Name.get(\"WinAnsiEncoding\"));\n return this._fallbackFontDict = dict;\n };\n\n return PartialEvaluator;\n}();\n\nexports.PartialEvaluator = PartialEvaluator;\n\nclass TranslatedFont {\n constructor({\n loadedName,\n font,\n dict,\n extraProperties = false\n }) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this._extraProperties = extraProperties;\n this.type3Loaded = null;\n this.sent = false;\n }\n\n send(handler) {\n if (this.sent) {\n return;\n }\n\n this.sent = true;\n handler.send(\"commonobj\", [this.loadedName, \"Font\", this.font.exportData(this._extraProperties)]);\n }\n\n fallback(handler) {\n if (!this.font.data) {\n return;\n }\n\n this.font.disableFontFace = true;\n const glyphs = this.font.glyphCacheValues;\n PartialEvaluator.buildFontPaths(this.font, glyphs, handler);\n }\n\n loadType3Data(evaluator, resources, parentOperatorList, task) {\n if (!this.font.isType3Font) {\n throw new Error(\"Must be a Type3 font.\");\n }\n\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n\n var type3Options = Object.create(evaluator.options);\n type3Options.ignoreErrors = false;\n var type3Evaluator = evaluator.clone(type3Options);\n type3Evaluator.parsingType3Font = true;\n var translatedFont = this.font;\n var loadCharProcsPromise = Promise.resolve();\n var charProcs = this.dict.get(\"CharProcs\");\n var fontResources = this.dict.get(\"Resources\") || resources;\n var charProcKeys = charProcs.getKeys();\n var charProcOperatorList = Object.create(null);\n\n for (var i = 0, n = charProcKeys.length; i < n; ++i) {\n const key = charProcKeys[i];\n loadCharProcsPromise = loadCharProcsPromise.then(function () {\n var glyphStream = charProcs.get(key);\n var operatorList = new _operator_list.OperatorList();\n return type3Evaluator.getOperatorList({\n stream: glyphStream,\n task,\n resources: fontResources,\n operatorList\n }).then(function () {\n charProcOperatorList[key] = operatorList.getIR();\n parentOperatorList.addDependencies(operatorList.dependencies);\n }).catch(function (reason) {\n (0, _util.warn)(`Type3 font resource \"${key}\" is not available.`);\n const dummyOperatorList = new _operator_list.OperatorList();\n charProcOperatorList[key] = dummyOperatorList.getIR();\n });\n });\n }\n\n this.type3Loaded = loadCharProcsPromise.then(function () {\n translatedFont.charProcOperatorList = charProcOperatorList;\n });\n return this.type3Loaded;\n }\n\n}\n\nvar StateManager = function StateManagerClosure() {\n function StateManager(initialState) {\n this.state = initialState;\n this.stateStack = [];\n }\n\n StateManager.prototype = {\n save() {\n var old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n },\n\n restore() {\n var prev = this.stateStack.pop();\n\n if (prev) {\n this.state = prev;\n }\n },\n\n transform(args) {\n this.state.ctm = _util.Util.transform(this.state.ctm, args);\n }\n\n };\n return StateManager;\n}();\n\nvar TextState = function TextStateClosure() {\n function TextState() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.font = null;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.textMatrix = _util.IDENTITY_MATRIX.slice();\n this.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.leading = 0;\n this.textHScale = 1;\n this.textRise = 0;\n }\n\n TextState.prototype = {\n setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n translateTextMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n translateTextLineMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(a, b, c, d, e, f) {\n var font = this.font;\n\n if (!font) {\n return null;\n }\n\n var m = this.textLineMatrix;\n\n if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) {\n return null;\n }\n\n var txDiff = e - m[4],\n tyDiff = f - m[5];\n\n if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) {\n return null;\n }\n\n var tx,\n ty,\n denominator = a * d - b * c;\n\n if (font.vertical) {\n tx = -tyDiff * c / denominator;\n ty = tyDiff * a / denominator;\n } else {\n tx = txDiff * d / denominator;\n ty = -txDiff * b / denominator;\n }\n\n return {\n width: tx,\n height: ty,\n value: font.vertical ? ty : tx\n };\n },\n calcRenderMatrix: function TextState_calcRendeMatrix(ctm) {\n var tsm = [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise];\n return _util.Util.transform(ctm, _util.Util.transform(this.textMatrix, tsm));\n },\n carriageReturn: function TextState_carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n },\n clone: function TextState_clone() {\n var clone = Object.create(this);\n clone.textMatrix = this.textMatrix.slice();\n clone.textLineMatrix = this.textLineMatrix.slice();\n clone.fontMatrix = this.fontMatrix.slice();\n return clone;\n }\n };\n return TextState;\n}();\n\nvar EvalState = function EvalStateClosure() {\n function EvalState() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n }\n\n EvalState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n }\n };\n return EvalState;\n}();\n\nvar EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {\n var getOPMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.w = {\n id: _util.OPS.setLineWidth,\n numArgs: 1,\n variableArgs: false\n };\n t.J = {\n id: _util.OPS.setLineCap,\n numArgs: 1,\n variableArgs: false\n };\n t.j = {\n id: _util.OPS.setLineJoin,\n numArgs: 1,\n variableArgs: false\n };\n t.M = {\n id: _util.OPS.setMiterLimit,\n numArgs: 1,\n variableArgs: false\n };\n t.d = {\n id: _util.OPS.setDash,\n numArgs: 2,\n variableArgs: false\n };\n t.ri = {\n id: _util.OPS.setRenderingIntent,\n numArgs: 1,\n variableArgs: false\n };\n t.i = {\n id: _util.OPS.setFlatness,\n numArgs: 1,\n variableArgs: false\n };\n t.gs = {\n id: _util.OPS.setGState,\n numArgs: 1,\n variableArgs: false\n };\n t.q = {\n id: _util.OPS.save,\n numArgs: 0,\n variableArgs: false\n };\n t.Q = {\n id: _util.OPS.restore,\n numArgs: 0,\n variableArgs: false\n };\n t.cm = {\n id: _util.OPS.transform,\n numArgs: 6,\n variableArgs: false\n };\n t.m = {\n id: _util.OPS.moveTo,\n numArgs: 2,\n variableArgs: false\n };\n t.l = {\n id: _util.OPS.lineTo,\n numArgs: 2,\n variableArgs: false\n };\n t.c = {\n id: _util.OPS.curveTo,\n numArgs: 6,\n variableArgs: false\n };\n t.v = {\n id: _util.OPS.curveTo2,\n numArgs: 4,\n variableArgs: false\n };\n t.y = {\n id: _util.OPS.curveTo3,\n numArgs: 4,\n variableArgs: false\n };\n t.h = {\n id: _util.OPS.closePath,\n numArgs: 0,\n variableArgs: false\n };\n t.re = {\n id: _util.OPS.rectangle,\n numArgs: 4,\n variableArgs: false\n };\n t.S = {\n id: _util.OPS.stroke,\n numArgs: 0,\n variableArgs: false\n };\n t.s = {\n id: _util.OPS.closeStroke,\n numArgs: 0,\n variableArgs: false\n };\n t.f = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t.F = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t[\"f*\"] = {\n id: _util.OPS.eoFill,\n numArgs: 0,\n variableArgs: false\n };\n t.B = {\n id: _util.OPS.fillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t[\"B*\"] = {\n id: _util.OPS.eoFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t.b = {\n id: _util.OPS.closeFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t[\"b*\"] = {\n id: _util.OPS.closeEOFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t.n = {\n id: _util.OPS.endPath,\n numArgs: 0,\n variableArgs: false\n };\n t.W = {\n id: _util.OPS.clip,\n numArgs: 0,\n variableArgs: false\n };\n t[\"W*\"] = {\n id: _util.OPS.eoClip,\n numArgs: 0,\n variableArgs: false\n };\n t.BT = {\n id: _util.OPS.beginText,\n numArgs: 0,\n variableArgs: false\n };\n t.ET = {\n id: _util.OPS.endText,\n numArgs: 0,\n variableArgs: false\n };\n t.Tc = {\n id: _util.OPS.setCharSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t.Tw = {\n id: _util.OPS.setWordSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t.Tz = {\n id: _util.OPS.setHScale,\n numArgs: 1,\n variableArgs: false\n };\n t.TL = {\n id: _util.OPS.setLeading,\n numArgs: 1,\n variableArgs: false\n };\n t.Tf = {\n id: _util.OPS.setFont,\n numArgs: 2,\n variableArgs: false\n };\n t.Tr = {\n id: _util.OPS.setTextRenderingMode,\n numArgs: 1,\n variableArgs: false\n };\n t.Ts = {\n id: _util.OPS.setTextRise,\n numArgs: 1,\n variableArgs: false\n };\n t.Td = {\n id: _util.OPS.moveText,\n numArgs: 2,\n variableArgs: false\n };\n t.TD = {\n id: _util.OPS.setLeadingMoveText,\n numArgs: 2,\n variableArgs: false\n };\n t.Tm = {\n id: _util.OPS.setTextMatrix,\n numArgs: 6,\n variableArgs: false\n };\n t[\"T*\"] = {\n id: _util.OPS.nextLine,\n numArgs: 0,\n variableArgs: false\n };\n t.Tj = {\n id: _util.OPS.showText,\n numArgs: 1,\n variableArgs: false\n };\n t.TJ = {\n id: _util.OPS.showSpacedText,\n numArgs: 1,\n variableArgs: false\n };\n t[\"'\"] = {\n id: _util.OPS.nextLineShowText,\n numArgs: 1,\n variableArgs: false\n };\n t['\"'] = {\n id: _util.OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false\n };\n t.d0 = {\n id: _util.OPS.setCharWidth,\n numArgs: 2,\n variableArgs: false\n };\n t.d1 = {\n id: _util.OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false\n };\n t.CS = {\n id: _util.OPS.setStrokeColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t.cs = {\n id: _util.OPS.setFillColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t.SC = {\n id: _util.OPS.setStrokeColor,\n numArgs: 4,\n variableArgs: true\n };\n t.SCN = {\n id: _util.OPS.setStrokeColorN,\n numArgs: 33,\n variableArgs: true\n };\n t.sc = {\n id: _util.OPS.setFillColor,\n numArgs: 4,\n variableArgs: true\n };\n t.scn = {\n id: _util.OPS.setFillColorN,\n numArgs: 33,\n variableArgs: true\n };\n t.G = {\n id: _util.OPS.setStrokeGray,\n numArgs: 1,\n variableArgs: false\n };\n t.g = {\n id: _util.OPS.setFillGray,\n numArgs: 1,\n variableArgs: false\n };\n t.RG = {\n id: _util.OPS.setStrokeRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t.rg = {\n id: _util.OPS.setFillRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t.K = {\n id: _util.OPS.setStrokeCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t.k = {\n id: _util.OPS.setFillCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t.sh = {\n id: _util.OPS.shadingFill,\n numArgs: 1,\n variableArgs: false\n };\n t.BI = {\n id: _util.OPS.beginInlineImage,\n numArgs: 0,\n variableArgs: false\n };\n t.ID = {\n id: _util.OPS.beginImageData,\n numArgs: 0,\n variableArgs: false\n };\n t.EI = {\n id: _util.OPS.endInlineImage,\n numArgs: 1,\n variableArgs: false\n };\n t.Do = {\n id: _util.OPS.paintXObject,\n numArgs: 1,\n variableArgs: false\n };\n t.MP = {\n id: _util.OPS.markPoint,\n numArgs: 1,\n variableArgs: false\n };\n t.DP = {\n id: _util.OPS.markPointProps,\n numArgs: 2,\n variableArgs: false\n };\n t.BMC = {\n id: _util.OPS.beginMarkedContent,\n numArgs: 1,\n variableArgs: false\n };\n t.BDC = {\n id: _util.OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false\n };\n t.EMC = {\n id: _util.OPS.endMarkedContent,\n numArgs: 0,\n variableArgs: false\n };\n t.BX = {\n id: _util.OPS.beginCompat,\n numArgs: 0,\n variableArgs: false\n };\n t.EX = {\n id: _util.OPS.endCompat,\n numArgs: 0,\n variableArgs: false\n };\n t.BM = null;\n t.BD = null;\n t.true = null;\n t.fa = null;\n t.fal = null;\n t.fals = null;\n t.false = null;\n t.nu = null;\n t.nul = null;\n t.null = null;\n });\n const MAX_INVALID_PATH_OPS = 20;\n\n function EvaluatorPreprocessor(stream, xref, stateManager) {\n this.opMap = getOPMap();\n this.parser = new _parser.Parser({\n lexer: new _parser.Lexer(stream, this.opMap),\n xref\n });\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._numInvalidPathOPS = 0;\n }\n\n EvaluatorPreprocessor.prototype = {\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n },\n\n read: function EvaluatorPreprocessor_read(operation) {\n var args = operation.args;\n\n while (true) {\n var obj = this.parser.getObj();\n\n if (obj instanceof _primitives.Cmd) {\n var cmd = obj.cmd;\n var opSpec = this.opMap[cmd];\n\n if (!opSpec) {\n (0, _util.warn)(`Unknown command \"${cmd}\".`);\n continue;\n }\n\n var fn = opSpec.id;\n var numArgs = opSpec.numArgs;\n var argsLength = args !== null ? args.length : 0;\n\n if (!opSpec.variableArgs) {\n if (argsLength !== numArgs) {\n var nonProcessedArgs = this.nonProcessedArgs;\n\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n\n if (argsLength < numArgs) {\n const partialMsg = `command ${cmd}: expected ${numArgs} args, ` + `but received ${argsLength} args.`;\n\n if (fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath && ++this._numInvalidPathOPS > MAX_INVALID_PATH_OPS) {\n throw new _util.FormatError(`Invalid ${partialMsg}`);\n }\n\n (0, _util.warn)(`Skipping ${partialMsg}`);\n\n if (args !== null) {\n args.length = 0;\n }\n\n continue;\n }\n } else if (argsLength > numArgs) {\n (0, _util.info)(`Command ${cmd}: expected [0, ${numArgs}] args, ` + `but received ${argsLength} args.`);\n }\n\n this.preprocessCommand(fn, args);\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n\n if (obj === _primitives.EOF) {\n return false;\n }\n\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n\n args.push(obj);\n\n if (args.length > 33) {\n throw new _util.FormatError(\"Too many arguments\");\n }\n }\n }\n },\n preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) {\n switch (fn | 0) {\n case _util.OPS.save:\n this.stateManager.save();\n break;\n\n case _util.OPS.restore:\n this.stateManager.restore();\n break;\n\n case _util.OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n };\n return EvaluatorPreprocessor;\n}();\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _parser = __w_pdfjs_require__(11);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar BUILT_IN_CMAPS = [\"Adobe-GB1-UCS2\", \"Adobe-CNS1-UCS2\", \"Adobe-Japan1-UCS2\", \"Adobe-Korea1-UCS2\", \"78-EUC-H\", \"78-EUC-V\", \"78-H\", \"78-RKSJ-H\", \"78-RKSJ-V\", \"78-V\", \"78ms-RKSJ-H\", \"78ms-RKSJ-V\", \"83pv-RKSJ-H\", \"90ms-RKSJ-H\", \"90ms-RKSJ-V\", \"90msp-RKSJ-H\", \"90msp-RKSJ-V\", \"90pv-RKSJ-H\", \"90pv-RKSJ-V\", \"Add-H\", \"Add-RKSJ-H\", \"Add-RKSJ-V\", \"Add-V\", \"Adobe-CNS1-0\", \"Adobe-CNS1-1\", \"Adobe-CNS1-2\", \"Adobe-CNS1-3\", \"Adobe-CNS1-4\", \"Adobe-CNS1-5\", \"Adobe-CNS1-6\", \"Adobe-GB1-0\", \"Adobe-GB1-1\", \"Adobe-GB1-2\", \"Adobe-GB1-3\", \"Adobe-GB1-4\", \"Adobe-GB1-5\", \"Adobe-Japan1-0\", \"Adobe-Japan1-1\", \"Adobe-Japan1-2\", \"Adobe-Japan1-3\", \"Adobe-Japan1-4\", \"Adobe-Japan1-5\", \"Adobe-Japan1-6\", \"Adobe-Korea1-0\", \"Adobe-Korea1-1\", \"Adobe-Korea1-2\", \"B5-H\", \"B5-V\", \"B5pc-H\", \"B5pc-V\", \"CNS-EUC-H\", \"CNS-EUC-V\", \"CNS1-H\", \"CNS1-V\", \"CNS2-H\", \"CNS2-V\", \"ETHK-B5-H\", \"ETHK-B5-V\", \"ETen-B5-H\", \"ETen-B5-V\", \"ETenms-B5-H\", \"ETenms-B5-V\", \"EUC-H\", \"EUC-V\", \"Ext-H\", \"Ext-RKSJ-H\", \"Ext-RKSJ-V\", \"Ext-V\", \"GB-EUC-H\", \"GB-EUC-V\", \"GB-H\", \"GB-V\", \"GBK-EUC-H\", \"GBK-EUC-V\", \"GBK2K-H\", \"GBK2K-V\", \"GBKp-EUC-H\", \"GBKp-EUC-V\", \"GBT-EUC-H\", \"GBT-EUC-V\", \"GBT-H\", \"GBT-V\", \"GBTpc-EUC-H\", \"GBTpc-EUC-V\", \"GBpc-EUC-H\", \"GBpc-EUC-V\", \"H\", \"HKdla-B5-H\", \"HKdla-B5-V\", \"HKdlb-B5-H\", \"HKdlb-B5-V\", \"HKgccs-B5-H\", \"HKgccs-B5-V\", \"HKm314-B5-H\", \"HKm314-B5-V\", \"HKm471-B5-H\", \"HKm471-B5-V\", \"HKscs-B5-H\", \"HKscs-B5-V\", \"Hankaku\", \"Hiragana\", \"KSC-EUC-H\", \"KSC-EUC-V\", \"KSC-H\", \"KSC-Johab-H\", \"KSC-Johab-V\", \"KSC-V\", \"KSCms-UHC-H\", \"KSCms-UHC-HW-H\", \"KSCms-UHC-HW-V\", \"KSCms-UHC-V\", \"KSCpc-EUC-H\", \"KSCpc-EUC-V\", \"Katakana\", \"NWP-H\", \"NWP-V\", \"RKSJ-H\", \"RKSJ-V\", \"Roman\", \"UniCNS-UCS2-H\", \"UniCNS-UCS2-V\", \"UniCNS-UTF16-H\", \"UniCNS-UTF16-V\", \"UniCNS-UTF32-H\", \"UniCNS-UTF32-V\", \"UniCNS-UTF8-H\", \"UniCNS-UTF8-V\", \"UniGB-UCS2-H\", \"UniGB-UCS2-V\", \"UniGB-UTF16-H\", \"UniGB-UTF16-V\", \"UniGB-UTF32-H\", \"UniGB-UTF32-V\", \"UniGB-UTF8-H\", \"UniGB-UTF8-V\", \"UniJIS-UCS2-H\", \"UniJIS-UCS2-HW-H\", \"UniJIS-UCS2-HW-V\", \"UniJIS-UCS2-V\", \"UniJIS-UTF16-H\", \"UniJIS-UTF16-V\", \"UniJIS-UTF32-H\", \"UniJIS-UTF32-V\", \"UniJIS-UTF8-H\", \"UniJIS-UTF8-V\", \"UniJIS2004-UTF16-H\", \"UniJIS2004-UTF16-V\", \"UniJIS2004-UTF32-H\", \"UniJIS2004-UTF32-V\", \"UniJIS2004-UTF8-H\", \"UniJIS2004-UTF8-V\", \"UniJISPro-UCS2-HW-V\", \"UniJISPro-UCS2-V\", \"UniJISPro-UTF8-V\", \"UniJISX0213-UTF32-H\", \"UniJISX0213-UTF32-V\", \"UniJISX02132004-UTF32-H\", \"UniJISX02132004-UTF32-V\", \"UniKS-UCS2-H\", \"UniKS-UCS2-V\", \"UniKS-UTF16-H\", \"UniKS-UTF16-V\", \"UniKS-UTF32-H\", \"UniKS-UTF32-V\", \"UniKS-UTF8-H\", \"UniKS-UTF8-V\", \"V\", \"WP-Symbol\"];\nconst MAX_MAP_RANGE = 2 ** 24 - 1;\n\nclass CMap {\n constructor(builtInCMap = false) {\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\n this._map = [];\n this.name = \"\";\n this.vertical = false;\n this.useCMap = null;\n this.builtInCMap = builtInCMap;\n }\n\n addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n }\n\n mapCidRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n }\n\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n }\n\n mapBfRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n }\n\n var lastByte = dstLow.length - 1;\n\n while (low <= high) {\n this._map[low++] = dstLow;\n dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);\n }\n }\n\n mapBfRangeToArray(low, high, array) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n }\n\n const ii = array.length;\n let i = 0;\n\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n }\n\n mapOne(src, dst) {\n this._map[src] = dst;\n }\n\n lookup(code) {\n return this._map[code];\n }\n\n contains(code) {\n return this._map[code] !== undefined;\n }\n\n forEach(callback) {\n const map = this._map;\n const length = map.length;\n\n if (length <= 0x10000) {\n for (let i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (const i in map) {\n callback(i, map[i]);\n }\n }\n }\n\n charCodeOf(value) {\n const map = this._map;\n\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n\n return -1;\n }\n\n getMap() {\n return this._map;\n }\n\n readCharCode(str, offset, out) {\n let c = 0;\n const codespaceRanges = this.codespaceRanges;\n\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n const codespaceRange = codespaceRanges[n];\n\n for (let k = 0, kk = codespaceRange.length; k < kk;) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n\n out.charcode = 0;\n out.length = 1;\n }\n\n get length() {\n return this._map.length;\n }\n\n get isIdentityCMap() {\n if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n return false;\n }\n\n if (this._map.length !== 0x10000) {\n return false;\n }\n\n for (let i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n\n return true;\n }\n\n}\n\nexports.CMap = CMap;\n\nclass IdentityCMap extends CMap {\n constructor(vertical, n) {\n super();\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n\n mapCidRange(low, high, dstLow) {\n (0, _util.unreachable)(\"should not call mapCidRange\");\n }\n\n mapBfRange(low, high, dstLow) {\n (0, _util.unreachable)(\"should not call mapBfRange\");\n }\n\n mapBfRangeToArray(low, high, array) {\n (0, _util.unreachable)(\"should not call mapBfRangeToArray\");\n }\n\n mapOne(src, dst) {\n (0, _util.unreachable)(\"should not call mapCidOne\");\n }\n\n lookup(code) {\n return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n }\n\n contains(code) {\n return Number.isInteger(code) && code <= 0xffff;\n }\n\n forEach(callback) {\n for (let i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n }\n\n charCodeOf(value) {\n return Number.isInteger(value) && value <= 0xffff ? value : -1;\n }\n\n getMap() {\n const map = new Array(0x10000);\n\n for (let i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n\n return map;\n }\n\n get length() {\n return 0x10000;\n }\n\n get isIdentityCMap() {\n (0, _util.unreachable)(\"should not access .isIdentityCMap\");\n }\n\n}\n\nexports.IdentityCMap = IdentityCMap;\n\nvar BinaryCMapReader = function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n var n = 0;\n\n for (var i = 0; i <= size; i++) {\n n = n << 8 | a[i];\n }\n\n return n >>> 0;\n }\n\n function hexToStr(a, size) {\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n\n return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n }\n\n function addHex(a, b, size) {\n var c = 0;\n\n for (var i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n function incHex(a, size) {\n var c = 1;\n\n for (var i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n var MAX_NUM_SIZE = 16;\n var MAX_ENCODED_NUM_SIZE = 19;\n\n function BinaryCMapStream(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n\n BinaryCMapStream.prototype = {\n readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n\n return this.buffer[this.pos++];\n },\n\n readNumber() {\n var n = 0;\n var last;\n\n do {\n var b = this.readByte();\n\n if (b < 0) {\n throw new _util.FormatError(\"unexpected EOF in bcmap\");\n }\n\n last = !(b & 0x80);\n n = n << 7 | b & 0x7f;\n } while (!last);\n\n return n;\n },\n\n readSigned() {\n var n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n },\n\n readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n },\n\n readHexNumber(num, size) {\n var last;\n var stack = this.tmpBuf,\n sp = 0;\n\n do {\n var b = this.readByte();\n\n if (b < 0) {\n throw new _util.FormatError(\"unexpected EOF in bcmap\");\n }\n\n last = !(b & 0x80);\n stack[sp++] = b & 0x7f;\n } while (!last);\n\n var i = size,\n buffer = 0,\n bufferSize = 0;\n\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer = stack[--sp] << bufferSize | buffer;\n bufferSize += 7;\n }\n\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n },\n\n readHexSigned(num, size) {\n this.readHexNumber(num, size);\n var sign = num[size] & 1 ? 255 : 0;\n var c = 0;\n\n for (var i = 0; i <= size; i++) {\n c = (c & 1) << 8 | num[i];\n num[i] = c >> 1 ^ sign;\n }\n },\n\n readString() {\n var len = this.readNumber();\n var s = \"\";\n\n for (var i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n\n return s;\n }\n\n };\n\n function processBinaryCMap(data, cMap, extend) {\n return new Promise(function (resolve, reject) {\n var stream = new BinaryCMapStream(data);\n var header = stream.readByte();\n cMap.vertical = !!(header & 1);\n var useCMap = null;\n var start = new Uint8Array(MAX_NUM_SIZE);\n var end = new Uint8Array(MAX_NUM_SIZE);\n var char = new Uint8Array(MAX_NUM_SIZE);\n var charCode = new Uint8Array(MAX_NUM_SIZE);\n var tmp = new Uint8Array(MAX_NUM_SIZE);\n var code;\n var b;\n\n while ((b = stream.readByte()) >= 0) {\n var type = b >> 5;\n\n if (type === 7) {\n switch (b & 0x1f) {\n case 0:\n stream.readString();\n break;\n\n case 1:\n useCMap = stream.readString();\n break;\n }\n\n continue;\n }\n\n var sequence = !!(b & 0x10);\n var dataSize = b & 15;\n\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error(\"processBinaryCMap: Invalid dataSize.\");\n }\n\n var ucs2DataSize = 1;\n var subitemsCount = stream.readNumber();\n var i;\n\n switch (type) {\n case 0:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n }\n\n break;\n\n case 1:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber();\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber();\n }\n\n break;\n\n case 2:\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n\n break;\n\n case 3:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n }\n\n break;\n\n case 4:\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n\n break;\n\n case 5:\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n\n break;\n\n default:\n reject(new Error(\"processBinaryCMap: Unknown type: \" + type));\n return;\n }\n }\n\n if (useCMap) {\n resolve(extend(useCMap));\n return;\n }\n\n resolve(cMap);\n });\n }\n\n function BinaryCMapReader() {}\n\n BinaryCMapReader.prototype = {\n process: processBinaryCMap\n };\n return BinaryCMapReader;\n}();\n\nvar CMapFactory = function CMapFactoryClosure() {\n function strToInt(str) {\n var a = 0;\n\n for (var i = 0; i < str.length; i++) {\n a = a << 8 | str.charCodeAt(i);\n }\n\n return a >>> 0;\n }\n\n function expectString(obj) {\n if (!(0, _util.isString)(obj)) {\n throw new _util.FormatError(\"Malformed CMap: expected string.\");\n }\n }\n\n function expectInt(obj) {\n if (!Number.isInteger(obj)) {\n throw new _util.FormatError(\"Malformed CMap: expected int.\");\n }\n }\n\n function parseBfChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endbfchar\")) {\n return;\n }\n\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseBfRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endbfrange\")) {\n return;\n }\n\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n\n if (Number.isInteger(obj) || (0, _util.isString)(obj)) {\n var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if ((0, _primitives.isCmd)(obj, \"[\")) {\n obj = lexer.getObj();\n var array = [];\n\n while (!(0, _primitives.isCmd)(obj, \"]\") && !(0, _primitives.isEOF)(obj)) {\n array.push(obj);\n obj = lexer.getObj();\n }\n\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n\n throw new _util.FormatError(\"Invalid bf range.\");\n }\n\n function parseCidChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endcidchar\")) {\n return;\n }\n\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseCidRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endcidrange\")) {\n return;\n }\n\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n }\n\n function parseCodespaceRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n\n if ((0, _primitives.isCmd)(obj, \"endcodespacerange\")) {\n return;\n }\n\n if (!(0, _util.isString)(obj)) {\n break;\n }\n\n var low = strToInt(obj);\n obj = lexer.getObj();\n\n if (!(0, _util.isString)(obj)) {\n break;\n }\n\n var high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n\n throw new _util.FormatError(\"Invalid codespace range.\");\n }\n\n function parseWMode(cMap, lexer) {\n var obj = lexer.getObj();\n\n if (Number.isInteger(obj)) {\n cMap.vertical = !!obj;\n }\n }\n\n function parseCMapName(cMap, lexer) {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) {\n cMap.name = obj.name;\n }\n }\n\n function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n var previous;\n var embeddedUseCMap;\n\n objLoop: while (true) {\n try {\n var obj = lexer.getObj();\n\n if ((0, _primitives.isEOF)(obj)) {\n break;\n } else if ((0, _primitives.isName)(obj)) {\n if (obj.name === \"WMode\") {\n parseWMode(cMap, lexer);\n } else if (obj.name === \"CMapName\") {\n parseCMapName(cMap, lexer);\n }\n\n previous = obj;\n } else if ((0, _primitives.isCmd)(obj)) {\n switch (obj.cmd) {\n case \"endcmap\":\n break objLoop;\n\n case \"usecmap\":\n if ((0, _primitives.isName)(previous)) {\n embeddedUseCMap = previous.name;\n }\n\n break;\n\n case \"begincodespacerange\":\n parseCodespaceRange(cMap, lexer);\n break;\n\n case \"beginbfchar\":\n parseBfChar(cMap, lexer);\n break;\n\n case \"begincidchar\":\n parseCidChar(cMap, lexer);\n break;\n\n case \"beginbfrange\":\n parseBfRange(cMap, lexer);\n break;\n\n case \"begincidrange\":\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n (0, _util.warn)(\"Invalid cMap data: \" + ex);\n continue;\n }\n }\n\n if (!useCMap && embeddedUseCMap) {\n useCMap = embeddedUseCMap;\n }\n\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n\n return Promise.resolve(cMap);\n }\n\n function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {\n cMap.useCMap = newCMap;\n\n if (cMap.numCodespaceRanges === 0) {\n var useCodespaceRanges = cMap.useCMap.codespaceRanges;\n\n for (var i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\n }\n });\n return cMap;\n });\n }\n\n function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === \"Identity-H\") {\n return Promise.resolve(new IdentityCMap(false, 2));\n } else if (name === \"Identity-V\") {\n return Promise.resolve(new IdentityCMap(true, 2));\n }\n\n if (!BUILT_IN_CMAPS.includes(name)) {\n return Promise.reject(new Error(\"Unknown CMap name: \" + name));\n }\n\n if (!fetchBuiltInCMap) {\n return Promise.reject(new Error(\"Built-in CMap parameters are not provided.\"));\n }\n\n return fetchBuiltInCMap(name).then(function (data) {\n var cMapData = data.cMapData,\n compressionType = data.compressionType;\n var cMap = new CMap(true);\n\n if (compressionType === _util.CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n\n if (compressionType === _util.CMapCompressionType.NONE) {\n var lexer = new _parser.Lexer(new _stream.Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n\n return Promise.reject(new Error(\"TODO: Only BINARY/NONE CMap compression is currently supported.\"));\n });\n }\n\n return {\n async create(params) {\n var encoding = params.encoding;\n var fetchBuiltInCMap = params.fetchBuiltInCMap;\n var useCMap = params.useCMap;\n\n if ((0, _primitives.isName)(encoding)) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if ((0, _primitives.isStream)(encoding)) {\n var cMap = new CMap();\n var lexer = new _parser.Lexer(encoding);\n return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) {\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n\n return parsedCMap;\n });\n }\n\n throw new Error(\"Encoding required.\");\n }\n\n };\n}();\n\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFontType = getFontType;\nexports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.SEAC_ANALYSIS_ENABLED = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(30);\n\nvar _glyphlist = __w_pdfjs_require__(33);\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar _standard_fonts = __w_pdfjs_require__(34);\n\nvar _unicode = __w_pdfjs_require__(35);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _font_renderer = __w_pdfjs_require__(36);\n\nvar _cmap = __w_pdfjs_require__(28);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _type1_parser = __w_pdfjs_require__(37);\n\nconst PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]];\nvar PDF_GLYPH_SPACE_UNITS = 1000;\nvar SEAC_ANALYSIS_ENABLED = true;\nexports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\nconst EXPORT_DATA_PROPERTIES = [\"ascent\", \"bbox\", \"black\", \"bold\", \"charProcOperatorList\", \"composite\", \"data\", \"defaultVMetrics\", \"defaultWidth\", \"descent\", \"fallbackName\", \"fontMatrix\", \"fontType\", \"isMonospace\", \"isSerifFont\", \"isType3Font\", \"italic\", \"loadedName\", \"mimetype\", \"missingFile\", \"name\", \"remeasure\", \"subtype\", \"type\", \"vertical\"];\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\"cMap\", \"defaultEncoding\", \"differences\", \"isSymbolicFont\", \"seacMap\", \"toFontChar\", \"toUnicode\", \"vmetrics\", \"widths\"];\nvar FontFlags = {\n FixedPitch: 1,\n Serif: 2,\n Symbolic: 4,\n Script: 8,\n Nonsymbolic: 32,\n Italic: 64,\n AllCap: 65536,\n SmallCap: 131072,\n ForceBold: 262144\n};\nexports.FontFlags = FontFlags;\nvar MacStandardGlyphOrdering = [\".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\", \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\", \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\", \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n\n if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n\n var scale = 0.001 / properties.fontMatrix[0];\n var glyphsWidths = properties.widths;\n\n for (var glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n\n properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n return;\n }\n\n if (properties.hasEncoding) {\n return;\n }\n\n if (builtInEncoding === properties.defaultEncoding) {\n return;\n }\n\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n\n var toUnicode = [],\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n for (var charCode in builtInEncoding) {\n var glyphName = builtInEncoding[charCode];\n var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n\n properties.toUnicode.amend(toUnicode);\n}\n\nfunction getFontType(type, subtype) {\n switch (type) {\n case \"Type1\":\n return subtype === \"Type1C\" ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n\n case \"CIDFontType0\":\n return subtype === \"CIDFontType0C\" ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n\n case \"OpenType\":\n return _util.FontType.OPENTYPE;\n\n case \"TrueType\":\n return _util.FontType.TRUETYPE;\n\n case \"CIDFontType2\":\n return _util.FontType.CIDFONTTYPE2;\n\n case \"MMType1\":\n return _util.FontType.MMTYPE1;\n\n case \"Type0\":\n return _util.FontType.TYPE0;\n\n default:\n return _util.FontType.UNKNOWN;\n }\n}\n\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n\n var unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n for (var key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n\n (0, _util.info)(\"Unable to recover a standard glyph name for: \" + name);\n return name;\n}\n\nvar Glyph = function GlyphClosure() {\n function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n this.fontChar = fontChar;\n this.unicode = unicode;\n this.accent = accent;\n this.width = width;\n this.vmetric = vmetric;\n this.operatorListId = operatorListId;\n this.isSpace = isSpace;\n this.isInFont = isInFont;\n }\n\n Glyph.prototype.matchesForCache = function (fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n return this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont;\n };\n\n return Glyph;\n}();\n\nvar ToUnicodeMap = function ToUnicodeMapClosure() {\n function ToUnicodeMap(cmap = []) {\n this._map = cmap;\n }\n\n ToUnicodeMap.prototype = {\n get length() {\n return this._map.length;\n },\n\n forEach(callback) {\n for (var charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n },\n\n has(i) {\n return this._map[i] !== undefined;\n },\n\n get(i) {\n return this._map[i];\n },\n\n charCodeOf(value) {\n const map = this._map;\n\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n\n return -1;\n },\n\n amend(map) {\n for (var charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n\n };\n return ToUnicodeMap;\n}();\n\nexports.ToUnicodeMap = ToUnicodeMap;\n\nvar IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() {\n function IdentityToUnicodeMap(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n\n IdentityToUnicodeMap.prototype = {\n get length() {\n return this.lastChar + 1 - this.firstChar;\n },\n\n forEach(callback) {\n for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n },\n\n has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n },\n\n get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n\n return undefined;\n },\n\n charCodeOf(v) {\n return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n },\n\n amend(map) {\n (0, _util.unreachable)(\"Should not call amend()\");\n }\n\n };\n return IdentityToUnicodeMap;\n}();\n\nexports.IdentityToUnicodeMap = IdentityToUnicodeMap;\n\nvar OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() {\n function writeInt16(dest, offset, num) {\n dest[offset] = num >> 8 & 0xff;\n dest[offset + 1] = num & 0xff;\n }\n\n function writeInt32(dest, offset, num) {\n dest[offset] = num >> 24 & 0xff;\n dest[offset + 1] = num >> 16 & 0xff;\n dest[offset + 2] = num >> 8 & 0xff;\n dest[offset + 3] = num & 0xff;\n }\n\n function writeData(dest, offset, data) {\n var i, ii;\n\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === \"string\") {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xff;\n }\n } else {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xff;\n }\n }\n }\n\n function OpenTypeFileBuilder(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n\n OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) {\n var maxPower2 = 1,\n log2 = 0;\n\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n\n var searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange\n };\n };\n\n var OTF_HEADER_SIZE = 12;\n var OTF_TABLE_ENTRY_SIZE = 16;\n OpenTypeFileBuilder.prototype = {\n toArray: function OpenTypeFileBuilder_toArray() {\n var sfnt = this.sfnt;\n var tables = this.tables;\n var tablesNames = Object.keys(tables);\n tablesNames.sort();\n var numTables = tablesNames.length;\n var i, j, jj, table, tableName;\n var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n var tableOffsets = [offset];\n\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n var paddedLength = (table.length + 3 & ~3) >>> 0;\n offset += paddedLength;\n tableOffsets.push(offset);\n }\n\n var file = new Uint8Array(offset);\n\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n\n if (sfnt === \"true\") {\n sfnt = (0, _util.string32)(0x00010000);\n }\n\n file[0] = sfnt.charCodeAt(0) & 0xff;\n file[1] = sfnt.charCodeAt(1) & 0xff;\n file[2] = sfnt.charCodeAt(2) & 0xff;\n file[3] = sfnt.charCodeAt(3) & 0xff;\n writeInt16(file, 4, numTables);\n var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n writeInt16(file, 6, searchParams.range);\n writeInt16(file, 8, searchParams.entry);\n writeInt16(file, 10, searchParams.rangeShift);\n offset = OTF_HEADER_SIZE;\n\n for (i = 0; i < numTables; i++) {\n tableName = tablesNames[i];\n file[offset] = tableName.charCodeAt(0) & 0xff;\n file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n var checksum = 0;\n\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n var quad = (0, _core_utils.readUint32)(file, j);\n checksum = checksum + quad >>> 0;\n }\n\n writeInt32(file, offset + 4, checksum);\n writeInt32(file, offset + 8, tableOffsets[i]);\n writeInt32(file, offset + 12, tables[tableName].length);\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n\n return file;\n },\n addTable: function OpenTypeFileBuilder_addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error(\"Table \" + tag + \" already exists\");\n }\n\n this.tables[tag] = data;\n }\n };\n return OpenTypeFileBuilder;\n}();\n\nvar Font = function FontClosure() {\n function Font(name, file, properties) {\n var charCode;\n this.name = name;\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.missingFile = false;\n this.glyphCache = Object.create(null);\n this.isSerifFont = !!(properties.flags & FontFlags.Serif);\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n var type = properties.type;\n var subtype = properties.subtype;\n this.type = type;\n this.subtype = subtype;\n let fallbackName = \"sans-serif\";\n\n if (this.isMonospace) {\n fallbackName = \"monospace\";\n } else if (this.isSerifFont) {\n fallbackName = \"serif\";\n }\n\n this.fallbackName = fallbackName;\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.cMap = properties.cMap;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n this.toUnicode = properties.toUnicode;\n this.fallbackToUnicode = properties.fallbackToUnicode || new ToUnicodeMap();\n this.toFontChar = [];\n\n if (properties.type === \"Type3\") {\n for (charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n\n this.fontType = _util.FontType.TYPE3;\n return;\n }\n\n this.cidEncoding = properties.cidEncoding;\n this.vertical = !!properties.vertical;\n\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n\n if (!file || file.isEmpty) {\n if (file) {\n (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n }\n\n this.fallbackToSystemFont();\n return;\n }\n\n [type, subtype] = getFontFileType(file, properties);\n\n if (type !== this.type || subtype !== this.subtype) {\n (0, _util.info)(\"Inconsistent font file Type/SubType, expected: \" + `${this.type}/${this.subtype} but found: ${type}/${subtype}.`);\n }\n\n try {\n var data;\n\n switch (type) {\n case \"MMType1\":\n (0, _util.info)(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n\n case \"Type1\":\n case \"CIDFontType0\":\n this.mimetype = \"font/opentype\";\n var cff = subtype === \"Type1C\" || subtype === \"CIDFontType0C\" ? new CFFFont(file, properties) : new Type1Font(name, file, properties);\n adjustWidths(properties);\n data = this.convert(name, cff, properties);\n break;\n\n case \"OpenType\":\n case \"TrueType\":\n case \"CIDFontType2\":\n this.mimetype = \"font/opentype\";\n data = this.checkAndRepair(name, file, properties);\n\n if (this.isOpenType) {\n adjustWidths(properties);\n type = \"OpenType\";\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Font ${type} is not supported`);\n }\n } catch (e) {\n (0, _util.warn)(e);\n this.fallbackToSystemFont();\n return;\n }\n\n this.data = data;\n this.fontType = getFontType(type, subtype);\n this.fontMatrix = properties.fontMatrix;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.toUnicode = properties.toUnicode;\n this.seacMap = properties.seacMap;\n }\n\n Font.getFontID = function () {\n var ID = 1;\n return function Font_getFontID() {\n return String(ID++);\n };\n }();\n\n function int16(b0, b1) {\n return (b0 << 8) + b1;\n }\n\n function writeSignedInt16(bytes, index, value) {\n bytes[index + 1] = value;\n bytes[index] = value >>> 8;\n }\n\n function signedInt16(b0, b1) {\n var value = (b0 << 8) + b1;\n return value & 1 << 15 ? value - 0x10000 : value;\n }\n\n function int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n function string16(value) {\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n\n function safeString16(value) {\n if (value > 0x7fff) {\n value = 0x7fff;\n } else if (value < -0x8000) {\n value = -0x8000;\n }\n\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n\n function isTrueTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _core_utils.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === \"true\";\n }\n\n function isTrueTypeCollectionFile(file) {\n const header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === \"ttcf\";\n }\n\n function isOpenTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === \"OTTO\";\n }\n\n function isType1File(file) {\n var header = file.peekBytes(2);\n\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n\n return false;\n }\n\n function isCFFFile(file) {\n const header = file.peekBytes(4);\n\n if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) {\n return true;\n }\n\n return false;\n }\n\n function getFontFileType(file, {\n type,\n subtype,\n composite\n }) {\n let fileType, fileSubtype;\n\n if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"TrueType\";\n }\n } else if (isOpenTypeFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"OpenType\";\n }\n } else if (isType1File(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n }\n } else if (isCFFFile(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n fileSubtype = \"CIDFontType0C\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n fileSubtype = \"Type1C\";\n }\n } else {\n (0, _util.warn)(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n fileType = type;\n fileSubtype = subtype;\n }\n\n return [fileType, fileSubtype];\n }\n\n function buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n var toFontChar = [],\n unicode;\n\n for (var i = 0, ii = encoding.length; i < ii; i++) {\n unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n\n for (var charCode in differences) {\n unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n\n return toFontChar;\n }\n\n function adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n var newMap = Object.create(null);\n var toFontChar = [];\n var privateUseAreaIndex = 0;\n var nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n var privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n\n for (var originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n var glyphId = charCodeToGlyphId[originalCharCode];\n\n if (!hasGlyph(glyphId)) {\n continue;\n }\n\n if (nextAvailableFontCharCode > privateUseOffetEnd) {\n privateUseAreaIndex++;\n\n if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n (0, _util.warn)(\"Ran out of space in font private use area.\");\n break;\n }\n\n nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n }\n\n var fontCharCode = nextAvailableFontCharCode++;\n\n if (glyphId === 0) {\n glyphId = newGlyphZeroId;\n }\n\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n }\n\n return {\n toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode\n };\n }\n\n function getRanges(glyphs, numGlyphs) {\n var codes = [];\n\n for (var charCode in glyphs) {\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n\n codes.push({\n fontCharCode: charCode | 0,\n glyphId: glyphs[charCode]\n });\n }\n\n if (codes.length === 0) {\n codes.push({\n fontCharCode: 0,\n glyphId: 0\n });\n }\n\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n var ranges = [];\n var length = codes.length;\n\n for (var n = 0; n < length;) {\n var start = codes[n].fontCharCode;\n var codeIndices = [codes[n].glyphId];\n ++n;\n var end = start;\n\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n\n if (end === 0xffff) {\n break;\n }\n }\n\n ranges.push([start, end, codeIndices]);\n }\n\n return ranges;\n }\n\n function createCmapTable(glyphs, numGlyphs) {\n var ranges = getRanges(glyphs, numGlyphs);\n var numTables = ranges[ranges.length - 1][1] > 0xffff ? 2 : 1;\n var cmap = \"\\x00\\x00\" + string16(numTables) + \"\\x00\\x03\" + \"\\x00\\x01\" + (0, _util.string32)(4 + numTables * 8);\n var i, ii, j, jj;\n\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xffff) {\n break;\n }\n }\n\n var bmpLength = i + 1;\n\n if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n ranges[i][1] = 0xfffe;\n }\n\n var trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n var segCount = bmpLength + trailingRangesCount;\n var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n var startCount = \"\";\n var endCount = \"\";\n var idDeltas = \"\";\n var idRangeOffsets = \"\";\n var glyphsIds = \"\";\n var bias = 0;\n var range, start, end, codes;\n\n for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n var contiguous = true;\n\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n\n if (!contiguous) {\n var offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\n\n for (j = 0, jj = codes.length; j < jj; ++j) {\n glyphsIds += string16(codes[j]);\n }\n } else {\n var startCode = codes[0];\n idDeltas += string16(startCode - start & 0xffff);\n idRangeOffsets += string16(0);\n }\n }\n\n if (trailingRangesCount > 0) {\n endCount += \"\\xFF\\xFF\";\n startCount += \"\\xFF\\xFF\";\n idDeltas += \"\\x00\\x01\";\n idRangeOffsets += \"\\x00\\x00\";\n }\n\n var format314 = \"\\x00\\x00\" + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + \"\\x00\\x00\" + startCount + idDeltas + idRangeOffsets + glyphsIds;\n var format31012 = \"\";\n var header31012 = \"\";\n\n if (numTables > 1) {\n cmap += \"\\x00\\x03\" + \"\\x00\\x0A\" + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n format31012 = \"\";\n\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n var code = codes[0];\n\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n start = end + 1;\n code = codes[j];\n }\n }\n\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\n }\n\n header31012 = \"\\x00\\x0C\" + \"\\x00\\x00\" + (0, _util.string32)(format31012.length + 16) + \"\\x00\\x00\\x00\\x00\" + (0, _util.string32)(format31012.length / 12);\n }\n\n return cmap + \"\\x00\\x04\" + string16(format314.length + 4) + format314 + header31012 + format31012;\n }\n\n function validateOS2Table(os2, file) {\n file.pos = (file.start || 0) + os2.offset;\n var version = file.getUint16();\n file.skip(60);\n var selection = file.getUint16();\n\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n\n var firstChar = file.getUint16();\n var lastChar = file.getUint16();\n\n if (firstChar > lastChar) {\n return false;\n }\n\n file.skip(6);\n var usWinAscent = file.getUint16();\n\n if (usWinAscent === 0) {\n return false;\n }\n\n os2.data[8] = os2.data[9] = 0;\n return true;\n }\n\n function createOS2Table(properties, charstrings, override) {\n override = override || {\n unitsPerEm: 0,\n yMax: 0,\n yMin: 0,\n ascent: 0,\n descent: 0\n };\n var ulUnicodeRange1 = 0;\n var ulUnicodeRange2 = 0;\n var ulUnicodeRange3 = 0;\n var ulUnicodeRange4 = 0;\n var firstCharIndex = null;\n var lastCharIndex = 0;\n\n if (charstrings) {\n for (var code in charstrings) {\n code |= 0;\n\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n\n var position = (0, _unicode.getUnicodeRangeFor)(code);\n\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << position - 32;\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << position - 64;\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << position - 96;\n } else {\n throw new _util.FormatError(\"Unicode ranges Bits > 123 are reserved for internal usage\");\n }\n }\n\n if (lastCharIndex > 0xffff) {\n lastCharIndex = 0xffff;\n }\n } else {\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n\n var bbox = properties.bbox || [0, 0, 0, 0];\n var unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n var typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n var typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent;\n }\n\n var winAscent = override.yMax || typoAscent;\n var winDescent = -override.yMin || -typoDescent;\n return \"\\x00\\x03\" + \"\\x02\\x24\" + \"\\x01\\xF4\" + \"\\x00\\x05\" + \"\\x00\\x00\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x00\\x8C\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x01\\xDF\" + \"\\x00\\x31\" + \"\\x01\\x02\" + \"\\x00\\x00\" + \"\\x00\\x00\\x06\" + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + \"\\x00\\x00\\x00\\x00\\x00\\x00\" + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + \"\\x2A\\x32\\x31\\x2A\" + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + \"\\x00\\x64\" + string16(winAscent) + string16(winDescent) + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + \"\\x00\\x03\";\n }\n\n function createPostTable(properties) {\n var angle = Math.floor(properties.italicAngle * 2 ** 16);\n return \"\\x00\\x03\\x00\\x00\" + (0, _util.string32)(angle) + \"\\x00\\x00\" + \"\\x00\\x00\" + (0, _util.string32)(properties.fixedPitch) + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\";\n }\n\n function createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []];\n }\n\n var strings = [proto[0][0] || \"Original licence\", proto[0][1] || name, proto[0][2] || \"Unknown\", proto[0][3] || \"uniqueID\", proto[0][4] || name, proto[0][5] || \"Version 0.11\", proto[0][6] || \"\", proto[0][7] || \"Unknown\", proto[0][8] || \"Unknown\", proto[0][9] || \"Unknown\"];\n var stringsUnicode = [];\n var i, ii, j, jj, str;\n\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n var strBufUnicode = [];\n\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n\n stringsUnicode.push(strBufUnicode.join(\"\"));\n }\n\n var names = [strings, stringsUnicode];\n var platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n var encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n var languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n var namesRecordCount = strings.length * platforms.length;\n var nameTable = \"\\x00\\x00\" + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6);\n var strOffset = 0;\n\n for (i = 0, ii = platforms.length; i < ii; i++) {\n var strs = names[i];\n\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n\n nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n return nameTable;\n }\n\n Font.prototype = {\n name: null,\n font: null,\n mimetype: null,\n disableFontFace: false,\n\n get renderer() {\n var renderer = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n\n return (0, _util.shadow)(this, \"renderer\", renderer);\n },\n\n exportData(extraProperties = false) {\n const exportDataProperties = extraProperties ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES] : EXPORT_DATA_PROPERTIES;\n const data = Object.create(null);\n let property, value;\n\n for (property of exportDataProperties) {\n value = this[property];\n\n if (value !== undefined) {\n data[property] = value;\n }\n }\n\n return data;\n },\n\n fallbackToSystemFont: function Font_fallbackToSystemFont() {\n this.missingFile = true;\n var name = this.name;\n var type = this.type;\n var subtype = this.subtype;\n let fontName = name.replace(/[,_]/g, \"-\").replace(/\\s/g, \"\");\n var stdFontMap = (0, _standard_fonts.getStdFontMap)(),\n nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n this.black = name.search(/Black/g) !== -1;\n this.remeasure = Object.keys(this.widths).length > 0;\n\n if (isStandardFont && type === \"CIDFontType2\" && this.cidEncoding.startsWith(\"Identity-\")) {\n const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n const map = [];\n\n for (const charCode in GlyphMapForStandardFonts) {\n map[+charCode] = GlyphMapForStandardFonts[charCode];\n }\n\n if (/Arial-?Black/i.test(name)) {\n var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)();\n\n for (const charCode in SupplementalGlyphMapForArialBlack) {\n map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];\n }\n } else if (/Calibri/i.test(name)) {\n const SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)();\n\n for (const charCode in SupplementalGlyphMapForCalibri) {\n map[+charCode] = SupplementalGlyphMapForCalibri[charCode];\n }\n }\n\n var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap;\n\n if (!isIdentityUnicode) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else if (/Dingbats/i.test(fontName)) {\n if (/Wingdings/i.test(name)) {\n (0, _util.warn)(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n }\n\n this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences);\n } else if (isStandardFont) {\n this.toFontChar = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else {\n const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n const map = [];\n this.toUnicode.forEach((charCode, unicodeCharCode) => {\n if (!this.composite) {\n var glyphName = this.differences[charCode] || this.defaultEncoding[charCode];\n const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n\n map[+charCode] = unicodeCharCode;\n });\n\n if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n if (/Verdana/i.test(name)) {\n const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n\n for (const charCode in GlyphMapForStandardFonts) {\n map[+charCode] = GlyphMapForStandardFonts[charCode];\n }\n }\n }\n\n this.toFontChar = map;\n }\n\n this.loadedName = fontName.split(\"-\")[0];\n this.fontType = getFontType(type, subtype);\n },\n checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n const VALID_TABLES = [\"OS/2\", \"cmap\", \"head\", \"hhea\", \"hmtx\", \"maxp\", \"name\", \"post\", \"loca\", \"glyf\", \"fpgm\", \"prep\", \"cvt \", \"CFF \"];\n\n function readTables(file, numTables) {\n const tables = Object.create(null);\n tables[\"OS/2\"] = null;\n tables.cmap = null;\n tables.head = null;\n tables.hhea = null;\n tables.hmtx = null;\n tables.maxp = null;\n tables.name = null;\n tables.post = null;\n\n for (let i = 0; i < numTables; i++) {\n const table = readTableEntry(file);\n\n if (!VALID_TABLES.includes(table.tag)) {\n continue;\n }\n\n if (table.length === 0) {\n continue;\n }\n\n tables[table.tag] = table;\n }\n\n return tables;\n }\n\n function readTableEntry(file) {\n var tag = (0, _util.bytesToString)(file.getBytes(4));\n var checksum = file.getInt32() >>> 0;\n var offset = file.getInt32() >>> 0;\n var length = file.getInt32() >>> 0;\n var previousPosition = file.pos;\n file.pos = file.start ? file.start : 0;\n file.skip(offset);\n var data = file.getBytes(length);\n file.pos = previousPosition;\n\n if (tag === \"head\") {\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20;\n }\n\n return {\n tag,\n checksum,\n length,\n offset,\n data\n };\n }\n\n function readOpenTypeHeader(ttf) {\n return {\n version: (0, _util.bytesToString)(ttf.getBytes(4)),\n numTables: ttf.getUint16(),\n searchRange: ttf.getUint16(),\n entrySelector: ttf.getUint16(),\n rangeShift: ttf.getUint16()\n };\n }\n\n function readTrueTypeCollectionHeader(ttc) {\n const ttcTag = (0, _util.bytesToString)(ttc.getBytes(4));\n (0, _util.assert)(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n const majorVersion = ttc.getUint16();\n const minorVersion = ttc.getUint16();\n const numFonts = ttc.getInt32() >>> 0;\n const offsetTable = [];\n\n for (let i = 0; i < numFonts; i++) {\n offsetTable.push(ttc.getInt32() >>> 0);\n }\n\n const header = {\n ttcTag,\n majorVersion,\n minorVersion,\n numFonts,\n offsetTable\n };\n\n switch (majorVersion) {\n case 1:\n return header;\n\n case 2:\n header.dsigTag = ttc.getInt32() >>> 0;\n header.dsigLength = ttc.getInt32() >>> 0;\n header.dsigOffset = ttc.getInt32() >>> 0;\n return header;\n }\n\n throw new _util.FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`);\n }\n\n function readTrueTypeCollectionData(ttc, fontName) {\n const {\n numFonts,\n offsetTable\n } = readTrueTypeCollectionHeader(ttc);\n\n for (let i = 0; i < numFonts; i++) {\n ttc.pos = (ttc.start || 0) + offsetTable[i];\n const potentialHeader = readOpenTypeHeader(ttc);\n const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n if (!potentialTables.name) {\n throw new _util.FormatError('TrueType Collection font must contain a \"name\" table.');\n }\n\n const nameTable = readNameTable(potentialTables.name);\n\n for (let j = 0, jj = nameTable.length; j < jj; j++) {\n for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n const nameEntry = nameTable[j][k];\n\n if (nameEntry && nameEntry.replace(/\\s/g, \"\") === fontName) {\n return {\n header: potentialHeader,\n tables: potentialTables\n };\n }\n }\n }\n }\n\n throw new _util.FormatError(`TrueType Collection does not contain \"${fontName}\" font.`);\n }\n\n function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n (0, _util.warn)(\"No cmap table available.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n\n var segment;\n var start = (file.start ? file.start : 0) + cmap.offset;\n file.pos = start;\n file.skip(2);\n var numTables = file.getUint16();\n var potentialTable;\n var canBreak = false;\n\n for (var i = 0; i < numTables; i++) {\n var platformId = file.getUint16();\n var encodingId = file.getUint16();\n var offset = file.getInt32() >>> 0;\n var useTable = false;\n\n if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n continue;\n }\n\n if (platformId === 0 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n useTable = true;\n\n if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n canBreak = true;\n }\n\n if (useTable) {\n potentialTable = {\n platformId,\n encodingId,\n offset\n };\n }\n\n if (canBreak) {\n break;\n }\n }\n\n if (potentialTable) {\n file.pos = start + potentialTable.offset;\n }\n\n if (!potentialTable || file.peekByte() === -1) {\n (0, _util.warn)(\"Could not find a preferred cmap table.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n\n var format = file.getUint16();\n file.skip(2 + 2);\n var hasShortCmap = false;\n var mappings = [];\n var j, glyphId;\n\n if (format === 0) {\n for (j = 0; j < 256; j++) {\n var index = file.getByte();\n\n if (!index) {\n continue;\n }\n\n mappings.push({\n charCode: j,\n glyphId: index\n });\n }\n\n hasShortCmap = true;\n } else if (format === 4) {\n var segCount = file.getUint16() >> 1;\n file.skip(6);\n var segIndex,\n segments = [];\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({\n end: file.getUint16()\n });\n }\n\n file.skip(2);\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = file.getUint16();\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = file.getUint16();\n }\n\n var offsetsCount = 0;\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n var rangeOffset = file.getUint16();\n\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\n }\n\n var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n segment.offsetIndex = offsetIndex;\n offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n }\n\n var offsets = [];\n\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(file.getUint16());\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n start = segment.start;\n var end = segment.end;\n var delta = segment.delta;\n offsetIndex = segment.offsetIndex;\n\n for (j = start; j <= end; j++) {\n if (j === 0xffff) {\n continue;\n }\n\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = glyphId + delta & 0xffff;\n mappings.push({\n charCode: j,\n glyphId\n });\n }\n }\n } else if (format === 6) {\n var firstCode = file.getUint16();\n var entryCount = file.getUint16();\n\n for (j = 0; j < entryCount; j++) {\n glyphId = file.getUint16();\n var charCode = firstCode + j;\n mappings.push({\n charCode,\n glyphId\n });\n }\n } else {\n (0, _util.warn)(\"cmap table has unsupported format: \" + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n\n for (i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings,\n hasShortCmap\n };\n }\n\n function sanitizeMetrics(file, header, metrics, numGlyphs, dupFirstEntry) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n\n return;\n }\n\n file.pos = (file.start ? file.start : 0) + header.offset;\n file.pos += 4;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 2;\n file.pos += 8;\n file.pos += 2;\n var numOfMetrics = file.getUint16();\n\n if (numOfMetrics > numGlyphs) {\n (0, _util.info)(\"The numOfMetrics (\" + numOfMetrics + \") should not be \" + \"greater than the numGlyphs (\" + numGlyphs + \")\");\n numOfMetrics = numGlyphs;\n header.data[34] = (numOfMetrics & 0xff00) >> 8;\n header.data[35] = numOfMetrics & 0x00ff;\n }\n\n var numOfSidebearings = numGlyphs - numOfMetrics;\n var numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n\n if (numMissing > 0) {\n var entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n\n if (dupFirstEntry) {\n entries[metrics.length] = metrics.data[2];\n entries[metrics.length + 1] = metrics.data[3];\n }\n\n metrics.data = entries;\n }\n }\n\n function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n var glyphProfile = {\n length: 0,\n sizeOfInstructions: 0\n };\n\n if (sourceEnd - sourceStart <= 12) {\n return glyphProfile;\n }\n\n var glyf = source.subarray(sourceStart, sourceEnd);\n var contoursCount = signedInt16(glyf[0], glyf[1]);\n\n if (contoursCount < 0) {\n contoursCount = -1;\n writeSignedInt16(glyf, 0, contoursCount);\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n var i,\n j = 10,\n flagsCount = 0;\n\n for (i = 0; i < contoursCount; i++) {\n var endPoint = glyf[j] << 8 | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n\n var instructionsStart = j;\n var instructionsLength = glyf[j] << 8 | glyf[j + 1];\n glyphProfile.sizeOfInstructions = instructionsLength;\n j += 2 + instructionsLength;\n var instructionsEnd = j;\n var coordinatesLength = 0;\n\n for (i = 0; i < flagsCount; i++) {\n var flag = glyf[j++];\n\n if (flag & 0xc0) {\n glyf[j - 1] = flag & 0x3f;\n }\n\n let xLength = 2;\n\n if (flag & 2) {\n xLength = 1;\n } else if (flag & 16) {\n xLength = 0;\n }\n\n let yLength = 2;\n\n if (flag & 4) {\n yLength = 1;\n } else if (flag & 32) {\n yLength = 0;\n }\n\n const xyLength = xLength + yLength;\n coordinatesLength += xyLength;\n\n if (flag & 8) {\n var repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n\n if (coordinatesLength === 0) {\n return glyphProfile;\n }\n\n var glyphDataLength = j + coordinatesLength;\n\n if (glyphDataLength > glyf.length) {\n return glyphProfile;\n }\n\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n glyphDataLength -= instructionsLength;\n\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n }\n\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n function sanitizeHead(head, numGlyphs, locaLength) {\n var data = head.data;\n var version = int32(data[0], data[1], data[2], data[3]);\n\n if (version >> 16 !== 1) {\n (0, _util.info)(\"Attempting to fix invalid version in head table: \" + version);\n data[0] = 0;\n data[1] = 1;\n data[2] = 0;\n data[3] = 0;\n }\n\n var indexToLocFormat = int16(data[50], data[51]);\n\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n (0, _util.info)(\"Attempting to fix invalid indexToLocFormat in head table: \" + indexToLocFormat);\n var numGlyphsPlusOne = numGlyphs + 1;\n\n if (locaLength === numGlyphsPlusOne << 1) {\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new _util.FormatError(\"Could not fix indexToLocFormat: \" + indexToLocFormat);\n }\n }\n }\n\n function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) {\n var itemSize, itemDecode, itemEncode;\n\n if (isGlyphLocationsLong) {\n itemSize = 4;\n\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = value >>> 24 & 0xff;\n data[offset + 1] = value >> 16 & 0xff;\n data[offset + 2] = value >> 8 & 0xff;\n data[offset + 3] = value & 0xff;\n };\n } else {\n itemSize = 2;\n\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = value >> 9 & 0xff;\n data[offset + 1] = value >> 1 & 0xff;\n };\n }\n\n var numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n var locaDataSize = itemSize * (1 + numGlyphsOut);\n var locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n var oldGlyfData = glyf.data;\n var oldGlyfDataLength = oldGlyfData.length;\n var newGlyfData = new Uint8Array(oldGlyfDataLength);\n var startOffset = itemDecode(locaData, 0);\n var writeOffset = 0;\n var missingGlyphs = Object.create(null);\n itemEncode(locaData, 0, writeOffset);\n var i, j;\n\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n var endOffset = itemDecode(locaData, j);\n\n if (endOffset === 0) {\n endOffset = startOffset;\n }\n\n if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) {\n endOffset = oldGlyfDataLength;\n }\n\n if (endOffset > oldGlyfDataLength) {\n startOffset = endOffset;\n }\n\n var glyphProfile = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid);\n var newLength = glyphProfile.length;\n\n if (newLength === 0) {\n missingGlyphs[i] = true;\n }\n\n if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n }\n\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n startOffset = endOffset;\n }\n\n if (writeOffset === 0) {\n var simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n\n for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n\n glyf.data = simpleGlyph;\n } else if (dupFirstEntry) {\n var firstEntryLength = itemDecode(locaData, itemSize);\n\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n\n return {\n missingGlyphs,\n maxSizeOfInstructions\n };\n }\n\n function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n var start = (font.start ? font.start : 0) + post.offset;\n font.pos = start;\n var length = post.length,\n end = start + length;\n var version = font.getInt32();\n font.skip(28);\n var glyphNames;\n var valid = true;\n var i;\n\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n\n case 0x00020000:\n var numGlyphs = font.getUint16();\n\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n\n var glyphNameIndexes = [];\n\n for (i = 0; i < numGlyphs; ++i) {\n var index = font.getUint16();\n\n if (index >= 32768) {\n valid = false;\n break;\n }\n\n glyphNameIndexes.push(index);\n }\n\n if (!valid) {\n break;\n }\n\n var customNames = [];\n var strBuf = [];\n\n while (font.pos < end) {\n var stringLength = font.getByte();\n strBuf.length = stringLength;\n\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n\n customNames.push(strBuf.join(\"\"));\n }\n\n glyphNames = [];\n\n for (i = 0; i < numGlyphs; ++i) {\n var j = glyphNameIndexes[i];\n\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n\n glyphNames.push(customNames[j - 258]);\n }\n\n break;\n\n case 0x00030000:\n break;\n\n default:\n (0, _util.warn)(\"Unknown/unsupported post table version \" + version);\n valid = false;\n\n if (propertiesObj.defaultEncoding) {\n glyphNames = propertiesObj.defaultEncoding;\n }\n\n break;\n }\n\n propertiesObj.glyphNames = glyphNames;\n return valid;\n }\n\n function readNameTable(nameTable) {\n var start = (font.start ? font.start : 0) + nameTable.offset;\n font.pos = start;\n var names = [[], []];\n var length = nameTable.length,\n end = start + length;\n var format = font.getUint16();\n var FORMAT_0_HEADER_LENGTH = 6;\n\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n return names;\n }\n\n var numRecords = font.getUint16();\n var stringsStart = font.getUint16();\n var records = [];\n var NAME_RECORD_LENGTH = 12;\n var i, ii;\n\n for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n var r = {\n platform: font.getUint16(),\n encoding: font.getUint16(),\n language: font.getUint16(),\n name: font.getUint16(),\n length: font.getUint16(),\n offset: font.getUint16()\n };\n\n if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) {\n records.push(r);\n }\n }\n\n for (i = 0, ii = records.length; i < ii; i++) {\n var record = records[i];\n\n if (record.length <= 0) {\n continue;\n }\n\n var pos = start + stringsStart + record.offset;\n\n if (pos + record.length > end) {\n continue;\n }\n\n font.pos = pos;\n var nameIndex = record.name;\n\n if (record.encoding) {\n var str = \"\";\n\n for (var j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = (0, _util.bytesToString)(font.getBytes(record.length));\n }\n }\n\n return names;\n }\n\n var TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n\n function sanitizeTTProgram(table, ttContext) {\n var data = table.data;\n var i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n var stack = [];\n var callstack = [];\n var functionsCalled = [];\n var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n var inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n\n for (var ii = data.length; i < ii;) {\n var op = data[i++];\n\n if (op === 0x40) {\n n = data[i++];\n\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n n = data[i++];\n\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb0) {\n n = op - 0xb0 + 1;\n\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb8) {\n n = op - 0xb8 + 1;\n\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n if (!inFDEF && !inELSE) {\n funcId = stack[stack.length - 1];\n\n if (isNaN(funcId)) {\n (0, _util.info)(\"TT: CALL empty stack (or invalid entry).\");\n } else {\n ttContext.functionsUsed[funcId] = true;\n\n if (funcId in ttContext.functionsStackDeltas) {\n const newStackLength = stack.length + ttContext.functionsStackDeltas[funcId];\n\n if (newStackLength < 0) {\n (0, _util.warn)(\"TT: CALL invalid functions stack delta.\");\n ttContext.hintsValid = false;\n return;\n }\n\n stack.length = newStackLength;\n } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) {\n callstack.push({\n data,\n i,\n stackTop: stack.length - 1\n });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n\n if (!pc) {\n (0, _util.warn)(\"TT: CALL non-existent function\");\n ttContext.hintsValid = false;\n return;\n }\n\n data = pc.data;\n i = pc.i;\n }\n }\n }\n } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n if (inFDEF || inELSE) {\n (0, _util.warn)(\"TT: nested FDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n\n inFDEF = true;\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = {\n data,\n i\n };\n } else if (op === 0x2d) {\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n\n if (!pc) {\n (0, _util.warn)(\"TT: ENDF bad stack\");\n ttContext.hintsValid = false;\n return;\n }\n\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n if (inFDEF || inELSE) {\n (0, _util.warn)(\"TT: nested IDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n\n inFDEF = true;\n lastDeff = i;\n } else if (op === 0x58) {\n ++ifLevel;\n } else if (op === 0x1b) {\n inELSE = ifLevel;\n } else if (op === 0x59) {\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n\n --ifLevel;\n } else if (op === 0x1c) {\n if (!inFDEF && !inELSE) {\n var offset = stack[stack.length - 1];\n\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n\n if (!inFDEF && !inELSE) {\n let stackDelta = 0;\n\n if (op <= 0x8e) {\n stackDelta = TTOpsStackDeltas[op];\n } else if (op >= 0xc0 && op <= 0xdf) {\n stackDelta = -1;\n } else if (op >= 0xe0) {\n stackDelta = -2;\n }\n\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n\n while (stackDelta > 0) {\n stack.push(NaN);\n stackDelta--;\n }\n }\n }\n\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n var content = [data];\n\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n\n if (lastDeff > lastEndf) {\n (0, _util.warn)(\"TT: complementing a missing function tail\");\n content.push(new Uint8Array([0x22, 0x2d]));\n }\n\n foldTTTable(table, content);\n }\n\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n (0, _util.warn)(\"TT: more functions defined than expected\");\n ttContext.hintsValid = false;\n return;\n }\n\n for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n (0, _util.warn)(\"TT: invalid function id: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n (0, _util.warn)(\"TT: undefined function: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n }\n }\n\n function foldTTTable(table, content) {\n if (content.length > 1) {\n var newLength = 0;\n var j, jj;\n\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n\n newLength = newLength + 3 & ~3;\n var result = new Uint8Array(newLength);\n var pos = 0;\n\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n\n table.data = result;\n table.length = newLength;\n }\n }\n\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n var ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true\n };\n\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n\n if (cvt && cvt.length & 1) {\n var cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n\n return ttContext.hintsValid;\n }\n\n font = new _stream.Stream(new Uint8Array(font.getBytes()));\n let header, tables;\n\n if (isTrueTypeCollectionFile(font)) {\n const ttcData = readTrueTypeCollectionData(font, this.name);\n header = ttcData.header;\n tables = ttcData.tables;\n } else {\n header = readOpenTypeHeader(font);\n tables = readTables(font, header.numTables);\n }\n\n let cff, cffFile;\n var isTrueType = !tables[\"CFF \"];\n\n if (!isTrueType) {\n const isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap));\n\n if (header.version === \"OTTO\" && !isComposite || !tables.head || !tables.hhea || !tables.maxp || !tables.post) {\n cffFile = new _stream.Stream(tables[\"CFF \"].data);\n cff = new CFFFont(cffFile, properties);\n adjustWidths(properties);\n return this.convert(name, cff, properties);\n }\n\n delete tables.glyf;\n delete tables.loca;\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n this.isOpenType = true;\n } else {\n if (!tables.loca) {\n throw new _util.FormatError('Required \"loca\" table is not found');\n }\n\n if (!tables.glyf) {\n (0, _util.warn)('Required \"glyf\" table is not found -- trying to recover.');\n tables.glyf = {\n tag: \"glyf\",\n data: new Uint8Array(0)\n };\n }\n\n this.isOpenType = false;\n }\n\n if (!tables.maxp) {\n throw new _util.FormatError('Required \"maxp\" table is not found');\n }\n\n font.pos = (font.start || 0) + tables.maxp.offset;\n var version = font.getInt32();\n const numGlyphs = font.getUint16();\n let numGlyphsOut = numGlyphs + 1;\n let dupFirstEntry = true;\n\n if (numGlyphsOut > 0xffff) {\n dupFirstEntry = false;\n numGlyphsOut = numGlyphs;\n (0, _util.warn)(\"Not enough space in glyfs to duplicate first glyph.\");\n }\n\n var maxFunctionDefs = 0;\n var maxSizeOfInstructions = 0;\n\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n font.pos += 8;\n var maxZones = font.getUint16();\n\n if (maxZones > 2) {\n tables.maxp.data[14] = 0;\n tables.maxp.data[15] = 2;\n }\n\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n font.pos += 4;\n maxSizeOfInstructions = font.getUint16();\n }\n\n tables.maxp.data[4] = numGlyphsOut >> 8;\n tables.maxp.data[5] = numGlyphsOut & 255;\n var hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables[\"cvt \"], maxFunctionDefs);\n\n if (!hintsValid) {\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n }\n\n sanitizeMetrics(font, tables.hhea, tables.hmtx, numGlyphsOut, dupFirstEntry);\n\n if (!tables.head) {\n throw new _util.FormatError('Required \"head\" table is not found');\n }\n\n sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n var missingGlyphs = Object.create(null);\n\n if (isTrueType) {\n var isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]);\n var glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions);\n missingGlyphs = glyphsInfo.missingGlyphs;\n\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n }\n }\n\n if (!tables.hhea) {\n throw new _util.FormatError('Required \"hhea\" table is not found');\n }\n\n if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n tables.hhea.data[10] = 0xff;\n tables.hhea.data[11] = 0xff;\n }\n\n var metricsOverride = {\n unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n yMax: int16(tables.head.data[42], tables.head.data[43]),\n yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n ascent: int16(tables.hhea.data[4], tables.hhea.data[5]),\n descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7])\n };\n this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n\n if (tables.post) {\n readPostScriptTable(tables.post, properties, numGlyphs);\n }\n\n tables.post = {\n tag: \"post\",\n data: createPostTable(properties)\n };\n const charCodeToGlyphId = [];\n\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\n }\n\n if (properties.composite) {\n var cidToGidMap = properties.cidToGidMap || [];\n var isCidToGidMapEmpty = cidToGidMap.length === 0;\n properties.cMap.forEach(function (charCode, cid) {\n if (cid > 0xffff) {\n throw new _util.FormatError(\"Max size of CID is 65,535\");\n }\n\n var glyphId = -1;\n\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\n }\n\n if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n });\n } else {\n var cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont, properties.hasEncoding);\n var cmapPlatformId = cmapTable.platformId;\n var cmapEncodingId = cmapTable.encodingId;\n var cmapMappings = cmapTable.mappings;\n var cmapMappingsLength = cmapMappings.length;\n\n if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!(0, _encodings.getEncoding)(properties.baseEncodingName)) {\n var baseEncoding = [];\n\n if (properties.baseEncodingName === \"MacRomanEncoding\" || properties.baseEncodingName === \"WinAnsiEncoding\") {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n }\n\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n for (let charCode = 0; charCode < 256; charCode++) {\n var glyphName, standardGlyphName;\n\n if (this.differences && charCode in this.differences) {\n glyphName = this.differences[charCode];\n } else if (charCode in baseEncoding && baseEncoding[charCode] !== \"\") {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = _encodings.StandardEncoding[charCode];\n }\n\n if (!glyphName) {\n continue;\n }\n\n standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n var unicodeOrCharCode;\n\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName);\n }\n\n var found = false;\n\n for (let i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n found = true;\n break;\n }\n\n if (!found && properties.glyphNames) {\n var glyphId = properties.glyphNames.indexOf(glyphName);\n\n if (glyphId === -1 && standardGlyphName !== glyphName) {\n glyphId = properties.glyphNames.indexOf(standardGlyphName);\n }\n\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n }\n } else if (cmapPlatformId === 0 && cmapEncodingId === 0) {\n for (let i = 0; i < cmapMappingsLength; ++i) {\n charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n }\n } else {\n for (let i = 0; i < cmapMappingsLength; ++i) {\n let charCode = cmapMappings[i].charCode;\n\n if (cmapPlatformId === 3 && charCode >= 0xf000 && charCode <= 0xf0ff) {\n charCode &= 0xff;\n }\n\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n }\n }\n }\n\n if (charCodeToGlyphId.length === 0) {\n charCodeToGlyphId[0] = 0;\n }\n\n let glyphZeroId = numGlyphsOut - 1;\n\n if (!dupFirstEntry) {\n glyphZeroId = 0;\n }\n\n var newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId);\n this.toFontChar = newMapping.toFontChar;\n tables.cmap = {\n tag: \"cmap\",\n data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut)\n };\n\n if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n tables[\"OS/2\"] = {\n tag: \"OS/2\",\n data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\n };\n }\n\n if (!isTrueType) {\n try {\n cffFile = new _stream.Stream(tables[\"CFF \"].data);\n var parser = new _cff_parser.CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED);\n cff = parser.parse();\n cff.duplicateFirstGlyph();\n var compiler = new _cff_parser.CFFCompiler(cff);\n tables[\"CFF \"].data = compiler.compile();\n } catch (e) {\n (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n }\n }\n\n if (!tables.name) {\n tables.name = {\n tag: \"name\",\n data: createNameTable(this.name)\n };\n } else {\n var namePrototype = readNameTable(tables.name);\n tables.name.data = createNameTable(name, namePrototype);\n }\n\n var builder = new OpenTypeFileBuilder(header.version);\n\n for (var tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n\n return builder.toArray();\n },\n convert: function Font_convert(fontName, font, properties) {\n properties.fixedPitch = false;\n\n if (properties.builtInEncoding) {\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n\n let glyphZeroId = 1;\n\n if (font instanceof CFFFont) {\n glyphZeroId = font.numGlyphs - 1;\n }\n\n var mapping = font.getGlyphMapping(properties);\n var newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId);\n this.toFontChar = newMapping.toFontChar;\n var numGlyphs = font.numGlyphs;\n\n function getCharCodes(charCodeToGlyphId, glyphId) {\n var charCodes = null;\n\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n\n charCodes.push(charCode | 0);\n }\n }\n\n return charCodes;\n }\n\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n\n var seacs = font.seacs;\n\n if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n var matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var charset = font.getCharset();\n var seacMap = Object.create(null);\n\n for (var glyphId in seacs) {\n glyphId |= 0;\n var seac = seacs[glyphId];\n var baseGlyphName = _encodings.StandardEncoding[seac[2]];\n var accentGlyphName = _encodings.StandardEncoding[seac[3]];\n var baseGlyphId = charset.indexOf(baseGlyphName);\n var accentGlyphId = charset.indexOf(accentGlyphName);\n\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n\n var accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n };\n var charCodes = getCharCodes(mapping, glyphId);\n\n if (!charCodes) {\n continue;\n }\n\n for (let i = 0, ii = charCodes.length; i < ii; i++) {\n var charCode = charCodes[i];\n var charCodeToGlyphId = newMapping.charCodeToGlyphId;\n var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n var accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n seacMap[charCode] = {\n baseFontCharCode,\n accentFontCharCode,\n accentOffset\n };\n }\n }\n\n properties.seacMap = seacMap;\n }\n\n var unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n builder.addTable(\"CFF \", font.data);\n builder.addTable(\"OS/2\", createOS2Table(properties, newMapping.charCodeToGlyphId));\n builder.addTable(\"cmap\", createCmapTable(newMapping.charCodeToGlyphId, numGlyphs));\n builder.addTable(\"head\", \"\\x00\\x01\\x00\\x00\" + \"\\x00\\x00\\x10\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x5F\\x0F\\x3C\\xF5\" + \"\\x00\\x00\" + safeString16(unitsPerEm) + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\" + safeString16(properties.descent) + \"\\x0F\\xFF\" + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + \"\\x00\\x11\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\");\n builder.addTable(\"hhea\", \"\\x00\\x01\\x00\\x00\" + safeString16(properties.ascent) + safeString16(properties.descent) + \"\\x00\\x00\" + \"\\xFF\\xFF\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\" + string16(numGlyphs));\n builder.addTable(\"hmtx\", function fontFieldsHmtx() {\n var charstrings = font.charstrings;\n var cffWidths = font.cff ? font.cff.widths : null;\n var hmtx = \"\\x00\\x00\\x00\\x00\";\n\n for (let i = 1, ii = numGlyphs; i < ii; i++) {\n var width = 0;\n\n if (charstrings) {\n var charstring = charstrings[i - 1];\n width = \"width\" in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n\n hmtx += string16(width) + string16(0);\n }\n\n return hmtx;\n }());\n builder.addTable(\"maxp\", \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs));\n builder.addTable(\"name\", createNameTable(fontName));\n builder.addTable(\"post\", createPostTable(properties));\n return builder.toArray();\n },\n\n get spaceWidth() {\n var possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n var width;\n\n for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n var glyphName = possibleSpaceReplacements[i];\n\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n var glyphUnicode = glyphsUnicodeMap[glyphName];\n var charcode = 0;\n\n if (this.composite && this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n }\n\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n\n width = this.widths[charcode];\n\n if (width) {\n break;\n }\n }\n\n width = width || this.defaultWidth;\n return (0, _util.shadow)(this, \"spaceWidth\", width);\n },\n\n charToGlyph: function Font_charToGlyph(charcode, isSpace) {\n var fontCharCode, width, operatorListId;\n var widthCode = charcode;\n\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n }\n\n width = this.widths[widthCode];\n width = (0, _util.isNum)(width) ? width : this.defaultWidth;\n var vmetric = this.vmetrics && this.vmetrics[widthCode];\n let unicode = this.toUnicode.get(charcode) || this.fallbackToUnicode.get(charcode) || charcode;\n\n if (typeof unicode === \"number\") {\n unicode = String.fromCharCode(unicode);\n }\n\n var isInFont = (charcode in this.toFontChar);\n fontCharCode = this.toFontChar[charcode] || charcode;\n\n if (this.missingFile) {\n const glyphName = this.differences[charcode] || this.defaultEncoding[charcode];\n\n if ((glyphName === \".notdef\" || glyphName === \"\") && this.type === \"Type1\") {\n fontCharCode = 0x20;\n }\n\n fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n }\n\n if (this.isType3Font) {\n operatorListId = fontCharCode;\n }\n\n var accent = null;\n\n if (this.seacMap && this.seacMap[charcode]) {\n isInFont = true;\n var seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCodePoint(seac.accentFontCharCode),\n offset: seac.accentOffset\n };\n }\n\n let fontChar = \"\";\n\n if (typeof fontCharCode === \"number\") {\n if (fontCharCode <= 0x10ffff) {\n fontChar = String.fromCodePoint(fontCharCode);\n } else {\n (0, _util.warn)(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n }\n }\n\n var glyph = this.glyphCache[charcode];\n\n if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) {\n glyph = new Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n this.glyphCache[charcode] = glyph;\n }\n\n return glyph;\n },\n charsToGlyphs: function Font_charsToGlyphs(chars) {\n var charsCache = this.charsCache;\n var glyphs, glyph, charcode;\n\n if (charsCache) {\n glyphs = charsCache[chars];\n\n if (glyphs) {\n return glyphs;\n }\n }\n\n if (!charsCache) {\n charsCache = this.charsCache = Object.create(null);\n }\n\n glyphs = [];\n var charsCacheKey = chars;\n var i = 0,\n ii;\n\n if (this.cMap) {\n var c = Object.create(null);\n\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n charcode = c.charcode;\n var length = c.length;\n i += length;\n var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20;\n glyph = this.charToGlyph(charcode, isSpace);\n glyphs.push(glyph);\n }\n } else {\n for (i = 0, ii = chars.length; i < ii; ++i) {\n charcode = chars.charCodeAt(i);\n glyph = this.charToGlyph(charcode, charcode === 0x20);\n glyphs.push(glyph);\n }\n }\n\n return charsCache[charsCacheKey] = glyphs;\n },\n\n get glyphCacheValues() {\n return Object.values(this.glyphCache);\n }\n\n };\n return Font;\n}();\n\nexports.Font = Font;\n\nvar ErrorFont = function ErrorFontClosure() {\n function ErrorFont(error) {\n this.error = error;\n this.loadedName = \"g_font_error\";\n this.missingFile = true;\n }\n\n ErrorFont.prototype = {\n charsToGlyphs: function ErrorFont_charsToGlyphs() {\n return [];\n },\n\n exportData(extraProperties = false) {\n return {\n error: this.error\n };\n }\n\n };\n return ErrorFont;\n}();\n\nexports.ErrorFont = ErrorFont;\n\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n var charCodeToGlyphId = Object.create(null);\n var glyphId, charCode, baseEncoding;\n var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n if (properties.baseEncodingName) {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n } else if (isSymbolicFont) {\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n baseEncoding = _encodings.StandardEncoding;\n\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n\n var differences = properties.differences,\n glyphsUnicodeMap;\n\n if (differences) {\n for (charCode in differences) {\n var glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n }\n\n var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n\n return charCodeToGlyphId;\n}\n\nvar Type1Font = function Type1FontClosure() {\n function findBlock(streamBytes, signature, startIndex) {\n var streamBytesLength = streamBytes.length;\n var signatureLength = signature.length;\n var scanLength = streamBytesLength - signatureLength;\n var i = startIndex,\n j,\n found = false;\n\n while (i < scanLength) {\n j = 0;\n\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n\n if (j >= signatureLength) {\n i += j;\n\n while (i < streamBytesLength && (0, _core_utils.isWhiteSpace)(streamBytes[i])) {\n i++;\n }\n\n found = true;\n break;\n }\n\n i++;\n }\n\n return {\n found,\n length: i\n };\n }\n\n function getHeaderBlock(stream, suggestedLength) {\n var EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n var streamStartPos = stream.pos;\n var headerBytes, headerBytesLength, block;\n\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n }\n\n if (headerBytesLength === suggestedLength) {\n block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new _stream.Stream(headerBytes),\n length: suggestedLength\n };\n }\n }\n\n (0, _util.warn)('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos;\n var SCAN_BLOCK_LENGTH = 2048;\n var actualLength;\n\n while (true) {\n var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n if (block.length === 0) {\n break;\n }\n\n stream.pos += block.length;\n\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n\n stream.pos = streamStartPos;\n\n if (actualLength) {\n return {\n stream: new _stream.Stream(stream.getBytes(actualLength)),\n length: actualLength\n };\n }\n\n (0, _util.warn)('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new _stream.Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength\n };\n }\n\n function getEexecBlock(stream, suggestedLength) {\n var eexecBytes = stream.getBytes();\n return {\n stream: new _stream.Stream(eexecBytes),\n length: eexecBytes.length\n };\n }\n\n function Type1Font(name, file, properties) {\n var PFB_HEADER_SIZE = 6;\n var headerBlockLength = properties.length1;\n var eexecBlockLength = properties.length2;\n var pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n\n var headerBlock = getHeaderBlock(file, headerBlockLength);\n var headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED);\n headerBlockParser.extractFontHeader(properties);\n\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n\n var eexecBlock = getEexecBlock(file, eexecBlockLength);\n var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);\n var data = eexecBlockParser.extractFontProgram(properties);\n\n for (const key in data.properties) {\n properties[key] = data.properties[key];\n }\n\n var charstrings = data.charstrings;\n var type2Charstrings = this.getType2Charstrings(charstrings);\n var subrs = this.getType2Subrs(data.subrs);\n this.charstrings = charstrings;\n this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\n this.seacs = this.getSeacs(data.charstrings);\n }\n\n Type1Font.prototype = {\n get numGlyphs() {\n return this.charstrings.length + 1;\n },\n\n getCharset: function Type1Font_getCharset() {\n var charset = [\".notdef\"];\n var charstrings = this.charstrings;\n\n for (var glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n\n return charset;\n },\n getGlyphMapping: function Type1Font_getGlyphMapping(properties) {\n var charstrings = this.charstrings;\n\n if (properties.composite) {\n const charCodeToGlyphId = Object.create(null);\n\n for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) {\n const charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId + 1;\n }\n\n return charCodeToGlyphId;\n }\n\n var glyphNames = [\".notdef\"],\n glyphId;\n\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n\n var encoding = properties.builtInEncoding;\n\n if (encoding) {\n var builtInEncoding = Object.create(null);\n\n for (var charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n },\n hasGlyphId: function Type1Font_hasGlyphID(id) {\n if (id < 0 || id >= this.numGlyphs) {\n return false;\n }\n\n if (id === 0) {\n return true;\n }\n\n var glyph = this.charstrings[id - 1];\n return glyph.charstring.length > 0;\n },\n getSeacs: function Type1Font_getSeacs(charstrings) {\n var i, ii;\n var seacMap = [];\n\n for (i = 0, ii = charstrings.length; i < ii; i++) {\n var charstring = charstrings[i];\n\n if (charstring.seac) {\n seacMap[i + 1] = charstring.seac;\n }\n }\n\n return seacMap;\n },\n getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) {\n var type2Charstrings = [];\n\n for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n\n return type2Charstrings;\n },\n getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n var bias = 0;\n var count = type1Subrs.length;\n\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n var type2Subrs = [];\n var i;\n\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0b]);\n }\n\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\n }\n\n return type2Subrs;\n },\n wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {\n var cff = new _cff_parser.CFF();\n cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4);\n cff.names = [name];\n var topDict = new _cff_parser.CFFTopDict();\n topDict.setByName(\"version\", 391);\n topDict.setByName(\"Notice\", 392);\n topDict.setByName(\"FullName\", 393);\n topDict.setByName(\"FamilyName\", 394);\n topDict.setByName(\"Weight\", 395);\n topDict.setByName(\"Encoding\", null);\n topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n topDict.setByName(\"FontBBox\", properties.bbox);\n topDict.setByName(\"charset\", null);\n topDict.setByName(\"CharStrings\", null);\n topDict.setByName(\"Private\", null);\n cff.topDict = topDict;\n var strings = new _cff_parser.CFFStrings();\n strings.add(\"Version 0.11\");\n strings.add(\"See original notice\");\n strings.add(name);\n strings.add(name);\n strings.add(\"Medium\");\n cff.strings = strings;\n cff.globalSubrIndex = new _cff_parser.CFFIndex();\n var count = glyphs.length;\n var charsetArray = [\".notdef\"];\n var i, ii;\n\n for (i = 0; i < count; i++) {\n const glyphName = charstrings[i].glyphName;\n\n const index = _cff_parser.CFFStandardStrings.indexOf(glyphName);\n\n if (index === -1) {\n strings.add(glyphName);\n }\n\n charsetArray.push(glyphName);\n }\n\n cff.charset = new _cff_parser.CFFCharset(false, 0, charsetArray);\n var charStringsIndex = new _cff_parser.CFFIndex();\n charStringsIndex.add([0x8b, 0x0e]);\n\n for (i = 0; i < count; i++) {\n charStringsIndex.add(glyphs[i]);\n }\n\n cff.charStrings = charStringsIndex;\n var privateDict = new _cff_parser.CFFPrivateDict();\n privateDict.setByName(\"Subrs\", null);\n var fields = [\"BlueValues\", \"OtherBlues\", \"FamilyBlues\", \"FamilyOtherBlues\", \"StemSnapH\", \"StemSnapV\", \"BlueShift\", \"BlueFuzz\", \"BlueScale\", \"LanguageGroup\", \"ExpansionFactor\", \"ForceBold\", \"StdHW\", \"StdVW\"];\n\n for (i = 0, ii = fields.length; i < ii; i++) {\n var field = fields[i];\n\n if (!(field in properties.privateData)) {\n continue;\n }\n\n var value = properties.privateData[field];\n\n if (Array.isArray(value)) {\n for (var j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1];\n }\n }\n\n privateDict.setByName(field, value);\n }\n\n cff.topDict.privateDict = privateDict;\n var subrIndex = new _cff_parser.CFFIndex();\n\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n\n privateDict.subrsIndex = subrIndex;\n var compiler = new _cff_parser.CFFCompiler(cff);\n return compiler.compile();\n }\n };\n return Type1Font;\n}();\n\nvar CFFFont = function CFFFontClosure() {\n function CFFFont(file, properties) {\n this.properties = properties;\n var parser = new _cff_parser.CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n this.cff.duplicateFirstGlyph();\n var compiler = new _cff_parser.CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n\n try {\n this.data = compiler.compile();\n } catch (e) {\n (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n this.data = file;\n }\n }\n\n CFFFont.prototype = {\n get numGlyphs() {\n return this.cff.charStrings.count;\n },\n\n getCharset: function CFFFont_getCharset() {\n return this.cff.charset.charset;\n },\n getGlyphMapping: function CFFFont_getGlyphMapping() {\n var cff = this.cff;\n var properties = this.properties;\n var charsets = cff.charset.charset;\n var charCodeToGlyphId;\n var glyphId;\n\n if (properties.composite) {\n charCodeToGlyphId = Object.create(null);\n let charCode;\n\n if (cff.isCIDFont) {\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n var cid = charsets[glyphId];\n charCode = properties.cMap.charCodeOf(cid);\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n\n return charCodeToGlyphId;\n }\n\n var encoding = cff.encoding ? cff.encoding.encoding : null;\n charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n return charCodeToGlyphId;\n },\n hasGlyphId: function CFFFont_hasGlyphID(id) {\n return this.cff.hasGlyphId(id);\n }\n };\n return CFFFont;\n}();\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _charsets = __w_pdfjs_require__(31);\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar MAX_SUBR_NESTING = 10;\nvar CFFStandardStrings = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\", \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"];\nexports.CFFStandardStrings = CFFStandardStrings;\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nvar CFFParser = function CFFParserClosure() {\n var CharstringValidationData = [null, {\n id: \"hstem\",\n min: 2,\n stackClearing: true,\n stem: true\n }, null, {\n id: \"vstem\",\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: \"vmoveto\",\n min: 1,\n stackClearing: true\n }, {\n id: \"rlineto\",\n min: 2,\n resetStack: true\n }, {\n id: \"hlineto\",\n min: 1,\n resetStack: true\n }, {\n id: \"vlineto\",\n min: 1,\n resetStack: true\n }, {\n id: \"rrcurveto\",\n min: 6,\n resetStack: true\n }, null, {\n id: \"callsubr\",\n min: 1,\n undefStack: true\n }, {\n id: \"return\",\n min: 0,\n undefStack: true\n }, null, null, {\n id: \"endchar\",\n min: 0,\n stackClearing: true\n }, null, null, null, {\n id: \"hstemhm\",\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: \"hintmask\",\n min: 0,\n stackClearing: true\n }, {\n id: \"cntrmask\",\n min: 0,\n stackClearing: true\n }, {\n id: \"rmoveto\",\n min: 2,\n stackClearing: true\n }, {\n id: \"hmoveto\",\n min: 1,\n stackClearing: true\n }, {\n id: \"vstemhm\",\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: \"rcurveline\",\n min: 8,\n resetStack: true\n }, {\n id: \"rlinecurve\",\n min: 8,\n resetStack: true\n }, {\n id: \"vvcurveto\",\n min: 4,\n resetStack: true\n }, {\n id: \"hhcurveto\",\n min: 4,\n resetStack: true\n }, null, {\n id: \"callgsubr\",\n min: 1,\n undefStack: true\n }, {\n id: \"vhcurveto\",\n min: 4,\n resetStack: true\n }, {\n id: \"hvcurveto\",\n min: 4,\n resetStack: true\n }];\n var CharstringValidationData12 = [null, null, null, {\n id: \"and\",\n min: 2,\n stackDelta: -1\n }, {\n id: \"or\",\n min: 2,\n stackDelta: -1\n }, {\n id: \"not\",\n min: 1,\n stackDelta: 0\n }, null, null, null, {\n id: \"abs\",\n min: 1,\n stackDelta: 0\n }, {\n id: \"add\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n }\n }, {\n id: \"sub\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n }\n }, {\n id: \"div\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n }\n }, null, {\n id: \"neg\",\n min: 1,\n stackDelta: 0,\n stackFn: function stack_div(stack, index) {\n stack[index - 1] = -stack[index - 1];\n }\n }, {\n id: \"eq\",\n min: 2,\n stackDelta: -1\n }, null, null, {\n id: \"drop\",\n min: 1,\n stackDelta: -1\n }, null, {\n id: \"put\",\n min: 2,\n stackDelta: -2\n }, {\n id: \"get\",\n min: 1,\n stackDelta: 0\n }, {\n id: \"ifelse\",\n min: 4,\n stackDelta: -3\n }, {\n id: \"random\",\n min: 0,\n stackDelta: 1\n }, {\n id: \"mul\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n }\n }, null, {\n id: \"sqrt\",\n min: 1,\n stackDelta: 0\n }, {\n id: \"dup\",\n min: 1,\n stackDelta: 1\n }, {\n id: \"exch\",\n min: 2,\n stackDelta: 0\n }, {\n id: \"index\",\n min: 2,\n stackDelta: 0\n }, {\n id: \"roll\",\n min: 3,\n stackDelta: -2\n }, null, null, null, {\n id: \"hflex\",\n min: 7,\n resetStack: true\n }, {\n id: \"flex\",\n min: 13,\n resetStack: true\n }, {\n id: \"hflex1\",\n min: 9,\n resetStack: true\n }, {\n id: \"flex1\",\n min: 11,\n resetStack: true\n }];\n\n function CFFParser(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n\n CFFParser.prototype = {\n parse: function CFFParser_parse() {\n var properties = this.properties;\n var cff = new CFF();\n this.cff = cff;\n var header = this.parseHeader();\n var nameIndex = this.parseIndex(header.endPos);\n var topDictIndex = this.parseIndex(nameIndex.endPos);\n var stringIndex = this.parseIndex(topDictIndex.endPos);\n var globalSubrIndex = this.parseIndex(stringIndex.endPos);\n var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n this.parsePrivateDict(cff.topDict);\n cff.isCIDFont = topDict.hasName(\"ROS\");\n var charStringOffset = topDict.getByName(\"CharStrings\");\n var charStringIndex = this.parseIndex(charStringOffset).obj;\n var fontMatrix = topDict.getByName(\"FontMatrix\");\n\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n\n var fontBBox = topDict.getByName(\"FontBBox\");\n\n if (fontBBox) {\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n }\n\n var charset, encoding;\n\n if (cff.isCIDFont) {\n var fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n\n for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n var dictRaw = fdArrayIndex.get(i);\n var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n\n encoding = null;\n charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, true);\n cff.fdSelect = this.parseFDSelect(topDict.getByName(\"FDSelect\"), charStringIndex.count);\n } else {\n charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, false);\n encoding = this.parseEncoding(topDict.getByName(\"Encoding\"), properties, cff.strings, charset.charset);\n }\n\n cff.charset = charset;\n cff.encoding = encoding;\n var charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n return cff;\n },\n parseHeader: function CFFParser_parseHeader() {\n var bytes = this.bytes;\n var bytesLength = bytes.length;\n var offset = 0;\n\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n\n if (offset >= bytesLength) {\n throw new _util.FormatError(\"Invalid CFF header\");\n }\n\n if (offset !== 0) {\n (0, _util.info)(\"cff data is shifted\");\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n\n var major = bytes[0];\n var minor = bytes[1];\n var hdrSize = bytes[2];\n var offSize = bytes[3];\n var header = new CFFHeader(major, minor, hdrSize, offSize);\n return {\n obj: header,\n endPos: hdrSize\n };\n },\n parseDict: function CFFParser_parseDict(dict) {\n var pos = 0;\n\n function parseOperand() {\n var value = dict[pos++];\n\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = (value << 24 | dict[pos++] << 16) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n\n (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n\n function parseFloatOperand() {\n var str = \"\";\n var eof = 15;\n const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n var length = dict.length;\n\n while (pos < length) {\n var b = dict[pos++];\n var b1 = b >> 4;\n var b2 = b & 15;\n\n if (b1 === eof) {\n break;\n }\n\n str += lookup[b1];\n\n if (b2 === eof) {\n break;\n }\n\n str += lookup[b2];\n }\n\n return parseFloat(str);\n }\n\n var operands = [];\n var entries = [];\n pos = 0;\n var end = dict.length;\n\n while (pos < end) {\n var b = dict[pos];\n\n if (b <= 21) {\n if (b === 12) {\n b = b << 8 | dict[++pos];\n }\n\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n\n return entries;\n },\n parseIndex: function CFFParser_parseIndex(pos) {\n var cffIndex = new CFFIndex();\n var bytes = this.bytes;\n var count = bytes[pos++] << 8 | bytes[pos++];\n var offsets = [];\n var end = pos;\n var i, ii;\n\n if (count !== 0) {\n var offsetSize = bytes[pos++];\n var startPos = pos + (count + 1) * offsetSize - 1;\n\n for (i = 0, ii = count + 1; i < ii; ++i) {\n var offset = 0;\n\n for (var j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n\n offsets.push(startPos + offset);\n }\n\n end = offsets[count];\n }\n\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n var offsetStart = offsets[i];\n var offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n\n return {\n obj: cffIndex,\n endPos: end\n };\n },\n parseNameIndex: function CFFParser_parseNameIndex(index) {\n var names = [];\n\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var name = index.get(i);\n names.push((0, _util.bytesToString)(name));\n }\n\n return names;\n },\n parseStringIndex: function CFFParser_parseStringIndex(index) {\n var strings = new CFFStrings();\n\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var data = index.get(i);\n strings.add((0, _util.bytesToString)(data));\n }\n\n return strings;\n },\n createDict: function CFFParser_createDict(Type, dict, strings) {\n var cffDict = new Type(strings);\n\n for (var i = 0, ii = dict.length; i < ii; ++i) {\n var pair = dict[i];\n var key = pair[0];\n var value = pair[1];\n cffDict.setByKey(key, value);\n }\n\n return cffDict;\n },\n parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n\n var stackSize = state.stackSize;\n var stack = state.stack;\n var length = data.length;\n\n for (var j = 0; j < length;) {\n var value = data[j++];\n var validationCommand = null;\n\n if (value === 12) {\n var q = data[j++];\n\n if (q === 0) {\n data[j - 2] = 139;\n data[j - 1] = 22;\n stackSize = 0;\n } else {\n validationCommand = CharstringValidationData12[q];\n }\n } else if (value === 28) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16;\n j += 2;\n stackSize++;\n } else if (value === 14) {\n if (stackSize >= 4) {\n stackSize -= 4;\n\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n j += state.hints + 7 >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n var subrsIndex;\n\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)(\"Missing subrsIndex for \" + validationCommand.id);\n return false;\n }\n\n var bias = 32768;\n\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n\n var subrNumber = stack[--stackSize] + bias;\n\n if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)(\"Out of bounds subrIndex for \" + validationCommand.id);\n return false;\n }\n\n state.stackSize = stackSize;\n state.callDepth++;\n var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n\n if (!valid) {\n return false;\n }\n\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else {\n validationCommand = CharstringValidationData[value];\n }\n\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n\n if (value === 3 || value === 23) {\n state.hasVStems = true;\n } else if (state.hasVStems && (value === 1 || value === 18)) {\n (0, _util.warn)(\"CFF stem hints are in wrong order\");\n data[j - 1] = value === 1 ? 3 : 23;\n }\n }\n\n if (\"min\" in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n (0, _util.warn)(\"Not enough parameters for \" + validationCommand.id + \"; actual: \" + stackSize + \", expected: \" + validationCommand.min);\n return false;\n }\n }\n\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n stackSize -= validationCommand.min;\n\n if (stackSize >= 2 && validationCommand.stem) {\n stackSize %= 2;\n } else if (stackSize > 1) {\n (0, _util.warn)(\"Found too many parameters for stack-clearing command\");\n }\n\n if (stackSize > 0 && stack[stackSize - 1] >= 0) {\n state.width = stack[stackSize - 1];\n }\n }\n\n if (\"stackDelta\" in validationCommand) {\n if (\"stackFn\" in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n\n state.stackSize = stackSize;\n return true;\n },\n\n parseCharStrings({\n charStrings,\n localSubrIndex,\n globalSubrIndex,\n fdSelect,\n fdArray,\n privateDict\n }) {\n var seacs = [];\n var widths = [];\n var count = charStrings.count;\n\n for (var i = 0; i < count; i++) {\n var charstring = charStrings.get(i);\n var state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null,\n hasVStems: false\n };\n var valid = true;\n var localSubrToUse = null;\n var privateDictToUse = privateDict;\n\n if (fdSelect && fdArray.length) {\n var fdIndex = fdSelect.getFDIndex(i);\n\n if (fdIndex === -1) {\n (0, _util.warn)(\"Glyph index is not in fd select.\");\n valid = false;\n }\n\n if (fdIndex >= fdArray.length) {\n (0, _util.warn)(\"Invalid fd index for glyph index.\");\n valid = false;\n }\n\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n\n if (valid) {\n valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n }\n\n if (state.width !== null) {\n const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n widths[i] = nominalWidth + state.width;\n } else {\n const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n widths[i] = defaultWidth;\n }\n\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n\n if (!valid) {\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n\n return {\n charStrings,\n seacs,\n widths\n };\n },\n\n emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) {\n var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n },\n parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {\n if (!parentDict.hasName(\"Private\")) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n var privateOffset = parentDict.getByName(\"Private\");\n\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName(\"Private\");\n return;\n }\n\n var size = privateOffset[0];\n var offset = privateOffset[1];\n\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n var privateDictEnd = offset + size;\n var dictData = this.bytes.subarray(offset, privateDictEnd);\n var dict = this.parseDict(dictData);\n var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n parentDict.privateDict = privateDict;\n\n if (!privateDict.getByName(\"Subrs\")) {\n return;\n }\n\n var subrsOffset = privateDict.getByName(\"Subrs\");\n var relativeOffset = offset + subrsOffset;\n\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n var subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n },\n parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset);\n } else if (pos === 1) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset);\n } else if (pos === 2) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset);\n }\n\n var bytes = this.bytes;\n var start = pos;\n var format = bytes[pos++];\n const charset = [cid ? 0 : \".notdef\"];\n var id, count, i;\n length -= 1;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = bytes[pos++] << 8 | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n\n break;\n\n case 1:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++];\n\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n\n break;\n\n case 2:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++] << 8 | bytes[pos++];\n\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n\n break;\n\n default:\n throw new _util.FormatError(\"Unknown charset format\");\n }\n\n var end = pos;\n var raw = bytes.subarray(start, end);\n return new CFFCharset(false, format, charset, raw);\n },\n parseEncoding: function CFFParser_parseEncoding(pos, properties, strings, charset) {\n var encoding = Object.create(null);\n var bytes = this.bytes;\n var predefined = false;\n var format, i, ii;\n var raw = null;\n\n function readSupplement() {\n var supplementsCount = bytes[pos++];\n\n for (i = 0; i < supplementsCount; i++) {\n var code = bytes[pos++];\n var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n var baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n\n for (i = 0, ii = charset.length; i < ii; i++) {\n var index = baseEncoding.indexOf(charset[i]);\n\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n var dataStart = pos;\n format = bytes[pos++];\n\n switch (format & 0x7f) {\n case 0:\n var glyphsCount = bytes[pos++];\n\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n\n break;\n\n case 1:\n var rangesCount = bytes[pos++];\n var gid = 1;\n\n for (i = 0; i < rangesCount; i++) {\n var start = bytes[pos++];\n var left = bytes[pos++];\n\n for (var j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unknown encoding format: ${format} in CFF`);\n }\n\n var dataEnd = pos;\n\n if (format & 0x80) {\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n\n raw = bytes.subarray(dataStart, dataEnd);\n }\n\n format = format & 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n },\n parseFDSelect: function CFFParser_parseFDSelect(pos, length) {\n var bytes = this.bytes;\n var format = bytes[pos++];\n var fdSelect = [];\n var i;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n var id = bytes[pos++];\n fdSelect.push(id);\n }\n\n break;\n\n case 3:\n var rangesCount = bytes[pos++] << 8 | bytes[pos++];\n\n for (i = 0; i < rangesCount; ++i) {\n var first = bytes[pos++] << 8 | bytes[pos++];\n\n if (i === 0 && first !== 0) {\n (0, _util.warn)(\"parseFDSelect: The first range must have a first GID of 0\" + \" -- trying to recover.\");\n first = 0;\n }\n\n var fdIndex = bytes[pos++];\n var next = bytes[pos] << 8 | bytes[pos + 1];\n\n for (var j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n\n pos += 2;\n break;\n\n default:\n throw new _util.FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n }\n\n if (fdSelect.length !== length) {\n throw new _util.FormatError(\"parseFDSelect: Invalid font data.\");\n }\n\n return new CFFFDSelect(format, fdSelect);\n }\n };\n return CFFParser;\n}();\n\nexports.CFFParser = CFFParser;\n\nvar CFF = function CFFClosure() {\n function CFF() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n this.isCIDFont = false;\n }\n\n CFF.prototype = {\n duplicateFirstGlyph: function CFF_duplicateFirstGlyph() {\n if (this.charStrings.count >= 65535) {\n (0, _util.warn)(\"Not enough space in charstrings to duplicate first glyph.\");\n return;\n }\n\n var glyphZero = this.charStrings.get(0);\n this.charStrings.add(glyphZero);\n\n if (this.isCIDFont) {\n this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n }\n },\n hasGlyphId: function CFF_hasGlyphID(id) {\n if (id < 0 || id >= this.charStrings.count) {\n return false;\n }\n\n var glyph = this.charStrings.get(id);\n return glyph.length > 0;\n }\n };\n return CFF;\n}();\n\nexports.CFF = CFF;\n\nvar CFFHeader = function CFFHeaderClosure() {\n function CFFHeader(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n\n return CFFHeader;\n}();\n\nexports.CFFHeader = CFFHeader;\n\nvar CFFStrings = function CFFStringsClosure() {\n function CFFStrings() {\n this.strings = [];\n }\n\n CFFStrings.prototype = {\n get: function CFFStrings_get(index) {\n if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n return CFFStandardStrings[index];\n }\n\n if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n }\n\n return CFFStandardStrings[0];\n },\n getSID: function CFFStrings_getSID(str) {\n let index = CFFStandardStrings.indexOf(str);\n\n if (index !== -1) {\n return index;\n }\n\n index = this.strings.indexOf(str);\n\n if (index !== -1) {\n return index + NUM_STANDARD_CFF_STRINGS;\n }\n\n return -1;\n },\n add: function CFFStrings_add(value) {\n this.strings.push(value);\n },\n\n get count() {\n return this.strings.length;\n }\n\n };\n return CFFStrings;\n}();\n\nexports.CFFStrings = CFFStrings;\n\nvar CFFIndex = function CFFIndexClosure() {\n function CFFIndex() {\n this.objects = [];\n this.length = 0;\n }\n\n CFFIndex.prototype = {\n add: function CFFIndex_add(data) {\n this.length += data.length;\n this.objects.push(data);\n },\n set: function CFFIndex_set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n },\n get: function CFFIndex_get(index) {\n return this.objects[index];\n },\n\n get count() {\n return this.objects.length;\n }\n\n };\n return CFFIndex;\n}();\n\nexports.CFFIndex = CFFIndex;\n\nvar CFFDict = function CFFDictClosure() {\n function CFFDict(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n\n CFFDict.prototype = {\n setByKey: function CFFDict_setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n\n var valueLength = value.length;\n\n if (valueLength === 0) {\n return true;\n }\n\n for (var i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n\n var type = this.types[key];\n\n if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n value = value[0];\n }\n\n this.values[key] = value;\n return true;\n },\n setByName: function CFFDict_setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError(`Invalid dictionary name \"${name}\"`);\n }\n\n this.values[this.nameToKeyMap[name]] = value;\n },\n hasName: function CFFDict_hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n },\n getByName: function CFFDict_getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError(`Invalid dictionary name ${name}\"`);\n }\n\n var key = this.nameToKeyMap[name];\n\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n\n return this.values[key];\n },\n removeByName: function CFFDict_removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n };\n\n CFFDict.createTables = function CFFDict_createTables(layout) {\n var tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: []\n };\n\n for (var i = 0, ii = layout.length; i < ii; ++i) {\n var entry = layout[i];\n var key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n tables.keyToNameMap[key] = entry[1];\n tables.nameToKeyMap[entry[1]] = key;\n tables.types[key] = entry[2];\n tables.defaults[key] = entry[3];\n tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n tables.order.push(key);\n }\n\n return tables;\n };\n\n return CFFDict;\n}();\n\nvar CFFTopDict = function CFFTopDictClosure() {\n var layout = [[[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null], [[12, 20], \"SyntheticBase\", \"num\", null], [0, \"version\", \"sid\", null], [1, \"Notice\", \"sid\", null], [[12, 0], \"Copyright\", \"sid\", null], [2, \"FullName\", \"sid\", null], [3, \"FamilyName\", \"sid\", null], [4, \"Weight\", \"sid\", null], [[12, 1], \"isFixedPitch\", \"num\", 0], [[12, 2], \"ItalicAngle\", \"num\", 0], [[12, 3], \"UnderlinePosition\", \"num\", -100], [[12, 4], \"UnderlineThickness\", \"num\", 50], [[12, 5], \"PaintType\", \"num\", 0], [[12, 6], \"CharstringType\", \"num\", 2], [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"], [0.001, 0, 0, 0.001, 0, 0]], [13, \"UniqueID\", \"num\", null], [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]], [[12, 8], \"StrokeWidth\", \"num\", 0], [14, \"XUID\", \"array\", null], [15, \"charset\", \"offset\", 0], [16, \"Encoding\", \"offset\", 0], [17, \"CharStrings\", \"offset\", 0], [18, \"Private\", [\"offset\", \"offset\"], null], [[12, 21], \"PostScript\", \"sid\", null], [[12, 22], \"BaseFontName\", \"sid\", null], [[12, 23], \"BaseFontBlend\", \"delta\", null], [[12, 31], \"CIDFontVersion\", \"num\", 0], [[12, 32], \"CIDFontRevision\", \"num\", 0], [[12, 33], \"CIDFontType\", \"num\", 0], [[12, 34], \"CIDCount\", \"num\", 8720], [[12, 35], \"UIDBase\", \"num\", null], [[12, 37], \"FDSelect\", \"offset\", null], [[12, 36], \"FDArray\", \"offset\", null], [[12, 38], \"FontName\", \"sid\", null]];\n var tables = null;\n\n function CFFTopDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n\n CFFDict.call(this, tables, strings);\n this.privateDict = null;\n }\n\n CFFTopDict.prototype = Object.create(CFFDict.prototype);\n return CFFTopDict;\n}();\n\nexports.CFFTopDict = CFFTopDict;\n\nvar CFFPrivateDict = function CFFPrivateDictClosure() {\n var layout = [[6, \"BlueValues\", \"delta\", null], [7, \"OtherBlues\", \"delta\", null], [8, \"FamilyBlues\", \"delta\", null], [9, \"FamilyOtherBlues\", \"delta\", null], [[12, 9], \"BlueScale\", \"num\", 0.039625], [[12, 10], \"BlueShift\", \"num\", 7], [[12, 11], \"BlueFuzz\", \"num\", 1], [10, \"StdHW\", \"num\", null], [11, \"StdVW\", \"num\", null], [[12, 12], \"StemSnapH\", \"delta\", null], [[12, 13], \"StemSnapV\", \"delta\", null], [[12, 14], \"ForceBold\", \"num\", 0], [[12, 17], \"LanguageGroup\", \"num\", 0], [[12, 18], \"ExpansionFactor\", \"num\", 0.06], [[12, 19], \"initialRandomSeed\", \"num\", 0], [20, \"defaultWidthX\", \"num\", 0], [21, \"nominalWidthX\", \"num\", 0], [19, \"Subrs\", \"offset\", null]];\n var tables = null;\n\n function CFFPrivateDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n\n CFFDict.call(this, tables, strings);\n this.subrsIndex = null;\n }\n\n CFFPrivateDict.prototype = Object.create(CFFDict.prototype);\n return CFFPrivateDict;\n}();\n\nexports.CFFPrivateDict = CFFPrivateDict;\nvar CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2\n};\n\nvar CFFCharset = function CFFCharsetClosure() {\n function CFFCharset(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n\n return CFFCharset;\n}();\n\nexports.CFFCharset = CFFCharset;\n\nvar CFFEncoding = function CFFEncodingClosure() {\n function CFFEncoding(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n\n return CFFEncoding;\n}();\n\nvar CFFFDSelect = function CFFFDSelectClosure() {\n function CFFFDSelect(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n\n CFFFDSelect.prototype = {\n getFDIndex: function CFFFDSelect_get(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n\n return this.fdSelect[glyphIndex];\n }\n };\n return CFFFDSelect;\n}();\n\nexports.CFFFDSelect = CFFFDSelect;\n\nvar CFFOffsetTracker = function CFFOffsetTrackerClosure() {\n function CFFOffsetTracker() {\n this.offsets = Object.create(null);\n }\n\n CFFOffsetTracker.prototype = {\n isTracking: function CFFOffsetTracker_isTracking(key) {\n return key in this.offsets;\n },\n track: function CFFOffsetTracker_track(key, location) {\n if (key in this.offsets) {\n throw new _util.FormatError(`Already tracking location of ${key}`);\n }\n\n this.offsets[key] = location;\n },\n offset: function CFFOffsetTracker_offset(value) {\n for (var key in this.offsets) {\n this.offsets[key] += value;\n }\n },\n setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new _util.FormatError(`Not tracking location of ${key}`);\n }\n\n var data = output.data;\n var dataOffset = this.offsets[key];\n var size = 5;\n\n for (var i = 0, ii = values.length; i < ii; ++i) {\n var offset0 = i * size + dataOffset;\n var offset1 = offset0 + 1;\n var offset2 = offset0 + 2;\n var offset3 = offset0 + 3;\n var offset4 = offset0 + 4;\n\n if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n throw new _util.FormatError(\"writing to an offset that is not empty\");\n }\n\n var value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = value >> 24 & 0xff;\n data[offset2] = value >> 16 & 0xff;\n data[offset3] = value >> 8 & 0xff;\n data[offset4] = value & 0xff;\n }\n }\n };\n return CFFOffsetTracker;\n}();\n\nvar CFFCompiler = function CFFCompilerClosure() {\n function CFFCompiler(cff) {\n this.cff = cff;\n }\n\n CFFCompiler.prototype = {\n compile: function CFFCompiler_compile() {\n var cff = this.cff;\n var output = {\n data: [],\n length: 0,\n add: function CFFCompiler_add(data) {\n this.data = this.data.concat(data);\n this.length = this.data.length;\n }\n };\n var header = this.compileHeader(cff.header);\n output.add(header);\n var nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n\n if (cff.isCIDFont) {\n if (cff.topDict.hasName(\"FontMatrix\")) {\n var base = cff.topDict.getByName(\"FontMatrix\");\n cff.topDict.removeByName(\"FontMatrix\");\n\n for (var i = 0, ii = cff.fdArray.length; i < ii; i++) {\n var subDict = cff.fdArray[i];\n var matrix = base.slice(0);\n\n if (subDict.hasName(\"FontMatrix\")) {\n matrix = _util.Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n }\n\n subDict.setByName(\"FontMatrix\", matrix);\n }\n }\n }\n\n cff.topDict.setByName(\"charset\", 0);\n var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n output.add(compiled.output);\n var topDictTracker = compiled.trackers[0];\n var stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n\n if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation(\"Encoding\", [cff.encoding.format], output);\n } else {\n var encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n output.add(encoding);\n }\n }\n\n var charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont);\n topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n output.add(charset);\n var charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n output.add(charStrings);\n\n if (cff.isCIDFont) {\n topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n var fdSelect = this.compileFDSelect(cff.fdSelect);\n output.add(fdSelect);\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n output.add(compiled.output);\n var fontDictTrackers = compiled.trackers;\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n output.add([0]);\n return output.data;\n },\n encodeNumber: function CFFCompiler_encodeNumber(value) {\n if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) {\n return this.encodeInteger(value);\n }\n\n return this.encodeFloat(value);\n },\n encodeFloat: function CFFCompiler_encodeFloat(num) {\n var value = num.toString();\n var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n\n if (m) {\n var epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n\n var nibbles = \"\";\n var i, ii;\n\n for (i = 0, ii = value.length; i < ii; ++i) {\n var a = value[i];\n\n if (a === \"e\") {\n nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n } else if (a === \".\") {\n nibbles += \"a\";\n } else if (a === \"-\") {\n nibbles += \"e\";\n } else {\n nibbles += a;\n }\n }\n\n nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n var out = [30];\n\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substring(i, i + 2), 16));\n }\n\n return out;\n },\n encodeInteger: function CFFCompiler_encodeInteger(value) {\n var code;\n\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value = value - 108;\n code = [(value >> 8) + 247, value & 0xff];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xff];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, value >> 8 & 0xff, value & 0xff];\n } else {\n code = [0x1d, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff];\n }\n\n return code;\n },\n compileHeader: function CFFCompiler_compileHeader(header) {\n return [header.major, header.minor, header.hdrSize, header.offSize];\n },\n compileNameIndex: function CFFCompiler_compileNameIndex(names) {\n var nameIndex = new CFFIndex();\n\n for (var i = 0, ii = names.length; i < ii; ++i) {\n var name = names[i];\n var length = Math.min(name.length, 127);\n var sanitizedName = new Array(length);\n\n for (var j = 0; j < length; j++) {\n var char = name[j];\n\n if (char < \"!\" || char > \"~\" || char === \"[\" || char === \"]\" || char === \"(\" || char === \")\" || char === \"{\" || char === \"}\" || char === \"<\" || char === \">\" || char === \"/\" || char === \"%\") {\n char = \"_\";\n }\n\n sanitizedName[j] = char;\n }\n\n sanitizedName = sanitizedName.join(\"\");\n\n if (sanitizedName === \"\") {\n sanitizedName = \"Bad_Font_Name\";\n }\n\n nameIndex.add((0, _util.stringToBytes)(sanitizedName));\n }\n\n return this.compileIndex(nameIndex);\n },\n compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length, removeCidKeys) {\n var fontDictTrackers = [];\n var fdArrayIndex = new CFFIndex();\n\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n\n if (removeCidKeys) {\n fontDict.removeByName(\"CIDFontVersion\");\n fontDict.removeByName(\"CIDFontRevision\");\n fontDict.removeByName(\"CIDFontType\");\n fontDict.removeByName(\"CIDCount\");\n fontDict.removeByName(\"UIDBase\");\n }\n\n var fontDictTracker = new CFFOffsetTracker();\n var fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex\n };\n },\n compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, trackers, output) {\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n var privateDict = fontDict.privateDict;\n\n if (!privateDict || !fontDict.hasName(\"Private\")) {\n throw new _util.FormatError(\"There must be a private dictionary.\");\n }\n\n var privateDictTracker = new CFFOffsetTracker();\n var privateDictData = this.compileDict(privateDict, privateDictTracker);\n var outputLength = output.length;\n privateDictTracker.offset(outputLength);\n\n if (!privateDictData.length) {\n outputLength = 0;\n }\n\n trackers[i].setEntryLocation(\"Private\", [privateDictData.length, outputLength], output);\n output.add(privateDictData);\n\n if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n var subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation(\"Subrs\", [privateDictData.length], output);\n output.add(subrs);\n }\n }\n },\n compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {\n var out = [];\n var order = dict.order;\n\n for (var i = 0; i < order.length; ++i) {\n var key = order[i];\n\n if (!(key in dict.values)) {\n continue;\n }\n\n var values = dict.values[key];\n var types = dict.types[key];\n\n if (!Array.isArray(types)) {\n types = [types];\n }\n\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n if (values.length === 0) {\n continue;\n }\n\n for (var j = 0, jj = types.length; j < jj; ++j) {\n var type = types[j];\n var value = values[j];\n\n switch (type) {\n case \"num\":\n case \"sid\":\n out = out.concat(this.encodeNumber(value));\n break;\n\n case \"offset\":\n var name = dict.keyToNameMap[key];\n\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n\n case \"array\":\n case \"delta\":\n out = out.concat(this.encodeNumber(value));\n\n for (var k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unknown data type of ${type}`);\n }\n }\n\n out = out.concat(dict.opcodes[key]);\n }\n\n return out;\n },\n compileStringIndex: function CFFCompiler_compileStringIndex(strings) {\n var stringIndex = new CFFIndex();\n\n for (var i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add((0, _util.stringToBytes)(strings[i]));\n }\n\n return this.compileIndex(stringIndex);\n },\n compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {\n var globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n },\n compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {\n var charStringsIndex = new CFFIndex();\n\n for (var i = 0; i < charStrings.count; i++) {\n var glyph = charStrings.get(i);\n\n if (glyph.length === 0) {\n charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n continue;\n }\n\n charStringsIndex.add(glyph);\n }\n\n return this.compileIndex(charStringsIndex);\n },\n compileCharset: function CFFCompiler_compileCharset(charset, numGlyphs, strings, isCIDFont) {\n let out;\n const numGlyphsLessNotDef = numGlyphs - 1;\n\n if (isCIDFont) {\n out = new Uint8Array([2, 0, 0, numGlyphsLessNotDef >> 8 & 0xff, numGlyphsLessNotDef & 0xff]);\n } else {\n const length = 1 + numGlyphsLessNotDef * 2;\n out = new Uint8Array(length);\n out[0] = 0;\n let charsetIndex = 0;\n const numCharsets = charset.charset.length;\n let warned = false;\n\n for (let i = 1; i < out.length; i += 2) {\n let sid = 0;\n\n if (charsetIndex < numCharsets) {\n const name = charset.charset[charsetIndex++];\n sid = strings.getSID(name);\n\n if (sid === -1) {\n sid = 0;\n\n if (!warned) {\n warned = true;\n (0, _util.warn)(`Couldn't find ${name} in CFF strings`);\n }\n }\n }\n\n out[i] = sid >> 8 & 0xff;\n out[i + 1] = sid & 0xff;\n }\n }\n\n return this.compileTypedArray(out);\n },\n compileEncoding: function CFFCompiler_compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n },\n compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {\n const format = fdSelect.format;\n let out, i;\n\n switch (format) {\n case 0:\n out = new Uint8Array(1 + fdSelect.fdSelect.length);\n out[0] = format;\n\n for (i = 0; i < fdSelect.fdSelect.length; i++) {\n out[i + 1] = fdSelect.fdSelect[i];\n }\n\n break;\n\n case 3:\n const start = 0;\n let lastFD = fdSelect.fdSelect[0];\n const ranges = [format, 0, 0, start >> 8 & 0xff, start & 0xff, lastFD];\n\n for (i = 1; i < fdSelect.fdSelect.length; i++) {\n const currentFD = fdSelect.fdSelect[i];\n\n if (currentFD !== lastFD) {\n ranges.push(i >> 8 & 0xff, i & 0xff, currentFD);\n lastFD = currentFD;\n }\n }\n\n const numRanges = (ranges.length - 3) / 3;\n ranges[1] = numRanges >> 8 & 0xff;\n ranges[2] = numRanges & 0xff;\n ranges.push(i >> 8 & 0xff, i & 0xff);\n out = new Uint8Array(ranges);\n break;\n }\n\n return this.compileTypedArray(out);\n },\n compileTypedArray: function CFFCompiler_compileTypedArray(data) {\n var out = [];\n\n for (var i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n\n return out;\n },\n compileIndex: function CFFCompiler_compileIndex(index, trackers) {\n trackers = trackers || [];\n var objects = index.objects;\n var count = objects.length;\n\n if (count === 0) {\n return [0, 0, 0];\n }\n\n var data = [count >> 8 & 0xff, count & 0xff];\n var lastOffset = 1,\n i;\n\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n\n var offsetSize;\n\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n\n data.push(offsetSize);\n var relativeOffset = 1;\n\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xff);\n } else if (offsetSize === 2) {\n data.push(relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n } else if (offsetSize === 3) {\n data.push(relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n } else {\n data.push(relativeOffset >>> 24 & 0xff, relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n }\n\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n\n for (i = 0; i < count; i++) {\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n\n for (var j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n\n return data;\n }\n };\n return CFFCompiler;\n}();\n\nexports.CFFCompiler = CFFCompiler;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ExpertSubsetCharset = exports.ExpertCharset = exports.ISOAdobeCharset = void 0;\nconst ISOAdobeCharset = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"];\nexports.ISOAdobeCharset = ISOAdobeCharset;\nconst ExpertCharset = [\".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nexports.ExpertCharset = ExpertCharset;\nconst ExpertSubsetCharset = [\".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\"];\nexports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getEncoding = getEncoding;\nexports.ExpertEncoding = exports.ZapfDingbatsEncoding = exports.SymbolSetEncoding = exports.MacRomanEncoding = exports.StandardEncoding = exports.WinAnsiEncoding = void 0;\nconst ExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\", \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\"];\nexports.ExpertEncoding = ExpertEncoding;\nconst MacExpertEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\", \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\", \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\", \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\", \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\", \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\", \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\", \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\", \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\", \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\", \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\", \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\", \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\", \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\", \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\", \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\", \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\", \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\", \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\nconst MacRomanEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\", \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\"];\nexports.MacRomanEncoding = MacRomanEncoding;\nconst StandardEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\", \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\", \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\", \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\", \"\", \"\", \"\"];\nexports.StandardEncoding = StandardEncoding;\nconst WinAnsiEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\", \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\", \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\", \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\", \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\", \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\", \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\", \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\", \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\", \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\", \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\", \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\", \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\", \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\", \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\", \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\", \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\", \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\", \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\", \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\", \"ydieresis\"];\nexports.WinAnsiEncoding = WinAnsiEncoding;\nconst SymbolSetEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\", \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\", \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\", \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\", \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\", \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\", \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\", \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\", \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\", \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\", \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\", \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\", \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\", \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\", \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\", \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\", \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\", \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\", \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\", \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\", \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\", \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\", \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\", \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\", \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\", \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\", \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\", \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\", \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\", \"bracerightbt\", \"\"];\nexports.SymbolSetEncoding = SymbolSetEncoding;\nconst ZapfDingbatsEncoding = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\", \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\", \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\", \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\", \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\", \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\", \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\", \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\", \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\", \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\", \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\", \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\", \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\", \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\", \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\", \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\", \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\", \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\", \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\", \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\", \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\nexports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\n\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case \"WinAnsiEncoding\":\n return WinAnsiEncoding;\n\n case \"StandardEncoding\":\n return StandardEncoding;\n\n case \"MacRomanEncoding\":\n return MacRomanEncoding;\n\n case \"SymbolSetEncoding\":\n return SymbolSetEncoding;\n\n case \"ZapfDingbatsEncoding\":\n return ZapfDingbatsEncoding;\n\n case \"ExpertEncoding\":\n return ExpertEncoding;\n\n case \"MacExpertEncoding\":\n return MacExpertEncoding;\n\n default:\n return null;\n }\n}\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(8).getLookupTableFactory;\nvar getGlyphsUnicode = getLookupTableFactory(function (t) {\n t.A = 0x0041;\n t.AE = 0x00c6;\n t.AEacute = 0x01fc;\n t.AEmacron = 0x01e2;\n t.AEsmall = 0xf7e6;\n t.Aacute = 0x00c1;\n t.Aacutesmall = 0xf7e1;\n t.Abreve = 0x0102;\n t.Abreveacute = 0x1eae;\n t.Abrevecyrillic = 0x04d0;\n t.Abrevedotbelow = 0x1eb6;\n t.Abrevegrave = 0x1eb0;\n t.Abrevehookabove = 0x1eb2;\n t.Abrevetilde = 0x1eb4;\n t.Acaron = 0x01cd;\n t.Acircle = 0x24b6;\n t.Acircumflex = 0x00c2;\n t.Acircumflexacute = 0x1ea4;\n t.Acircumflexdotbelow = 0x1eac;\n t.Acircumflexgrave = 0x1ea6;\n t.Acircumflexhookabove = 0x1ea8;\n t.Acircumflexsmall = 0xf7e2;\n t.Acircumflextilde = 0x1eaa;\n t.Acute = 0xf6c9;\n t.Acutesmall = 0xf7b4;\n t.Acyrillic = 0x0410;\n t.Adblgrave = 0x0200;\n t.Adieresis = 0x00c4;\n t.Adieresiscyrillic = 0x04d2;\n t.Adieresismacron = 0x01de;\n t.Adieresissmall = 0xf7e4;\n t.Adotbelow = 0x1ea0;\n t.Adotmacron = 0x01e0;\n t.Agrave = 0x00c0;\n t.Agravesmall = 0xf7e0;\n t.Ahookabove = 0x1ea2;\n t.Aiecyrillic = 0x04d4;\n t.Ainvertedbreve = 0x0202;\n t.Alpha = 0x0391;\n t.Alphatonos = 0x0386;\n t.Amacron = 0x0100;\n t.Amonospace = 0xff21;\n t.Aogonek = 0x0104;\n t.Aring = 0x00c5;\n t.Aringacute = 0x01fa;\n t.Aringbelow = 0x1e00;\n t.Aringsmall = 0xf7e5;\n t.Asmall = 0xf761;\n t.Atilde = 0x00c3;\n t.Atildesmall = 0xf7e3;\n t.Aybarmenian = 0x0531;\n t.B = 0x0042;\n t.Bcircle = 0x24b7;\n t.Bdotaccent = 0x1e02;\n t.Bdotbelow = 0x1e04;\n t.Becyrillic = 0x0411;\n t.Benarmenian = 0x0532;\n t.Beta = 0x0392;\n t.Bhook = 0x0181;\n t.Blinebelow = 0x1e06;\n t.Bmonospace = 0xff22;\n t.Brevesmall = 0xf6f4;\n t.Bsmall = 0xf762;\n t.Btopbar = 0x0182;\n t.C = 0x0043;\n t.Caarmenian = 0x053e;\n t.Cacute = 0x0106;\n t.Caron = 0xf6ca;\n t.Caronsmall = 0xf6f5;\n t.Ccaron = 0x010c;\n t.Ccedilla = 0x00c7;\n t.Ccedillaacute = 0x1e08;\n t.Ccedillasmall = 0xf7e7;\n t.Ccircle = 0x24b8;\n t.Ccircumflex = 0x0108;\n t.Cdot = 0x010a;\n t.Cdotaccent = 0x010a;\n t.Cedillasmall = 0xf7b8;\n t.Chaarmenian = 0x0549;\n t.Cheabkhasiancyrillic = 0x04bc;\n t.Checyrillic = 0x0427;\n t.Chedescenderabkhasiancyrillic = 0x04be;\n t.Chedescendercyrillic = 0x04b6;\n t.Chedieresiscyrillic = 0x04f4;\n t.Cheharmenian = 0x0543;\n t.Chekhakassiancyrillic = 0x04cb;\n t.Cheverticalstrokecyrillic = 0x04b8;\n t.Chi = 0x03a7;\n t.Chook = 0x0187;\n t.Circumflexsmall = 0xf6f6;\n t.Cmonospace = 0xff23;\n t.Coarmenian = 0x0551;\n t.Csmall = 0xf763;\n t.D = 0x0044;\n t.DZ = 0x01f1;\n t.DZcaron = 0x01c4;\n t.Daarmenian = 0x0534;\n t.Dafrican = 0x0189;\n t.Dcaron = 0x010e;\n t.Dcedilla = 0x1e10;\n t.Dcircle = 0x24b9;\n t.Dcircumflexbelow = 0x1e12;\n t.Dcroat = 0x0110;\n t.Ddotaccent = 0x1e0a;\n t.Ddotbelow = 0x1e0c;\n t.Decyrillic = 0x0414;\n t.Deicoptic = 0x03ee;\n t.Delta = 0x2206;\n t.Deltagreek = 0x0394;\n t.Dhook = 0x018a;\n t.Dieresis = 0xf6cb;\n t.DieresisAcute = 0xf6cc;\n t.DieresisGrave = 0xf6cd;\n t.Dieresissmall = 0xf7a8;\n t.Digammagreek = 0x03dc;\n t.Djecyrillic = 0x0402;\n t.Dlinebelow = 0x1e0e;\n t.Dmonospace = 0xff24;\n t.Dotaccentsmall = 0xf6f7;\n t.Dslash = 0x0110;\n t.Dsmall = 0xf764;\n t.Dtopbar = 0x018b;\n t.Dz = 0x01f2;\n t.Dzcaron = 0x01c5;\n t.Dzeabkhasiancyrillic = 0x04e0;\n t.Dzecyrillic = 0x0405;\n t.Dzhecyrillic = 0x040f;\n t.E = 0x0045;\n t.Eacute = 0x00c9;\n t.Eacutesmall = 0xf7e9;\n t.Ebreve = 0x0114;\n t.Ecaron = 0x011a;\n t.Ecedillabreve = 0x1e1c;\n t.Echarmenian = 0x0535;\n t.Ecircle = 0x24ba;\n t.Ecircumflex = 0x00ca;\n t.Ecircumflexacute = 0x1ebe;\n t.Ecircumflexbelow = 0x1e18;\n t.Ecircumflexdotbelow = 0x1ec6;\n t.Ecircumflexgrave = 0x1ec0;\n t.Ecircumflexhookabove = 0x1ec2;\n t.Ecircumflexsmall = 0xf7ea;\n t.Ecircumflextilde = 0x1ec4;\n t.Ecyrillic = 0x0404;\n t.Edblgrave = 0x0204;\n t.Edieresis = 0x00cb;\n t.Edieresissmall = 0xf7eb;\n t.Edot = 0x0116;\n t.Edotaccent = 0x0116;\n t.Edotbelow = 0x1eb8;\n t.Efcyrillic = 0x0424;\n t.Egrave = 0x00c8;\n t.Egravesmall = 0xf7e8;\n t.Eharmenian = 0x0537;\n t.Ehookabove = 0x1eba;\n t.Eightroman = 0x2167;\n t.Einvertedbreve = 0x0206;\n t.Eiotifiedcyrillic = 0x0464;\n t.Elcyrillic = 0x041b;\n t.Elevenroman = 0x216a;\n t.Emacron = 0x0112;\n t.Emacronacute = 0x1e16;\n t.Emacrongrave = 0x1e14;\n t.Emcyrillic = 0x041c;\n t.Emonospace = 0xff25;\n t.Encyrillic = 0x041d;\n t.Endescendercyrillic = 0x04a2;\n t.Eng = 0x014a;\n t.Enghecyrillic = 0x04a4;\n t.Enhookcyrillic = 0x04c7;\n t.Eogonek = 0x0118;\n t.Eopen = 0x0190;\n t.Epsilon = 0x0395;\n t.Epsilontonos = 0x0388;\n t.Ercyrillic = 0x0420;\n t.Ereversed = 0x018e;\n t.Ereversedcyrillic = 0x042d;\n t.Escyrillic = 0x0421;\n t.Esdescendercyrillic = 0x04aa;\n t.Esh = 0x01a9;\n t.Esmall = 0xf765;\n t.Eta = 0x0397;\n t.Etarmenian = 0x0538;\n t.Etatonos = 0x0389;\n t.Eth = 0x00d0;\n t.Ethsmall = 0xf7f0;\n t.Etilde = 0x1ebc;\n t.Etildebelow = 0x1e1a;\n t.Euro = 0x20ac;\n t.Ezh = 0x01b7;\n t.Ezhcaron = 0x01ee;\n t.Ezhreversed = 0x01b8;\n t.F = 0x0046;\n t.Fcircle = 0x24bb;\n t.Fdotaccent = 0x1e1e;\n t.Feharmenian = 0x0556;\n t.Feicoptic = 0x03e4;\n t.Fhook = 0x0191;\n t.Fitacyrillic = 0x0472;\n t.Fiveroman = 0x2164;\n t.Fmonospace = 0xff26;\n t.Fourroman = 0x2163;\n t.Fsmall = 0xf766;\n t.G = 0x0047;\n t.GBsquare = 0x3387;\n t.Gacute = 0x01f4;\n t.Gamma = 0x0393;\n t.Gammaafrican = 0x0194;\n t.Gangiacoptic = 0x03ea;\n t.Gbreve = 0x011e;\n t.Gcaron = 0x01e6;\n t.Gcedilla = 0x0122;\n t.Gcircle = 0x24bc;\n t.Gcircumflex = 0x011c;\n t.Gcommaaccent = 0x0122;\n t.Gdot = 0x0120;\n t.Gdotaccent = 0x0120;\n t.Gecyrillic = 0x0413;\n t.Ghadarmenian = 0x0542;\n t.Ghemiddlehookcyrillic = 0x0494;\n t.Ghestrokecyrillic = 0x0492;\n t.Gheupturncyrillic = 0x0490;\n t.Ghook = 0x0193;\n t.Gimarmenian = 0x0533;\n t.Gjecyrillic = 0x0403;\n t.Gmacron = 0x1e20;\n t.Gmonospace = 0xff27;\n t.Grave = 0xf6ce;\n t.Gravesmall = 0xf760;\n t.Gsmall = 0xf767;\n t.Gsmallhook = 0x029b;\n t.Gstroke = 0x01e4;\n t.H = 0x0048;\n t.H18533 = 0x25cf;\n t.H18543 = 0x25aa;\n t.H18551 = 0x25ab;\n t.H22073 = 0x25a1;\n t.HPsquare = 0x33cb;\n t.Haabkhasiancyrillic = 0x04a8;\n t.Hadescendercyrillic = 0x04b2;\n t.Hardsigncyrillic = 0x042a;\n t.Hbar = 0x0126;\n t.Hbrevebelow = 0x1e2a;\n t.Hcedilla = 0x1e28;\n t.Hcircle = 0x24bd;\n t.Hcircumflex = 0x0124;\n t.Hdieresis = 0x1e26;\n t.Hdotaccent = 0x1e22;\n t.Hdotbelow = 0x1e24;\n t.Hmonospace = 0xff28;\n t.Hoarmenian = 0x0540;\n t.Horicoptic = 0x03e8;\n t.Hsmall = 0xf768;\n t.Hungarumlaut = 0xf6cf;\n t.Hungarumlautsmall = 0xf6f8;\n t.Hzsquare = 0x3390;\n t.I = 0x0049;\n t.IAcyrillic = 0x042f;\n t.IJ = 0x0132;\n t.IUcyrillic = 0x042e;\n t.Iacute = 0x00cd;\n t.Iacutesmall = 0xf7ed;\n t.Ibreve = 0x012c;\n t.Icaron = 0x01cf;\n t.Icircle = 0x24be;\n t.Icircumflex = 0x00ce;\n t.Icircumflexsmall = 0xf7ee;\n t.Icyrillic = 0x0406;\n t.Idblgrave = 0x0208;\n t.Idieresis = 0x00cf;\n t.Idieresisacute = 0x1e2e;\n t.Idieresiscyrillic = 0x04e4;\n t.Idieresissmall = 0xf7ef;\n t.Idot = 0x0130;\n t.Idotaccent = 0x0130;\n t.Idotbelow = 0x1eca;\n t.Iebrevecyrillic = 0x04d6;\n t.Iecyrillic = 0x0415;\n t.Ifraktur = 0x2111;\n t.Igrave = 0x00cc;\n t.Igravesmall = 0xf7ec;\n t.Ihookabove = 0x1ec8;\n t.Iicyrillic = 0x0418;\n t.Iinvertedbreve = 0x020a;\n t.Iishortcyrillic = 0x0419;\n t.Imacron = 0x012a;\n t.Imacroncyrillic = 0x04e2;\n t.Imonospace = 0xff29;\n t.Iniarmenian = 0x053b;\n t.Iocyrillic = 0x0401;\n t.Iogonek = 0x012e;\n t.Iota = 0x0399;\n t.Iotaafrican = 0x0196;\n t.Iotadieresis = 0x03aa;\n t.Iotatonos = 0x038a;\n t.Ismall = 0xf769;\n t.Istroke = 0x0197;\n t.Itilde = 0x0128;\n t.Itildebelow = 0x1e2c;\n t.Izhitsacyrillic = 0x0474;\n t.Izhitsadblgravecyrillic = 0x0476;\n t.J = 0x004a;\n t.Jaarmenian = 0x0541;\n t.Jcircle = 0x24bf;\n t.Jcircumflex = 0x0134;\n t.Jecyrillic = 0x0408;\n t.Jheharmenian = 0x054b;\n t.Jmonospace = 0xff2a;\n t.Jsmall = 0xf76a;\n t.K = 0x004b;\n t.KBsquare = 0x3385;\n t.KKsquare = 0x33cd;\n t.Kabashkircyrillic = 0x04a0;\n t.Kacute = 0x1e30;\n t.Kacyrillic = 0x041a;\n t.Kadescendercyrillic = 0x049a;\n t.Kahookcyrillic = 0x04c3;\n t.Kappa = 0x039a;\n t.Kastrokecyrillic = 0x049e;\n t.Kaverticalstrokecyrillic = 0x049c;\n t.Kcaron = 0x01e8;\n t.Kcedilla = 0x0136;\n t.Kcircle = 0x24c0;\n t.Kcommaaccent = 0x0136;\n t.Kdotbelow = 0x1e32;\n t.Keharmenian = 0x0554;\n t.Kenarmenian = 0x053f;\n t.Khacyrillic = 0x0425;\n t.Kheicoptic = 0x03e6;\n t.Khook = 0x0198;\n t.Kjecyrillic = 0x040c;\n t.Klinebelow = 0x1e34;\n t.Kmonospace = 0xff2b;\n t.Koppacyrillic = 0x0480;\n t.Koppagreek = 0x03de;\n t.Ksicyrillic = 0x046e;\n t.Ksmall = 0xf76b;\n t.L = 0x004c;\n t.LJ = 0x01c7;\n t.LL = 0xf6bf;\n t.Lacute = 0x0139;\n t.Lambda = 0x039b;\n t.Lcaron = 0x013d;\n t.Lcedilla = 0x013b;\n t.Lcircle = 0x24c1;\n t.Lcircumflexbelow = 0x1e3c;\n t.Lcommaaccent = 0x013b;\n t.Ldot = 0x013f;\n t.Ldotaccent = 0x013f;\n t.Ldotbelow = 0x1e36;\n t.Ldotbelowmacron = 0x1e38;\n t.Liwnarmenian = 0x053c;\n t.Lj = 0x01c8;\n t.Ljecyrillic = 0x0409;\n t.Llinebelow = 0x1e3a;\n t.Lmonospace = 0xff2c;\n t.Lslash = 0x0141;\n t.Lslashsmall = 0xf6f9;\n t.Lsmall = 0xf76c;\n t.M = 0x004d;\n t.MBsquare = 0x3386;\n t.Macron = 0xf6d0;\n t.Macronsmall = 0xf7af;\n t.Macute = 0x1e3e;\n t.Mcircle = 0x24c2;\n t.Mdotaccent = 0x1e40;\n t.Mdotbelow = 0x1e42;\n t.Menarmenian = 0x0544;\n t.Mmonospace = 0xff2d;\n t.Msmall = 0xf76d;\n t.Mturned = 0x019c;\n t.Mu = 0x039c;\n t.N = 0x004e;\n t.NJ = 0x01ca;\n t.Nacute = 0x0143;\n t.Ncaron = 0x0147;\n t.Ncedilla = 0x0145;\n t.Ncircle = 0x24c3;\n t.Ncircumflexbelow = 0x1e4a;\n t.Ncommaaccent = 0x0145;\n t.Ndotaccent = 0x1e44;\n t.Ndotbelow = 0x1e46;\n t.Nhookleft = 0x019d;\n t.Nineroman = 0x2168;\n t.Nj = 0x01cb;\n t.Njecyrillic = 0x040a;\n t.Nlinebelow = 0x1e48;\n t.Nmonospace = 0xff2e;\n t.Nowarmenian = 0x0546;\n t.Nsmall = 0xf76e;\n t.Ntilde = 0x00d1;\n t.Ntildesmall = 0xf7f1;\n t.Nu = 0x039d;\n t.O = 0x004f;\n t.OE = 0x0152;\n t.OEsmall = 0xf6fa;\n t.Oacute = 0x00d3;\n t.Oacutesmall = 0xf7f3;\n t.Obarredcyrillic = 0x04e8;\n t.Obarreddieresiscyrillic = 0x04ea;\n t.Obreve = 0x014e;\n t.Ocaron = 0x01d1;\n t.Ocenteredtilde = 0x019f;\n t.Ocircle = 0x24c4;\n t.Ocircumflex = 0x00d4;\n t.Ocircumflexacute = 0x1ed0;\n t.Ocircumflexdotbelow = 0x1ed8;\n t.Ocircumflexgrave = 0x1ed2;\n t.Ocircumflexhookabove = 0x1ed4;\n t.Ocircumflexsmall = 0xf7f4;\n t.Ocircumflextilde = 0x1ed6;\n t.Ocyrillic = 0x041e;\n t.Odblacute = 0x0150;\n t.Odblgrave = 0x020c;\n t.Odieresis = 0x00d6;\n t.Odieresiscyrillic = 0x04e6;\n t.Odieresissmall = 0xf7f6;\n t.Odotbelow = 0x1ecc;\n t.Ogoneksmall = 0xf6fb;\n t.Ograve = 0x00d2;\n t.Ogravesmall = 0xf7f2;\n t.Oharmenian = 0x0555;\n t.Ohm = 0x2126;\n t.Ohookabove = 0x1ece;\n t.Ohorn = 0x01a0;\n t.Ohornacute = 0x1eda;\n t.Ohorndotbelow = 0x1ee2;\n t.Ohorngrave = 0x1edc;\n t.Ohornhookabove = 0x1ede;\n t.Ohorntilde = 0x1ee0;\n t.Ohungarumlaut = 0x0150;\n t.Oi = 0x01a2;\n t.Oinvertedbreve = 0x020e;\n t.Omacron = 0x014c;\n t.Omacronacute = 0x1e52;\n t.Omacrongrave = 0x1e50;\n t.Omega = 0x2126;\n t.Omegacyrillic = 0x0460;\n t.Omegagreek = 0x03a9;\n t.Omegaroundcyrillic = 0x047a;\n t.Omegatitlocyrillic = 0x047c;\n t.Omegatonos = 0x038f;\n t.Omicron = 0x039f;\n t.Omicrontonos = 0x038c;\n t.Omonospace = 0xff2f;\n t.Oneroman = 0x2160;\n t.Oogonek = 0x01ea;\n t.Oogonekmacron = 0x01ec;\n t.Oopen = 0x0186;\n t.Oslash = 0x00d8;\n t.Oslashacute = 0x01fe;\n t.Oslashsmall = 0xf7f8;\n t.Osmall = 0xf76f;\n t.Ostrokeacute = 0x01fe;\n t.Otcyrillic = 0x047e;\n t.Otilde = 0x00d5;\n t.Otildeacute = 0x1e4c;\n t.Otildedieresis = 0x1e4e;\n t.Otildesmall = 0xf7f5;\n t.P = 0x0050;\n t.Pacute = 0x1e54;\n t.Pcircle = 0x24c5;\n t.Pdotaccent = 0x1e56;\n t.Pecyrillic = 0x041f;\n t.Peharmenian = 0x054a;\n t.Pemiddlehookcyrillic = 0x04a6;\n t.Phi = 0x03a6;\n t.Phook = 0x01a4;\n t.Pi = 0x03a0;\n t.Piwrarmenian = 0x0553;\n t.Pmonospace = 0xff30;\n t.Psi = 0x03a8;\n t.Psicyrillic = 0x0470;\n t.Psmall = 0xf770;\n t.Q = 0x0051;\n t.Qcircle = 0x24c6;\n t.Qmonospace = 0xff31;\n t.Qsmall = 0xf771;\n t.R = 0x0052;\n t.Raarmenian = 0x054c;\n t.Racute = 0x0154;\n t.Rcaron = 0x0158;\n t.Rcedilla = 0x0156;\n t.Rcircle = 0x24c7;\n t.Rcommaaccent = 0x0156;\n t.Rdblgrave = 0x0210;\n t.Rdotaccent = 0x1e58;\n t.Rdotbelow = 0x1e5a;\n t.Rdotbelowmacron = 0x1e5c;\n t.Reharmenian = 0x0550;\n t.Rfraktur = 0x211c;\n t.Rho = 0x03a1;\n t.Ringsmall = 0xf6fc;\n t.Rinvertedbreve = 0x0212;\n t.Rlinebelow = 0x1e5e;\n t.Rmonospace = 0xff32;\n t.Rsmall = 0xf772;\n t.Rsmallinverted = 0x0281;\n t.Rsmallinvertedsuperior = 0x02b6;\n t.S = 0x0053;\n t.SF010000 = 0x250c;\n t.SF020000 = 0x2514;\n t.SF030000 = 0x2510;\n t.SF040000 = 0x2518;\n t.SF050000 = 0x253c;\n t.SF060000 = 0x252c;\n t.SF070000 = 0x2534;\n t.SF080000 = 0x251c;\n t.SF090000 = 0x2524;\n t.SF100000 = 0x2500;\n t.SF110000 = 0x2502;\n t.SF190000 = 0x2561;\n t.SF200000 = 0x2562;\n t.SF210000 = 0x2556;\n t.SF220000 = 0x2555;\n t.SF230000 = 0x2563;\n t.SF240000 = 0x2551;\n t.SF250000 = 0x2557;\n t.SF260000 = 0x255d;\n t.SF270000 = 0x255c;\n t.SF280000 = 0x255b;\n t.SF360000 = 0x255e;\n t.SF370000 = 0x255f;\n t.SF380000 = 0x255a;\n t.SF390000 = 0x2554;\n t.SF400000 = 0x2569;\n t.SF410000 = 0x2566;\n t.SF420000 = 0x2560;\n t.SF430000 = 0x2550;\n t.SF440000 = 0x256c;\n t.SF450000 = 0x2567;\n t.SF460000 = 0x2568;\n t.SF470000 = 0x2564;\n t.SF480000 = 0x2565;\n t.SF490000 = 0x2559;\n t.SF500000 = 0x2558;\n t.SF510000 = 0x2552;\n t.SF520000 = 0x2553;\n t.SF530000 = 0x256b;\n t.SF540000 = 0x256a;\n t.Sacute = 0x015a;\n t.Sacutedotaccent = 0x1e64;\n t.Sampigreek = 0x03e0;\n t.Scaron = 0x0160;\n t.Scarondotaccent = 0x1e66;\n t.Scaronsmall = 0xf6fd;\n t.Scedilla = 0x015e;\n t.Schwa = 0x018f;\n t.Schwacyrillic = 0x04d8;\n t.Schwadieresiscyrillic = 0x04da;\n t.Scircle = 0x24c8;\n t.Scircumflex = 0x015c;\n t.Scommaaccent = 0x0218;\n t.Sdotaccent = 0x1e60;\n t.Sdotbelow = 0x1e62;\n t.Sdotbelowdotaccent = 0x1e68;\n t.Seharmenian = 0x054d;\n t.Sevenroman = 0x2166;\n t.Shaarmenian = 0x0547;\n t.Shacyrillic = 0x0428;\n t.Shchacyrillic = 0x0429;\n t.Sheicoptic = 0x03e2;\n t.Shhacyrillic = 0x04ba;\n t.Shimacoptic = 0x03ec;\n t.Sigma = 0x03a3;\n t.Sixroman = 0x2165;\n t.Smonospace = 0xff33;\n t.Softsigncyrillic = 0x042c;\n t.Ssmall = 0xf773;\n t.Stigmagreek = 0x03da;\n t.T = 0x0054;\n t.Tau = 0x03a4;\n t.Tbar = 0x0166;\n t.Tcaron = 0x0164;\n t.Tcedilla = 0x0162;\n t.Tcircle = 0x24c9;\n t.Tcircumflexbelow = 0x1e70;\n t.Tcommaaccent = 0x0162;\n t.Tdotaccent = 0x1e6a;\n t.Tdotbelow = 0x1e6c;\n t.Tecyrillic = 0x0422;\n t.Tedescendercyrillic = 0x04ac;\n t.Tenroman = 0x2169;\n t.Tetsecyrillic = 0x04b4;\n t.Theta = 0x0398;\n t.Thook = 0x01ac;\n t.Thorn = 0x00de;\n t.Thornsmall = 0xf7fe;\n t.Threeroman = 0x2162;\n t.Tildesmall = 0xf6fe;\n t.Tiwnarmenian = 0x054f;\n t.Tlinebelow = 0x1e6e;\n t.Tmonospace = 0xff34;\n t.Toarmenian = 0x0539;\n t.Tonefive = 0x01bc;\n t.Tonesix = 0x0184;\n t.Tonetwo = 0x01a7;\n t.Tretroflexhook = 0x01ae;\n t.Tsecyrillic = 0x0426;\n t.Tshecyrillic = 0x040b;\n t.Tsmall = 0xf774;\n t.Twelveroman = 0x216b;\n t.Tworoman = 0x2161;\n t.U = 0x0055;\n t.Uacute = 0x00da;\n t.Uacutesmall = 0xf7fa;\n t.Ubreve = 0x016c;\n t.Ucaron = 0x01d3;\n t.Ucircle = 0x24ca;\n t.Ucircumflex = 0x00db;\n t.Ucircumflexbelow = 0x1e76;\n t.Ucircumflexsmall = 0xf7fb;\n t.Ucyrillic = 0x0423;\n t.Udblacute = 0x0170;\n t.Udblgrave = 0x0214;\n t.Udieresis = 0x00dc;\n t.Udieresisacute = 0x01d7;\n t.Udieresisbelow = 0x1e72;\n t.Udieresiscaron = 0x01d9;\n t.Udieresiscyrillic = 0x04f0;\n t.Udieresisgrave = 0x01db;\n t.Udieresismacron = 0x01d5;\n t.Udieresissmall = 0xf7fc;\n t.Udotbelow = 0x1ee4;\n t.Ugrave = 0x00d9;\n t.Ugravesmall = 0xf7f9;\n t.Uhookabove = 0x1ee6;\n t.Uhorn = 0x01af;\n t.Uhornacute = 0x1ee8;\n t.Uhorndotbelow = 0x1ef0;\n t.Uhorngrave = 0x1eea;\n t.Uhornhookabove = 0x1eec;\n t.Uhorntilde = 0x1eee;\n t.Uhungarumlaut = 0x0170;\n t.Uhungarumlautcyrillic = 0x04f2;\n t.Uinvertedbreve = 0x0216;\n t.Ukcyrillic = 0x0478;\n t.Umacron = 0x016a;\n t.Umacroncyrillic = 0x04ee;\n t.Umacrondieresis = 0x1e7a;\n t.Umonospace = 0xff35;\n t.Uogonek = 0x0172;\n t.Upsilon = 0x03a5;\n t.Upsilon1 = 0x03d2;\n t.Upsilonacutehooksymbolgreek = 0x03d3;\n t.Upsilonafrican = 0x01b1;\n t.Upsilondieresis = 0x03ab;\n t.Upsilondieresishooksymbolgreek = 0x03d4;\n t.Upsilonhooksymbol = 0x03d2;\n t.Upsilontonos = 0x038e;\n t.Uring = 0x016e;\n t.Ushortcyrillic = 0x040e;\n t.Usmall = 0xf775;\n t.Ustraightcyrillic = 0x04ae;\n t.Ustraightstrokecyrillic = 0x04b0;\n t.Utilde = 0x0168;\n t.Utildeacute = 0x1e78;\n t.Utildebelow = 0x1e74;\n t.V = 0x0056;\n t.Vcircle = 0x24cb;\n t.Vdotbelow = 0x1e7e;\n t.Vecyrillic = 0x0412;\n t.Vewarmenian = 0x054e;\n t.Vhook = 0x01b2;\n t.Vmonospace = 0xff36;\n t.Voarmenian = 0x0548;\n t.Vsmall = 0xf776;\n t.Vtilde = 0x1e7c;\n t.W = 0x0057;\n t.Wacute = 0x1e82;\n t.Wcircle = 0x24cc;\n t.Wcircumflex = 0x0174;\n t.Wdieresis = 0x1e84;\n t.Wdotaccent = 0x1e86;\n t.Wdotbelow = 0x1e88;\n t.Wgrave = 0x1e80;\n t.Wmonospace = 0xff37;\n t.Wsmall = 0xf777;\n t.X = 0x0058;\n t.Xcircle = 0x24cd;\n t.Xdieresis = 0x1e8c;\n t.Xdotaccent = 0x1e8a;\n t.Xeharmenian = 0x053d;\n t.Xi = 0x039e;\n t.Xmonospace = 0xff38;\n t.Xsmall = 0xf778;\n t.Y = 0x0059;\n t.Yacute = 0x00dd;\n t.Yacutesmall = 0xf7fd;\n t.Yatcyrillic = 0x0462;\n t.Ycircle = 0x24ce;\n t.Ycircumflex = 0x0176;\n t.Ydieresis = 0x0178;\n t.Ydieresissmall = 0xf7ff;\n t.Ydotaccent = 0x1e8e;\n t.Ydotbelow = 0x1ef4;\n t.Yericyrillic = 0x042b;\n t.Yerudieresiscyrillic = 0x04f8;\n t.Ygrave = 0x1ef2;\n t.Yhook = 0x01b3;\n t.Yhookabove = 0x1ef6;\n t.Yiarmenian = 0x0545;\n t.Yicyrillic = 0x0407;\n t.Yiwnarmenian = 0x0552;\n t.Ymonospace = 0xff39;\n t.Ysmall = 0xf779;\n t.Ytilde = 0x1ef8;\n t.Yusbigcyrillic = 0x046a;\n t.Yusbigiotifiedcyrillic = 0x046c;\n t.Yuslittlecyrillic = 0x0466;\n t.Yuslittleiotifiedcyrillic = 0x0468;\n t.Z = 0x005a;\n t.Zaarmenian = 0x0536;\n t.Zacute = 0x0179;\n t.Zcaron = 0x017d;\n t.Zcaronsmall = 0xf6ff;\n t.Zcircle = 0x24cf;\n t.Zcircumflex = 0x1e90;\n t.Zdot = 0x017b;\n t.Zdotaccent = 0x017b;\n t.Zdotbelow = 0x1e92;\n t.Zecyrillic = 0x0417;\n t.Zedescendercyrillic = 0x0498;\n t.Zedieresiscyrillic = 0x04de;\n t.Zeta = 0x0396;\n t.Zhearmenian = 0x053a;\n t.Zhebrevecyrillic = 0x04c1;\n t.Zhecyrillic = 0x0416;\n t.Zhedescendercyrillic = 0x0496;\n t.Zhedieresiscyrillic = 0x04dc;\n t.Zlinebelow = 0x1e94;\n t.Zmonospace = 0xff3a;\n t.Zsmall = 0xf77a;\n t.Zstroke = 0x01b5;\n t.a = 0x0061;\n t.aabengali = 0x0986;\n t.aacute = 0x00e1;\n t.aadeva = 0x0906;\n t.aagujarati = 0x0a86;\n t.aagurmukhi = 0x0a06;\n t.aamatragurmukhi = 0x0a3e;\n t.aarusquare = 0x3303;\n t.aavowelsignbengali = 0x09be;\n t.aavowelsigndeva = 0x093e;\n t.aavowelsigngujarati = 0x0abe;\n t.abbreviationmarkarmenian = 0x055f;\n t.abbreviationsigndeva = 0x0970;\n t.abengali = 0x0985;\n t.abopomofo = 0x311a;\n t.abreve = 0x0103;\n t.abreveacute = 0x1eaf;\n t.abrevecyrillic = 0x04d1;\n t.abrevedotbelow = 0x1eb7;\n t.abrevegrave = 0x1eb1;\n t.abrevehookabove = 0x1eb3;\n t.abrevetilde = 0x1eb5;\n t.acaron = 0x01ce;\n t.acircle = 0x24d0;\n t.acircumflex = 0x00e2;\n t.acircumflexacute = 0x1ea5;\n t.acircumflexdotbelow = 0x1ead;\n t.acircumflexgrave = 0x1ea7;\n t.acircumflexhookabove = 0x1ea9;\n t.acircumflextilde = 0x1eab;\n t.acute = 0x00b4;\n t.acutebelowcmb = 0x0317;\n t.acutecmb = 0x0301;\n t.acutecomb = 0x0301;\n t.acutedeva = 0x0954;\n t.acutelowmod = 0x02cf;\n t.acutetonecmb = 0x0341;\n t.acyrillic = 0x0430;\n t.adblgrave = 0x0201;\n t.addakgurmukhi = 0x0a71;\n t.adeva = 0x0905;\n t.adieresis = 0x00e4;\n t.adieresiscyrillic = 0x04d3;\n t.adieresismacron = 0x01df;\n t.adotbelow = 0x1ea1;\n t.adotmacron = 0x01e1;\n t.ae = 0x00e6;\n t.aeacute = 0x01fd;\n t.aekorean = 0x3150;\n t.aemacron = 0x01e3;\n t.afii00208 = 0x2015;\n t.afii08941 = 0x20a4;\n t.afii10017 = 0x0410;\n t.afii10018 = 0x0411;\n t.afii10019 = 0x0412;\n t.afii10020 = 0x0413;\n t.afii10021 = 0x0414;\n t.afii10022 = 0x0415;\n t.afii10023 = 0x0401;\n t.afii10024 = 0x0416;\n t.afii10025 = 0x0417;\n t.afii10026 = 0x0418;\n t.afii10027 = 0x0419;\n t.afii10028 = 0x041a;\n t.afii10029 = 0x041b;\n t.afii10030 = 0x041c;\n t.afii10031 = 0x041d;\n t.afii10032 = 0x041e;\n t.afii10033 = 0x041f;\n t.afii10034 = 0x0420;\n t.afii10035 = 0x0421;\n t.afii10036 = 0x0422;\n t.afii10037 = 0x0423;\n t.afii10038 = 0x0424;\n t.afii10039 = 0x0425;\n t.afii10040 = 0x0426;\n t.afii10041 = 0x0427;\n t.afii10042 = 0x0428;\n t.afii10043 = 0x0429;\n t.afii10044 = 0x042a;\n t.afii10045 = 0x042b;\n t.afii10046 = 0x042c;\n t.afii10047 = 0x042d;\n t.afii10048 = 0x042e;\n t.afii10049 = 0x042f;\n t.afii10050 = 0x0490;\n t.afii10051 = 0x0402;\n t.afii10052 = 0x0403;\n t.afii10053 = 0x0404;\n t.afii10054 = 0x0405;\n t.afii10055 = 0x0406;\n t.afii10056 = 0x0407;\n t.afii10057 = 0x0408;\n t.afii10058 = 0x0409;\n t.afii10059 = 0x040a;\n t.afii10060 = 0x040b;\n t.afii10061 = 0x040c;\n t.afii10062 = 0x040e;\n t.afii10063 = 0xf6c4;\n t.afii10064 = 0xf6c5;\n t.afii10065 = 0x0430;\n t.afii10066 = 0x0431;\n t.afii10067 = 0x0432;\n t.afii10068 = 0x0433;\n t.afii10069 = 0x0434;\n t.afii10070 = 0x0435;\n t.afii10071 = 0x0451;\n t.afii10072 = 0x0436;\n t.afii10073 = 0x0437;\n t.afii10074 = 0x0438;\n t.afii10075 = 0x0439;\n t.afii10076 = 0x043a;\n t.afii10077 = 0x043b;\n t.afii10078 = 0x043c;\n t.afii10079 = 0x043d;\n t.afii10080 = 0x043e;\n t.afii10081 = 0x043f;\n t.afii10082 = 0x0440;\n t.afii10083 = 0x0441;\n t.afii10084 = 0x0442;\n t.afii10085 = 0x0443;\n t.afii10086 = 0x0444;\n t.afii10087 = 0x0445;\n t.afii10088 = 0x0446;\n t.afii10089 = 0x0447;\n t.afii10090 = 0x0448;\n t.afii10091 = 0x0449;\n t.afii10092 = 0x044a;\n t.afii10093 = 0x044b;\n t.afii10094 = 0x044c;\n t.afii10095 = 0x044d;\n t.afii10096 = 0x044e;\n t.afii10097 = 0x044f;\n t.afii10098 = 0x0491;\n t.afii10099 = 0x0452;\n t.afii10100 = 0x0453;\n t.afii10101 = 0x0454;\n t.afii10102 = 0x0455;\n t.afii10103 = 0x0456;\n t.afii10104 = 0x0457;\n t.afii10105 = 0x0458;\n t.afii10106 = 0x0459;\n t.afii10107 = 0x045a;\n t.afii10108 = 0x045b;\n t.afii10109 = 0x045c;\n t.afii10110 = 0x045e;\n t.afii10145 = 0x040f;\n t.afii10146 = 0x0462;\n t.afii10147 = 0x0472;\n t.afii10148 = 0x0474;\n t.afii10192 = 0xf6c6;\n t.afii10193 = 0x045f;\n t.afii10194 = 0x0463;\n t.afii10195 = 0x0473;\n t.afii10196 = 0x0475;\n t.afii10831 = 0xf6c7;\n t.afii10832 = 0xf6c8;\n t.afii10846 = 0x04d9;\n t.afii299 = 0x200e;\n t.afii300 = 0x200f;\n t.afii301 = 0x200d;\n t.afii57381 = 0x066a;\n t.afii57388 = 0x060c;\n t.afii57392 = 0x0660;\n t.afii57393 = 0x0661;\n t.afii57394 = 0x0662;\n t.afii57395 = 0x0663;\n t.afii57396 = 0x0664;\n t.afii57397 = 0x0665;\n t.afii57398 = 0x0666;\n t.afii57399 = 0x0667;\n t.afii57400 = 0x0668;\n t.afii57401 = 0x0669;\n t.afii57403 = 0x061b;\n t.afii57407 = 0x061f;\n t.afii57409 = 0x0621;\n t.afii57410 = 0x0622;\n t.afii57411 = 0x0623;\n t.afii57412 = 0x0624;\n t.afii57413 = 0x0625;\n t.afii57414 = 0x0626;\n t.afii57415 = 0x0627;\n t.afii57416 = 0x0628;\n t.afii57417 = 0x0629;\n t.afii57418 = 0x062a;\n t.afii57419 = 0x062b;\n t.afii57420 = 0x062c;\n t.afii57421 = 0x062d;\n t.afii57422 = 0x062e;\n t.afii57423 = 0x062f;\n t.afii57424 = 0x0630;\n t.afii57425 = 0x0631;\n t.afii57426 = 0x0632;\n t.afii57427 = 0x0633;\n t.afii57428 = 0x0634;\n t.afii57429 = 0x0635;\n t.afii57430 = 0x0636;\n t.afii57431 = 0x0637;\n t.afii57432 = 0x0638;\n t.afii57433 = 0x0639;\n t.afii57434 = 0x063a;\n t.afii57440 = 0x0640;\n t.afii57441 = 0x0641;\n t.afii57442 = 0x0642;\n t.afii57443 = 0x0643;\n t.afii57444 = 0x0644;\n t.afii57445 = 0x0645;\n t.afii57446 = 0x0646;\n t.afii57448 = 0x0648;\n t.afii57449 = 0x0649;\n t.afii57450 = 0x064a;\n t.afii57451 = 0x064b;\n t.afii57452 = 0x064c;\n t.afii57453 = 0x064d;\n t.afii57454 = 0x064e;\n t.afii57455 = 0x064f;\n t.afii57456 = 0x0650;\n t.afii57457 = 0x0651;\n t.afii57458 = 0x0652;\n t.afii57470 = 0x0647;\n t.afii57505 = 0x06a4;\n t.afii57506 = 0x067e;\n t.afii57507 = 0x0686;\n t.afii57508 = 0x0698;\n t.afii57509 = 0x06af;\n t.afii57511 = 0x0679;\n t.afii57512 = 0x0688;\n t.afii57513 = 0x0691;\n t.afii57514 = 0x06ba;\n t.afii57519 = 0x06d2;\n t.afii57534 = 0x06d5;\n t.afii57636 = 0x20aa;\n t.afii57645 = 0x05be;\n t.afii57658 = 0x05c3;\n t.afii57664 = 0x05d0;\n t.afii57665 = 0x05d1;\n t.afii57666 = 0x05d2;\n t.afii57667 = 0x05d3;\n t.afii57668 = 0x05d4;\n t.afii57669 = 0x05d5;\n t.afii57670 = 0x05d6;\n t.afii57671 = 0x05d7;\n t.afii57672 = 0x05d8;\n t.afii57673 = 0x05d9;\n t.afii57674 = 0x05da;\n t.afii57675 = 0x05db;\n t.afii57676 = 0x05dc;\n t.afii57677 = 0x05dd;\n t.afii57678 = 0x05de;\n t.afii57679 = 0x05df;\n t.afii57680 = 0x05e0;\n t.afii57681 = 0x05e1;\n t.afii57682 = 0x05e2;\n t.afii57683 = 0x05e3;\n t.afii57684 = 0x05e4;\n t.afii57685 = 0x05e5;\n t.afii57686 = 0x05e6;\n t.afii57687 = 0x05e7;\n t.afii57688 = 0x05e8;\n t.afii57689 = 0x05e9;\n t.afii57690 = 0x05ea;\n t.afii57694 = 0xfb2a;\n t.afii57695 = 0xfb2b;\n t.afii57700 = 0xfb4b;\n t.afii57705 = 0xfb1f;\n t.afii57716 = 0x05f0;\n t.afii57717 = 0x05f1;\n t.afii57718 = 0x05f2;\n t.afii57723 = 0xfb35;\n t.afii57793 = 0x05b4;\n t.afii57794 = 0x05b5;\n t.afii57795 = 0x05b6;\n t.afii57796 = 0x05bb;\n t.afii57797 = 0x05b8;\n t.afii57798 = 0x05b7;\n t.afii57799 = 0x05b0;\n t.afii57800 = 0x05b2;\n t.afii57801 = 0x05b1;\n t.afii57802 = 0x05b3;\n t.afii57803 = 0x05c2;\n t.afii57804 = 0x05c1;\n t.afii57806 = 0x05b9;\n t.afii57807 = 0x05bc;\n t.afii57839 = 0x05bd;\n t.afii57841 = 0x05bf;\n t.afii57842 = 0x05c0;\n t.afii57929 = 0x02bc;\n t.afii61248 = 0x2105;\n t.afii61289 = 0x2113;\n t.afii61352 = 0x2116;\n t.afii61573 = 0x202c;\n t.afii61574 = 0x202d;\n t.afii61575 = 0x202e;\n t.afii61664 = 0x200c;\n t.afii63167 = 0x066d;\n t.afii64937 = 0x02bd;\n t.agrave = 0x00e0;\n t.agujarati = 0x0a85;\n t.agurmukhi = 0x0a05;\n t.ahiragana = 0x3042;\n t.ahookabove = 0x1ea3;\n t.aibengali = 0x0990;\n t.aibopomofo = 0x311e;\n t.aideva = 0x0910;\n t.aiecyrillic = 0x04d5;\n t.aigujarati = 0x0a90;\n t.aigurmukhi = 0x0a10;\n t.aimatragurmukhi = 0x0a48;\n t.ainarabic = 0x0639;\n t.ainfinalarabic = 0xfeca;\n t.aininitialarabic = 0xfecb;\n t.ainmedialarabic = 0xfecc;\n t.ainvertedbreve = 0x0203;\n t.aivowelsignbengali = 0x09c8;\n t.aivowelsigndeva = 0x0948;\n t.aivowelsigngujarati = 0x0ac8;\n t.akatakana = 0x30a2;\n t.akatakanahalfwidth = 0xff71;\n t.akorean = 0x314f;\n t.alef = 0x05d0;\n t.alefarabic = 0x0627;\n t.alefdageshhebrew = 0xfb30;\n t.aleffinalarabic = 0xfe8e;\n t.alefhamzaabovearabic = 0x0623;\n t.alefhamzaabovefinalarabic = 0xfe84;\n t.alefhamzabelowarabic = 0x0625;\n t.alefhamzabelowfinalarabic = 0xfe88;\n t.alefhebrew = 0x05d0;\n t.aleflamedhebrew = 0xfb4f;\n t.alefmaddaabovearabic = 0x0622;\n t.alefmaddaabovefinalarabic = 0xfe82;\n t.alefmaksuraarabic = 0x0649;\n t.alefmaksurafinalarabic = 0xfef0;\n t.alefmaksurainitialarabic = 0xfef3;\n t.alefmaksuramedialarabic = 0xfef4;\n t.alefpatahhebrew = 0xfb2e;\n t.alefqamatshebrew = 0xfb2f;\n t.aleph = 0x2135;\n t.allequal = 0x224c;\n t.alpha = 0x03b1;\n t.alphatonos = 0x03ac;\n t.amacron = 0x0101;\n t.amonospace = 0xff41;\n t.ampersand = 0x0026;\n t.ampersandmonospace = 0xff06;\n t.ampersandsmall = 0xf726;\n t.amsquare = 0x33c2;\n t.anbopomofo = 0x3122;\n t.angbopomofo = 0x3124;\n t.angbracketleft = 0x3008;\n t.angbracketright = 0x3009;\n t.angkhankhuthai = 0x0e5a;\n t.angle = 0x2220;\n t.anglebracketleft = 0x3008;\n t.anglebracketleftvertical = 0xfe3f;\n t.anglebracketright = 0x3009;\n t.anglebracketrightvertical = 0xfe40;\n t.angleleft = 0x2329;\n t.angleright = 0x232a;\n t.angstrom = 0x212b;\n t.anoteleia = 0x0387;\n t.anudattadeva = 0x0952;\n t.anusvarabengali = 0x0982;\n t.anusvaradeva = 0x0902;\n t.anusvaragujarati = 0x0a82;\n t.aogonek = 0x0105;\n t.apaatosquare = 0x3300;\n t.aparen = 0x249c;\n t.apostrophearmenian = 0x055a;\n t.apostrophemod = 0x02bc;\n t.apple = 0xf8ff;\n t.approaches = 0x2250;\n t.approxequal = 0x2248;\n t.approxequalorimage = 0x2252;\n t.approximatelyequal = 0x2245;\n t.araeaekorean = 0x318e;\n t.araeakorean = 0x318d;\n t.arc = 0x2312;\n t.arighthalfring = 0x1e9a;\n t.aring = 0x00e5;\n t.aringacute = 0x01fb;\n t.aringbelow = 0x1e01;\n t.arrowboth = 0x2194;\n t.arrowdashdown = 0x21e3;\n t.arrowdashleft = 0x21e0;\n t.arrowdashright = 0x21e2;\n t.arrowdashup = 0x21e1;\n t.arrowdblboth = 0x21d4;\n t.arrowdbldown = 0x21d3;\n t.arrowdblleft = 0x21d0;\n t.arrowdblright = 0x21d2;\n t.arrowdblup = 0x21d1;\n t.arrowdown = 0x2193;\n t.arrowdownleft = 0x2199;\n t.arrowdownright = 0x2198;\n t.arrowdownwhite = 0x21e9;\n t.arrowheaddownmod = 0x02c5;\n t.arrowheadleftmod = 0x02c2;\n t.arrowheadrightmod = 0x02c3;\n t.arrowheadupmod = 0x02c4;\n t.arrowhorizex = 0xf8e7;\n t.arrowleft = 0x2190;\n t.arrowleftdbl = 0x21d0;\n t.arrowleftdblstroke = 0x21cd;\n t.arrowleftoverright = 0x21c6;\n t.arrowleftwhite = 0x21e6;\n t.arrowright = 0x2192;\n t.arrowrightdblstroke = 0x21cf;\n t.arrowrightheavy = 0x279e;\n t.arrowrightoverleft = 0x21c4;\n t.arrowrightwhite = 0x21e8;\n t.arrowtableft = 0x21e4;\n t.arrowtabright = 0x21e5;\n t.arrowup = 0x2191;\n t.arrowupdn = 0x2195;\n t.arrowupdnbse = 0x21a8;\n t.arrowupdownbase = 0x21a8;\n t.arrowupleft = 0x2196;\n t.arrowupleftofdown = 0x21c5;\n t.arrowupright = 0x2197;\n t.arrowupwhite = 0x21e7;\n t.arrowvertex = 0xf8e6;\n t.asciicircum = 0x005e;\n t.asciicircummonospace = 0xff3e;\n t.asciitilde = 0x007e;\n t.asciitildemonospace = 0xff5e;\n t.ascript = 0x0251;\n t.ascriptturned = 0x0252;\n t.asmallhiragana = 0x3041;\n t.asmallkatakana = 0x30a1;\n t.asmallkatakanahalfwidth = 0xff67;\n t.asterisk = 0x002a;\n t.asteriskaltonearabic = 0x066d;\n t.asteriskarabic = 0x066d;\n t.asteriskmath = 0x2217;\n t.asteriskmonospace = 0xff0a;\n t.asterisksmall = 0xfe61;\n t.asterism = 0x2042;\n t.asuperior = 0xf6e9;\n t.asymptoticallyequal = 0x2243;\n t.at = 0x0040;\n t.atilde = 0x00e3;\n t.atmonospace = 0xff20;\n t.atsmall = 0xfe6b;\n t.aturned = 0x0250;\n t.aubengali = 0x0994;\n t.aubopomofo = 0x3120;\n t.audeva = 0x0914;\n t.augujarati = 0x0a94;\n t.augurmukhi = 0x0a14;\n t.aulengthmarkbengali = 0x09d7;\n t.aumatragurmukhi = 0x0a4c;\n t.auvowelsignbengali = 0x09cc;\n t.auvowelsigndeva = 0x094c;\n t.auvowelsigngujarati = 0x0acc;\n t.avagrahadeva = 0x093d;\n t.aybarmenian = 0x0561;\n t.ayin = 0x05e2;\n t.ayinaltonehebrew = 0xfb20;\n t.ayinhebrew = 0x05e2;\n t.b = 0x0062;\n t.babengali = 0x09ac;\n t.backslash = 0x005c;\n t.backslashmonospace = 0xff3c;\n t.badeva = 0x092c;\n t.bagujarati = 0x0aac;\n t.bagurmukhi = 0x0a2c;\n t.bahiragana = 0x3070;\n t.bahtthai = 0x0e3f;\n t.bakatakana = 0x30d0;\n t.bar = 0x007c;\n t.barmonospace = 0xff5c;\n t.bbopomofo = 0x3105;\n t.bcircle = 0x24d1;\n t.bdotaccent = 0x1e03;\n t.bdotbelow = 0x1e05;\n t.beamedsixteenthnotes = 0x266c;\n t.because = 0x2235;\n t.becyrillic = 0x0431;\n t.beharabic = 0x0628;\n t.behfinalarabic = 0xfe90;\n t.behinitialarabic = 0xfe91;\n t.behiragana = 0x3079;\n t.behmedialarabic = 0xfe92;\n t.behmeeminitialarabic = 0xfc9f;\n t.behmeemisolatedarabic = 0xfc08;\n t.behnoonfinalarabic = 0xfc6d;\n t.bekatakana = 0x30d9;\n t.benarmenian = 0x0562;\n t.bet = 0x05d1;\n t.beta = 0x03b2;\n t.betasymbolgreek = 0x03d0;\n t.betdagesh = 0xfb31;\n t.betdageshhebrew = 0xfb31;\n t.bethebrew = 0x05d1;\n t.betrafehebrew = 0xfb4c;\n t.bhabengali = 0x09ad;\n t.bhadeva = 0x092d;\n t.bhagujarati = 0x0aad;\n t.bhagurmukhi = 0x0a2d;\n t.bhook = 0x0253;\n t.bihiragana = 0x3073;\n t.bikatakana = 0x30d3;\n t.bilabialclick = 0x0298;\n t.bindigurmukhi = 0x0a02;\n t.birusquare = 0x3331;\n t.blackcircle = 0x25cf;\n t.blackdiamond = 0x25c6;\n t.blackdownpointingtriangle = 0x25bc;\n t.blackleftpointingpointer = 0x25c4;\n t.blackleftpointingtriangle = 0x25c0;\n t.blacklenticularbracketleft = 0x3010;\n t.blacklenticularbracketleftvertical = 0xfe3b;\n t.blacklenticularbracketright = 0x3011;\n t.blacklenticularbracketrightvertical = 0xfe3c;\n t.blacklowerlefttriangle = 0x25e3;\n t.blacklowerrighttriangle = 0x25e2;\n t.blackrectangle = 0x25ac;\n t.blackrightpointingpointer = 0x25ba;\n t.blackrightpointingtriangle = 0x25b6;\n t.blacksmallsquare = 0x25aa;\n t.blacksmilingface = 0x263b;\n t.blacksquare = 0x25a0;\n t.blackstar = 0x2605;\n t.blackupperlefttriangle = 0x25e4;\n t.blackupperrighttriangle = 0x25e5;\n t.blackuppointingsmalltriangle = 0x25b4;\n t.blackuppointingtriangle = 0x25b2;\n t.blank = 0x2423;\n t.blinebelow = 0x1e07;\n t.block = 0x2588;\n t.bmonospace = 0xff42;\n t.bobaimaithai = 0x0e1a;\n t.bohiragana = 0x307c;\n t.bokatakana = 0x30dc;\n t.bparen = 0x249d;\n t.bqsquare = 0x33c3;\n t.braceex = 0xf8f4;\n t.braceleft = 0x007b;\n t.braceleftbt = 0xf8f3;\n t.braceleftmid = 0xf8f2;\n t.braceleftmonospace = 0xff5b;\n t.braceleftsmall = 0xfe5b;\n t.bracelefttp = 0xf8f1;\n t.braceleftvertical = 0xfe37;\n t.braceright = 0x007d;\n t.bracerightbt = 0xf8fe;\n t.bracerightmid = 0xf8fd;\n t.bracerightmonospace = 0xff5d;\n t.bracerightsmall = 0xfe5c;\n t.bracerighttp = 0xf8fc;\n t.bracerightvertical = 0xfe38;\n t.bracketleft = 0x005b;\n t.bracketleftbt = 0xf8f0;\n t.bracketleftex = 0xf8ef;\n t.bracketleftmonospace = 0xff3b;\n t.bracketlefttp = 0xf8ee;\n t.bracketright = 0x005d;\n t.bracketrightbt = 0xf8fb;\n t.bracketrightex = 0xf8fa;\n t.bracketrightmonospace = 0xff3d;\n t.bracketrighttp = 0xf8f9;\n t.breve = 0x02d8;\n t.brevebelowcmb = 0x032e;\n t.brevecmb = 0x0306;\n t.breveinvertedbelowcmb = 0x032f;\n t.breveinvertedcmb = 0x0311;\n t.breveinverteddoublecmb = 0x0361;\n t.bridgebelowcmb = 0x032a;\n t.bridgeinvertedbelowcmb = 0x033a;\n t.brokenbar = 0x00a6;\n t.bstroke = 0x0180;\n t.bsuperior = 0xf6ea;\n t.btopbar = 0x0183;\n t.buhiragana = 0x3076;\n t.bukatakana = 0x30d6;\n t.bullet = 0x2022;\n t.bulletinverse = 0x25d8;\n t.bulletoperator = 0x2219;\n t.bullseye = 0x25ce;\n t.c = 0x0063;\n t.caarmenian = 0x056e;\n t.cabengali = 0x099a;\n t.cacute = 0x0107;\n t.cadeva = 0x091a;\n t.cagujarati = 0x0a9a;\n t.cagurmukhi = 0x0a1a;\n t.calsquare = 0x3388;\n t.candrabindubengali = 0x0981;\n t.candrabinducmb = 0x0310;\n t.candrabindudeva = 0x0901;\n t.candrabindugujarati = 0x0a81;\n t.capslock = 0x21ea;\n t.careof = 0x2105;\n t.caron = 0x02c7;\n t.caronbelowcmb = 0x032c;\n t.caroncmb = 0x030c;\n t.carriagereturn = 0x21b5;\n t.cbopomofo = 0x3118;\n t.ccaron = 0x010d;\n t.ccedilla = 0x00e7;\n t.ccedillaacute = 0x1e09;\n t.ccircle = 0x24d2;\n t.ccircumflex = 0x0109;\n t.ccurl = 0x0255;\n t.cdot = 0x010b;\n t.cdotaccent = 0x010b;\n t.cdsquare = 0x33c5;\n t.cedilla = 0x00b8;\n t.cedillacmb = 0x0327;\n t.cent = 0x00a2;\n t.centigrade = 0x2103;\n t.centinferior = 0xf6df;\n t.centmonospace = 0xffe0;\n t.centoldstyle = 0xf7a2;\n t.centsuperior = 0xf6e0;\n t.chaarmenian = 0x0579;\n t.chabengali = 0x099b;\n t.chadeva = 0x091b;\n t.chagujarati = 0x0a9b;\n t.chagurmukhi = 0x0a1b;\n t.chbopomofo = 0x3114;\n t.cheabkhasiancyrillic = 0x04bd;\n t.checkmark = 0x2713;\n t.checyrillic = 0x0447;\n t.chedescenderabkhasiancyrillic = 0x04bf;\n t.chedescendercyrillic = 0x04b7;\n t.chedieresiscyrillic = 0x04f5;\n t.cheharmenian = 0x0573;\n t.chekhakassiancyrillic = 0x04cc;\n t.cheverticalstrokecyrillic = 0x04b9;\n t.chi = 0x03c7;\n t.chieuchacirclekorean = 0x3277;\n t.chieuchaparenkorean = 0x3217;\n t.chieuchcirclekorean = 0x3269;\n t.chieuchkorean = 0x314a;\n t.chieuchparenkorean = 0x3209;\n t.chochangthai = 0x0e0a;\n t.chochanthai = 0x0e08;\n t.chochingthai = 0x0e09;\n t.chochoethai = 0x0e0c;\n t.chook = 0x0188;\n t.cieucacirclekorean = 0x3276;\n t.cieucaparenkorean = 0x3216;\n t.cieuccirclekorean = 0x3268;\n t.cieuckorean = 0x3148;\n t.cieucparenkorean = 0x3208;\n t.cieucuparenkorean = 0x321c;\n t.circle = 0x25cb;\n t.circlecopyrt = 0x00a9;\n t.circlemultiply = 0x2297;\n t.circleot = 0x2299;\n t.circleplus = 0x2295;\n t.circlepostalmark = 0x3036;\n t.circlewithlefthalfblack = 0x25d0;\n t.circlewithrighthalfblack = 0x25d1;\n t.circumflex = 0x02c6;\n t.circumflexbelowcmb = 0x032d;\n t.circumflexcmb = 0x0302;\n t.clear = 0x2327;\n t.clickalveolar = 0x01c2;\n t.clickdental = 0x01c0;\n t.clicklateral = 0x01c1;\n t.clickretroflex = 0x01c3;\n t.club = 0x2663;\n t.clubsuitblack = 0x2663;\n t.clubsuitwhite = 0x2667;\n t.cmcubedsquare = 0x33a4;\n t.cmonospace = 0xff43;\n t.cmsquaredsquare = 0x33a0;\n t.coarmenian = 0x0581;\n t.colon = 0x003a;\n t.colonmonetary = 0x20a1;\n t.colonmonospace = 0xff1a;\n t.colonsign = 0x20a1;\n t.colonsmall = 0xfe55;\n t.colontriangularhalfmod = 0x02d1;\n t.colontriangularmod = 0x02d0;\n t.comma = 0x002c;\n t.commaabovecmb = 0x0313;\n t.commaaboverightcmb = 0x0315;\n t.commaaccent = 0xf6c3;\n t.commaarabic = 0x060c;\n t.commaarmenian = 0x055d;\n t.commainferior = 0xf6e1;\n t.commamonospace = 0xff0c;\n t.commareversedabovecmb = 0x0314;\n t.commareversedmod = 0x02bd;\n t.commasmall = 0xfe50;\n t.commasuperior = 0xf6e2;\n t.commaturnedabovecmb = 0x0312;\n t.commaturnedmod = 0x02bb;\n t.compass = 0x263c;\n t.congruent = 0x2245;\n t.contourintegral = 0x222e;\n t.control = 0x2303;\n t.controlACK = 0x0006;\n t.controlBEL = 0x0007;\n t.controlBS = 0x0008;\n t.controlCAN = 0x0018;\n t.controlCR = 0x000d;\n t.controlDC1 = 0x0011;\n t.controlDC2 = 0x0012;\n t.controlDC3 = 0x0013;\n t.controlDC4 = 0x0014;\n t.controlDEL = 0x007f;\n t.controlDLE = 0x0010;\n t.controlEM = 0x0019;\n t.controlENQ = 0x0005;\n t.controlEOT = 0x0004;\n t.controlESC = 0x001b;\n t.controlETB = 0x0017;\n t.controlETX = 0x0003;\n t.controlFF = 0x000c;\n t.controlFS = 0x001c;\n t.controlGS = 0x001d;\n t.controlHT = 0x0009;\n t.controlLF = 0x000a;\n t.controlNAK = 0x0015;\n t.controlNULL = 0x0000;\n t.controlRS = 0x001e;\n t.controlSI = 0x000f;\n t.controlSO = 0x000e;\n t.controlSOT = 0x0002;\n t.controlSTX = 0x0001;\n t.controlSUB = 0x001a;\n t.controlSYN = 0x0016;\n t.controlUS = 0x001f;\n t.controlVT = 0x000b;\n t.copyright = 0x00a9;\n t.copyrightsans = 0xf8e9;\n t.copyrightserif = 0xf6d9;\n t.cornerbracketleft = 0x300c;\n t.cornerbracketlefthalfwidth = 0xff62;\n t.cornerbracketleftvertical = 0xfe41;\n t.cornerbracketright = 0x300d;\n t.cornerbracketrighthalfwidth = 0xff63;\n t.cornerbracketrightvertical = 0xfe42;\n t.corporationsquare = 0x337f;\n t.cosquare = 0x33c7;\n t.coverkgsquare = 0x33c6;\n t.cparen = 0x249e;\n t.cruzeiro = 0x20a2;\n t.cstretched = 0x0297;\n t.curlyand = 0x22cf;\n t.curlyor = 0x22ce;\n t.currency = 0x00a4;\n t.cyrBreve = 0xf6d1;\n t.cyrFlex = 0xf6d2;\n t.cyrbreve = 0xf6d4;\n t.cyrflex = 0xf6d5;\n t.d = 0x0064;\n t.daarmenian = 0x0564;\n t.dabengali = 0x09a6;\n t.dadarabic = 0x0636;\n t.dadeva = 0x0926;\n t.dadfinalarabic = 0xfebe;\n t.dadinitialarabic = 0xfebf;\n t.dadmedialarabic = 0xfec0;\n t.dagesh = 0x05bc;\n t.dageshhebrew = 0x05bc;\n t.dagger = 0x2020;\n t.daggerdbl = 0x2021;\n t.dagujarati = 0x0aa6;\n t.dagurmukhi = 0x0a26;\n t.dahiragana = 0x3060;\n t.dakatakana = 0x30c0;\n t.dalarabic = 0x062f;\n t.dalet = 0x05d3;\n t.daletdagesh = 0xfb33;\n t.daletdageshhebrew = 0xfb33;\n t.dalethebrew = 0x05d3;\n t.dalfinalarabic = 0xfeaa;\n t.dammaarabic = 0x064f;\n t.dammalowarabic = 0x064f;\n t.dammatanaltonearabic = 0x064c;\n t.dammatanarabic = 0x064c;\n t.danda = 0x0964;\n t.dargahebrew = 0x05a7;\n t.dargalefthebrew = 0x05a7;\n t.dasiapneumatacyrilliccmb = 0x0485;\n t.dblGrave = 0xf6d3;\n t.dblanglebracketleft = 0x300a;\n t.dblanglebracketleftvertical = 0xfe3d;\n t.dblanglebracketright = 0x300b;\n t.dblanglebracketrightvertical = 0xfe3e;\n t.dblarchinvertedbelowcmb = 0x032b;\n t.dblarrowleft = 0x21d4;\n t.dblarrowright = 0x21d2;\n t.dbldanda = 0x0965;\n t.dblgrave = 0xf6d6;\n t.dblgravecmb = 0x030f;\n t.dblintegral = 0x222c;\n t.dbllowline = 0x2017;\n t.dbllowlinecmb = 0x0333;\n t.dbloverlinecmb = 0x033f;\n t.dblprimemod = 0x02ba;\n t.dblverticalbar = 0x2016;\n t.dblverticallineabovecmb = 0x030e;\n t.dbopomofo = 0x3109;\n t.dbsquare = 0x33c8;\n t.dcaron = 0x010f;\n t.dcedilla = 0x1e11;\n t.dcircle = 0x24d3;\n t.dcircumflexbelow = 0x1e13;\n t.dcroat = 0x0111;\n t.ddabengali = 0x09a1;\n t.ddadeva = 0x0921;\n t.ddagujarati = 0x0aa1;\n t.ddagurmukhi = 0x0a21;\n t.ddalarabic = 0x0688;\n t.ddalfinalarabic = 0xfb89;\n t.dddhadeva = 0x095c;\n t.ddhabengali = 0x09a2;\n t.ddhadeva = 0x0922;\n t.ddhagujarati = 0x0aa2;\n t.ddhagurmukhi = 0x0a22;\n t.ddotaccent = 0x1e0b;\n t.ddotbelow = 0x1e0d;\n t.decimalseparatorarabic = 0x066b;\n t.decimalseparatorpersian = 0x066b;\n t.decyrillic = 0x0434;\n t.degree = 0x00b0;\n t.dehihebrew = 0x05ad;\n t.dehiragana = 0x3067;\n t.deicoptic = 0x03ef;\n t.dekatakana = 0x30c7;\n t.deleteleft = 0x232b;\n t.deleteright = 0x2326;\n t.delta = 0x03b4;\n t.deltaturned = 0x018d;\n t.denominatorminusonenumeratorbengali = 0x09f8;\n t.dezh = 0x02a4;\n t.dhabengali = 0x09a7;\n t.dhadeva = 0x0927;\n t.dhagujarati = 0x0aa7;\n t.dhagurmukhi = 0x0a27;\n t.dhook = 0x0257;\n t.dialytikatonos = 0x0385;\n t.dialytikatonoscmb = 0x0344;\n t.diamond = 0x2666;\n t.diamondsuitwhite = 0x2662;\n t.dieresis = 0x00a8;\n t.dieresisacute = 0xf6d7;\n t.dieresisbelowcmb = 0x0324;\n t.dieresiscmb = 0x0308;\n t.dieresisgrave = 0xf6d8;\n t.dieresistonos = 0x0385;\n t.dihiragana = 0x3062;\n t.dikatakana = 0x30c2;\n t.dittomark = 0x3003;\n t.divide = 0x00f7;\n t.divides = 0x2223;\n t.divisionslash = 0x2215;\n t.djecyrillic = 0x0452;\n t.dkshade = 0x2593;\n t.dlinebelow = 0x1e0f;\n t.dlsquare = 0x3397;\n t.dmacron = 0x0111;\n t.dmonospace = 0xff44;\n t.dnblock = 0x2584;\n t.dochadathai = 0x0e0e;\n t.dodekthai = 0x0e14;\n t.dohiragana = 0x3069;\n t.dokatakana = 0x30c9;\n t.dollar = 0x0024;\n t.dollarinferior = 0xf6e3;\n t.dollarmonospace = 0xff04;\n t.dollaroldstyle = 0xf724;\n t.dollarsmall = 0xfe69;\n t.dollarsuperior = 0xf6e4;\n t.dong = 0x20ab;\n t.dorusquare = 0x3326;\n t.dotaccent = 0x02d9;\n t.dotaccentcmb = 0x0307;\n t.dotbelowcmb = 0x0323;\n t.dotbelowcomb = 0x0323;\n t.dotkatakana = 0x30fb;\n t.dotlessi = 0x0131;\n t.dotlessj = 0xf6be;\n t.dotlessjstrokehook = 0x0284;\n t.dotmath = 0x22c5;\n t.dottedcircle = 0x25cc;\n t.doubleyodpatah = 0xfb1f;\n t.doubleyodpatahhebrew = 0xfb1f;\n t.downtackbelowcmb = 0x031e;\n t.downtackmod = 0x02d5;\n t.dparen = 0x249f;\n t.dsuperior = 0xf6eb;\n t.dtail = 0x0256;\n t.dtopbar = 0x018c;\n t.duhiragana = 0x3065;\n t.dukatakana = 0x30c5;\n t.dz = 0x01f3;\n t.dzaltone = 0x02a3;\n t.dzcaron = 0x01c6;\n t.dzcurl = 0x02a5;\n t.dzeabkhasiancyrillic = 0x04e1;\n t.dzecyrillic = 0x0455;\n t.dzhecyrillic = 0x045f;\n t.e = 0x0065;\n t.eacute = 0x00e9;\n t.earth = 0x2641;\n t.ebengali = 0x098f;\n t.ebopomofo = 0x311c;\n t.ebreve = 0x0115;\n t.ecandradeva = 0x090d;\n t.ecandragujarati = 0x0a8d;\n t.ecandravowelsigndeva = 0x0945;\n t.ecandravowelsigngujarati = 0x0ac5;\n t.ecaron = 0x011b;\n t.ecedillabreve = 0x1e1d;\n t.echarmenian = 0x0565;\n t.echyiwnarmenian = 0x0587;\n t.ecircle = 0x24d4;\n t.ecircumflex = 0x00ea;\n t.ecircumflexacute = 0x1ebf;\n t.ecircumflexbelow = 0x1e19;\n t.ecircumflexdotbelow = 0x1ec7;\n t.ecircumflexgrave = 0x1ec1;\n t.ecircumflexhookabove = 0x1ec3;\n t.ecircumflextilde = 0x1ec5;\n t.ecyrillic = 0x0454;\n t.edblgrave = 0x0205;\n t.edeva = 0x090f;\n t.edieresis = 0x00eb;\n t.edot = 0x0117;\n t.edotaccent = 0x0117;\n t.edotbelow = 0x1eb9;\n t.eegurmukhi = 0x0a0f;\n t.eematragurmukhi = 0x0a47;\n t.efcyrillic = 0x0444;\n t.egrave = 0x00e8;\n t.egujarati = 0x0a8f;\n t.eharmenian = 0x0567;\n t.ehbopomofo = 0x311d;\n t.ehiragana = 0x3048;\n t.ehookabove = 0x1ebb;\n t.eibopomofo = 0x311f;\n t.eight = 0x0038;\n t.eightarabic = 0x0668;\n t.eightbengali = 0x09ee;\n t.eightcircle = 0x2467;\n t.eightcircleinversesansserif = 0x2791;\n t.eightdeva = 0x096e;\n t.eighteencircle = 0x2471;\n t.eighteenparen = 0x2485;\n t.eighteenperiod = 0x2499;\n t.eightgujarati = 0x0aee;\n t.eightgurmukhi = 0x0a6e;\n t.eighthackarabic = 0x0668;\n t.eighthangzhou = 0x3028;\n t.eighthnotebeamed = 0x266b;\n t.eightideographicparen = 0x3227;\n t.eightinferior = 0x2088;\n t.eightmonospace = 0xff18;\n t.eightoldstyle = 0xf738;\n t.eightparen = 0x247b;\n t.eightperiod = 0x248f;\n t.eightpersian = 0x06f8;\n t.eightroman = 0x2177;\n t.eightsuperior = 0x2078;\n t.eightthai = 0x0e58;\n t.einvertedbreve = 0x0207;\n t.eiotifiedcyrillic = 0x0465;\n t.ekatakana = 0x30a8;\n t.ekatakanahalfwidth = 0xff74;\n t.ekonkargurmukhi = 0x0a74;\n t.ekorean = 0x3154;\n t.elcyrillic = 0x043b;\n t.element = 0x2208;\n t.elevencircle = 0x246a;\n t.elevenparen = 0x247e;\n t.elevenperiod = 0x2492;\n t.elevenroman = 0x217a;\n t.ellipsis = 0x2026;\n t.ellipsisvertical = 0x22ee;\n t.emacron = 0x0113;\n t.emacronacute = 0x1e17;\n t.emacrongrave = 0x1e15;\n t.emcyrillic = 0x043c;\n t.emdash = 0x2014;\n t.emdashvertical = 0xfe31;\n t.emonospace = 0xff45;\n t.emphasismarkarmenian = 0x055b;\n t.emptyset = 0x2205;\n t.enbopomofo = 0x3123;\n t.encyrillic = 0x043d;\n t.endash = 0x2013;\n t.endashvertical = 0xfe32;\n t.endescendercyrillic = 0x04a3;\n t.eng = 0x014b;\n t.engbopomofo = 0x3125;\n t.enghecyrillic = 0x04a5;\n t.enhookcyrillic = 0x04c8;\n t.enspace = 0x2002;\n t.eogonek = 0x0119;\n t.eokorean = 0x3153;\n t.eopen = 0x025b;\n t.eopenclosed = 0x029a;\n t.eopenreversed = 0x025c;\n t.eopenreversedclosed = 0x025e;\n t.eopenreversedhook = 0x025d;\n t.eparen = 0x24a0;\n t.epsilon = 0x03b5;\n t.epsilontonos = 0x03ad;\n t.equal = 0x003d;\n t.equalmonospace = 0xff1d;\n t.equalsmall = 0xfe66;\n t.equalsuperior = 0x207c;\n t.equivalence = 0x2261;\n t.erbopomofo = 0x3126;\n t.ercyrillic = 0x0440;\n t.ereversed = 0x0258;\n t.ereversedcyrillic = 0x044d;\n t.escyrillic = 0x0441;\n t.esdescendercyrillic = 0x04ab;\n t.esh = 0x0283;\n t.eshcurl = 0x0286;\n t.eshortdeva = 0x090e;\n t.eshortvowelsigndeva = 0x0946;\n t.eshreversedloop = 0x01aa;\n t.eshsquatreversed = 0x0285;\n t.esmallhiragana = 0x3047;\n t.esmallkatakana = 0x30a7;\n t.esmallkatakanahalfwidth = 0xff6a;\n t.estimated = 0x212e;\n t.esuperior = 0xf6ec;\n t.eta = 0x03b7;\n t.etarmenian = 0x0568;\n t.etatonos = 0x03ae;\n t.eth = 0x00f0;\n t.etilde = 0x1ebd;\n t.etildebelow = 0x1e1b;\n t.etnahtafoukhhebrew = 0x0591;\n t.etnahtafoukhlefthebrew = 0x0591;\n t.etnahtahebrew = 0x0591;\n t.etnahtalefthebrew = 0x0591;\n t.eturned = 0x01dd;\n t.eukorean = 0x3161;\n t.euro = 0x20ac;\n t.evowelsignbengali = 0x09c7;\n t.evowelsigndeva = 0x0947;\n t.evowelsigngujarati = 0x0ac7;\n t.exclam = 0x0021;\n t.exclamarmenian = 0x055c;\n t.exclamdbl = 0x203c;\n t.exclamdown = 0x00a1;\n t.exclamdownsmall = 0xf7a1;\n t.exclammonospace = 0xff01;\n t.exclamsmall = 0xf721;\n t.existential = 0x2203;\n t.ezh = 0x0292;\n t.ezhcaron = 0x01ef;\n t.ezhcurl = 0x0293;\n t.ezhreversed = 0x01b9;\n t.ezhtail = 0x01ba;\n t.f = 0x0066;\n t.fadeva = 0x095e;\n t.fagurmukhi = 0x0a5e;\n t.fahrenheit = 0x2109;\n t.fathaarabic = 0x064e;\n t.fathalowarabic = 0x064e;\n t.fathatanarabic = 0x064b;\n t.fbopomofo = 0x3108;\n t.fcircle = 0x24d5;\n t.fdotaccent = 0x1e1f;\n t.feharabic = 0x0641;\n t.feharmenian = 0x0586;\n t.fehfinalarabic = 0xfed2;\n t.fehinitialarabic = 0xfed3;\n t.fehmedialarabic = 0xfed4;\n t.feicoptic = 0x03e5;\n t.female = 0x2640;\n t.ff = 0xfb00;\n t.f_f = 0xfb00;\n t.ffi = 0xfb03;\n t.ffl = 0xfb04;\n t.fi = 0xfb01;\n t.fifteencircle = 0x246e;\n t.fifteenparen = 0x2482;\n t.fifteenperiod = 0x2496;\n t.figuredash = 0x2012;\n t.filledbox = 0x25a0;\n t.filledrect = 0x25ac;\n t.finalkaf = 0x05da;\n t.finalkafdagesh = 0xfb3a;\n t.finalkafdageshhebrew = 0xfb3a;\n t.finalkafhebrew = 0x05da;\n t.finalmem = 0x05dd;\n t.finalmemhebrew = 0x05dd;\n t.finalnun = 0x05df;\n t.finalnunhebrew = 0x05df;\n t.finalpe = 0x05e3;\n t.finalpehebrew = 0x05e3;\n t.finaltsadi = 0x05e5;\n t.finaltsadihebrew = 0x05e5;\n t.firsttonechinese = 0x02c9;\n t.fisheye = 0x25c9;\n t.fitacyrillic = 0x0473;\n t.five = 0x0035;\n t.fivearabic = 0x0665;\n t.fivebengali = 0x09eb;\n t.fivecircle = 0x2464;\n t.fivecircleinversesansserif = 0x278e;\n t.fivedeva = 0x096b;\n t.fiveeighths = 0x215d;\n t.fivegujarati = 0x0aeb;\n t.fivegurmukhi = 0x0a6b;\n t.fivehackarabic = 0x0665;\n t.fivehangzhou = 0x3025;\n t.fiveideographicparen = 0x3224;\n t.fiveinferior = 0x2085;\n t.fivemonospace = 0xff15;\n t.fiveoldstyle = 0xf735;\n t.fiveparen = 0x2478;\n t.fiveperiod = 0x248c;\n t.fivepersian = 0x06f5;\n t.fiveroman = 0x2174;\n t.fivesuperior = 0x2075;\n t.fivethai = 0x0e55;\n t.fl = 0xfb02;\n t.florin = 0x0192;\n t.fmonospace = 0xff46;\n t.fmsquare = 0x3399;\n t.fofanthai = 0x0e1f;\n t.fofathai = 0x0e1d;\n t.fongmanthai = 0x0e4f;\n t.forall = 0x2200;\n t.four = 0x0034;\n t.fourarabic = 0x0664;\n t.fourbengali = 0x09ea;\n t.fourcircle = 0x2463;\n t.fourcircleinversesansserif = 0x278d;\n t.fourdeva = 0x096a;\n t.fourgujarati = 0x0aea;\n t.fourgurmukhi = 0x0a6a;\n t.fourhackarabic = 0x0664;\n t.fourhangzhou = 0x3024;\n t.fourideographicparen = 0x3223;\n t.fourinferior = 0x2084;\n t.fourmonospace = 0xff14;\n t.fournumeratorbengali = 0x09f7;\n t.fouroldstyle = 0xf734;\n t.fourparen = 0x2477;\n t.fourperiod = 0x248b;\n t.fourpersian = 0x06f4;\n t.fourroman = 0x2173;\n t.foursuperior = 0x2074;\n t.fourteencircle = 0x246d;\n t.fourteenparen = 0x2481;\n t.fourteenperiod = 0x2495;\n t.fourthai = 0x0e54;\n t.fourthtonechinese = 0x02cb;\n t.fparen = 0x24a1;\n t.fraction = 0x2044;\n t.franc = 0x20a3;\n t.g = 0x0067;\n t.gabengali = 0x0997;\n t.gacute = 0x01f5;\n t.gadeva = 0x0917;\n t.gafarabic = 0x06af;\n t.gaffinalarabic = 0xfb93;\n t.gafinitialarabic = 0xfb94;\n t.gafmedialarabic = 0xfb95;\n t.gagujarati = 0x0a97;\n t.gagurmukhi = 0x0a17;\n t.gahiragana = 0x304c;\n t.gakatakana = 0x30ac;\n t.gamma = 0x03b3;\n t.gammalatinsmall = 0x0263;\n t.gammasuperior = 0x02e0;\n t.gangiacoptic = 0x03eb;\n t.gbopomofo = 0x310d;\n t.gbreve = 0x011f;\n t.gcaron = 0x01e7;\n t.gcedilla = 0x0123;\n t.gcircle = 0x24d6;\n t.gcircumflex = 0x011d;\n t.gcommaaccent = 0x0123;\n t.gdot = 0x0121;\n t.gdotaccent = 0x0121;\n t.gecyrillic = 0x0433;\n t.gehiragana = 0x3052;\n t.gekatakana = 0x30b2;\n t.geometricallyequal = 0x2251;\n t.gereshaccenthebrew = 0x059c;\n t.gereshhebrew = 0x05f3;\n t.gereshmuqdamhebrew = 0x059d;\n t.germandbls = 0x00df;\n t.gershayimaccenthebrew = 0x059e;\n t.gershayimhebrew = 0x05f4;\n t.getamark = 0x3013;\n t.ghabengali = 0x0998;\n t.ghadarmenian = 0x0572;\n t.ghadeva = 0x0918;\n t.ghagujarati = 0x0a98;\n t.ghagurmukhi = 0x0a18;\n t.ghainarabic = 0x063a;\n t.ghainfinalarabic = 0xfece;\n t.ghaininitialarabic = 0xfecf;\n t.ghainmedialarabic = 0xfed0;\n t.ghemiddlehookcyrillic = 0x0495;\n t.ghestrokecyrillic = 0x0493;\n t.gheupturncyrillic = 0x0491;\n t.ghhadeva = 0x095a;\n t.ghhagurmukhi = 0x0a5a;\n t.ghook = 0x0260;\n t.ghzsquare = 0x3393;\n t.gihiragana = 0x304e;\n t.gikatakana = 0x30ae;\n t.gimarmenian = 0x0563;\n t.gimel = 0x05d2;\n t.gimeldagesh = 0xfb32;\n t.gimeldageshhebrew = 0xfb32;\n t.gimelhebrew = 0x05d2;\n t.gjecyrillic = 0x0453;\n t.glottalinvertedstroke = 0x01be;\n t.glottalstop = 0x0294;\n t.glottalstopinverted = 0x0296;\n t.glottalstopmod = 0x02c0;\n t.glottalstopreversed = 0x0295;\n t.glottalstopreversedmod = 0x02c1;\n t.glottalstopreversedsuperior = 0x02e4;\n t.glottalstopstroke = 0x02a1;\n t.glottalstopstrokereversed = 0x02a2;\n t.gmacron = 0x1e21;\n t.gmonospace = 0xff47;\n t.gohiragana = 0x3054;\n t.gokatakana = 0x30b4;\n t.gparen = 0x24a2;\n t.gpasquare = 0x33ac;\n t.gradient = 0x2207;\n t.grave = 0x0060;\n t.gravebelowcmb = 0x0316;\n t.gravecmb = 0x0300;\n t.gravecomb = 0x0300;\n t.gravedeva = 0x0953;\n t.gravelowmod = 0x02ce;\n t.gravemonospace = 0xff40;\n t.gravetonecmb = 0x0340;\n t.greater = 0x003e;\n t.greaterequal = 0x2265;\n t.greaterequalorless = 0x22db;\n t.greatermonospace = 0xff1e;\n t.greaterorequivalent = 0x2273;\n t.greaterorless = 0x2277;\n t.greateroverequal = 0x2267;\n t.greatersmall = 0xfe65;\n t.gscript = 0x0261;\n t.gstroke = 0x01e5;\n t.guhiragana = 0x3050;\n t.guillemotleft = 0x00ab;\n t.guillemotright = 0x00bb;\n t.guilsinglleft = 0x2039;\n t.guilsinglright = 0x203a;\n t.gukatakana = 0x30b0;\n t.guramusquare = 0x3318;\n t.gysquare = 0x33c9;\n t.h = 0x0068;\n t.haabkhasiancyrillic = 0x04a9;\n t.haaltonearabic = 0x06c1;\n t.habengali = 0x09b9;\n t.hadescendercyrillic = 0x04b3;\n t.hadeva = 0x0939;\n t.hagujarati = 0x0ab9;\n t.hagurmukhi = 0x0a39;\n t.haharabic = 0x062d;\n t.hahfinalarabic = 0xfea2;\n t.hahinitialarabic = 0xfea3;\n t.hahiragana = 0x306f;\n t.hahmedialarabic = 0xfea4;\n t.haitusquare = 0x332a;\n t.hakatakana = 0x30cf;\n t.hakatakanahalfwidth = 0xff8a;\n t.halantgurmukhi = 0x0a4d;\n t.hamzaarabic = 0x0621;\n t.hamzalowarabic = 0x0621;\n t.hangulfiller = 0x3164;\n t.hardsigncyrillic = 0x044a;\n t.harpoonleftbarbup = 0x21bc;\n t.harpoonrightbarbup = 0x21c0;\n t.hasquare = 0x33ca;\n t.hatafpatah = 0x05b2;\n t.hatafpatah16 = 0x05b2;\n t.hatafpatah23 = 0x05b2;\n t.hatafpatah2f = 0x05b2;\n t.hatafpatahhebrew = 0x05b2;\n t.hatafpatahnarrowhebrew = 0x05b2;\n t.hatafpatahquarterhebrew = 0x05b2;\n t.hatafpatahwidehebrew = 0x05b2;\n t.hatafqamats = 0x05b3;\n t.hatafqamats1b = 0x05b3;\n t.hatafqamats28 = 0x05b3;\n t.hatafqamats34 = 0x05b3;\n t.hatafqamatshebrew = 0x05b3;\n t.hatafqamatsnarrowhebrew = 0x05b3;\n t.hatafqamatsquarterhebrew = 0x05b3;\n t.hatafqamatswidehebrew = 0x05b3;\n t.hatafsegol = 0x05b1;\n t.hatafsegol17 = 0x05b1;\n t.hatafsegol24 = 0x05b1;\n t.hatafsegol30 = 0x05b1;\n t.hatafsegolhebrew = 0x05b1;\n t.hatafsegolnarrowhebrew = 0x05b1;\n t.hatafsegolquarterhebrew = 0x05b1;\n t.hatafsegolwidehebrew = 0x05b1;\n t.hbar = 0x0127;\n t.hbopomofo = 0x310f;\n t.hbrevebelow = 0x1e2b;\n t.hcedilla = 0x1e29;\n t.hcircle = 0x24d7;\n t.hcircumflex = 0x0125;\n t.hdieresis = 0x1e27;\n t.hdotaccent = 0x1e23;\n t.hdotbelow = 0x1e25;\n t.he = 0x05d4;\n t.heart = 0x2665;\n t.heartsuitblack = 0x2665;\n t.heartsuitwhite = 0x2661;\n t.hedagesh = 0xfb34;\n t.hedageshhebrew = 0xfb34;\n t.hehaltonearabic = 0x06c1;\n t.heharabic = 0x0647;\n t.hehebrew = 0x05d4;\n t.hehfinalaltonearabic = 0xfba7;\n t.hehfinalalttwoarabic = 0xfeea;\n t.hehfinalarabic = 0xfeea;\n t.hehhamzaabovefinalarabic = 0xfba5;\n t.hehhamzaaboveisolatedarabic = 0xfba4;\n t.hehinitialaltonearabic = 0xfba8;\n t.hehinitialarabic = 0xfeeb;\n t.hehiragana = 0x3078;\n t.hehmedialaltonearabic = 0xfba9;\n t.hehmedialarabic = 0xfeec;\n t.heiseierasquare = 0x337b;\n t.hekatakana = 0x30d8;\n t.hekatakanahalfwidth = 0xff8d;\n t.hekutaarusquare = 0x3336;\n t.henghook = 0x0267;\n t.herutusquare = 0x3339;\n t.het = 0x05d7;\n t.hethebrew = 0x05d7;\n t.hhook = 0x0266;\n t.hhooksuperior = 0x02b1;\n t.hieuhacirclekorean = 0x327b;\n t.hieuhaparenkorean = 0x321b;\n t.hieuhcirclekorean = 0x326d;\n t.hieuhkorean = 0x314e;\n t.hieuhparenkorean = 0x320d;\n t.hihiragana = 0x3072;\n t.hikatakana = 0x30d2;\n t.hikatakanahalfwidth = 0xff8b;\n t.hiriq = 0x05b4;\n t.hiriq14 = 0x05b4;\n t.hiriq21 = 0x05b4;\n t.hiriq2d = 0x05b4;\n t.hiriqhebrew = 0x05b4;\n t.hiriqnarrowhebrew = 0x05b4;\n t.hiriqquarterhebrew = 0x05b4;\n t.hiriqwidehebrew = 0x05b4;\n t.hlinebelow = 0x1e96;\n t.hmonospace = 0xff48;\n t.hoarmenian = 0x0570;\n t.hohipthai = 0x0e2b;\n t.hohiragana = 0x307b;\n t.hokatakana = 0x30db;\n t.hokatakanahalfwidth = 0xff8e;\n t.holam = 0x05b9;\n t.holam19 = 0x05b9;\n t.holam26 = 0x05b9;\n t.holam32 = 0x05b9;\n t.holamhebrew = 0x05b9;\n t.holamnarrowhebrew = 0x05b9;\n t.holamquarterhebrew = 0x05b9;\n t.holamwidehebrew = 0x05b9;\n t.honokhukthai = 0x0e2e;\n t.hookabovecomb = 0x0309;\n t.hookcmb = 0x0309;\n t.hookpalatalizedbelowcmb = 0x0321;\n t.hookretroflexbelowcmb = 0x0322;\n t.hoonsquare = 0x3342;\n t.horicoptic = 0x03e9;\n t.horizontalbar = 0x2015;\n t.horncmb = 0x031b;\n t.hotsprings = 0x2668;\n t.house = 0x2302;\n t.hparen = 0x24a3;\n t.hsuperior = 0x02b0;\n t.hturned = 0x0265;\n t.huhiragana = 0x3075;\n t.huiitosquare = 0x3333;\n t.hukatakana = 0x30d5;\n t.hukatakanahalfwidth = 0xff8c;\n t.hungarumlaut = 0x02dd;\n t.hungarumlautcmb = 0x030b;\n t.hv = 0x0195;\n t.hyphen = 0x002d;\n t.hypheninferior = 0xf6e5;\n t.hyphenmonospace = 0xff0d;\n t.hyphensmall = 0xfe63;\n t.hyphensuperior = 0xf6e6;\n t.hyphentwo = 0x2010;\n t.i = 0x0069;\n t.iacute = 0x00ed;\n t.iacyrillic = 0x044f;\n t.ibengali = 0x0987;\n t.ibopomofo = 0x3127;\n t.ibreve = 0x012d;\n t.icaron = 0x01d0;\n t.icircle = 0x24d8;\n t.icircumflex = 0x00ee;\n t.icyrillic = 0x0456;\n t.idblgrave = 0x0209;\n t.ideographearthcircle = 0x328f;\n t.ideographfirecircle = 0x328b;\n t.ideographicallianceparen = 0x323f;\n t.ideographiccallparen = 0x323a;\n t.ideographiccentrecircle = 0x32a5;\n t.ideographicclose = 0x3006;\n t.ideographiccomma = 0x3001;\n t.ideographiccommaleft = 0xff64;\n t.ideographiccongratulationparen = 0x3237;\n t.ideographiccorrectcircle = 0x32a3;\n t.ideographicearthparen = 0x322f;\n t.ideographicenterpriseparen = 0x323d;\n t.ideographicexcellentcircle = 0x329d;\n t.ideographicfestivalparen = 0x3240;\n t.ideographicfinancialcircle = 0x3296;\n t.ideographicfinancialparen = 0x3236;\n t.ideographicfireparen = 0x322b;\n t.ideographichaveparen = 0x3232;\n t.ideographichighcircle = 0x32a4;\n t.ideographiciterationmark = 0x3005;\n t.ideographiclaborcircle = 0x3298;\n t.ideographiclaborparen = 0x3238;\n t.ideographicleftcircle = 0x32a7;\n t.ideographiclowcircle = 0x32a6;\n t.ideographicmedicinecircle = 0x32a9;\n t.ideographicmetalparen = 0x322e;\n t.ideographicmoonparen = 0x322a;\n t.ideographicnameparen = 0x3234;\n t.ideographicperiod = 0x3002;\n t.ideographicprintcircle = 0x329e;\n t.ideographicreachparen = 0x3243;\n t.ideographicrepresentparen = 0x3239;\n t.ideographicresourceparen = 0x323e;\n t.ideographicrightcircle = 0x32a8;\n t.ideographicsecretcircle = 0x3299;\n t.ideographicselfparen = 0x3242;\n t.ideographicsocietyparen = 0x3233;\n t.ideographicspace = 0x3000;\n t.ideographicspecialparen = 0x3235;\n t.ideographicstockparen = 0x3231;\n t.ideographicstudyparen = 0x323b;\n t.ideographicsunparen = 0x3230;\n t.ideographicsuperviseparen = 0x323c;\n t.ideographicwaterparen = 0x322c;\n t.ideographicwoodparen = 0x322d;\n t.ideographiczero = 0x3007;\n t.ideographmetalcircle = 0x328e;\n t.ideographmooncircle = 0x328a;\n t.ideographnamecircle = 0x3294;\n t.ideographsuncircle = 0x3290;\n t.ideographwatercircle = 0x328c;\n t.ideographwoodcircle = 0x328d;\n t.ideva = 0x0907;\n t.idieresis = 0x00ef;\n t.idieresisacute = 0x1e2f;\n t.idieresiscyrillic = 0x04e5;\n t.idotbelow = 0x1ecb;\n t.iebrevecyrillic = 0x04d7;\n t.iecyrillic = 0x0435;\n t.ieungacirclekorean = 0x3275;\n t.ieungaparenkorean = 0x3215;\n t.ieungcirclekorean = 0x3267;\n t.ieungkorean = 0x3147;\n t.ieungparenkorean = 0x3207;\n t.igrave = 0x00ec;\n t.igujarati = 0x0a87;\n t.igurmukhi = 0x0a07;\n t.ihiragana = 0x3044;\n t.ihookabove = 0x1ec9;\n t.iibengali = 0x0988;\n t.iicyrillic = 0x0438;\n t.iideva = 0x0908;\n t.iigujarati = 0x0a88;\n t.iigurmukhi = 0x0a08;\n t.iimatragurmukhi = 0x0a40;\n t.iinvertedbreve = 0x020b;\n t.iishortcyrillic = 0x0439;\n t.iivowelsignbengali = 0x09c0;\n t.iivowelsigndeva = 0x0940;\n t.iivowelsigngujarati = 0x0ac0;\n t.ij = 0x0133;\n t.ikatakana = 0x30a4;\n t.ikatakanahalfwidth = 0xff72;\n t.ikorean = 0x3163;\n t.ilde = 0x02dc;\n t.iluyhebrew = 0x05ac;\n t.imacron = 0x012b;\n t.imacroncyrillic = 0x04e3;\n t.imageorapproximatelyequal = 0x2253;\n t.imatragurmukhi = 0x0a3f;\n t.imonospace = 0xff49;\n t.increment = 0x2206;\n t.infinity = 0x221e;\n t.iniarmenian = 0x056b;\n t.integral = 0x222b;\n t.integralbottom = 0x2321;\n t.integralbt = 0x2321;\n t.integralex = 0xf8f5;\n t.integraltop = 0x2320;\n t.integraltp = 0x2320;\n t.intersection = 0x2229;\n t.intisquare = 0x3305;\n t.invbullet = 0x25d8;\n t.invcircle = 0x25d9;\n t.invsmileface = 0x263b;\n t.iocyrillic = 0x0451;\n t.iogonek = 0x012f;\n t.iota = 0x03b9;\n t.iotadieresis = 0x03ca;\n t.iotadieresistonos = 0x0390;\n t.iotalatin = 0x0269;\n t.iotatonos = 0x03af;\n t.iparen = 0x24a4;\n t.irigurmukhi = 0x0a72;\n t.ismallhiragana = 0x3043;\n t.ismallkatakana = 0x30a3;\n t.ismallkatakanahalfwidth = 0xff68;\n t.issharbengali = 0x09fa;\n t.istroke = 0x0268;\n t.isuperior = 0xf6ed;\n t.iterationhiragana = 0x309d;\n t.iterationkatakana = 0x30fd;\n t.itilde = 0x0129;\n t.itildebelow = 0x1e2d;\n t.iubopomofo = 0x3129;\n t.iucyrillic = 0x044e;\n t.ivowelsignbengali = 0x09bf;\n t.ivowelsigndeva = 0x093f;\n t.ivowelsigngujarati = 0x0abf;\n t.izhitsacyrillic = 0x0475;\n t.izhitsadblgravecyrillic = 0x0477;\n t.j = 0x006a;\n t.jaarmenian = 0x0571;\n t.jabengali = 0x099c;\n t.jadeva = 0x091c;\n t.jagujarati = 0x0a9c;\n t.jagurmukhi = 0x0a1c;\n t.jbopomofo = 0x3110;\n t.jcaron = 0x01f0;\n t.jcircle = 0x24d9;\n t.jcircumflex = 0x0135;\n t.jcrossedtail = 0x029d;\n t.jdotlessstroke = 0x025f;\n t.jecyrillic = 0x0458;\n t.jeemarabic = 0x062c;\n t.jeemfinalarabic = 0xfe9e;\n t.jeeminitialarabic = 0xfe9f;\n t.jeemmedialarabic = 0xfea0;\n t.jeharabic = 0x0698;\n t.jehfinalarabic = 0xfb8b;\n t.jhabengali = 0x099d;\n t.jhadeva = 0x091d;\n t.jhagujarati = 0x0a9d;\n t.jhagurmukhi = 0x0a1d;\n t.jheharmenian = 0x057b;\n t.jis = 0x3004;\n t.jmonospace = 0xff4a;\n t.jparen = 0x24a5;\n t.jsuperior = 0x02b2;\n t.k = 0x006b;\n t.kabashkircyrillic = 0x04a1;\n t.kabengali = 0x0995;\n t.kacute = 0x1e31;\n t.kacyrillic = 0x043a;\n t.kadescendercyrillic = 0x049b;\n t.kadeva = 0x0915;\n t.kaf = 0x05db;\n t.kafarabic = 0x0643;\n t.kafdagesh = 0xfb3b;\n t.kafdageshhebrew = 0xfb3b;\n t.kaffinalarabic = 0xfeda;\n t.kafhebrew = 0x05db;\n t.kafinitialarabic = 0xfedb;\n t.kafmedialarabic = 0xfedc;\n t.kafrafehebrew = 0xfb4d;\n t.kagujarati = 0x0a95;\n t.kagurmukhi = 0x0a15;\n t.kahiragana = 0x304b;\n t.kahookcyrillic = 0x04c4;\n t.kakatakana = 0x30ab;\n t.kakatakanahalfwidth = 0xff76;\n t.kappa = 0x03ba;\n t.kappasymbolgreek = 0x03f0;\n t.kapyeounmieumkorean = 0x3171;\n t.kapyeounphieuphkorean = 0x3184;\n t.kapyeounpieupkorean = 0x3178;\n t.kapyeounssangpieupkorean = 0x3179;\n t.karoriisquare = 0x330d;\n t.kashidaautoarabic = 0x0640;\n t.kashidaautonosidebearingarabic = 0x0640;\n t.kasmallkatakana = 0x30f5;\n t.kasquare = 0x3384;\n t.kasraarabic = 0x0650;\n t.kasratanarabic = 0x064d;\n t.kastrokecyrillic = 0x049f;\n t.katahiraprolongmarkhalfwidth = 0xff70;\n t.kaverticalstrokecyrillic = 0x049d;\n t.kbopomofo = 0x310e;\n t.kcalsquare = 0x3389;\n t.kcaron = 0x01e9;\n t.kcedilla = 0x0137;\n t.kcircle = 0x24da;\n t.kcommaaccent = 0x0137;\n t.kdotbelow = 0x1e33;\n t.keharmenian = 0x0584;\n t.kehiragana = 0x3051;\n t.kekatakana = 0x30b1;\n t.kekatakanahalfwidth = 0xff79;\n t.kenarmenian = 0x056f;\n t.kesmallkatakana = 0x30f6;\n t.kgreenlandic = 0x0138;\n t.khabengali = 0x0996;\n t.khacyrillic = 0x0445;\n t.khadeva = 0x0916;\n t.khagujarati = 0x0a96;\n t.khagurmukhi = 0x0a16;\n t.khaharabic = 0x062e;\n t.khahfinalarabic = 0xfea6;\n t.khahinitialarabic = 0xfea7;\n t.khahmedialarabic = 0xfea8;\n t.kheicoptic = 0x03e7;\n t.khhadeva = 0x0959;\n t.khhagurmukhi = 0x0a59;\n t.khieukhacirclekorean = 0x3278;\n t.khieukhaparenkorean = 0x3218;\n t.khieukhcirclekorean = 0x326a;\n t.khieukhkorean = 0x314b;\n t.khieukhparenkorean = 0x320a;\n t.khokhaithai = 0x0e02;\n t.khokhonthai = 0x0e05;\n t.khokhuatthai = 0x0e03;\n t.khokhwaithai = 0x0e04;\n t.khomutthai = 0x0e5b;\n t.khook = 0x0199;\n t.khorakhangthai = 0x0e06;\n t.khzsquare = 0x3391;\n t.kihiragana = 0x304d;\n t.kikatakana = 0x30ad;\n t.kikatakanahalfwidth = 0xff77;\n t.kiroguramusquare = 0x3315;\n t.kiromeetorusquare = 0x3316;\n t.kirosquare = 0x3314;\n t.kiyeokacirclekorean = 0x326e;\n t.kiyeokaparenkorean = 0x320e;\n t.kiyeokcirclekorean = 0x3260;\n t.kiyeokkorean = 0x3131;\n t.kiyeokparenkorean = 0x3200;\n t.kiyeoksioskorean = 0x3133;\n t.kjecyrillic = 0x045c;\n t.klinebelow = 0x1e35;\n t.klsquare = 0x3398;\n t.kmcubedsquare = 0x33a6;\n t.kmonospace = 0xff4b;\n t.kmsquaredsquare = 0x33a2;\n t.kohiragana = 0x3053;\n t.kohmsquare = 0x33c0;\n t.kokaithai = 0x0e01;\n t.kokatakana = 0x30b3;\n t.kokatakanahalfwidth = 0xff7a;\n t.kooposquare = 0x331e;\n t.koppacyrillic = 0x0481;\n t.koreanstandardsymbol = 0x327f;\n t.koroniscmb = 0x0343;\n t.kparen = 0x24a6;\n t.kpasquare = 0x33aa;\n t.ksicyrillic = 0x046f;\n t.ktsquare = 0x33cf;\n t.kturned = 0x029e;\n t.kuhiragana = 0x304f;\n t.kukatakana = 0x30af;\n t.kukatakanahalfwidth = 0xff78;\n t.kvsquare = 0x33b8;\n t.kwsquare = 0x33be;\n t.l = 0x006c;\n t.labengali = 0x09b2;\n t.lacute = 0x013a;\n t.ladeva = 0x0932;\n t.lagujarati = 0x0ab2;\n t.lagurmukhi = 0x0a32;\n t.lakkhangyaothai = 0x0e45;\n t.lamaleffinalarabic = 0xfefc;\n t.lamalefhamzaabovefinalarabic = 0xfef8;\n t.lamalefhamzaaboveisolatedarabic = 0xfef7;\n t.lamalefhamzabelowfinalarabic = 0xfefa;\n t.lamalefhamzabelowisolatedarabic = 0xfef9;\n t.lamalefisolatedarabic = 0xfefb;\n t.lamalefmaddaabovefinalarabic = 0xfef6;\n t.lamalefmaddaaboveisolatedarabic = 0xfef5;\n t.lamarabic = 0x0644;\n t.lambda = 0x03bb;\n t.lambdastroke = 0x019b;\n t.lamed = 0x05dc;\n t.lameddagesh = 0xfb3c;\n t.lameddageshhebrew = 0xfb3c;\n t.lamedhebrew = 0x05dc;\n t.lamfinalarabic = 0xfede;\n t.lamhahinitialarabic = 0xfcca;\n t.laminitialarabic = 0xfedf;\n t.lamjeeminitialarabic = 0xfcc9;\n t.lamkhahinitialarabic = 0xfccb;\n t.lamlamhehisolatedarabic = 0xfdf2;\n t.lammedialarabic = 0xfee0;\n t.lammeemhahinitialarabic = 0xfd88;\n t.lammeeminitialarabic = 0xfccc;\n t.largecircle = 0x25ef;\n t.lbar = 0x019a;\n t.lbelt = 0x026c;\n t.lbopomofo = 0x310c;\n t.lcaron = 0x013e;\n t.lcedilla = 0x013c;\n t.lcircle = 0x24db;\n t.lcircumflexbelow = 0x1e3d;\n t.lcommaaccent = 0x013c;\n t.ldot = 0x0140;\n t.ldotaccent = 0x0140;\n t.ldotbelow = 0x1e37;\n t.ldotbelowmacron = 0x1e39;\n t.leftangleabovecmb = 0x031a;\n t.lefttackbelowcmb = 0x0318;\n t.less = 0x003c;\n t.lessequal = 0x2264;\n t.lessequalorgreater = 0x22da;\n t.lessmonospace = 0xff1c;\n t.lessorequivalent = 0x2272;\n t.lessorgreater = 0x2276;\n t.lessoverequal = 0x2266;\n t.lesssmall = 0xfe64;\n t.lezh = 0x026e;\n t.lfblock = 0x258c;\n t.lhookretroflex = 0x026d;\n t.lira = 0x20a4;\n t.liwnarmenian = 0x056c;\n t.lj = 0x01c9;\n t.ljecyrillic = 0x0459;\n t.ll = 0xf6c0;\n t.lladeva = 0x0933;\n t.llagujarati = 0x0ab3;\n t.llinebelow = 0x1e3b;\n t.llladeva = 0x0934;\n t.llvocalicbengali = 0x09e1;\n t.llvocalicdeva = 0x0961;\n t.llvocalicvowelsignbengali = 0x09e3;\n t.llvocalicvowelsigndeva = 0x0963;\n t.lmiddletilde = 0x026b;\n t.lmonospace = 0xff4c;\n t.lmsquare = 0x33d0;\n t.lochulathai = 0x0e2c;\n t.logicaland = 0x2227;\n t.logicalnot = 0x00ac;\n t.logicalnotreversed = 0x2310;\n t.logicalor = 0x2228;\n t.lolingthai = 0x0e25;\n t.longs = 0x017f;\n t.lowlinecenterline = 0xfe4e;\n t.lowlinecmb = 0x0332;\n t.lowlinedashed = 0xfe4d;\n t.lozenge = 0x25ca;\n t.lparen = 0x24a7;\n t.lslash = 0x0142;\n t.lsquare = 0x2113;\n t.lsuperior = 0xf6ee;\n t.ltshade = 0x2591;\n t.luthai = 0x0e26;\n t.lvocalicbengali = 0x098c;\n t.lvocalicdeva = 0x090c;\n t.lvocalicvowelsignbengali = 0x09e2;\n t.lvocalicvowelsigndeva = 0x0962;\n t.lxsquare = 0x33d3;\n t.m = 0x006d;\n t.mabengali = 0x09ae;\n t.macron = 0x00af;\n t.macronbelowcmb = 0x0331;\n t.macroncmb = 0x0304;\n t.macronlowmod = 0x02cd;\n t.macronmonospace = 0xffe3;\n t.macute = 0x1e3f;\n t.madeva = 0x092e;\n t.magujarati = 0x0aae;\n t.magurmukhi = 0x0a2e;\n t.mahapakhhebrew = 0x05a4;\n t.mahapakhlefthebrew = 0x05a4;\n t.mahiragana = 0x307e;\n t.maichattawalowleftthai = 0xf895;\n t.maichattawalowrightthai = 0xf894;\n t.maichattawathai = 0x0e4b;\n t.maichattawaupperleftthai = 0xf893;\n t.maieklowleftthai = 0xf88c;\n t.maieklowrightthai = 0xf88b;\n t.maiekthai = 0x0e48;\n t.maiekupperleftthai = 0xf88a;\n t.maihanakatleftthai = 0xf884;\n t.maihanakatthai = 0x0e31;\n t.maitaikhuleftthai = 0xf889;\n t.maitaikhuthai = 0x0e47;\n t.maitholowleftthai = 0xf88f;\n t.maitholowrightthai = 0xf88e;\n t.maithothai = 0x0e49;\n t.maithoupperleftthai = 0xf88d;\n t.maitrilowleftthai = 0xf892;\n t.maitrilowrightthai = 0xf891;\n t.maitrithai = 0x0e4a;\n t.maitriupperleftthai = 0xf890;\n t.maiyamokthai = 0x0e46;\n t.makatakana = 0x30de;\n t.makatakanahalfwidth = 0xff8f;\n t.male = 0x2642;\n t.mansyonsquare = 0x3347;\n t.maqafhebrew = 0x05be;\n t.mars = 0x2642;\n t.masoracirclehebrew = 0x05af;\n t.masquare = 0x3383;\n t.mbopomofo = 0x3107;\n t.mbsquare = 0x33d4;\n t.mcircle = 0x24dc;\n t.mcubedsquare = 0x33a5;\n t.mdotaccent = 0x1e41;\n t.mdotbelow = 0x1e43;\n t.meemarabic = 0x0645;\n t.meemfinalarabic = 0xfee2;\n t.meeminitialarabic = 0xfee3;\n t.meemmedialarabic = 0xfee4;\n t.meemmeeminitialarabic = 0xfcd1;\n t.meemmeemisolatedarabic = 0xfc48;\n t.meetorusquare = 0x334d;\n t.mehiragana = 0x3081;\n t.meizierasquare = 0x337e;\n t.mekatakana = 0x30e1;\n t.mekatakanahalfwidth = 0xff92;\n t.mem = 0x05de;\n t.memdagesh = 0xfb3e;\n t.memdageshhebrew = 0xfb3e;\n t.memhebrew = 0x05de;\n t.menarmenian = 0x0574;\n t.merkhahebrew = 0x05a5;\n t.merkhakefulahebrew = 0x05a6;\n t.merkhakefulalefthebrew = 0x05a6;\n t.merkhalefthebrew = 0x05a5;\n t.mhook = 0x0271;\n t.mhzsquare = 0x3392;\n t.middledotkatakanahalfwidth = 0xff65;\n t.middot = 0x00b7;\n t.mieumacirclekorean = 0x3272;\n t.mieumaparenkorean = 0x3212;\n t.mieumcirclekorean = 0x3264;\n t.mieumkorean = 0x3141;\n t.mieumpansioskorean = 0x3170;\n t.mieumparenkorean = 0x3204;\n t.mieumpieupkorean = 0x316e;\n t.mieumsioskorean = 0x316f;\n t.mihiragana = 0x307f;\n t.mikatakana = 0x30df;\n t.mikatakanahalfwidth = 0xff90;\n t.minus = 0x2212;\n t.minusbelowcmb = 0x0320;\n t.minuscircle = 0x2296;\n t.minusmod = 0x02d7;\n t.minusplus = 0x2213;\n t.minute = 0x2032;\n t.miribaarusquare = 0x334a;\n t.mirisquare = 0x3349;\n t.mlonglegturned = 0x0270;\n t.mlsquare = 0x3396;\n t.mmcubedsquare = 0x33a3;\n t.mmonospace = 0xff4d;\n t.mmsquaredsquare = 0x339f;\n t.mohiragana = 0x3082;\n t.mohmsquare = 0x33c1;\n t.mokatakana = 0x30e2;\n t.mokatakanahalfwidth = 0xff93;\n t.molsquare = 0x33d6;\n t.momathai = 0x0e21;\n t.moverssquare = 0x33a7;\n t.moverssquaredsquare = 0x33a8;\n t.mparen = 0x24a8;\n t.mpasquare = 0x33ab;\n t.mssquare = 0x33b3;\n t.msuperior = 0xf6ef;\n t.mturned = 0x026f;\n t.mu = 0x00b5;\n t.mu1 = 0x00b5;\n t.muasquare = 0x3382;\n t.muchgreater = 0x226b;\n t.muchless = 0x226a;\n t.mufsquare = 0x338c;\n t.mugreek = 0x03bc;\n t.mugsquare = 0x338d;\n t.muhiragana = 0x3080;\n t.mukatakana = 0x30e0;\n t.mukatakanahalfwidth = 0xff91;\n t.mulsquare = 0x3395;\n t.multiply = 0x00d7;\n t.mumsquare = 0x339b;\n t.munahhebrew = 0x05a3;\n t.munahlefthebrew = 0x05a3;\n t.musicalnote = 0x266a;\n t.musicalnotedbl = 0x266b;\n t.musicflatsign = 0x266d;\n t.musicsharpsign = 0x266f;\n t.mussquare = 0x33b2;\n t.muvsquare = 0x33b6;\n t.muwsquare = 0x33bc;\n t.mvmegasquare = 0x33b9;\n t.mvsquare = 0x33b7;\n t.mwmegasquare = 0x33bf;\n t.mwsquare = 0x33bd;\n t.n = 0x006e;\n t.nabengali = 0x09a8;\n t.nabla = 0x2207;\n t.nacute = 0x0144;\n t.nadeva = 0x0928;\n t.nagujarati = 0x0aa8;\n t.nagurmukhi = 0x0a28;\n t.nahiragana = 0x306a;\n t.nakatakana = 0x30ca;\n t.nakatakanahalfwidth = 0xff85;\n t.napostrophe = 0x0149;\n t.nasquare = 0x3381;\n t.nbopomofo = 0x310b;\n t.nbspace = 0x00a0;\n t.ncaron = 0x0148;\n t.ncedilla = 0x0146;\n t.ncircle = 0x24dd;\n t.ncircumflexbelow = 0x1e4b;\n t.ncommaaccent = 0x0146;\n t.ndotaccent = 0x1e45;\n t.ndotbelow = 0x1e47;\n t.nehiragana = 0x306d;\n t.nekatakana = 0x30cd;\n t.nekatakanahalfwidth = 0xff88;\n t.newsheqelsign = 0x20aa;\n t.nfsquare = 0x338b;\n t.ngabengali = 0x0999;\n t.ngadeva = 0x0919;\n t.ngagujarati = 0x0a99;\n t.ngagurmukhi = 0x0a19;\n t.ngonguthai = 0x0e07;\n t.nhiragana = 0x3093;\n t.nhookleft = 0x0272;\n t.nhookretroflex = 0x0273;\n t.nieunacirclekorean = 0x326f;\n t.nieunaparenkorean = 0x320f;\n t.nieuncieuckorean = 0x3135;\n t.nieuncirclekorean = 0x3261;\n t.nieunhieuhkorean = 0x3136;\n t.nieunkorean = 0x3134;\n t.nieunpansioskorean = 0x3168;\n t.nieunparenkorean = 0x3201;\n t.nieunsioskorean = 0x3167;\n t.nieuntikeutkorean = 0x3166;\n t.nihiragana = 0x306b;\n t.nikatakana = 0x30cb;\n t.nikatakanahalfwidth = 0xff86;\n t.nikhahitleftthai = 0xf899;\n t.nikhahitthai = 0x0e4d;\n t.nine = 0x0039;\n t.ninearabic = 0x0669;\n t.ninebengali = 0x09ef;\n t.ninecircle = 0x2468;\n t.ninecircleinversesansserif = 0x2792;\n t.ninedeva = 0x096f;\n t.ninegujarati = 0x0aef;\n t.ninegurmukhi = 0x0a6f;\n t.ninehackarabic = 0x0669;\n t.ninehangzhou = 0x3029;\n t.nineideographicparen = 0x3228;\n t.nineinferior = 0x2089;\n t.ninemonospace = 0xff19;\n t.nineoldstyle = 0xf739;\n t.nineparen = 0x247c;\n t.nineperiod = 0x2490;\n t.ninepersian = 0x06f9;\n t.nineroman = 0x2178;\n t.ninesuperior = 0x2079;\n t.nineteencircle = 0x2472;\n t.nineteenparen = 0x2486;\n t.nineteenperiod = 0x249a;\n t.ninethai = 0x0e59;\n t.nj = 0x01cc;\n t.njecyrillic = 0x045a;\n t.nkatakana = 0x30f3;\n t.nkatakanahalfwidth = 0xff9d;\n t.nlegrightlong = 0x019e;\n t.nlinebelow = 0x1e49;\n t.nmonospace = 0xff4e;\n t.nmsquare = 0x339a;\n t.nnabengali = 0x09a3;\n t.nnadeva = 0x0923;\n t.nnagujarati = 0x0aa3;\n t.nnagurmukhi = 0x0a23;\n t.nnnadeva = 0x0929;\n t.nohiragana = 0x306e;\n t.nokatakana = 0x30ce;\n t.nokatakanahalfwidth = 0xff89;\n t.nonbreakingspace = 0x00a0;\n t.nonenthai = 0x0e13;\n t.nonuthai = 0x0e19;\n t.noonarabic = 0x0646;\n t.noonfinalarabic = 0xfee6;\n t.noonghunnaarabic = 0x06ba;\n t.noonghunnafinalarabic = 0xfb9f;\n t.nooninitialarabic = 0xfee7;\n t.noonjeeminitialarabic = 0xfcd2;\n t.noonjeemisolatedarabic = 0xfc4b;\n t.noonmedialarabic = 0xfee8;\n t.noonmeeminitialarabic = 0xfcd5;\n t.noonmeemisolatedarabic = 0xfc4e;\n t.noonnoonfinalarabic = 0xfc8d;\n t.notcontains = 0x220c;\n t.notelement = 0x2209;\n t.notelementof = 0x2209;\n t.notequal = 0x2260;\n t.notgreater = 0x226f;\n t.notgreaternorequal = 0x2271;\n t.notgreaternorless = 0x2279;\n t.notidentical = 0x2262;\n t.notless = 0x226e;\n t.notlessnorequal = 0x2270;\n t.notparallel = 0x2226;\n t.notprecedes = 0x2280;\n t.notsubset = 0x2284;\n t.notsucceeds = 0x2281;\n t.notsuperset = 0x2285;\n t.nowarmenian = 0x0576;\n t.nparen = 0x24a9;\n t.nssquare = 0x33b1;\n t.nsuperior = 0x207f;\n t.ntilde = 0x00f1;\n t.nu = 0x03bd;\n t.nuhiragana = 0x306c;\n t.nukatakana = 0x30cc;\n t.nukatakanahalfwidth = 0xff87;\n t.nuktabengali = 0x09bc;\n t.nuktadeva = 0x093c;\n t.nuktagujarati = 0x0abc;\n t.nuktagurmukhi = 0x0a3c;\n t.numbersign = 0x0023;\n t.numbersignmonospace = 0xff03;\n t.numbersignsmall = 0xfe5f;\n t.numeralsigngreek = 0x0374;\n t.numeralsignlowergreek = 0x0375;\n t.numero = 0x2116;\n t.nun = 0x05e0;\n t.nundagesh = 0xfb40;\n t.nundageshhebrew = 0xfb40;\n t.nunhebrew = 0x05e0;\n t.nvsquare = 0x33b5;\n t.nwsquare = 0x33bb;\n t.nyabengali = 0x099e;\n t.nyadeva = 0x091e;\n t.nyagujarati = 0x0a9e;\n t.nyagurmukhi = 0x0a1e;\n t.o = 0x006f;\n t.oacute = 0x00f3;\n t.oangthai = 0x0e2d;\n t.obarred = 0x0275;\n t.obarredcyrillic = 0x04e9;\n t.obarreddieresiscyrillic = 0x04eb;\n t.obengali = 0x0993;\n t.obopomofo = 0x311b;\n t.obreve = 0x014f;\n t.ocandradeva = 0x0911;\n t.ocandragujarati = 0x0a91;\n t.ocandravowelsigndeva = 0x0949;\n t.ocandravowelsigngujarati = 0x0ac9;\n t.ocaron = 0x01d2;\n t.ocircle = 0x24de;\n t.ocircumflex = 0x00f4;\n t.ocircumflexacute = 0x1ed1;\n t.ocircumflexdotbelow = 0x1ed9;\n t.ocircumflexgrave = 0x1ed3;\n t.ocircumflexhookabove = 0x1ed5;\n t.ocircumflextilde = 0x1ed7;\n t.ocyrillic = 0x043e;\n t.odblacute = 0x0151;\n t.odblgrave = 0x020d;\n t.odeva = 0x0913;\n t.odieresis = 0x00f6;\n t.odieresiscyrillic = 0x04e7;\n t.odotbelow = 0x1ecd;\n t.oe = 0x0153;\n t.oekorean = 0x315a;\n t.ogonek = 0x02db;\n t.ogonekcmb = 0x0328;\n t.ograve = 0x00f2;\n t.ogujarati = 0x0a93;\n t.oharmenian = 0x0585;\n t.ohiragana = 0x304a;\n t.ohookabove = 0x1ecf;\n t.ohorn = 0x01a1;\n t.ohornacute = 0x1edb;\n t.ohorndotbelow = 0x1ee3;\n t.ohorngrave = 0x1edd;\n t.ohornhookabove = 0x1edf;\n t.ohorntilde = 0x1ee1;\n t.ohungarumlaut = 0x0151;\n t.oi = 0x01a3;\n t.oinvertedbreve = 0x020f;\n t.okatakana = 0x30aa;\n t.okatakanahalfwidth = 0xff75;\n t.okorean = 0x3157;\n t.olehebrew = 0x05ab;\n t.omacron = 0x014d;\n t.omacronacute = 0x1e53;\n t.omacrongrave = 0x1e51;\n t.omdeva = 0x0950;\n t.omega = 0x03c9;\n t.omega1 = 0x03d6;\n t.omegacyrillic = 0x0461;\n t.omegalatinclosed = 0x0277;\n t.omegaroundcyrillic = 0x047b;\n t.omegatitlocyrillic = 0x047d;\n t.omegatonos = 0x03ce;\n t.omgujarati = 0x0ad0;\n t.omicron = 0x03bf;\n t.omicrontonos = 0x03cc;\n t.omonospace = 0xff4f;\n t.one = 0x0031;\n t.onearabic = 0x0661;\n t.onebengali = 0x09e7;\n t.onecircle = 0x2460;\n t.onecircleinversesansserif = 0x278a;\n t.onedeva = 0x0967;\n t.onedotenleader = 0x2024;\n t.oneeighth = 0x215b;\n t.onefitted = 0xf6dc;\n t.onegujarati = 0x0ae7;\n t.onegurmukhi = 0x0a67;\n t.onehackarabic = 0x0661;\n t.onehalf = 0x00bd;\n t.onehangzhou = 0x3021;\n t.oneideographicparen = 0x3220;\n t.oneinferior = 0x2081;\n t.onemonospace = 0xff11;\n t.onenumeratorbengali = 0x09f4;\n t.oneoldstyle = 0xf731;\n t.oneparen = 0x2474;\n t.oneperiod = 0x2488;\n t.onepersian = 0x06f1;\n t.onequarter = 0x00bc;\n t.oneroman = 0x2170;\n t.onesuperior = 0x00b9;\n t.onethai = 0x0e51;\n t.onethird = 0x2153;\n t.oogonek = 0x01eb;\n t.oogonekmacron = 0x01ed;\n t.oogurmukhi = 0x0a13;\n t.oomatragurmukhi = 0x0a4b;\n t.oopen = 0x0254;\n t.oparen = 0x24aa;\n t.openbullet = 0x25e6;\n t.option = 0x2325;\n t.ordfeminine = 0x00aa;\n t.ordmasculine = 0x00ba;\n t.orthogonal = 0x221f;\n t.oshortdeva = 0x0912;\n t.oshortvowelsigndeva = 0x094a;\n t.oslash = 0x00f8;\n t.oslashacute = 0x01ff;\n t.osmallhiragana = 0x3049;\n t.osmallkatakana = 0x30a9;\n t.osmallkatakanahalfwidth = 0xff6b;\n t.ostrokeacute = 0x01ff;\n t.osuperior = 0xf6f0;\n t.otcyrillic = 0x047f;\n t.otilde = 0x00f5;\n t.otildeacute = 0x1e4d;\n t.otildedieresis = 0x1e4f;\n t.oubopomofo = 0x3121;\n t.overline = 0x203e;\n t.overlinecenterline = 0xfe4a;\n t.overlinecmb = 0x0305;\n t.overlinedashed = 0xfe49;\n t.overlinedblwavy = 0xfe4c;\n t.overlinewavy = 0xfe4b;\n t.overscore = 0x00af;\n t.ovowelsignbengali = 0x09cb;\n t.ovowelsigndeva = 0x094b;\n t.ovowelsigngujarati = 0x0acb;\n t.p = 0x0070;\n t.paampssquare = 0x3380;\n t.paasentosquare = 0x332b;\n t.pabengali = 0x09aa;\n t.pacute = 0x1e55;\n t.padeva = 0x092a;\n t.pagedown = 0x21df;\n t.pageup = 0x21de;\n t.pagujarati = 0x0aaa;\n t.pagurmukhi = 0x0a2a;\n t.pahiragana = 0x3071;\n t.paiyannoithai = 0x0e2f;\n t.pakatakana = 0x30d1;\n t.palatalizationcyrilliccmb = 0x0484;\n t.palochkacyrillic = 0x04c0;\n t.pansioskorean = 0x317f;\n t.paragraph = 0x00b6;\n t.parallel = 0x2225;\n t.parenleft = 0x0028;\n t.parenleftaltonearabic = 0xfd3e;\n t.parenleftbt = 0xf8ed;\n t.parenleftex = 0xf8ec;\n t.parenleftinferior = 0x208d;\n t.parenleftmonospace = 0xff08;\n t.parenleftsmall = 0xfe59;\n t.parenleftsuperior = 0x207d;\n t.parenlefttp = 0xf8eb;\n t.parenleftvertical = 0xfe35;\n t.parenright = 0x0029;\n t.parenrightaltonearabic = 0xfd3f;\n t.parenrightbt = 0xf8f8;\n t.parenrightex = 0xf8f7;\n t.parenrightinferior = 0x208e;\n t.parenrightmonospace = 0xff09;\n t.parenrightsmall = 0xfe5a;\n t.parenrightsuperior = 0x207e;\n t.parenrighttp = 0xf8f6;\n t.parenrightvertical = 0xfe36;\n t.partialdiff = 0x2202;\n t.paseqhebrew = 0x05c0;\n t.pashtahebrew = 0x0599;\n t.pasquare = 0x33a9;\n t.patah = 0x05b7;\n t.patah11 = 0x05b7;\n t.patah1d = 0x05b7;\n t.patah2a = 0x05b7;\n t.patahhebrew = 0x05b7;\n t.patahnarrowhebrew = 0x05b7;\n t.patahquarterhebrew = 0x05b7;\n t.patahwidehebrew = 0x05b7;\n t.pazerhebrew = 0x05a1;\n t.pbopomofo = 0x3106;\n t.pcircle = 0x24df;\n t.pdotaccent = 0x1e57;\n t.pe = 0x05e4;\n t.pecyrillic = 0x043f;\n t.pedagesh = 0xfb44;\n t.pedageshhebrew = 0xfb44;\n t.peezisquare = 0x333b;\n t.pefinaldageshhebrew = 0xfb43;\n t.peharabic = 0x067e;\n t.peharmenian = 0x057a;\n t.pehebrew = 0x05e4;\n t.pehfinalarabic = 0xfb57;\n t.pehinitialarabic = 0xfb58;\n t.pehiragana = 0x307a;\n t.pehmedialarabic = 0xfb59;\n t.pekatakana = 0x30da;\n t.pemiddlehookcyrillic = 0x04a7;\n t.perafehebrew = 0xfb4e;\n t.percent = 0x0025;\n t.percentarabic = 0x066a;\n t.percentmonospace = 0xff05;\n t.percentsmall = 0xfe6a;\n t.period = 0x002e;\n t.periodarmenian = 0x0589;\n t.periodcentered = 0x00b7;\n t.periodhalfwidth = 0xff61;\n t.periodinferior = 0xf6e7;\n t.periodmonospace = 0xff0e;\n t.periodsmall = 0xfe52;\n t.periodsuperior = 0xf6e8;\n t.perispomenigreekcmb = 0x0342;\n t.perpendicular = 0x22a5;\n t.perthousand = 0x2030;\n t.peseta = 0x20a7;\n t.pfsquare = 0x338a;\n t.phabengali = 0x09ab;\n t.phadeva = 0x092b;\n t.phagujarati = 0x0aab;\n t.phagurmukhi = 0x0a2b;\n t.phi = 0x03c6;\n t.phi1 = 0x03d5;\n t.phieuphacirclekorean = 0x327a;\n t.phieuphaparenkorean = 0x321a;\n t.phieuphcirclekorean = 0x326c;\n t.phieuphkorean = 0x314d;\n t.phieuphparenkorean = 0x320c;\n t.philatin = 0x0278;\n t.phinthuthai = 0x0e3a;\n t.phisymbolgreek = 0x03d5;\n t.phook = 0x01a5;\n t.phophanthai = 0x0e1e;\n t.phophungthai = 0x0e1c;\n t.phosamphaothai = 0x0e20;\n t.pi = 0x03c0;\n t.pieupacirclekorean = 0x3273;\n t.pieupaparenkorean = 0x3213;\n t.pieupcieuckorean = 0x3176;\n t.pieupcirclekorean = 0x3265;\n t.pieupkiyeokkorean = 0x3172;\n t.pieupkorean = 0x3142;\n t.pieupparenkorean = 0x3205;\n t.pieupsioskiyeokkorean = 0x3174;\n t.pieupsioskorean = 0x3144;\n t.pieupsiostikeutkorean = 0x3175;\n t.pieupthieuthkorean = 0x3177;\n t.pieuptikeutkorean = 0x3173;\n t.pihiragana = 0x3074;\n t.pikatakana = 0x30d4;\n t.pisymbolgreek = 0x03d6;\n t.piwrarmenian = 0x0583;\n t.plus = 0x002b;\n t.plusbelowcmb = 0x031f;\n t.pluscircle = 0x2295;\n t.plusminus = 0x00b1;\n t.plusmod = 0x02d6;\n t.plusmonospace = 0xff0b;\n t.plussmall = 0xfe62;\n t.plussuperior = 0x207a;\n t.pmonospace = 0xff50;\n t.pmsquare = 0x33d8;\n t.pohiragana = 0x307d;\n t.pointingindexdownwhite = 0x261f;\n t.pointingindexleftwhite = 0x261c;\n t.pointingindexrightwhite = 0x261e;\n t.pointingindexupwhite = 0x261d;\n t.pokatakana = 0x30dd;\n t.poplathai = 0x0e1b;\n t.postalmark = 0x3012;\n t.postalmarkface = 0x3020;\n t.pparen = 0x24ab;\n t.precedes = 0x227a;\n t.prescription = 0x211e;\n t.primemod = 0x02b9;\n t.primereversed = 0x2035;\n t.product = 0x220f;\n t.projective = 0x2305;\n t.prolongedkana = 0x30fc;\n t.propellor = 0x2318;\n t.propersubset = 0x2282;\n t.propersuperset = 0x2283;\n t.proportion = 0x2237;\n t.proportional = 0x221d;\n t.psi = 0x03c8;\n t.psicyrillic = 0x0471;\n t.psilipneumatacyrilliccmb = 0x0486;\n t.pssquare = 0x33b0;\n t.puhiragana = 0x3077;\n t.pukatakana = 0x30d7;\n t.pvsquare = 0x33b4;\n t.pwsquare = 0x33ba;\n t.q = 0x0071;\n t.qadeva = 0x0958;\n t.qadmahebrew = 0x05a8;\n t.qafarabic = 0x0642;\n t.qaffinalarabic = 0xfed6;\n t.qafinitialarabic = 0xfed7;\n t.qafmedialarabic = 0xfed8;\n t.qamats = 0x05b8;\n t.qamats10 = 0x05b8;\n t.qamats1a = 0x05b8;\n t.qamats1c = 0x05b8;\n t.qamats27 = 0x05b8;\n t.qamats29 = 0x05b8;\n t.qamats33 = 0x05b8;\n t.qamatsde = 0x05b8;\n t.qamatshebrew = 0x05b8;\n t.qamatsnarrowhebrew = 0x05b8;\n t.qamatsqatanhebrew = 0x05b8;\n t.qamatsqatannarrowhebrew = 0x05b8;\n t.qamatsqatanquarterhebrew = 0x05b8;\n t.qamatsqatanwidehebrew = 0x05b8;\n t.qamatsquarterhebrew = 0x05b8;\n t.qamatswidehebrew = 0x05b8;\n t.qarneyparahebrew = 0x059f;\n t.qbopomofo = 0x3111;\n t.qcircle = 0x24e0;\n t.qhook = 0x02a0;\n t.qmonospace = 0xff51;\n t.qof = 0x05e7;\n t.qofdagesh = 0xfb47;\n t.qofdageshhebrew = 0xfb47;\n t.qofhebrew = 0x05e7;\n t.qparen = 0x24ac;\n t.quarternote = 0x2669;\n t.qubuts = 0x05bb;\n t.qubuts18 = 0x05bb;\n t.qubuts25 = 0x05bb;\n t.qubuts31 = 0x05bb;\n t.qubutshebrew = 0x05bb;\n t.qubutsnarrowhebrew = 0x05bb;\n t.qubutsquarterhebrew = 0x05bb;\n t.qubutswidehebrew = 0x05bb;\n t.question = 0x003f;\n t.questionarabic = 0x061f;\n t.questionarmenian = 0x055e;\n t.questiondown = 0x00bf;\n t.questiondownsmall = 0xf7bf;\n t.questiongreek = 0x037e;\n t.questionmonospace = 0xff1f;\n t.questionsmall = 0xf73f;\n t.quotedbl = 0x0022;\n t.quotedblbase = 0x201e;\n t.quotedblleft = 0x201c;\n t.quotedblmonospace = 0xff02;\n t.quotedblprime = 0x301e;\n t.quotedblprimereversed = 0x301d;\n t.quotedblright = 0x201d;\n t.quoteleft = 0x2018;\n t.quoteleftreversed = 0x201b;\n t.quotereversed = 0x201b;\n t.quoteright = 0x2019;\n t.quoterightn = 0x0149;\n t.quotesinglbase = 0x201a;\n t.quotesingle = 0x0027;\n t.quotesinglemonospace = 0xff07;\n t.r = 0x0072;\n t.raarmenian = 0x057c;\n t.rabengali = 0x09b0;\n t.racute = 0x0155;\n t.radeva = 0x0930;\n t.radical = 0x221a;\n t.radicalex = 0xf8e5;\n t.radoverssquare = 0x33ae;\n t.radoverssquaredsquare = 0x33af;\n t.radsquare = 0x33ad;\n t.rafe = 0x05bf;\n t.rafehebrew = 0x05bf;\n t.ragujarati = 0x0ab0;\n t.ragurmukhi = 0x0a30;\n t.rahiragana = 0x3089;\n t.rakatakana = 0x30e9;\n t.rakatakanahalfwidth = 0xff97;\n t.ralowerdiagonalbengali = 0x09f1;\n t.ramiddlediagonalbengali = 0x09f0;\n t.ramshorn = 0x0264;\n t.ratio = 0x2236;\n t.rbopomofo = 0x3116;\n t.rcaron = 0x0159;\n t.rcedilla = 0x0157;\n t.rcircle = 0x24e1;\n t.rcommaaccent = 0x0157;\n t.rdblgrave = 0x0211;\n t.rdotaccent = 0x1e59;\n t.rdotbelow = 0x1e5b;\n t.rdotbelowmacron = 0x1e5d;\n t.referencemark = 0x203b;\n t.reflexsubset = 0x2286;\n t.reflexsuperset = 0x2287;\n t.registered = 0x00ae;\n t.registersans = 0xf8e8;\n t.registerserif = 0xf6da;\n t.reharabic = 0x0631;\n t.reharmenian = 0x0580;\n t.rehfinalarabic = 0xfeae;\n t.rehiragana = 0x308c;\n t.rekatakana = 0x30ec;\n t.rekatakanahalfwidth = 0xff9a;\n t.resh = 0x05e8;\n t.reshdageshhebrew = 0xfb48;\n t.reshhebrew = 0x05e8;\n t.reversedtilde = 0x223d;\n t.reviahebrew = 0x0597;\n t.reviamugrashhebrew = 0x0597;\n t.revlogicalnot = 0x2310;\n t.rfishhook = 0x027e;\n t.rfishhookreversed = 0x027f;\n t.rhabengali = 0x09dd;\n t.rhadeva = 0x095d;\n t.rho = 0x03c1;\n t.rhook = 0x027d;\n t.rhookturned = 0x027b;\n t.rhookturnedsuperior = 0x02b5;\n t.rhosymbolgreek = 0x03f1;\n t.rhotichookmod = 0x02de;\n t.rieulacirclekorean = 0x3271;\n t.rieulaparenkorean = 0x3211;\n t.rieulcirclekorean = 0x3263;\n t.rieulhieuhkorean = 0x3140;\n t.rieulkiyeokkorean = 0x313a;\n t.rieulkiyeoksioskorean = 0x3169;\n t.rieulkorean = 0x3139;\n t.rieulmieumkorean = 0x313b;\n t.rieulpansioskorean = 0x316c;\n t.rieulparenkorean = 0x3203;\n t.rieulphieuphkorean = 0x313f;\n t.rieulpieupkorean = 0x313c;\n t.rieulpieupsioskorean = 0x316b;\n t.rieulsioskorean = 0x313d;\n t.rieulthieuthkorean = 0x313e;\n t.rieultikeutkorean = 0x316a;\n t.rieulyeorinhieuhkorean = 0x316d;\n t.rightangle = 0x221f;\n t.righttackbelowcmb = 0x0319;\n t.righttriangle = 0x22bf;\n t.rihiragana = 0x308a;\n t.rikatakana = 0x30ea;\n t.rikatakanahalfwidth = 0xff98;\n t.ring = 0x02da;\n t.ringbelowcmb = 0x0325;\n t.ringcmb = 0x030a;\n t.ringhalfleft = 0x02bf;\n t.ringhalfleftarmenian = 0x0559;\n t.ringhalfleftbelowcmb = 0x031c;\n t.ringhalfleftcentered = 0x02d3;\n t.ringhalfright = 0x02be;\n t.ringhalfrightbelowcmb = 0x0339;\n t.ringhalfrightcentered = 0x02d2;\n t.rinvertedbreve = 0x0213;\n t.rittorusquare = 0x3351;\n t.rlinebelow = 0x1e5f;\n t.rlongleg = 0x027c;\n t.rlonglegturned = 0x027a;\n t.rmonospace = 0xff52;\n t.rohiragana = 0x308d;\n t.rokatakana = 0x30ed;\n t.rokatakanahalfwidth = 0xff9b;\n t.roruathai = 0x0e23;\n t.rparen = 0x24ad;\n t.rrabengali = 0x09dc;\n t.rradeva = 0x0931;\n t.rragurmukhi = 0x0a5c;\n t.rreharabic = 0x0691;\n t.rrehfinalarabic = 0xfb8d;\n t.rrvocalicbengali = 0x09e0;\n t.rrvocalicdeva = 0x0960;\n t.rrvocalicgujarati = 0x0ae0;\n t.rrvocalicvowelsignbengali = 0x09c4;\n t.rrvocalicvowelsigndeva = 0x0944;\n t.rrvocalicvowelsigngujarati = 0x0ac4;\n t.rsuperior = 0xf6f1;\n t.rtblock = 0x2590;\n t.rturned = 0x0279;\n t.rturnedsuperior = 0x02b4;\n t.ruhiragana = 0x308b;\n t.rukatakana = 0x30eb;\n t.rukatakanahalfwidth = 0xff99;\n t.rupeemarkbengali = 0x09f2;\n t.rupeesignbengali = 0x09f3;\n t.rupiah = 0xf6dd;\n t.ruthai = 0x0e24;\n t.rvocalicbengali = 0x098b;\n t.rvocalicdeva = 0x090b;\n t.rvocalicgujarati = 0x0a8b;\n t.rvocalicvowelsignbengali = 0x09c3;\n t.rvocalicvowelsigndeva = 0x0943;\n t.rvocalicvowelsigngujarati = 0x0ac3;\n t.s = 0x0073;\n t.sabengali = 0x09b8;\n t.sacute = 0x015b;\n t.sacutedotaccent = 0x1e65;\n t.sadarabic = 0x0635;\n t.sadeva = 0x0938;\n t.sadfinalarabic = 0xfeba;\n t.sadinitialarabic = 0xfebb;\n t.sadmedialarabic = 0xfebc;\n t.sagujarati = 0x0ab8;\n t.sagurmukhi = 0x0a38;\n t.sahiragana = 0x3055;\n t.sakatakana = 0x30b5;\n t.sakatakanahalfwidth = 0xff7b;\n t.sallallahoualayhewasallamarabic = 0xfdfa;\n t.samekh = 0x05e1;\n t.samekhdagesh = 0xfb41;\n t.samekhdageshhebrew = 0xfb41;\n t.samekhhebrew = 0x05e1;\n t.saraaathai = 0x0e32;\n t.saraaethai = 0x0e41;\n t.saraaimaimalaithai = 0x0e44;\n t.saraaimaimuanthai = 0x0e43;\n t.saraamthai = 0x0e33;\n t.saraathai = 0x0e30;\n t.saraethai = 0x0e40;\n t.saraiileftthai = 0xf886;\n t.saraiithai = 0x0e35;\n t.saraileftthai = 0xf885;\n t.saraithai = 0x0e34;\n t.saraothai = 0x0e42;\n t.saraueeleftthai = 0xf888;\n t.saraueethai = 0x0e37;\n t.saraueleftthai = 0xf887;\n t.sarauethai = 0x0e36;\n t.sarauthai = 0x0e38;\n t.sarauuthai = 0x0e39;\n t.sbopomofo = 0x3119;\n t.scaron = 0x0161;\n t.scarondotaccent = 0x1e67;\n t.scedilla = 0x015f;\n t.schwa = 0x0259;\n t.schwacyrillic = 0x04d9;\n t.schwadieresiscyrillic = 0x04db;\n t.schwahook = 0x025a;\n t.scircle = 0x24e2;\n t.scircumflex = 0x015d;\n t.scommaaccent = 0x0219;\n t.sdotaccent = 0x1e61;\n t.sdotbelow = 0x1e63;\n t.sdotbelowdotaccent = 0x1e69;\n t.seagullbelowcmb = 0x033c;\n t.second = 0x2033;\n t.secondtonechinese = 0x02ca;\n t.section = 0x00a7;\n t.seenarabic = 0x0633;\n t.seenfinalarabic = 0xfeb2;\n t.seeninitialarabic = 0xfeb3;\n t.seenmedialarabic = 0xfeb4;\n t.segol = 0x05b6;\n t.segol13 = 0x05b6;\n t.segol1f = 0x05b6;\n t.segol2c = 0x05b6;\n t.segolhebrew = 0x05b6;\n t.segolnarrowhebrew = 0x05b6;\n t.segolquarterhebrew = 0x05b6;\n t.segoltahebrew = 0x0592;\n t.segolwidehebrew = 0x05b6;\n t.seharmenian = 0x057d;\n t.sehiragana = 0x305b;\n t.sekatakana = 0x30bb;\n t.sekatakanahalfwidth = 0xff7e;\n t.semicolon = 0x003b;\n t.semicolonarabic = 0x061b;\n t.semicolonmonospace = 0xff1b;\n t.semicolonsmall = 0xfe54;\n t.semivoicedmarkkana = 0x309c;\n t.semivoicedmarkkanahalfwidth = 0xff9f;\n t.sentisquare = 0x3322;\n t.sentosquare = 0x3323;\n t.seven = 0x0037;\n t.sevenarabic = 0x0667;\n t.sevenbengali = 0x09ed;\n t.sevencircle = 0x2466;\n t.sevencircleinversesansserif = 0x2790;\n t.sevendeva = 0x096d;\n t.seveneighths = 0x215e;\n t.sevengujarati = 0x0aed;\n t.sevengurmukhi = 0x0a6d;\n t.sevenhackarabic = 0x0667;\n t.sevenhangzhou = 0x3027;\n t.sevenideographicparen = 0x3226;\n t.seveninferior = 0x2087;\n t.sevenmonospace = 0xff17;\n t.sevenoldstyle = 0xf737;\n t.sevenparen = 0x247a;\n t.sevenperiod = 0x248e;\n t.sevenpersian = 0x06f7;\n t.sevenroman = 0x2176;\n t.sevensuperior = 0x2077;\n t.seventeencircle = 0x2470;\n t.seventeenparen = 0x2484;\n t.seventeenperiod = 0x2498;\n t.seventhai = 0x0e57;\n t.sfthyphen = 0x00ad;\n t.shaarmenian = 0x0577;\n t.shabengali = 0x09b6;\n t.shacyrillic = 0x0448;\n t.shaddaarabic = 0x0651;\n t.shaddadammaarabic = 0xfc61;\n t.shaddadammatanarabic = 0xfc5e;\n t.shaddafathaarabic = 0xfc60;\n t.shaddakasraarabic = 0xfc62;\n t.shaddakasratanarabic = 0xfc5f;\n t.shade = 0x2592;\n t.shadedark = 0x2593;\n t.shadelight = 0x2591;\n t.shademedium = 0x2592;\n t.shadeva = 0x0936;\n t.shagujarati = 0x0ab6;\n t.shagurmukhi = 0x0a36;\n t.shalshelethebrew = 0x0593;\n t.shbopomofo = 0x3115;\n t.shchacyrillic = 0x0449;\n t.sheenarabic = 0x0634;\n t.sheenfinalarabic = 0xfeb6;\n t.sheeninitialarabic = 0xfeb7;\n t.sheenmedialarabic = 0xfeb8;\n t.sheicoptic = 0x03e3;\n t.sheqel = 0x20aa;\n t.sheqelhebrew = 0x20aa;\n t.sheva = 0x05b0;\n t.sheva115 = 0x05b0;\n t.sheva15 = 0x05b0;\n t.sheva22 = 0x05b0;\n t.sheva2e = 0x05b0;\n t.shevahebrew = 0x05b0;\n t.shevanarrowhebrew = 0x05b0;\n t.shevaquarterhebrew = 0x05b0;\n t.shevawidehebrew = 0x05b0;\n t.shhacyrillic = 0x04bb;\n t.shimacoptic = 0x03ed;\n t.shin = 0x05e9;\n t.shindagesh = 0xfb49;\n t.shindageshhebrew = 0xfb49;\n t.shindageshshindot = 0xfb2c;\n t.shindageshshindothebrew = 0xfb2c;\n t.shindageshsindot = 0xfb2d;\n t.shindageshsindothebrew = 0xfb2d;\n t.shindothebrew = 0x05c1;\n t.shinhebrew = 0x05e9;\n t.shinshindot = 0xfb2a;\n t.shinshindothebrew = 0xfb2a;\n t.shinsindot = 0xfb2b;\n t.shinsindothebrew = 0xfb2b;\n t.shook = 0x0282;\n t.sigma = 0x03c3;\n t.sigma1 = 0x03c2;\n t.sigmafinal = 0x03c2;\n t.sigmalunatesymbolgreek = 0x03f2;\n t.sihiragana = 0x3057;\n t.sikatakana = 0x30b7;\n t.sikatakanahalfwidth = 0xff7c;\n t.siluqhebrew = 0x05bd;\n t.siluqlefthebrew = 0x05bd;\n t.similar = 0x223c;\n t.sindothebrew = 0x05c2;\n t.siosacirclekorean = 0x3274;\n t.siosaparenkorean = 0x3214;\n t.sioscieuckorean = 0x317e;\n t.sioscirclekorean = 0x3266;\n t.sioskiyeokkorean = 0x317a;\n t.sioskorean = 0x3145;\n t.siosnieunkorean = 0x317b;\n t.siosparenkorean = 0x3206;\n t.siospieupkorean = 0x317d;\n t.siostikeutkorean = 0x317c;\n t.six = 0x0036;\n t.sixarabic = 0x0666;\n t.sixbengali = 0x09ec;\n t.sixcircle = 0x2465;\n t.sixcircleinversesansserif = 0x278f;\n t.sixdeva = 0x096c;\n t.sixgujarati = 0x0aec;\n t.sixgurmukhi = 0x0a6c;\n t.sixhackarabic = 0x0666;\n t.sixhangzhou = 0x3026;\n t.sixideographicparen = 0x3225;\n t.sixinferior = 0x2086;\n t.sixmonospace = 0xff16;\n t.sixoldstyle = 0xf736;\n t.sixparen = 0x2479;\n t.sixperiod = 0x248d;\n t.sixpersian = 0x06f6;\n t.sixroman = 0x2175;\n t.sixsuperior = 0x2076;\n t.sixteencircle = 0x246f;\n t.sixteencurrencydenominatorbengali = 0x09f9;\n t.sixteenparen = 0x2483;\n t.sixteenperiod = 0x2497;\n t.sixthai = 0x0e56;\n t.slash = 0x002f;\n t.slashmonospace = 0xff0f;\n t.slong = 0x017f;\n t.slongdotaccent = 0x1e9b;\n t.smileface = 0x263a;\n t.smonospace = 0xff53;\n t.sofpasuqhebrew = 0x05c3;\n t.softhyphen = 0x00ad;\n t.softsigncyrillic = 0x044c;\n t.sohiragana = 0x305d;\n t.sokatakana = 0x30bd;\n t.sokatakanahalfwidth = 0xff7f;\n t.soliduslongoverlaycmb = 0x0338;\n t.solidusshortoverlaycmb = 0x0337;\n t.sorusithai = 0x0e29;\n t.sosalathai = 0x0e28;\n t.sosothai = 0x0e0b;\n t.sosuathai = 0x0e2a;\n t.space = 0x0020;\n t.spacehackarabic = 0x0020;\n t.spade = 0x2660;\n t.spadesuitblack = 0x2660;\n t.spadesuitwhite = 0x2664;\n t.sparen = 0x24ae;\n t.squarebelowcmb = 0x033b;\n t.squarecc = 0x33c4;\n t.squarecm = 0x339d;\n t.squarediagonalcrosshatchfill = 0x25a9;\n t.squarehorizontalfill = 0x25a4;\n t.squarekg = 0x338f;\n t.squarekm = 0x339e;\n t.squarekmcapital = 0x33ce;\n t.squareln = 0x33d1;\n t.squarelog = 0x33d2;\n t.squaremg = 0x338e;\n t.squaremil = 0x33d5;\n t.squaremm = 0x339c;\n t.squaremsquared = 0x33a1;\n t.squareorthogonalcrosshatchfill = 0x25a6;\n t.squareupperlefttolowerrightfill = 0x25a7;\n t.squareupperrighttolowerleftfill = 0x25a8;\n t.squareverticalfill = 0x25a5;\n t.squarewhitewithsmallblack = 0x25a3;\n t.srsquare = 0x33db;\n t.ssabengali = 0x09b7;\n t.ssadeva = 0x0937;\n t.ssagujarati = 0x0ab7;\n t.ssangcieuckorean = 0x3149;\n t.ssanghieuhkorean = 0x3185;\n t.ssangieungkorean = 0x3180;\n t.ssangkiyeokkorean = 0x3132;\n t.ssangnieunkorean = 0x3165;\n t.ssangpieupkorean = 0x3143;\n t.ssangsioskorean = 0x3146;\n t.ssangtikeutkorean = 0x3138;\n t.ssuperior = 0xf6f2;\n t.sterling = 0x00a3;\n t.sterlingmonospace = 0xffe1;\n t.strokelongoverlaycmb = 0x0336;\n t.strokeshortoverlaycmb = 0x0335;\n t.subset = 0x2282;\n t.subsetnotequal = 0x228a;\n t.subsetorequal = 0x2286;\n t.succeeds = 0x227b;\n t.suchthat = 0x220b;\n t.suhiragana = 0x3059;\n t.sukatakana = 0x30b9;\n t.sukatakanahalfwidth = 0xff7d;\n t.sukunarabic = 0x0652;\n t.summation = 0x2211;\n t.sun = 0x263c;\n t.superset = 0x2283;\n t.supersetnotequal = 0x228b;\n t.supersetorequal = 0x2287;\n t.svsquare = 0x33dc;\n t.syouwaerasquare = 0x337c;\n t.t = 0x0074;\n t.tabengali = 0x09a4;\n t.tackdown = 0x22a4;\n t.tackleft = 0x22a3;\n t.tadeva = 0x0924;\n t.tagujarati = 0x0aa4;\n t.tagurmukhi = 0x0a24;\n t.taharabic = 0x0637;\n t.tahfinalarabic = 0xfec2;\n t.tahinitialarabic = 0xfec3;\n t.tahiragana = 0x305f;\n t.tahmedialarabic = 0xfec4;\n t.taisyouerasquare = 0x337d;\n t.takatakana = 0x30bf;\n t.takatakanahalfwidth = 0xff80;\n t.tatweelarabic = 0x0640;\n t.tau = 0x03c4;\n t.tav = 0x05ea;\n t.tavdages = 0xfb4a;\n t.tavdagesh = 0xfb4a;\n t.tavdageshhebrew = 0xfb4a;\n t.tavhebrew = 0x05ea;\n t.tbar = 0x0167;\n t.tbopomofo = 0x310a;\n t.tcaron = 0x0165;\n t.tccurl = 0x02a8;\n t.tcedilla = 0x0163;\n t.tcheharabic = 0x0686;\n t.tchehfinalarabic = 0xfb7b;\n t.tchehinitialarabic = 0xfb7c;\n t.tchehmedialarabic = 0xfb7d;\n t.tcircle = 0x24e3;\n t.tcircumflexbelow = 0x1e71;\n t.tcommaaccent = 0x0163;\n t.tdieresis = 0x1e97;\n t.tdotaccent = 0x1e6b;\n t.tdotbelow = 0x1e6d;\n t.tecyrillic = 0x0442;\n t.tedescendercyrillic = 0x04ad;\n t.teharabic = 0x062a;\n t.tehfinalarabic = 0xfe96;\n t.tehhahinitialarabic = 0xfca2;\n t.tehhahisolatedarabic = 0xfc0c;\n t.tehinitialarabic = 0xfe97;\n t.tehiragana = 0x3066;\n t.tehjeeminitialarabic = 0xfca1;\n t.tehjeemisolatedarabic = 0xfc0b;\n t.tehmarbutaarabic = 0x0629;\n t.tehmarbutafinalarabic = 0xfe94;\n t.tehmedialarabic = 0xfe98;\n t.tehmeeminitialarabic = 0xfca4;\n t.tehmeemisolatedarabic = 0xfc0e;\n t.tehnoonfinalarabic = 0xfc73;\n t.tekatakana = 0x30c6;\n t.tekatakanahalfwidth = 0xff83;\n t.telephone = 0x2121;\n t.telephoneblack = 0x260e;\n t.telishagedolahebrew = 0x05a0;\n t.telishaqetanahebrew = 0x05a9;\n t.tencircle = 0x2469;\n t.tenideographicparen = 0x3229;\n t.tenparen = 0x247d;\n t.tenperiod = 0x2491;\n t.tenroman = 0x2179;\n t.tesh = 0x02a7;\n t.tet = 0x05d8;\n t.tetdagesh = 0xfb38;\n t.tetdageshhebrew = 0xfb38;\n t.tethebrew = 0x05d8;\n t.tetsecyrillic = 0x04b5;\n t.tevirhebrew = 0x059b;\n t.tevirlefthebrew = 0x059b;\n t.thabengali = 0x09a5;\n t.thadeva = 0x0925;\n t.thagujarati = 0x0aa5;\n t.thagurmukhi = 0x0a25;\n t.thalarabic = 0x0630;\n t.thalfinalarabic = 0xfeac;\n t.thanthakhatlowleftthai = 0xf898;\n t.thanthakhatlowrightthai = 0xf897;\n t.thanthakhatthai = 0x0e4c;\n t.thanthakhatupperleftthai = 0xf896;\n t.theharabic = 0x062b;\n t.thehfinalarabic = 0xfe9a;\n t.thehinitialarabic = 0xfe9b;\n t.thehmedialarabic = 0xfe9c;\n t.thereexists = 0x2203;\n t.therefore = 0x2234;\n t.theta = 0x03b8;\n t.theta1 = 0x03d1;\n t.thetasymbolgreek = 0x03d1;\n t.thieuthacirclekorean = 0x3279;\n t.thieuthaparenkorean = 0x3219;\n t.thieuthcirclekorean = 0x326b;\n t.thieuthkorean = 0x314c;\n t.thieuthparenkorean = 0x320b;\n t.thirteencircle = 0x246c;\n t.thirteenparen = 0x2480;\n t.thirteenperiod = 0x2494;\n t.thonangmonthothai = 0x0e11;\n t.thook = 0x01ad;\n t.thophuthaothai = 0x0e12;\n t.thorn = 0x00fe;\n t.thothahanthai = 0x0e17;\n t.thothanthai = 0x0e10;\n t.thothongthai = 0x0e18;\n t.thothungthai = 0x0e16;\n t.thousandcyrillic = 0x0482;\n t.thousandsseparatorarabic = 0x066c;\n t.thousandsseparatorpersian = 0x066c;\n t.three = 0x0033;\n t.threearabic = 0x0663;\n t.threebengali = 0x09e9;\n t.threecircle = 0x2462;\n t.threecircleinversesansserif = 0x278c;\n t.threedeva = 0x0969;\n t.threeeighths = 0x215c;\n t.threegujarati = 0x0ae9;\n t.threegurmukhi = 0x0a69;\n t.threehackarabic = 0x0663;\n t.threehangzhou = 0x3023;\n t.threeideographicparen = 0x3222;\n t.threeinferior = 0x2083;\n t.threemonospace = 0xff13;\n t.threenumeratorbengali = 0x09f6;\n t.threeoldstyle = 0xf733;\n t.threeparen = 0x2476;\n t.threeperiod = 0x248a;\n t.threepersian = 0x06f3;\n t.threequarters = 0x00be;\n t.threequartersemdash = 0xf6de;\n t.threeroman = 0x2172;\n t.threesuperior = 0x00b3;\n t.threethai = 0x0e53;\n t.thzsquare = 0x3394;\n t.tihiragana = 0x3061;\n t.tikatakana = 0x30c1;\n t.tikatakanahalfwidth = 0xff81;\n t.tikeutacirclekorean = 0x3270;\n t.tikeutaparenkorean = 0x3210;\n t.tikeutcirclekorean = 0x3262;\n t.tikeutkorean = 0x3137;\n t.tikeutparenkorean = 0x3202;\n t.tilde = 0x02dc;\n t.tildebelowcmb = 0x0330;\n t.tildecmb = 0x0303;\n t.tildecomb = 0x0303;\n t.tildedoublecmb = 0x0360;\n t.tildeoperator = 0x223c;\n t.tildeoverlaycmb = 0x0334;\n t.tildeverticalcmb = 0x033e;\n t.timescircle = 0x2297;\n t.tipehahebrew = 0x0596;\n t.tipehalefthebrew = 0x0596;\n t.tippigurmukhi = 0x0a70;\n t.titlocyrilliccmb = 0x0483;\n t.tiwnarmenian = 0x057f;\n t.tlinebelow = 0x1e6f;\n t.tmonospace = 0xff54;\n t.toarmenian = 0x0569;\n t.tohiragana = 0x3068;\n t.tokatakana = 0x30c8;\n t.tokatakanahalfwidth = 0xff84;\n t.tonebarextrahighmod = 0x02e5;\n t.tonebarextralowmod = 0x02e9;\n t.tonebarhighmod = 0x02e6;\n t.tonebarlowmod = 0x02e8;\n t.tonebarmidmod = 0x02e7;\n t.tonefive = 0x01bd;\n t.tonesix = 0x0185;\n t.tonetwo = 0x01a8;\n t.tonos = 0x0384;\n t.tonsquare = 0x3327;\n t.topatakthai = 0x0e0f;\n t.tortoiseshellbracketleft = 0x3014;\n t.tortoiseshellbracketleftsmall = 0xfe5d;\n t.tortoiseshellbracketleftvertical = 0xfe39;\n t.tortoiseshellbracketright = 0x3015;\n t.tortoiseshellbracketrightsmall = 0xfe5e;\n t.tortoiseshellbracketrightvertical = 0xfe3a;\n t.totaothai = 0x0e15;\n t.tpalatalhook = 0x01ab;\n t.tparen = 0x24af;\n t.trademark = 0x2122;\n t.trademarksans = 0xf8ea;\n t.trademarkserif = 0xf6db;\n t.tretroflexhook = 0x0288;\n t.triagdn = 0x25bc;\n t.triaglf = 0x25c4;\n t.triagrt = 0x25ba;\n t.triagup = 0x25b2;\n t.ts = 0x02a6;\n t.tsadi = 0x05e6;\n t.tsadidagesh = 0xfb46;\n t.tsadidageshhebrew = 0xfb46;\n t.tsadihebrew = 0x05e6;\n t.tsecyrillic = 0x0446;\n t.tsere = 0x05b5;\n t.tsere12 = 0x05b5;\n t.tsere1e = 0x05b5;\n t.tsere2b = 0x05b5;\n t.tserehebrew = 0x05b5;\n t.tserenarrowhebrew = 0x05b5;\n t.tserequarterhebrew = 0x05b5;\n t.tserewidehebrew = 0x05b5;\n t.tshecyrillic = 0x045b;\n t.tsuperior = 0xf6f3;\n t.ttabengali = 0x099f;\n t.ttadeva = 0x091f;\n t.ttagujarati = 0x0a9f;\n t.ttagurmukhi = 0x0a1f;\n t.tteharabic = 0x0679;\n t.ttehfinalarabic = 0xfb67;\n t.ttehinitialarabic = 0xfb68;\n t.ttehmedialarabic = 0xfb69;\n t.tthabengali = 0x09a0;\n t.tthadeva = 0x0920;\n t.tthagujarati = 0x0aa0;\n t.tthagurmukhi = 0x0a20;\n t.tturned = 0x0287;\n t.tuhiragana = 0x3064;\n t.tukatakana = 0x30c4;\n t.tukatakanahalfwidth = 0xff82;\n t.tusmallhiragana = 0x3063;\n t.tusmallkatakana = 0x30c3;\n t.tusmallkatakanahalfwidth = 0xff6f;\n t.twelvecircle = 0x246b;\n t.twelveparen = 0x247f;\n t.twelveperiod = 0x2493;\n t.twelveroman = 0x217b;\n t.twentycircle = 0x2473;\n t.twentyhangzhou = 0x5344;\n t.twentyparen = 0x2487;\n t.twentyperiod = 0x249b;\n t.two = 0x0032;\n t.twoarabic = 0x0662;\n t.twobengali = 0x09e8;\n t.twocircle = 0x2461;\n t.twocircleinversesansserif = 0x278b;\n t.twodeva = 0x0968;\n t.twodotenleader = 0x2025;\n t.twodotleader = 0x2025;\n t.twodotleadervertical = 0xfe30;\n t.twogujarati = 0x0ae8;\n t.twogurmukhi = 0x0a68;\n t.twohackarabic = 0x0662;\n t.twohangzhou = 0x3022;\n t.twoideographicparen = 0x3221;\n t.twoinferior = 0x2082;\n t.twomonospace = 0xff12;\n t.twonumeratorbengali = 0x09f5;\n t.twooldstyle = 0xf732;\n t.twoparen = 0x2475;\n t.twoperiod = 0x2489;\n t.twopersian = 0x06f2;\n t.tworoman = 0x2171;\n t.twostroke = 0x01bb;\n t.twosuperior = 0x00b2;\n t.twothai = 0x0e52;\n t.twothirds = 0x2154;\n t.u = 0x0075;\n t.uacute = 0x00fa;\n t.ubar = 0x0289;\n t.ubengali = 0x0989;\n t.ubopomofo = 0x3128;\n t.ubreve = 0x016d;\n t.ucaron = 0x01d4;\n t.ucircle = 0x24e4;\n t.ucircumflex = 0x00fb;\n t.ucircumflexbelow = 0x1e77;\n t.ucyrillic = 0x0443;\n t.udattadeva = 0x0951;\n t.udblacute = 0x0171;\n t.udblgrave = 0x0215;\n t.udeva = 0x0909;\n t.udieresis = 0x00fc;\n t.udieresisacute = 0x01d8;\n t.udieresisbelow = 0x1e73;\n t.udieresiscaron = 0x01da;\n t.udieresiscyrillic = 0x04f1;\n t.udieresisgrave = 0x01dc;\n t.udieresismacron = 0x01d6;\n t.udotbelow = 0x1ee5;\n t.ugrave = 0x00f9;\n t.ugujarati = 0x0a89;\n t.ugurmukhi = 0x0a09;\n t.uhiragana = 0x3046;\n t.uhookabove = 0x1ee7;\n t.uhorn = 0x01b0;\n t.uhornacute = 0x1ee9;\n t.uhorndotbelow = 0x1ef1;\n t.uhorngrave = 0x1eeb;\n t.uhornhookabove = 0x1eed;\n t.uhorntilde = 0x1eef;\n t.uhungarumlaut = 0x0171;\n t.uhungarumlautcyrillic = 0x04f3;\n t.uinvertedbreve = 0x0217;\n t.ukatakana = 0x30a6;\n t.ukatakanahalfwidth = 0xff73;\n t.ukcyrillic = 0x0479;\n t.ukorean = 0x315c;\n t.umacron = 0x016b;\n t.umacroncyrillic = 0x04ef;\n t.umacrondieresis = 0x1e7b;\n t.umatragurmukhi = 0x0a41;\n t.umonospace = 0xff55;\n t.underscore = 0x005f;\n t.underscoredbl = 0x2017;\n t.underscoremonospace = 0xff3f;\n t.underscorevertical = 0xfe33;\n t.underscorewavy = 0xfe4f;\n t.union = 0x222a;\n t.universal = 0x2200;\n t.uogonek = 0x0173;\n t.uparen = 0x24b0;\n t.upblock = 0x2580;\n t.upperdothebrew = 0x05c4;\n t.upsilon = 0x03c5;\n t.upsilondieresis = 0x03cb;\n t.upsilondieresistonos = 0x03b0;\n t.upsilonlatin = 0x028a;\n t.upsilontonos = 0x03cd;\n t.uptackbelowcmb = 0x031d;\n t.uptackmod = 0x02d4;\n t.uragurmukhi = 0x0a73;\n t.uring = 0x016f;\n t.ushortcyrillic = 0x045e;\n t.usmallhiragana = 0x3045;\n t.usmallkatakana = 0x30a5;\n t.usmallkatakanahalfwidth = 0xff69;\n t.ustraightcyrillic = 0x04af;\n t.ustraightstrokecyrillic = 0x04b1;\n t.utilde = 0x0169;\n t.utildeacute = 0x1e79;\n t.utildebelow = 0x1e75;\n t.uubengali = 0x098a;\n t.uudeva = 0x090a;\n t.uugujarati = 0x0a8a;\n t.uugurmukhi = 0x0a0a;\n t.uumatragurmukhi = 0x0a42;\n t.uuvowelsignbengali = 0x09c2;\n t.uuvowelsigndeva = 0x0942;\n t.uuvowelsigngujarati = 0x0ac2;\n t.uvowelsignbengali = 0x09c1;\n t.uvowelsigndeva = 0x0941;\n t.uvowelsigngujarati = 0x0ac1;\n t.v = 0x0076;\n t.vadeva = 0x0935;\n t.vagujarati = 0x0ab5;\n t.vagurmukhi = 0x0a35;\n t.vakatakana = 0x30f7;\n t.vav = 0x05d5;\n t.vavdagesh = 0xfb35;\n t.vavdagesh65 = 0xfb35;\n t.vavdageshhebrew = 0xfb35;\n t.vavhebrew = 0x05d5;\n t.vavholam = 0xfb4b;\n t.vavholamhebrew = 0xfb4b;\n t.vavvavhebrew = 0x05f0;\n t.vavyodhebrew = 0x05f1;\n t.vcircle = 0x24e5;\n t.vdotbelow = 0x1e7f;\n t.vecyrillic = 0x0432;\n t.veharabic = 0x06a4;\n t.vehfinalarabic = 0xfb6b;\n t.vehinitialarabic = 0xfb6c;\n t.vehmedialarabic = 0xfb6d;\n t.vekatakana = 0x30f9;\n t.venus = 0x2640;\n t.verticalbar = 0x007c;\n t.verticallineabovecmb = 0x030d;\n t.verticallinebelowcmb = 0x0329;\n t.verticallinelowmod = 0x02cc;\n t.verticallinemod = 0x02c8;\n t.vewarmenian = 0x057e;\n t.vhook = 0x028b;\n t.vikatakana = 0x30f8;\n t.viramabengali = 0x09cd;\n t.viramadeva = 0x094d;\n t.viramagujarati = 0x0acd;\n t.visargabengali = 0x0983;\n t.visargadeva = 0x0903;\n t.visargagujarati = 0x0a83;\n t.vmonospace = 0xff56;\n t.voarmenian = 0x0578;\n t.voicediterationhiragana = 0x309e;\n t.voicediterationkatakana = 0x30fe;\n t.voicedmarkkana = 0x309b;\n t.voicedmarkkanahalfwidth = 0xff9e;\n t.vokatakana = 0x30fa;\n t.vparen = 0x24b1;\n t.vtilde = 0x1e7d;\n t.vturned = 0x028c;\n t.vuhiragana = 0x3094;\n t.vukatakana = 0x30f4;\n t.w = 0x0077;\n t.wacute = 0x1e83;\n t.waekorean = 0x3159;\n t.wahiragana = 0x308f;\n t.wakatakana = 0x30ef;\n t.wakatakanahalfwidth = 0xff9c;\n t.wakorean = 0x3158;\n t.wasmallhiragana = 0x308e;\n t.wasmallkatakana = 0x30ee;\n t.wattosquare = 0x3357;\n t.wavedash = 0x301c;\n t.wavyunderscorevertical = 0xfe34;\n t.wawarabic = 0x0648;\n t.wawfinalarabic = 0xfeee;\n t.wawhamzaabovearabic = 0x0624;\n t.wawhamzaabovefinalarabic = 0xfe86;\n t.wbsquare = 0x33dd;\n t.wcircle = 0x24e6;\n t.wcircumflex = 0x0175;\n t.wdieresis = 0x1e85;\n t.wdotaccent = 0x1e87;\n t.wdotbelow = 0x1e89;\n t.wehiragana = 0x3091;\n t.weierstrass = 0x2118;\n t.wekatakana = 0x30f1;\n t.wekorean = 0x315e;\n t.weokorean = 0x315d;\n t.wgrave = 0x1e81;\n t.whitebullet = 0x25e6;\n t.whitecircle = 0x25cb;\n t.whitecircleinverse = 0x25d9;\n t.whitecornerbracketleft = 0x300e;\n t.whitecornerbracketleftvertical = 0xfe43;\n t.whitecornerbracketright = 0x300f;\n t.whitecornerbracketrightvertical = 0xfe44;\n t.whitediamond = 0x25c7;\n t.whitediamondcontainingblacksmalldiamond = 0x25c8;\n t.whitedownpointingsmalltriangle = 0x25bf;\n t.whitedownpointingtriangle = 0x25bd;\n t.whiteleftpointingsmalltriangle = 0x25c3;\n t.whiteleftpointingtriangle = 0x25c1;\n t.whitelenticularbracketleft = 0x3016;\n t.whitelenticularbracketright = 0x3017;\n t.whiterightpointingsmalltriangle = 0x25b9;\n t.whiterightpointingtriangle = 0x25b7;\n t.whitesmallsquare = 0x25ab;\n t.whitesmilingface = 0x263a;\n t.whitesquare = 0x25a1;\n t.whitestar = 0x2606;\n t.whitetelephone = 0x260f;\n t.whitetortoiseshellbracketleft = 0x3018;\n t.whitetortoiseshellbracketright = 0x3019;\n t.whiteuppointingsmalltriangle = 0x25b5;\n t.whiteuppointingtriangle = 0x25b3;\n t.wihiragana = 0x3090;\n t.wikatakana = 0x30f0;\n t.wikorean = 0x315f;\n t.wmonospace = 0xff57;\n t.wohiragana = 0x3092;\n t.wokatakana = 0x30f2;\n t.wokatakanahalfwidth = 0xff66;\n t.won = 0x20a9;\n t.wonmonospace = 0xffe6;\n t.wowaenthai = 0x0e27;\n t.wparen = 0x24b2;\n t.wring = 0x1e98;\n t.wsuperior = 0x02b7;\n t.wturned = 0x028d;\n t.wynn = 0x01bf;\n t.x = 0x0078;\n t.xabovecmb = 0x033d;\n t.xbopomofo = 0x3112;\n t.xcircle = 0x24e7;\n t.xdieresis = 0x1e8d;\n t.xdotaccent = 0x1e8b;\n t.xeharmenian = 0x056d;\n t.xi = 0x03be;\n t.xmonospace = 0xff58;\n t.xparen = 0x24b3;\n t.xsuperior = 0x02e3;\n t.y = 0x0079;\n t.yaadosquare = 0x334e;\n t.yabengali = 0x09af;\n t.yacute = 0x00fd;\n t.yadeva = 0x092f;\n t.yaekorean = 0x3152;\n t.yagujarati = 0x0aaf;\n t.yagurmukhi = 0x0a2f;\n t.yahiragana = 0x3084;\n t.yakatakana = 0x30e4;\n t.yakatakanahalfwidth = 0xff94;\n t.yakorean = 0x3151;\n t.yamakkanthai = 0x0e4e;\n t.yasmallhiragana = 0x3083;\n t.yasmallkatakana = 0x30e3;\n t.yasmallkatakanahalfwidth = 0xff6c;\n t.yatcyrillic = 0x0463;\n t.ycircle = 0x24e8;\n t.ycircumflex = 0x0177;\n t.ydieresis = 0x00ff;\n t.ydotaccent = 0x1e8f;\n t.ydotbelow = 0x1ef5;\n t.yeharabic = 0x064a;\n t.yehbarreearabic = 0x06d2;\n t.yehbarreefinalarabic = 0xfbaf;\n t.yehfinalarabic = 0xfef2;\n t.yehhamzaabovearabic = 0x0626;\n t.yehhamzaabovefinalarabic = 0xfe8a;\n t.yehhamzaaboveinitialarabic = 0xfe8b;\n t.yehhamzaabovemedialarabic = 0xfe8c;\n t.yehinitialarabic = 0xfef3;\n t.yehmedialarabic = 0xfef4;\n t.yehmeeminitialarabic = 0xfcdd;\n t.yehmeemisolatedarabic = 0xfc58;\n t.yehnoonfinalarabic = 0xfc94;\n t.yehthreedotsbelowarabic = 0x06d1;\n t.yekorean = 0x3156;\n t.yen = 0x00a5;\n t.yenmonospace = 0xffe5;\n t.yeokorean = 0x3155;\n t.yeorinhieuhkorean = 0x3186;\n t.yerahbenyomohebrew = 0x05aa;\n t.yerahbenyomolefthebrew = 0x05aa;\n t.yericyrillic = 0x044b;\n t.yerudieresiscyrillic = 0x04f9;\n t.yesieungkorean = 0x3181;\n t.yesieungpansioskorean = 0x3183;\n t.yesieungsioskorean = 0x3182;\n t.yetivhebrew = 0x059a;\n t.ygrave = 0x1ef3;\n t.yhook = 0x01b4;\n t.yhookabove = 0x1ef7;\n t.yiarmenian = 0x0575;\n t.yicyrillic = 0x0457;\n t.yikorean = 0x3162;\n t.yinyang = 0x262f;\n t.yiwnarmenian = 0x0582;\n t.ymonospace = 0xff59;\n t.yod = 0x05d9;\n t.yoddagesh = 0xfb39;\n t.yoddageshhebrew = 0xfb39;\n t.yodhebrew = 0x05d9;\n t.yodyodhebrew = 0x05f2;\n t.yodyodpatahhebrew = 0xfb1f;\n t.yohiragana = 0x3088;\n t.yoikorean = 0x3189;\n t.yokatakana = 0x30e8;\n t.yokatakanahalfwidth = 0xff96;\n t.yokorean = 0x315b;\n t.yosmallhiragana = 0x3087;\n t.yosmallkatakana = 0x30e7;\n t.yosmallkatakanahalfwidth = 0xff6e;\n t.yotgreek = 0x03f3;\n t.yoyaekorean = 0x3188;\n t.yoyakorean = 0x3187;\n t.yoyakthai = 0x0e22;\n t.yoyingthai = 0x0e0d;\n t.yparen = 0x24b4;\n t.ypogegrammeni = 0x037a;\n t.ypogegrammenigreekcmb = 0x0345;\n t.yr = 0x01a6;\n t.yring = 0x1e99;\n t.ysuperior = 0x02b8;\n t.ytilde = 0x1ef9;\n t.yturned = 0x028e;\n t.yuhiragana = 0x3086;\n t.yuikorean = 0x318c;\n t.yukatakana = 0x30e6;\n t.yukatakanahalfwidth = 0xff95;\n t.yukorean = 0x3160;\n t.yusbigcyrillic = 0x046b;\n t.yusbigiotifiedcyrillic = 0x046d;\n t.yuslittlecyrillic = 0x0467;\n t.yuslittleiotifiedcyrillic = 0x0469;\n t.yusmallhiragana = 0x3085;\n t.yusmallkatakana = 0x30e5;\n t.yusmallkatakanahalfwidth = 0xff6d;\n t.yuyekorean = 0x318b;\n t.yuyeokorean = 0x318a;\n t.yyabengali = 0x09df;\n t.yyadeva = 0x095f;\n t.z = 0x007a;\n t.zaarmenian = 0x0566;\n t.zacute = 0x017a;\n t.zadeva = 0x095b;\n t.zagurmukhi = 0x0a5b;\n t.zaharabic = 0x0638;\n t.zahfinalarabic = 0xfec6;\n t.zahinitialarabic = 0xfec7;\n t.zahiragana = 0x3056;\n t.zahmedialarabic = 0xfec8;\n t.zainarabic = 0x0632;\n t.zainfinalarabic = 0xfeb0;\n t.zakatakana = 0x30b6;\n t.zaqefgadolhebrew = 0x0595;\n t.zaqefqatanhebrew = 0x0594;\n t.zarqahebrew = 0x0598;\n t.zayin = 0x05d6;\n t.zayindagesh = 0xfb36;\n t.zayindageshhebrew = 0xfb36;\n t.zayinhebrew = 0x05d6;\n t.zbopomofo = 0x3117;\n t.zcaron = 0x017e;\n t.zcircle = 0x24e9;\n t.zcircumflex = 0x1e91;\n t.zcurl = 0x0291;\n t.zdot = 0x017c;\n t.zdotaccent = 0x017c;\n t.zdotbelow = 0x1e93;\n t.zecyrillic = 0x0437;\n t.zedescendercyrillic = 0x0499;\n t.zedieresiscyrillic = 0x04df;\n t.zehiragana = 0x305c;\n t.zekatakana = 0x30bc;\n t.zero = 0x0030;\n t.zeroarabic = 0x0660;\n t.zerobengali = 0x09e6;\n t.zerodeva = 0x0966;\n t.zerogujarati = 0x0ae6;\n t.zerogurmukhi = 0x0a66;\n t.zerohackarabic = 0x0660;\n t.zeroinferior = 0x2080;\n t.zeromonospace = 0xff10;\n t.zerooldstyle = 0xf730;\n t.zeropersian = 0x06f0;\n t.zerosuperior = 0x2070;\n t.zerothai = 0x0e50;\n t.zerowidthjoiner = 0xfeff;\n t.zerowidthnonjoiner = 0x200c;\n t.zerowidthspace = 0x200b;\n t.zeta = 0x03b6;\n t.zhbopomofo = 0x3113;\n t.zhearmenian = 0x056a;\n t.zhebrevecyrillic = 0x04c2;\n t.zhecyrillic = 0x0436;\n t.zhedescendercyrillic = 0x0497;\n t.zhedieresiscyrillic = 0x04dd;\n t.zihiragana = 0x3058;\n t.zikatakana = 0x30b8;\n t.zinorhebrew = 0x05ae;\n t.zlinebelow = 0x1e95;\n t.zmonospace = 0xff5a;\n t.zohiragana = 0x305e;\n t.zokatakana = 0x30be;\n t.zparen = 0x24b5;\n t.zretroflexhook = 0x0290;\n t.zstroke = 0x01b6;\n t.zuhiragana = 0x305a;\n t.zukatakana = 0x30ba;\n t[\".notdef\"] = 0x0000;\n t.angbracketleftbig = 0x2329;\n t.angbracketleftBig = 0x2329;\n t.angbracketleftbigg = 0x2329;\n t.angbracketleftBigg = 0x2329;\n t.angbracketrightBig = 0x232a;\n t.angbracketrightbig = 0x232a;\n t.angbracketrightBigg = 0x232a;\n t.angbracketrightbigg = 0x232a;\n t.arrowhookleft = 0x21aa;\n t.arrowhookright = 0x21a9;\n t.arrowlefttophalf = 0x21bc;\n t.arrowleftbothalf = 0x21bd;\n t.arrownortheast = 0x2197;\n t.arrownorthwest = 0x2196;\n t.arrowrighttophalf = 0x21c0;\n t.arrowrightbothalf = 0x21c1;\n t.arrowsoutheast = 0x2198;\n t.arrowsouthwest = 0x2199;\n t.backslashbig = 0x2216;\n t.backslashBig = 0x2216;\n t.backslashBigg = 0x2216;\n t.backslashbigg = 0x2216;\n t.bardbl = 0x2016;\n t.bracehtipdownleft = 0xfe37;\n t.bracehtipdownright = 0xfe37;\n t.bracehtipupleft = 0xfe38;\n t.bracehtipupright = 0xfe38;\n t.braceleftBig = 0x007b;\n t.braceleftbig = 0x007b;\n t.braceleftbigg = 0x007b;\n t.braceleftBigg = 0x007b;\n t.bracerightBig = 0x007d;\n t.bracerightbig = 0x007d;\n t.bracerightbigg = 0x007d;\n t.bracerightBigg = 0x007d;\n t.bracketleftbig = 0x005b;\n t.bracketleftBig = 0x005b;\n t.bracketleftbigg = 0x005b;\n t.bracketleftBigg = 0x005b;\n t.bracketrightBig = 0x005d;\n t.bracketrightbig = 0x005d;\n t.bracketrightbigg = 0x005d;\n t.bracketrightBigg = 0x005d;\n t.ceilingleftbig = 0x2308;\n t.ceilingleftBig = 0x2308;\n t.ceilingleftBigg = 0x2308;\n t.ceilingleftbigg = 0x2308;\n t.ceilingrightbig = 0x2309;\n t.ceilingrightBig = 0x2309;\n t.ceilingrightbigg = 0x2309;\n t.ceilingrightBigg = 0x2309;\n t.circledotdisplay = 0x2299;\n t.circledottext = 0x2299;\n t.circlemultiplydisplay = 0x2297;\n t.circlemultiplytext = 0x2297;\n t.circleplusdisplay = 0x2295;\n t.circleplustext = 0x2295;\n t.contintegraldisplay = 0x222e;\n t.contintegraltext = 0x222e;\n t.coproductdisplay = 0x2210;\n t.coproducttext = 0x2210;\n t.floorleftBig = 0x230a;\n t.floorleftbig = 0x230a;\n t.floorleftbigg = 0x230a;\n t.floorleftBigg = 0x230a;\n t.floorrightbig = 0x230b;\n t.floorrightBig = 0x230b;\n t.floorrightBigg = 0x230b;\n t.floorrightbigg = 0x230b;\n t.hatwide = 0x0302;\n t.hatwider = 0x0302;\n t.hatwidest = 0x0302;\n t.intercal = 0x1d40;\n t.integraldisplay = 0x222b;\n t.integraltext = 0x222b;\n t.intersectiondisplay = 0x22c2;\n t.intersectiontext = 0x22c2;\n t.logicalanddisplay = 0x2227;\n t.logicalandtext = 0x2227;\n t.logicalordisplay = 0x2228;\n t.logicalortext = 0x2228;\n t.parenleftBig = 0x0028;\n t.parenleftbig = 0x0028;\n t.parenleftBigg = 0x0028;\n t.parenleftbigg = 0x0028;\n t.parenrightBig = 0x0029;\n t.parenrightbig = 0x0029;\n t.parenrightBigg = 0x0029;\n t.parenrightbigg = 0x0029;\n t.prime = 0x2032;\n t.productdisplay = 0x220f;\n t.producttext = 0x220f;\n t.radicalbig = 0x221a;\n t.radicalBig = 0x221a;\n t.radicalBigg = 0x221a;\n t.radicalbigg = 0x221a;\n t.radicalbt = 0x221a;\n t.radicaltp = 0x221a;\n t.radicalvertex = 0x221a;\n t.slashbig = 0x002f;\n t.slashBig = 0x002f;\n t.slashBigg = 0x002f;\n t.slashbigg = 0x002f;\n t.summationdisplay = 0x2211;\n t.summationtext = 0x2211;\n t.tildewide = 0x02dc;\n t.tildewider = 0x02dc;\n t.tildewidest = 0x02dc;\n t.uniondisplay = 0x22c3;\n t.unionmultidisplay = 0x228e;\n t.unionmultitext = 0x228e;\n t.unionsqdisplay = 0x2294;\n t.unionsqtext = 0x2294;\n t.uniontext = 0x22c3;\n t.vextenddouble = 0x2225;\n t.vextendsingle = 0x2223;\n});\nvar getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n t.space = 0x0020;\n t.a1 = 0x2701;\n t.a2 = 0x2702;\n t.a202 = 0x2703;\n t.a3 = 0x2704;\n t.a4 = 0x260e;\n t.a5 = 0x2706;\n t.a119 = 0x2707;\n t.a118 = 0x2708;\n t.a117 = 0x2709;\n t.a11 = 0x261b;\n t.a12 = 0x261e;\n t.a13 = 0x270c;\n t.a14 = 0x270d;\n t.a15 = 0x270e;\n t.a16 = 0x270f;\n t.a105 = 0x2710;\n t.a17 = 0x2711;\n t.a18 = 0x2712;\n t.a19 = 0x2713;\n t.a20 = 0x2714;\n t.a21 = 0x2715;\n t.a22 = 0x2716;\n t.a23 = 0x2717;\n t.a24 = 0x2718;\n t.a25 = 0x2719;\n t.a26 = 0x271a;\n t.a27 = 0x271b;\n t.a28 = 0x271c;\n t.a6 = 0x271d;\n t.a7 = 0x271e;\n t.a8 = 0x271f;\n t.a9 = 0x2720;\n t.a10 = 0x2721;\n t.a29 = 0x2722;\n t.a30 = 0x2723;\n t.a31 = 0x2724;\n t.a32 = 0x2725;\n t.a33 = 0x2726;\n t.a34 = 0x2727;\n t.a35 = 0x2605;\n t.a36 = 0x2729;\n t.a37 = 0x272a;\n t.a38 = 0x272b;\n t.a39 = 0x272c;\n t.a40 = 0x272d;\n t.a41 = 0x272e;\n t.a42 = 0x272f;\n t.a43 = 0x2730;\n t.a44 = 0x2731;\n t.a45 = 0x2732;\n t.a46 = 0x2733;\n t.a47 = 0x2734;\n t.a48 = 0x2735;\n t.a49 = 0x2736;\n t.a50 = 0x2737;\n t.a51 = 0x2738;\n t.a52 = 0x2739;\n t.a53 = 0x273a;\n t.a54 = 0x273b;\n t.a55 = 0x273c;\n t.a56 = 0x273d;\n t.a57 = 0x273e;\n t.a58 = 0x273f;\n t.a59 = 0x2740;\n t.a60 = 0x2741;\n t.a61 = 0x2742;\n t.a62 = 0x2743;\n t.a63 = 0x2744;\n t.a64 = 0x2745;\n t.a65 = 0x2746;\n t.a66 = 0x2747;\n t.a67 = 0x2748;\n t.a68 = 0x2749;\n t.a69 = 0x274a;\n t.a70 = 0x274b;\n t.a71 = 0x25cf;\n t.a72 = 0x274d;\n t.a73 = 0x25a0;\n t.a74 = 0x274f;\n t.a203 = 0x2750;\n t.a75 = 0x2751;\n t.a204 = 0x2752;\n t.a76 = 0x25b2;\n t.a77 = 0x25bc;\n t.a78 = 0x25c6;\n t.a79 = 0x2756;\n t.a81 = 0x25d7;\n t.a82 = 0x2758;\n t.a83 = 0x2759;\n t.a84 = 0x275a;\n t.a97 = 0x275b;\n t.a98 = 0x275c;\n t.a99 = 0x275d;\n t.a100 = 0x275e;\n t.a101 = 0x2761;\n t.a102 = 0x2762;\n t.a103 = 0x2763;\n t.a104 = 0x2764;\n t.a106 = 0x2765;\n t.a107 = 0x2766;\n t.a108 = 0x2767;\n t.a112 = 0x2663;\n t.a111 = 0x2666;\n t.a110 = 0x2665;\n t.a109 = 0x2660;\n t.a120 = 0x2460;\n t.a121 = 0x2461;\n t.a122 = 0x2462;\n t.a123 = 0x2463;\n t.a124 = 0x2464;\n t.a125 = 0x2465;\n t.a126 = 0x2466;\n t.a127 = 0x2467;\n t.a128 = 0x2468;\n t.a129 = 0x2469;\n t.a130 = 0x2776;\n t.a131 = 0x2777;\n t.a132 = 0x2778;\n t.a133 = 0x2779;\n t.a134 = 0x277a;\n t.a135 = 0x277b;\n t.a136 = 0x277c;\n t.a137 = 0x277d;\n t.a138 = 0x277e;\n t.a139 = 0x277f;\n t.a140 = 0x2780;\n t.a141 = 0x2781;\n t.a142 = 0x2782;\n t.a143 = 0x2783;\n t.a144 = 0x2784;\n t.a145 = 0x2785;\n t.a146 = 0x2786;\n t.a147 = 0x2787;\n t.a148 = 0x2788;\n t.a149 = 0x2789;\n t.a150 = 0x278a;\n t.a151 = 0x278b;\n t.a152 = 0x278c;\n t.a153 = 0x278d;\n t.a154 = 0x278e;\n t.a155 = 0x278f;\n t.a156 = 0x2790;\n t.a157 = 0x2791;\n t.a158 = 0x2792;\n t.a159 = 0x2793;\n t.a160 = 0x2794;\n t.a161 = 0x2192;\n t.a163 = 0x2194;\n t.a164 = 0x2195;\n t.a196 = 0x2798;\n t.a165 = 0x2799;\n t.a192 = 0x279a;\n t.a166 = 0x279b;\n t.a167 = 0x279c;\n t.a168 = 0x279d;\n t.a169 = 0x279e;\n t.a170 = 0x279f;\n t.a171 = 0x27a0;\n t.a172 = 0x27a1;\n t.a173 = 0x27a2;\n t.a162 = 0x27a3;\n t.a174 = 0x27a4;\n t.a175 = 0x27a5;\n t.a176 = 0x27a6;\n t.a177 = 0x27a7;\n t.a178 = 0x27a8;\n t.a179 = 0x27a9;\n t.a193 = 0x27aa;\n t.a180 = 0x27ab;\n t.a199 = 0x27ac;\n t.a181 = 0x27ad;\n t.a200 = 0x27ae;\n t.a182 = 0x27af;\n t.a201 = 0x27b1;\n t.a183 = 0x27b2;\n t.a184 = 0x27b3;\n t.a197 = 0x27b4;\n t.a185 = 0x27b5;\n t.a194 = 0x27b6;\n t.a198 = 0x27b7;\n t.a186 = 0x27b8;\n t.a195 = 0x27b9;\n t.a187 = 0x27ba;\n t.a188 = 0x27bb;\n t.a189 = 0x27bc;\n t.a190 = 0x27bd;\n t.a191 = 0x27be;\n t.a89 = 0x2768;\n t.a90 = 0x2769;\n t.a93 = 0x276a;\n t.a94 = 0x276b;\n t.a91 = 0x276c;\n t.a92 = 0x276d;\n t.a205 = 0x276e;\n t.a85 = 0x276f;\n t.a206 = 0x2770;\n t.a86 = 0x2771;\n t.a87 = 0x2772;\n t.a88 = 0x2773;\n t.a95 = 0x2774;\n t.a96 = 0x2775;\n t[\".notdef\"] = 0x0000;\n});\nexports.getGlyphsUnicode = getGlyphsUnicode;\nexports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = void 0;\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nconst getStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.ArialNarrow = \"Helvetica\";\n t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n t.ArialBlack = \"Helvetica\";\n t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-Black\"] = \"Helvetica\";\n t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n t.Arial = \"Helvetica\";\n t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n t.ArialMT = \"Helvetica\";\n t[\"Courier-Bold\"] = \"Courier-Bold\";\n t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"Courier-Italic\"] = \"Courier-Oblique\";\n t.CourierNew = \"Courier\";\n t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n t.CourierNewPSMT = \"Courier\";\n t.Helvetica = \"Helvetica\";\n t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n t[\"Symbol-Bold\"] = \"Symbol\";\n t[\"Symbol-BoldItalic\"] = \"Symbol\";\n t[\"Symbol-Italic\"] = \"Symbol\";\n t.TimesNewRoman = \"Times-Roman\";\n t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n t.TimesNewRomanPS = \"Times-Roman\";\n t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n t.TimesNewRomanPSMT = \"Times-Roman\";\n t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\nexports.getStdFontMap = getStdFontMap;\nconst getNonStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.Calibri = \"Helvetica\";\n t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n t.CenturyGothic = \"Helvetica\";\n t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n t.ComicSansMS = \"Comic Sans MS\";\n t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n t.LucidaConsole = \"Courier\";\n t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n t[\"MS-Gothic\"] = \"MS Gothic\";\n t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n t[\"MS-Mincho\"] = \"MS Mincho\";\n t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n t[\"MS-PGothic\"] = \"MS PGothic\";\n t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n t[\"MS-PMincho\"] = \"MS PMincho\";\n t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n t.NuptialScript = \"Times-Italic\";\n t.SegoeUISymbol = \"Helvetica\";\n t.Wingdings = \"ZapfDingbats\";\n t[\"Wingdings-Regular\"] = \"ZapfDingbats\";\n});\nexports.getNonStdFontMap = getNonStdFontMap;\nconst getSerifFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n t[\"Adobe Jenson\"] = true;\n t[\"Adobe Text\"] = true;\n t.Albertus = true;\n t.Aldus = true;\n t.Alexandria = true;\n t.Algerian = true;\n t[\"American Typewriter\"] = true;\n t.Antiqua = true;\n t.Apex = true;\n t.Arno = true;\n t.Aster = true;\n t.Aurora = true;\n t.Baskerville = true;\n t.Bell = true;\n t.Bembo = true;\n t[\"Bembo Schoolbook\"] = true;\n t.Benguiat = true;\n t[\"Berkeley Old Style\"] = true;\n t[\"Bernhard Modern\"] = true;\n t[\"Berthold City\"] = true;\n t.Bodoni = true;\n t[\"Bauer Bodoni\"] = true;\n t[\"Book Antiqua\"] = true;\n t.Bookman = true;\n t[\"Bordeaux Roman\"] = true;\n t[\"Californian FB\"] = true;\n t.Calisto = true;\n t.Calvert = true;\n t.Capitals = true;\n t.Cambria = true;\n t.Cartier = true;\n t.Caslon = true;\n t.Catull = true;\n t.Centaur = true;\n t[\"Century Old Style\"] = true;\n t[\"Century Schoolbook\"] = true;\n t.Chaparral = true;\n t[\"Charis SIL\"] = true;\n t.Cheltenham = true;\n t[\"Cholla Slab\"] = true;\n t.Clarendon = true;\n t.Clearface = true;\n t.Cochin = true;\n t.Colonna = true;\n t[\"Computer Modern\"] = true;\n t[\"Concrete Roman\"] = true;\n t.Constantia = true;\n t[\"Cooper Black\"] = true;\n t.Corona = true;\n t.Ecotype = true;\n t.Egyptienne = true;\n t.Elephant = true;\n t.Excelsior = true;\n t.Fairfield = true;\n t[\"FF Scala\"] = true;\n t.Folkard = true;\n t.Footlight = true;\n t.FreeSerif = true;\n t[\"Friz Quadrata\"] = true;\n t.Garamond = true;\n t.Gentium = true;\n t.Georgia = true;\n t.Gloucester = true;\n t[\"Goudy Old Style\"] = true;\n t[\"Goudy Schoolbook\"] = true;\n t[\"Goudy Pro Font\"] = true;\n t.Granjon = true;\n t[\"Guardian Egyptian\"] = true;\n t.Heather = true;\n t.Hercules = true;\n t[\"High Tower Text\"] = true;\n t.Hiroshige = true;\n t[\"Hoefler Text\"] = true;\n t[\"Humana Serif\"] = true;\n t.Imprint = true;\n t[\"Ionic No. 5\"] = true;\n t.Janson = true;\n t.Joanna = true;\n t.Korinna = true;\n t.Lexicon = true;\n t[\"Liberation Serif\"] = true;\n t[\"Linux Libertine\"] = true;\n t.Literaturnaya = true;\n t.Lucida = true;\n t[\"Lucida Bright\"] = true;\n t.Melior = true;\n t.Memphis = true;\n t.Miller = true;\n t.Minion = true;\n t.Modern = true;\n t[\"Mona Lisa\"] = true;\n t[\"Mrs Eaves\"] = true;\n t[\"MS Serif\"] = true;\n t[\"Museo Slab\"] = true;\n t[\"New York\"] = true;\n t[\"Nimbus Roman\"] = true;\n t[\"NPS Rawlinson Roadway\"] = true;\n t.NuptialScript = true;\n t.Palatino = true;\n t.Perpetua = true;\n t.Plantin = true;\n t[\"Plantin Schoolbook\"] = true;\n t.Playbill = true;\n t[\"Poor Richard\"] = true;\n t[\"Rawlinson Roadway\"] = true;\n t.Renault = true;\n t.Requiem = true;\n t.Rockwell = true;\n t.Roman = true;\n t[\"Rotis Serif\"] = true;\n t.Sabon = true;\n t.Scala = true;\n t.Seagull = true;\n t.Sistina = true;\n t.Souvenir = true;\n t.STIX = true;\n t[\"Stone Informal\"] = true;\n t[\"Stone Serif\"] = true;\n t.Sylfaen = true;\n t.Times = true;\n t.Trajan = true;\n t[\"Trinité\"] = true;\n t[\"Trump Mediaeval\"] = true;\n t.Utopia = true;\n t[\"Vale Type\"] = true;\n t[\"Bitstream Vera\"] = true;\n t[\"Vera Serif\"] = true;\n t.Versailles = true;\n t.Wanted = true;\n t.Weiss = true;\n t[\"Wide Latin\"] = true;\n t.Windsor = true;\n t.XITS = true;\n});\nexports.getSerifFonts = getSerifFonts;\nconst getSymbolsFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.Dingbats = true;\n t.Symbol = true;\n t.ZapfDingbats = true;\n});\nexports.getSymbolsFonts = getSymbolsFonts;\nconst getGlyphMapForStandardFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n t[2] = 10;\n t[3] = 32;\n t[4] = 33;\n t[5] = 34;\n t[6] = 35;\n t[7] = 36;\n t[8] = 37;\n t[9] = 38;\n t[10] = 39;\n t[11] = 40;\n t[12] = 41;\n t[13] = 42;\n t[14] = 43;\n t[15] = 44;\n t[16] = 45;\n t[17] = 46;\n t[18] = 47;\n t[19] = 48;\n t[20] = 49;\n t[21] = 50;\n t[22] = 51;\n t[23] = 52;\n t[24] = 53;\n t[25] = 54;\n t[26] = 55;\n t[27] = 56;\n t[28] = 57;\n t[29] = 58;\n t[30] = 894;\n t[31] = 60;\n t[32] = 61;\n t[33] = 62;\n t[34] = 63;\n t[35] = 64;\n t[36] = 65;\n t[37] = 66;\n t[38] = 67;\n t[39] = 68;\n t[40] = 69;\n t[41] = 70;\n t[42] = 71;\n t[43] = 72;\n t[44] = 73;\n t[45] = 74;\n t[46] = 75;\n t[47] = 76;\n t[48] = 77;\n t[49] = 78;\n t[50] = 79;\n t[51] = 80;\n t[52] = 81;\n t[53] = 82;\n t[54] = 83;\n t[55] = 84;\n t[56] = 85;\n t[57] = 86;\n t[58] = 87;\n t[59] = 88;\n t[60] = 89;\n t[61] = 90;\n t[62] = 91;\n t[63] = 92;\n t[64] = 93;\n t[65] = 94;\n t[66] = 95;\n t[67] = 96;\n t[68] = 97;\n t[69] = 98;\n t[70] = 99;\n t[71] = 100;\n t[72] = 101;\n t[73] = 102;\n t[74] = 103;\n t[75] = 104;\n t[76] = 105;\n t[77] = 106;\n t[78] = 107;\n t[79] = 108;\n t[80] = 109;\n t[81] = 110;\n t[82] = 111;\n t[83] = 112;\n t[84] = 113;\n t[85] = 114;\n t[86] = 115;\n t[87] = 116;\n t[88] = 117;\n t[89] = 118;\n t[90] = 119;\n t[91] = 120;\n t[92] = 121;\n t[93] = 122;\n t[94] = 123;\n t[95] = 124;\n t[96] = 125;\n t[97] = 126;\n t[98] = 196;\n t[99] = 197;\n t[100] = 199;\n t[101] = 201;\n t[102] = 209;\n t[103] = 214;\n t[104] = 220;\n t[105] = 225;\n t[106] = 224;\n t[107] = 226;\n t[108] = 228;\n t[109] = 227;\n t[110] = 229;\n t[111] = 231;\n t[112] = 233;\n t[113] = 232;\n t[114] = 234;\n t[115] = 235;\n t[116] = 237;\n t[117] = 236;\n t[118] = 238;\n t[119] = 239;\n t[120] = 241;\n t[121] = 243;\n t[122] = 242;\n t[123] = 244;\n t[124] = 246;\n t[125] = 245;\n t[126] = 250;\n t[127] = 249;\n t[128] = 251;\n t[129] = 252;\n t[130] = 8224;\n t[131] = 176;\n t[132] = 162;\n t[133] = 163;\n t[134] = 167;\n t[135] = 8226;\n t[136] = 182;\n t[137] = 223;\n t[138] = 174;\n t[139] = 169;\n t[140] = 8482;\n t[141] = 180;\n t[142] = 168;\n t[143] = 8800;\n t[144] = 198;\n t[145] = 216;\n t[146] = 8734;\n t[147] = 177;\n t[148] = 8804;\n t[149] = 8805;\n t[150] = 165;\n t[151] = 181;\n t[152] = 8706;\n t[153] = 8721;\n t[154] = 8719;\n t[156] = 8747;\n t[157] = 170;\n t[158] = 186;\n t[159] = 8486;\n t[160] = 230;\n t[161] = 248;\n t[162] = 191;\n t[163] = 161;\n t[164] = 172;\n t[165] = 8730;\n t[166] = 402;\n t[167] = 8776;\n t[168] = 8710;\n t[169] = 171;\n t[170] = 187;\n t[171] = 8230;\n t[210] = 218;\n t[223] = 711;\n t[224] = 321;\n t[225] = 322;\n t[227] = 353;\n t[229] = 382;\n t[234] = 253;\n t[252] = 263;\n t[253] = 268;\n t[254] = 269;\n t[258] = 258;\n t[260] = 260;\n t[261] = 261;\n t[265] = 280;\n t[266] = 281;\n t[268] = 283;\n t[269] = 313;\n t[275] = 323;\n t[276] = 324;\n t[278] = 328;\n t[284] = 345;\n t[285] = 346;\n t[286] = 347;\n t[292] = 367;\n t[295] = 377;\n t[296] = 378;\n t[298] = 380;\n t[305] = 963;\n t[306] = 964;\n t[307] = 966;\n t[308] = 8215;\n t[309] = 8252;\n t[310] = 8319;\n t[311] = 8359;\n t[312] = 8592;\n t[313] = 8593;\n t[337] = 9552;\n t[493] = 1039;\n t[494] = 1040;\n t[705] = 1524;\n t[706] = 8362;\n t[710] = 64288;\n t[711] = 64298;\n t[759] = 1617;\n t[761] = 1776;\n t[763] = 1778;\n t[775] = 1652;\n t[777] = 1764;\n t[778] = 1780;\n t[779] = 1781;\n t[780] = 1782;\n t[782] = 771;\n t[783] = 64726;\n t[786] = 8363;\n t[788] = 8532;\n t[790] = 768;\n t[791] = 769;\n t[792] = 768;\n t[795] = 803;\n t[797] = 64336;\n t[798] = 64337;\n t[799] = 64342;\n t[800] = 64343;\n t[801] = 64344;\n t[802] = 64345;\n t[803] = 64362;\n t[804] = 64363;\n t[805] = 64364;\n t[2424] = 7821;\n t[2425] = 7822;\n t[2426] = 7823;\n t[2427] = 7824;\n t[2428] = 7825;\n t[2429] = 7826;\n t[2430] = 7827;\n t[2433] = 7682;\n t[2678] = 8045;\n t[2679] = 8046;\n t[2830] = 1552;\n t[2838] = 686;\n t[2840] = 751;\n t[2842] = 753;\n t[2843] = 754;\n t[2844] = 755;\n t[2846] = 757;\n t[2856] = 767;\n t[2857] = 848;\n t[2858] = 849;\n t[2862] = 853;\n t[2863] = 854;\n t[2864] = 855;\n t[2865] = 861;\n t[2866] = 862;\n t[2906] = 7460;\n t[2908] = 7462;\n t[2909] = 7463;\n t[2910] = 7464;\n t[2912] = 7466;\n t[2913] = 7467;\n t[2914] = 7468;\n t[2916] = 7470;\n t[2917] = 7471;\n t[2918] = 7472;\n t[2920] = 7474;\n t[2921] = 7475;\n t[2922] = 7476;\n t[2924] = 7478;\n t[2925] = 7479;\n t[2926] = 7480;\n t[2928] = 7482;\n t[2929] = 7483;\n t[2930] = 7484;\n t[2932] = 7486;\n t[2933] = 7487;\n t[2934] = 7488;\n t[2936] = 7490;\n t[2937] = 7491;\n t[2938] = 7492;\n t[2940] = 7494;\n t[2941] = 7495;\n t[2942] = 7496;\n t[2944] = 7498;\n t[2946] = 7500;\n t[2948] = 7502;\n t[2950] = 7504;\n t[2951] = 7505;\n t[2952] = 7506;\n t[2954] = 7508;\n t[2955] = 7509;\n t[2956] = 7510;\n t[2958] = 7512;\n t[2959] = 7513;\n t[2960] = 7514;\n t[2962] = 7516;\n t[2963] = 7517;\n t[2964] = 7518;\n t[2966] = 7520;\n t[2967] = 7521;\n t[2968] = 7522;\n t[2970] = 7524;\n t[2971] = 7525;\n t[2972] = 7526;\n t[2974] = 7528;\n t[2975] = 7529;\n t[2976] = 7530;\n t[2978] = 1537;\n t[2979] = 1538;\n t[2980] = 1539;\n t[2982] = 1549;\n t[2983] = 1551;\n t[2984] = 1552;\n t[2986] = 1554;\n t[2987] = 1555;\n t[2988] = 1556;\n t[2990] = 1623;\n t[2991] = 1624;\n t[2995] = 1775;\n t[2999] = 1791;\n t[3002] = 64290;\n t[3003] = 64291;\n t[3004] = 64292;\n t[3006] = 64294;\n t[3007] = 64295;\n t[3008] = 64296;\n t[3011] = 1900;\n t[3014] = 8223;\n t[3015] = 8244;\n t[3017] = 7532;\n t[3018] = 7533;\n t[3019] = 7534;\n t[3075] = 7590;\n t[3076] = 7591;\n t[3079] = 7594;\n t[3080] = 7595;\n t[3083] = 7598;\n t[3084] = 7599;\n t[3087] = 7602;\n t[3088] = 7603;\n t[3091] = 7606;\n t[3092] = 7607;\n t[3095] = 7610;\n t[3096] = 7611;\n t[3099] = 7614;\n t[3100] = 7615;\n t[3103] = 7618;\n t[3104] = 7619;\n t[3107] = 8337;\n t[3108] = 8338;\n t[3116] = 1884;\n t[3119] = 1885;\n t[3120] = 1885;\n t[3123] = 1886;\n t[3124] = 1886;\n t[3127] = 1887;\n t[3128] = 1887;\n t[3131] = 1888;\n t[3132] = 1888;\n t[3135] = 1889;\n t[3136] = 1889;\n t[3139] = 1890;\n t[3140] = 1890;\n t[3143] = 1891;\n t[3144] = 1891;\n t[3147] = 1892;\n t[3148] = 1892;\n t[3153] = 580;\n t[3154] = 581;\n t[3157] = 584;\n t[3158] = 585;\n t[3161] = 588;\n t[3162] = 589;\n t[3165] = 891;\n t[3166] = 892;\n t[3169] = 1274;\n t[3170] = 1275;\n t[3173] = 1278;\n t[3174] = 1279;\n t[3181] = 7622;\n t[3182] = 7623;\n t[3282] = 11799;\n t[3316] = 578;\n t[3379] = 42785;\n t[3393] = 1159;\n t[3416] = 8377;\n});\nexports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\nconst getSupplementalGlyphMapForArialBlack = (0, _core_utils.getLookupTableFactory)(function (t) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n});\nexports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\nconst getSupplementalGlyphMapForCalibri = (0, _core_utils.getLookupTableFactory)(function (t) {\n t[1] = 32;\n t[4] = 65;\n t[17] = 66;\n t[18] = 67;\n t[24] = 68;\n t[28] = 69;\n t[38] = 70;\n t[39] = 71;\n t[44] = 72;\n t[47] = 73;\n t[58] = 74;\n t[60] = 75;\n t[62] = 76;\n t[68] = 77;\n t[69] = 78;\n t[75] = 79;\n t[87] = 80;\n t[89] = 81;\n t[90] = 82;\n t[94] = 83;\n t[100] = 84;\n t[104] = 85;\n t[115] = 86;\n t[116] = 87;\n t[121] = 88;\n t[122] = 89;\n t[127] = 90;\n t[258] = 97;\n t[268] = 261;\n t[271] = 98;\n t[272] = 99;\n t[273] = 263;\n t[282] = 100;\n t[286] = 101;\n t[295] = 281;\n t[296] = 102;\n t[336] = 103;\n t[346] = 104;\n t[349] = 105;\n t[361] = 106;\n t[364] = 107;\n t[367] = 108;\n t[371] = 322;\n t[373] = 109;\n t[374] = 110;\n t[381] = 111;\n t[383] = 243;\n t[393] = 112;\n t[395] = 113;\n t[396] = 114;\n t[400] = 115;\n t[401] = 347;\n t[410] = 116;\n t[437] = 117;\n t[448] = 118;\n t[449] = 119;\n t[454] = 120;\n t[455] = 121;\n t[460] = 122;\n t[463] = 380;\n t[853] = 44;\n t[855] = 58;\n t[856] = 46;\n t[876] = 47;\n t[878] = 45;\n t[882] = 45;\n t[894] = 40;\n t[895] = 41;\n t[896] = 91;\n t[897] = 93;\n t[923] = 64;\n t[1004] = 48;\n t[1005] = 49;\n t[1006] = 50;\n t[1007] = 51;\n t[1008] = 52;\n t[1009] = 53;\n t[1010] = 54;\n t[1011] = 55;\n t[1012] = 56;\n t[1013] = 57;\n t[1081] = 37;\n t[1085] = 43;\n t[1086] = 45;\n});\nexports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(8).getLookupTableFactory;\nvar getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00a9;\n t[63193] = 0x00a9;\n t[63720] = 0x00ae;\n t[63194] = 0x00ae;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23a7;\n t[63730] = 0x23a8;\n t[63731] = 0x23a9;\n t[63740] = 0x23ab;\n t[63741] = 0x23ac;\n t[63742] = 0x23ad;\n t[63726] = 0x23a1;\n t[63727] = 0x23a2;\n t[63728] = 0x23a3;\n t[63737] = 0x23a4;\n t[63738] = 0x23a5;\n t[63739] = 0x23a6;\n t[63723] = 0x239b;\n t[63724] = 0x239c;\n t[63725] = 0x239d;\n t[63734] = 0x239e;\n t[63735] = 0x239f;\n t[63736] = 0x23a0;\n});\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n return getSpecialPUASymbols()[code] || code;\n } else if (code === 0x00ad) {\n return 0x002d;\n }\n return code;\n}\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n var unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n if (name[0] === \"u\") {\n var nameLen = name.length, hexStr;\n if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n hexStr = name.substring(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n hexStr = name.substring(1);\n } else {\n return -1;\n }\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\nvar UnicodeRanges = [\n {\n begin: 0x0000,\n end: 0x007f\n },\n {\n begin: 0x0080,\n end: 0x00ff\n },\n {\n begin: 0x0100,\n end: 0x017f\n },\n {\n begin: 0x0180,\n end: 0x024f\n },\n {\n begin: 0x0250,\n end: 0x02af\n },\n {\n begin: 0x02b0,\n end: 0x02ff\n },\n {\n begin: 0x0300,\n end: 0x036f\n },\n {\n begin: 0x0370,\n end: 0x03ff\n },\n {\n begin: 0x2c80,\n end: 0x2cff\n },\n {\n begin: 0x0400,\n end: 0x04ff\n },\n {\n begin: 0x0530,\n end: 0x058f\n },\n {\n begin: 0x0590,\n end: 0x05ff\n },\n {\n begin: 0xa500,\n end: 0xa63f\n },\n {\n begin: 0x0600,\n end: 0x06ff\n },\n {\n begin: 0x07c0,\n end: 0x07ff\n },\n {\n begin: 0x0900,\n end: 0x097f\n },\n {\n begin: 0x0980,\n end: 0x09ff\n },\n {\n begin: 0x0a00,\n end: 0x0a7f\n },\n {\n begin: 0x0a80,\n end: 0x0aff\n },\n {\n begin: 0x0b00,\n end: 0x0b7f\n },\n {\n begin: 0x0b80,\n end: 0x0bff\n },\n {\n begin: 0x0c00,\n end: 0x0c7f\n },\n {\n begin: 0x0c80,\n end: 0x0cff\n },\n {\n begin: 0x0d00,\n end: 0x0d7f\n },\n {\n begin: 0x0e00,\n end: 0x0e7f\n },\n {\n begin: 0x0e80,\n end: 0x0eff\n },\n {\n begin: 0x10a0,\n end: 0x10ff\n },\n {\n begin: 0x1b00,\n end: 0x1b7f\n },\n {\n begin: 0x1100,\n end: 0x11ff\n },\n {\n begin: 0x1e00,\n end: 0x1eff\n },\n {\n begin: 0x1f00,\n end: 0x1fff\n },\n {\n begin: 0x2000,\n end: 0x206f\n },\n {\n begin: 0x2070,\n end: 0x209f\n },\n {\n begin: 0x20a0,\n end: 0x20cf\n },\n {\n begin: 0x20d0,\n end: 0x20ff\n },\n {\n begin: 0x2100,\n end: 0x214f\n },\n {\n begin: 0x2150,\n end: 0x218f\n },\n {\n begin: 0x2190,\n end: 0x21ff\n },\n {\n begin: 0x2200,\n end: 0x22ff\n },\n {\n begin: 0x2300,\n end: 0x23ff\n },\n {\n begin: 0x2400,\n end: 0x243f\n },\n {\n begin: 0x2440,\n end: 0x245f\n },\n {\n begin: 0x2460,\n end: 0x24ff\n },\n {\n begin: 0x2500,\n end: 0x257f\n },\n {\n begin: 0x2580,\n end: 0x259f\n },\n {\n begin: 0x25a0,\n end: 0x25ff\n },\n {\n begin: 0x2600,\n end: 0x26ff\n },\n {\n begin: 0x2700,\n end: 0x27bf\n },\n {\n begin: 0x3000,\n end: 0x303f\n },\n {\n begin: 0x3040,\n end: 0x309f\n },\n {\n begin: 0x30a0,\n end: 0x30ff\n },\n {\n begin: 0x3100,\n end: 0x312f\n },\n {\n begin: 0x3130,\n end: 0x318f\n },\n {\n begin: 0xa840,\n end: 0xa87f\n },\n {\n begin: 0x3200,\n end: 0x32ff\n },\n {\n begin: 0x3300,\n end: 0x33ff\n },\n {\n begin: 0xac00,\n end: 0xd7af\n },\n {\n begin: 0xd800,\n end: 0xdfff\n },\n {\n begin: 0x10900,\n end: 0x1091f\n },\n {\n begin: 0x4e00,\n end: 0x9fff\n },\n {\n begin: 0xe000,\n end: 0xf8ff\n },\n {\n begin: 0x31c0,\n end: 0x31ef\n },\n {\n begin: 0xfb00,\n end: 0xfb4f\n },\n {\n begin: 0xfb50,\n end: 0xfdff\n },\n {\n begin: 0xfe20,\n end: 0xfe2f\n },\n {\n begin: 0xfe10,\n end: 0xfe1f\n },\n {\n begin: 0xfe50,\n end: 0xfe6f\n },\n {\n begin: 0xfe70,\n end: 0xfeff\n },\n {\n begin: 0xff00,\n end: 0xffef\n },\n {\n begin: 0xfff0,\n end: 0xffff\n },\n {\n begin: 0x0f00,\n end: 0x0fff\n },\n {\n begin: 0x0700,\n end: 0x074f\n },\n {\n begin: 0x0780,\n end: 0x07bf\n },\n {\n begin: 0x0d80,\n end: 0x0dff\n },\n {\n begin: 0x1000,\n end: 0x109f\n },\n {\n begin: 0x1200,\n end: 0x137f\n },\n {\n begin: 0x13a0,\n end: 0x13ff\n },\n {\n begin: 0x1400,\n end: 0x167f\n },\n {\n begin: 0x1680,\n end: 0x169f\n },\n {\n begin: 0x16a0,\n end: 0x16ff\n },\n {\n begin: 0x1780,\n end: 0x17ff\n },\n {\n begin: 0x1800,\n end: 0x18af\n },\n {\n begin: 0x2800,\n end: 0x28ff\n },\n {\n begin: 0xa000,\n end: 0xa48f\n },\n {\n begin: 0x1700,\n end: 0x171f\n },\n {\n begin: 0x10300,\n end: 0x1032f\n },\n {\n begin: 0x10330,\n end: 0x1034f\n },\n {\n begin: 0x10400,\n end: 0x1044f\n },\n {\n begin: 0x1d000,\n end: 0x1d0ff\n },\n {\n begin: 0x1d400,\n end: 0x1d7ff\n },\n {\n begin: 0xff000,\n end: 0xffffd\n },\n {\n begin: 0xfe00,\n end: 0xfe0f\n },\n {\n begin: 0xe0000,\n end: 0xe007f\n },\n {\n begin: 0x1900,\n end: 0x194f\n },\n {\n begin: 0x1950,\n end: 0x197f\n },\n {\n begin: 0x1980,\n end: 0x19df\n },\n {\n begin: 0x1a00,\n end: 0x1a1f\n },\n {\n begin: 0x2c00,\n end: 0x2c5f\n },\n {\n begin: 0x2d30,\n end: 0x2d7f\n },\n {\n begin: 0x4dc0,\n end: 0x4dff\n },\n {\n begin: 0xa800,\n end: 0xa82f\n },\n {\n begin: 0x10000,\n end: 0x1007f\n },\n {\n begin: 0x10140,\n end: 0x1018f\n },\n {\n begin: 0x10380,\n end: 0x1039f\n },\n {\n begin: 0x103a0,\n end: 0x103df\n },\n {\n begin: 0x10450,\n end: 0x1047f\n },\n {\n begin: 0x10480,\n end: 0x104af\n },\n {\n begin: 0x10800,\n end: 0x1083f\n },\n {\n begin: 0x10a00,\n end: 0x10a5f\n },\n {\n begin: 0x1d300,\n end: 0x1d35f\n },\n {\n begin: 0x12000,\n end: 0x123ff\n },\n {\n begin: 0x1d360,\n end: 0x1d37f\n },\n {\n begin: 0x1b80,\n end: 0x1bbf\n },\n {\n begin: 0x1c00,\n end: 0x1c4f\n },\n {\n begin: 0x1c50,\n end: 0x1c7f\n },\n {\n begin: 0xa880,\n end: 0xa8df\n },\n {\n begin: 0xa900,\n end: 0xa92f\n },\n {\n begin: 0xa930,\n end: 0xa95f\n },\n {\n begin: 0xaa00,\n end: 0xaa5f\n },\n {\n begin: 0x10190,\n end: 0x101cf\n },\n {\n begin: 0x101d0,\n end: 0x101ff\n },\n {\n begin: 0x102a0,\n end: 0x102df\n },\n {\n begin: 0x1f030,\n end: 0x1f09f\n }\n];\nfunction getUnicodeRangeFor(value) {\n for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n var range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n}\nfunction isRTLRangeFor(value) {\n var range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n return false;\n}\nvar getNormalizedUnicodes = getLookupTableFactory(function (t) {\n t[\"\\u00A8\"] = \"\\u0020\\u0308\";\n t[\"\\u00AF\"] = \"\\u0020\\u0304\";\n t[\"\\u00B4\"] = \"\\u0020\\u0301\";\n t[\"\\u00B5\"] = \"\\u03BC\";\n t[\"\\u00B8\"] = \"\\u0020\\u0327\";\n t[\"\\u0132\"] = \"\\u0049\\u004A\";\n t[\"\\u0133\"] = \"\\u0069\\u006A\";\n t[\"\\u013F\"] = \"\\u004C\\u00B7\";\n t[\"\\u0140\"] = \"\\u006C\\u00B7\";\n t[\"\\u0149\"] = \"\\u02BC\\u006E\";\n t[\"\\u017F\"] = \"\\u0073\";\n t[\"\\u01C4\"] = \"\\u0044\\u017D\";\n t[\"\\u01C5\"] = \"\\u0044\\u017E\";\n t[\"\\u01C6\"] = \"\\u0064\\u017E\";\n t[\"\\u01C7\"] = \"\\u004C\\u004A\";\n t[\"\\u01C8\"] = \"\\u004C\\u006A\";\n t[\"\\u01C9\"] = \"\\u006C\\u006A\";\n t[\"\\u01CA\"] = \"\\u004E\\u004A\";\n t[\"\\u01CB\"] = \"\\u004E\\u006A\";\n t[\"\\u01CC\"] = \"\\u006E\\u006A\";\n t[\"\\u01F1\"] = \"\\u0044\\u005A\";\n t[\"\\u01F2\"] = \"\\u0044\\u007A\";\n t[\"\\u01F3\"] = \"\\u0064\\u007A\";\n t[\"\\u02D8\"] = \"\\u0020\\u0306\";\n t[\"\\u02D9\"] = \"\\u0020\\u0307\";\n t[\"\\u02DA\"] = \"\\u0020\\u030A\";\n t[\"\\u02DB\"] = \"\\u0020\\u0328\";\n t[\"\\u02DC\"] = \"\\u0020\\u0303\";\n t[\"\\u02DD\"] = \"\\u0020\\u030B\";\n t[\"\\u037A\"] = \"\\u0020\\u0345\";\n t[\"\\u0384\"] = \"\\u0020\\u0301\";\n t[\"\\u03D0\"] = \"\\u03B2\";\n t[\"\\u03D1\"] = \"\\u03B8\";\n t[\"\\u03D2\"] = \"\\u03A5\";\n t[\"\\u03D5\"] = \"\\u03C6\";\n t[\"\\u03D6\"] = \"\\u03C0\";\n t[\"\\u03F0\"] = \"\\u03BA\";\n t[\"\\u03F1\"] = \"\\u03C1\";\n t[\"\\u03F2\"] = \"\\u03C2\";\n t[\"\\u03F4\"] = \"\\u0398\";\n t[\"\\u03F5\"] = \"\\u03B5\";\n t[\"\\u03F9\"] = \"\\u03A3\";\n t[\"\\u0587\"] = \"\\u0565\\u0582\";\n t[\"\\u0675\"] = \"\\u0627\\u0674\";\n t[\"\\u0676\"] = \"\\u0648\\u0674\";\n t[\"\\u0677\"] = \"\\u06C7\\u0674\";\n t[\"\\u0678\"] = \"\\u064A\\u0674\";\n t[\"\\u0E33\"] = \"\\u0E4D\\u0E32\";\n t[\"\\u0EB3\"] = \"\\u0ECD\\u0EB2\";\n t[\"\\u0EDC\"] = \"\\u0EAB\\u0E99\";\n t[\"\\u0EDD\"] = \"\\u0EAB\\u0EA1\";\n t[\"\\u0F77\"] = \"\\u0FB2\\u0F81\";\n t[\"\\u0F79\"] = \"\\u0FB3\\u0F81\";\n t[\"\\u1E9A\"] = \"\\u0061\\u02BE\";\n t[\"\\u1FBD\"] = \"\\u0020\\u0313\";\n t[\"\\u1FBF\"] = \"\\u0020\\u0313\";\n t[\"\\u1FC0\"] = \"\\u0020\\u0342\";\n t[\"\\u1FFE\"] = \"\\u0020\\u0314\";\n t[\"\\u2002\"] = \"\\u0020\";\n t[\"\\u2003\"] = \"\\u0020\";\n t[\"\\u2004\"] = \"\\u0020\";\n t[\"\\u2005\"] = \"\\u0020\";\n t[\"\\u2006\"] = \"\\u0020\";\n t[\"\\u2008\"] = \"\\u0020\";\n t[\"\\u2009\"] = \"\\u0020\";\n t[\"\\u200A\"] = \"\\u0020\";\n t[\"\\u2017\"] = \"\\u0020\\u0333\";\n t[\"\\u2024\"] = \"\\u002E\";\n t[\"\\u2025\"] = \"\\u002E\\u002E\";\n t[\"\\u2026\"] = \"\\u002E\\u002E\\u002E\";\n t[\"\\u2033\"] = \"\\u2032\\u2032\";\n t[\"\\u2034\"] = \"\\u2032\\u2032\\u2032\";\n t[\"\\u2036\"] = \"\\u2035\\u2035\";\n t[\"\\u2037\"] = \"\\u2035\\u2035\\u2035\";\n t[\"\\u203C\"] = \"\\u0021\\u0021\";\n t[\"\\u203E\"] = \"\\u0020\\u0305\";\n t[\"\\u2047\"] = \"\\u003F\\u003F\";\n t[\"\\u2048\"] = \"\\u003F\\u0021\";\n t[\"\\u2049\"] = \"\\u0021\\u003F\";\n t[\"\\u2057\"] = \"\\u2032\\u2032\\u2032\\u2032\";\n t[\"\\u205F\"] = \"\\u0020\";\n t[\"\\u20A8\"] = \"\\u0052\\u0073\";\n t[\"\\u2100\"] = \"\\u0061\\u002F\\u0063\";\n t[\"\\u2101\"] = \"\\u0061\\u002F\\u0073\";\n t[\"\\u2103\"] = \"\\u00B0\\u0043\";\n t[\"\\u2105\"] = \"\\u0063\\u002F\\u006F\";\n t[\"\\u2106\"] = \"\\u0063\\u002F\\u0075\";\n t[\"\\u2107\"] = \"\\u0190\";\n t[\"\\u2109\"] = \"\\u00B0\\u0046\";\n t[\"\\u2116\"] = \"\\u004E\\u006F\";\n t[\"\\u2121\"] = \"\\u0054\\u0045\\u004C\";\n t[\"\\u2135\"] = \"\\u05D0\";\n t[\"\\u2136\"] = \"\\u05D1\";\n t[\"\\u2137\"] = \"\\u05D2\";\n t[\"\\u2138\"] = \"\\u05D3\";\n t[\"\\u213B\"] = \"\\u0046\\u0041\\u0058\";\n t[\"\\u2160\"] = \"\\u0049\";\n t[\"\\u2161\"] = \"\\u0049\\u0049\";\n t[\"\\u2162\"] = \"\\u0049\\u0049\\u0049\";\n t[\"\\u2163\"] = \"\\u0049\\u0056\";\n t[\"\\u2164\"] = \"\\u0056\";\n t[\"\\u2165\"] = \"\\u0056\\u0049\";\n t[\"\\u2166\"] = \"\\u0056\\u0049\\u0049\";\n t[\"\\u2167\"] = \"\\u0056\\u0049\\u0049\\u0049\";\n t[\"\\u2168\"] = \"\\u0049\\u0058\";\n t[\"\\u2169\"] = \"\\u0058\";\n t[\"\\u216A\"] = \"\\u0058\\u0049\";\n t[\"\\u216B\"] = \"\\u0058\\u0049\\u0049\";\n t[\"\\u216C\"] = \"\\u004C\";\n t[\"\\u216D\"] = \"\\u0043\";\n t[\"\\u216E\"] = \"\\u0044\";\n t[\"\\u216F\"] = \"\\u004D\";\n t[\"\\u2170\"] = \"\\u0069\";\n t[\"\\u2171\"] = \"\\u0069\\u0069\";\n t[\"\\u2172\"] = \"\\u0069\\u0069\\u0069\";\n t[\"\\u2173\"] = \"\\u0069\\u0076\";\n t[\"\\u2174\"] = \"\\u0076\";\n t[\"\\u2175\"] = \"\\u0076\\u0069\";\n t[\"\\u2176\"] = \"\\u0076\\u0069\\u0069\";\n t[\"\\u2177\"] = \"\\u0076\\u0069\\u0069\\u0069\";\n t[\"\\u2178\"] = \"\\u0069\\u0078\";\n t[\"\\u2179\"] = \"\\u0078\";\n t[\"\\u217A\"] = \"\\u0078\\u0069\";\n t[\"\\u217B\"] = \"\\u0078\\u0069\\u0069\";\n t[\"\\u217C\"] = \"\\u006C\";\n t[\"\\u217D\"] = \"\\u0063\";\n t[\"\\u217E\"] = \"\\u0064\";\n t[\"\\u217F\"] = \"\\u006D\";\n t[\"\\u222C\"] = \"\\u222B\\u222B\";\n t[\"\\u222D\"] = \"\\u222B\\u222B\\u222B\";\n t[\"\\u222F\"] = \"\\u222E\\u222E\";\n t[\"\\u2230\"] = \"\\u222E\\u222E\\u222E\";\n t[\"\\u2474\"] = \"\\u0028\\u0031\\u0029\";\n t[\"\\u2475\"] = \"\\u0028\\u0032\\u0029\";\n t[\"\\u2476\"] = \"\\u0028\\u0033\\u0029\";\n t[\"\\u2477\"] = \"\\u0028\\u0034\\u0029\";\n t[\"\\u2478\"] = \"\\u0028\\u0035\\u0029\";\n t[\"\\u2479\"] = \"\\u0028\\u0036\\u0029\";\n t[\"\\u247A\"] = \"\\u0028\\u0037\\u0029\";\n t[\"\\u247B\"] = \"\\u0028\\u0038\\u0029\";\n t[\"\\u247C\"] = \"\\u0028\\u0039\\u0029\";\n t[\"\\u247D\"] = \"\\u0028\\u0031\\u0030\\u0029\";\n t[\"\\u247E\"] = \"\\u0028\\u0031\\u0031\\u0029\";\n t[\"\\u247F\"] = \"\\u0028\\u0031\\u0032\\u0029\";\n t[\"\\u2480\"] = \"\\u0028\\u0031\\u0033\\u0029\";\n t[\"\\u2481\"] = \"\\u0028\\u0031\\u0034\\u0029\";\n t[\"\\u2482\"] = \"\\u0028\\u0031\\u0035\\u0029\";\n t[\"\\u2483\"] = \"\\u0028\\u0031\\u0036\\u0029\";\n t[\"\\u2484\"] = \"\\u0028\\u0031\\u0037\\u0029\";\n t[\"\\u2485\"] = \"\\u0028\\u0031\\u0038\\u0029\";\n t[\"\\u2486\"] = \"\\u0028\\u0031\\u0039\\u0029\";\n t[\"\\u2487\"] = \"\\u0028\\u0032\\u0030\\u0029\";\n t[\"\\u2488\"] = \"\\u0031\\u002E\";\n t[\"\\u2489\"] = \"\\u0032\\u002E\";\n t[\"\\u248A\"] = \"\\u0033\\u002E\";\n t[\"\\u248B\"] = \"\\u0034\\u002E\";\n t[\"\\u248C\"] = \"\\u0035\\u002E\";\n t[\"\\u248D\"] = \"\\u0036\\u002E\";\n t[\"\\u248E\"] = \"\\u0037\\u002E\";\n t[\"\\u248F\"] = \"\\u0038\\u002E\";\n t[\"\\u2490\"] = \"\\u0039\\u002E\";\n t[\"\\u2491\"] = \"\\u0031\\u0030\\u002E\";\n t[\"\\u2492\"] = \"\\u0031\\u0031\\u002E\";\n t[\"\\u2493\"] = \"\\u0031\\u0032\\u002E\";\n t[\"\\u2494\"] = \"\\u0031\\u0033\\u002E\";\n t[\"\\u2495\"] = \"\\u0031\\u0034\\u002E\";\n t[\"\\u2496\"] = \"\\u0031\\u0035\\u002E\";\n t[\"\\u2497\"] = \"\\u0031\\u0036\\u002E\";\n t[\"\\u2498\"] = \"\\u0031\\u0037\\u002E\";\n t[\"\\u2499\"] = \"\\u0031\\u0038\\u002E\";\n t[\"\\u249A\"] = \"\\u0031\\u0039\\u002E\";\n t[\"\\u249B\"] = \"\\u0032\\u0030\\u002E\";\n t[\"\\u249C\"] = \"\\u0028\\u0061\\u0029\";\n t[\"\\u249D\"] = \"\\u0028\\u0062\\u0029\";\n t[\"\\u249E\"] = \"\\u0028\\u0063\\u0029\";\n t[\"\\u249F\"] = \"\\u0028\\u0064\\u0029\";\n t[\"\\u24A0\"] = \"\\u0028\\u0065\\u0029\";\n t[\"\\u24A1\"] = \"\\u0028\\u0066\\u0029\";\n t[\"\\u24A2\"] = \"\\u0028\\u0067\\u0029\";\n t[\"\\u24A3\"] = \"\\u0028\\u0068\\u0029\";\n t[\"\\u24A4\"] = \"\\u0028\\u0069\\u0029\";\n t[\"\\u24A5\"] = \"\\u0028\\u006A\\u0029\";\n t[\"\\u24A6\"] = \"\\u0028\\u006B\\u0029\";\n t[\"\\u24A7\"] = \"\\u0028\\u006C\\u0029\";\n t[\"\\u24A8\"] = \"\\u0028\\u006D\\u0029\";\n t[\"\\u24A9\"] = \"\\u0028\\u006E\\u0029\";\n t[\"\\u24AA\"] = \"\\u0028\\u006F\\u0029\";\n t[\"\\u24AB\"] = \"\\u0028\\u0070\\u0029\";\n t[\"\\u24AC\"] = \"\\u0028\\u0071\\u0029\";\n t[\"\\u24AD\"] = \"\\u0028\\u0072\\u0029\";\n t[\"\\u24AE\"] = \"\\u0028\\u0073\\u0029\";\n t[\"\\u24AF\"] = \"\\u0028\\u0074\\u0029\";\n t[\"\\u24B0\"] = \"\\u0028\\u0075\\u0029\";\n t[\"\\u24B1\"] = \"\\u0028\\u0076\\u0029\";\n t[\"\\u24B2\"] = \"\\u0028\\u0077\\u0029\";\n t[\"\\u24B3\"] = \"\\u0028\\u0078\\u0029\";\n t[\"\\u24B4\"] = \"\\u0028\\u0079\\u0029\";\n t[\"\\u24B5\"] = \"\\u0028\\u007A\\u0029\";\n t[\"\\u2A0C\"] = \"\\u222B\\u222B\\u222B\\u222B\";\n t[\"\\u2A74\"] = \"\\u003A\\u003A\\u003D\";\n t[\"\\u2A75\"] = \"\\u003D\\u003D\";\n t[\"\\u2A76\"] = \"\\u003D\\u003D\\u003D\";\n t[\"\\u2E9F\"] = \"\\u6BCD\";\n t[\"\\u2EF3\"] = \"\\u9F9F\";\n t[\"\\u2F00\"] = \"\\u4E00\";\n t[\"\\u2F01\"] = \"\\u4E28\";\n t[\"\\u2F02\"] = \"\\u4E36\";\n t[\"\\u2F03\"] = \"\\u4E3F\";\n t[\"\\u2F04\"] = \"\\u4E59\";\n t[\"\\u2F05\"] = \"\\u4E85\";\n t[\"\\u2F06\"] = \"\\u4E8C\";\n t[\"\\u2F07\"] = \"\\u4EA0\";\n t[\"\\u2F08\"] = \"\\u4EBA\";\n t[\"\\u2F09\"] = \"\\u513F\";\n t[\"\\u2F0A\"] = \"\\u5165\";\n t[\"\\u2F0B\"] = \"\\u516B\";\n t[\"\\u2F0C\"] = \"\\u5182\";\n t[\"\\u2F0D\"] = \"\\u5196\";\n t[\"\\u2F0E\"] = \"\\u51AB\";\n t[\"\\u2F0F\"] = \"\\u51E0\";\n t[\"\\u2F10\"] = \"\\u51F5\";\n t[\"\\u2F11\"] = \"\\u5200\";\n t[\"\\u2F12\"] = \"\\u529B\";\n t[\"\\u2F13\"] = \"\\u52F9\";\n t[\"\\u2F14\"] = \"\\u5315\";\n t[\"\\u2F15\"] = \"\\u531A\";\n t[\"\\u2F16\"] = \"\\u5338\";\n t[\"\\u2F17\"] = \"\\u5341\";\n t[\"\\u2F18\"] = \"\\u535C\";\n t[\"\\u2F19\"] = \"\\u5369\";\n t[\"\\u2F1A\"] = \"\\u5382\";\n t[\"\\u2F1B\"] = \"\\u53B6\";\n t[\"\\u2F1C\"] = \"\\u53C8\";\n t[\"\\u2F1D\"] = \"\\u53E3\";\n t[\"\\u2F1E\"] = \"\\u56D7\";\n t[\"\\u2F1F\"] = \"\\u571F\";\n t[\"\\u2F20\"] = \"\\u58EB\";\n t[\"\\u2F21\"] = \"\\u5902\";\n t[\"\\u2F22\"] = \"\\u590A\";\n t[\"\\u2F23\"] = \"\\u5915\";\n t[\"\\u2F24\"] = \"\\u5927\";\n t[\"\\u2F25\"] = \"\\u5973\";\n t[\"\\u2F26\"] = \"\\u5B50\";\n t[\"\\u2F27\"] = \"\\u5B80\";\n t[\"\\u2F28\"] = \"\\u5BF8\";\n t[\"\\u2F29\"] = \"\\u5C0F\";\n t[\"\\u2F2A\"] = \"\\u5C22\";\n t[\"\\u2F2B\"] = \"\\u5C38\";\n t[\"\\u2F2C\"] = \"\\u5C6E\";\n t[\"\\u2F2D\"] = \"\\u5C71\";\n t[\"\\u2F2E\"] = \"\\u5DDB\";\n t[\"\\u2F2F\"] = \"\\u5DE5\";\n t[\"\\u2F30\"] = \"\\u5DF1\";\n t[\"\\u2F31\"] = \"\\u5DFE\";\n t[\"\\u2F32\"] = \"\\u5E72\";\n t[\"\\u2F33\"] = \"\\u5E7A\";\n t[\"\\u2F34\"] = \"\\u5E7F\";\n t[\"\\u2F35\"] = \"\\u5EF4\";\n t[\"\\u2F36\"] = \"\\u5EFE\";\n t[\"\\u2F37\"] = \"\\u5F0B\";\n t[\"\\u2F38\"] = \"\\u5F13\";\n t[\"\\u2F39\"] = \"\\u5F50\";\n t[\"\\u2F3A\"] = \"\\u5F61\";\n t[\"\\u2F3B\"] = \"\\u5F73\";\n t[\"\\u2F3C\"] = \"\\u5FC3\";\n t[\"\\u2F3D\"] = \"\\u6208\";\n t[\"\\u2F3E\"] = \"\\u6236\";\n t[\"\\u2F3F\"] = \"\\u624B\";\n t[\"\\u2F40\"] = \"\\u652F\";\n t[\"\\u2F41\"] = \"\\u6534\";\n t[\"\\u2F42\"] = \"\\u6587\";\n t[\"\\u2F43\"] = \"\\u6597\";\n t[\"\\u2F44\"] = \"\\u65A4\";\n t[\"\\u2F45\"] = \"\\u65B9\";\n t[\"\\u2F46\"] = \"\\u65E0\";\n t[\"\\u2F47\"] = \"\\u65E5\";\n t[\"\\u2F48\"] = \"\\u66F0\";\n t[\"\\u2F49\"] = \"\\u6708\";\n t[\"\\u2F4A\"] = \"\\u6728\";\n t[\"\\u2F4B\"] = \"\\u6B20\";\n t[\"\\u2F4C\"] = \"\\u6B62\";\n t[\"\\u2F4D\"] = \"\\u6B79\";\n t[\"\\u2F4E\"] = \"\\u6BB3\";\n t[\"\\u2F4F\"] = \"\\u6BCB\";\n t[\"\\u2F50\"] = \"\\u6BD4\";\n t[\"\\u2F51\"] = \"\\u6BDB\";\n t[\"\\u2F52\"] = \"\\u6C0F\";\n t[\"\\u2F53\"] = \"\\u6C14\";\n t[\"\\u2F54\"] = \"\\u6C34\";\n t[\"\\u2F55\"] = \"\\u706B\";\n t[\"\\u2F56\"] = \"\\u722A\";\n t[\"\\u2F57\"] = \"\\u7236\";\n t[\"\\u2F58\"] = \"\\u723B\";\n t[\"\\u2F59\"] = \"\\u723F\";\n t[\"\\u2F5A\"] = \"\\u7247\";\n t[\"\\u2F5B\"] = \"\\u7259\";\n t[\"\\u2F5C\"] = \"\\u725B\";\n t[\"\\u2F5D\"] = \"\\u72AC\";\n t[\"\\u2F5E\"] = \"\\u7384\";\n t[\"\\u2F5F\"] = \"\\u7389\";\n t[\"\\u2F60\"] = \"\\u74DC\";\n t[\"\\u2F61\"] = \"\\u74E6\";\n t[\"\\u2F62\"] = \"\\u7518\";\n t[\"\\u2F63\"] = \"\\u751F\";\n t[\"\\u2F64\"] = \"\\u7528\";\n t[\"\\u2F65\"] = \"\\u7530\";\n t[\"\\u2F66\"] = \"\\u758B\";\n t[\"\\u2F67\"] = \"\\u7592\";\n t[\"\\u2F68\"] = \"\\u7676\";\n t[\"\\u2F69\"] = \"\\u767D\";\n t[\"\\u2F6A\"] = \"\\u76AE\";\n t[\"\\u2F6B\"] = \"\\u76BF\";\n t[\"\\u2F6C\"] = \"\\u76EE\";\n t[\"\\u2F6D\"] = \"\\u77DB\";\n t[\"\\u2F6E\"] = \"\\u77E2\";\n t[\"\\u2F6F\"] = \"\\u77F3\";\n t[\"\\u2F70\"] = \"\\u793A\";\n t[\"\\u2F71\"] = \"\\u79B8\";\n t[\"\\u2F72\"] = \"\\u79BE\";\n t[\"\\u2F73\"] = \"\\u7A74\";\n t[\"\\u2F74\"] = \"\\u7ACB\";\n t[\"\\u2F75\"] = \"\\u7AF9\";\n t[\"\\u2F76\"] = \"\\u7C73\";\n t[\"\\u2F77\"] = \"\\u7CF8\";\n t[\"\\u2F78\"] = \"\\u7F36\";\n t[\"\\u2F79\"] = \"\\u7F51\";\n t[\"\\u2F7A\"] = \"\\u7F8A\";\n t[\"\\u2F7B\"] = \"\\u7FBD\";\n t[\"\\u2F7C\"] = \"\\u8001\";\n t[\"\\u2F7D\"] = \"\\u800C\";\n t[\"\\u2F7E\"] = \"\\u8012\";\n t[\"\\u2F7F\"] = \"\\u8033\";\n t[\"\\u2F80\"] = \"\\u807F\";\n t[\"\\u2F81\"] = \"\\u8089\";\n t[\"\\u2F82\"] = \"\\u81E3\";\n t[\"\\u2F83\"] = \"\\u81EA\";\n t[\"\\u2F84\"] = \"\\u81F3\";\n t[\"\\u2F85\"] = \"\\u81FC\";\n t[\"\\u2F86\"] = \"\\u820C\";\n t[\"\\u2F87\"] = \"\\u821B\";\n t[\"\\u2F88\"] = \"\\u821F\";\n t[\"\\u2F89\"] = \"\\u826E\";\n t[\"\\u2F8A\"] = \"\\u8272\";\n t[\"\\u2F8B\"] = \"\\u8278\";\n t[\"\\u2F8C\"] = \"\\u864D\";\n t[\"\\u2F8D\"] = \"\\u866B\";\n t[\"\\u2F8E\"] = \"\\u8840\";\n t[\"\\u2F8F\"] = \"\\u884C\";\n t[\"\\u2F90\"] = \"\\u8863\";\n t[\"\\u2F91\"] = \"\\u897E\";\n t[\"\\u2F92\"] = \"\\u898B\";\n t[\"\\u2F93\"] = \"\\u89D2\";\n t[\"\\u2F94\"] = \"\\u8A00\";\n t[\"\\u2F95\"] = \"\\u8C37\";\n t[\"\\u2F96\"] = \"\\u8C46\";\n t[\"\\u2F97\"] = \"\\u8C55\";\n t[\"\\u2F98\"] = \"\\u8C78\";\n t[\"\\u2F99\"] = \"\\u8C9D\";\n t[\"\\u2F9A\"] = \"\\u8D64\";\n t[\"\\u2F9B\"] = \"\\u8D70\";\n t[\"\\u2F9C\"] = \"\\u8DB3\";\n t[\"\\u2F9D\"] = \"\\u8EAB\";\n t[\"\\u2F9E\"] = \"\\u8ECA\";\n t[\"\\u2F9F\"] = \"\\u8F9B\";\n t[\"\\u2FA0\"] = \"\\u8FB0\";\n t[\"\\u2FA1\"] = \"\\u8FB5\";\n t[\"\\u2FA2\"] = \"\\u9091\";\n t[\"\\u2FA3\"] = \"\\u9149\";\n t[\"\\u2FA4\"] = \"\\u91C6\";\n t[\"\\u2FA5\"] = \"\\u91CC\";\n t[\"\\u2FA6\"] = \"\\u91D1\";\n t[\"\\u2FA7\"] = \"\\u9577\";\n t[\"\\u2FA8\"] = \"\\u9580\";\n t[\"\\u2FA9\"] = \"\\u961C\";\n t[\"\\u2FAA\"] = \"\\u96B6\";\n t[\"\\u2FAB\"] = \"\\u96B9\";\n t[\"\\u2FAC\"] = \"\\u96E8\";\n t[\"\\u2FAD\"] = \"\\u9751\";\n t[\"\\u2FAE\"] = \"\\u975E\";\n t[\"\\u2FAF\"] = \"\\u9762\";\n t[\"\\u2FB0\"] = \"\\u9769\";\n t[\"\\u2FB1\"] = \"\\u97CB\";\n t[\"\\u2FB2\"] = \"\\u97ED\";\n t[\"\\u2FB3\"] = \"\\u97F3\";\n t[\"\\u2FB4\"] = \"\\u9801\";\n t[\"\\u2FB5\"] = \"\\u98A8\";\n t[\"\\u2FB6\"] = \"\\u98DB\";\n t[\"\\u2FB7\"] = \"\\u98DF\";\n t[\"\\u2FB8\"] = \"\\u9996\";\n t[\"\\u2FB9\"] = \"\\u9999\";\n t[\"\\u2FBA\"] = \"\\u99AC\";\n t[\"\\u2FBB\"] = \"\\u9AA8\";\n t[\"\\u2FBC\"] = \"\\u9AD8\";\n t[\"\\u2FBD\"] = \"\\u9ADF\";\n t[\"\\u2FBE\"] = \"\\u9B25\";\n t[\"\\u2FBF\"] = \"\\u9B2F\";\n t[\"\\u2FC0\"] = \"\\u9B32\";\n t[\"\\u2FC1\"] = \"\\u9B3C\";\n t[\"\\u2FC2\"] = \"\\u9B5A\";\n t[\"\\u2FC3\"] = \"\\u9CE5\";\n t[\"\\u2FC4\"] = \"\\u9E75\";\n t[\"\\u2FC5\"] = \"\\u9E7F\";\n t[\"\\u2FC6\"] = \"\\u9EA5\";\n t[\"\\u2FC7\"] = \"\\u9EBB\";\n t[\"\\u2FC8\"] = \"\\u9EC3\";\n t[\"\\u2FC9\"] = \"\\u9ECD\";\n t[\"\\u2FCA\"] = \"\\u9ED1\";\n t[\"\\u2FCB\"] = \"\\u9EF9\";\n t[\"\\u2FCC\"] = \"\\u9EFD\";\n t[\"\\u2FCD\"] = \"\\u9F0E\";\n t[\"\\u2FCE\"] = \"\\u9F13\";\n t[\"\\u2FCF\"] = \"\\u9F20\";\n t[\"\\u2FD0\"] = \"\\u9F3B\";\n t[\"\\u2FD1\"] = \"\\u9F4A\";\n t[\"\\u2FD2\"] = \"\\u9F52\";\n t[\"\\u2FD3\"] = \"\\u9F8D\";\n t[\"\\u2FD4\"] = \"\\u9F9C\";\n t[\"\\u2FD5\"] = \"\\u9FA0\";\n t[\"\\u3036\"] = \"\\u3012\";\n t[\"\\u3038\"] = \"\\u5341\";\n t[\"\\u3039\"] = \"\\u5344\";\n t[\"\\u303A\"] = \"\\u5345\";\n t[\"\\u309B\"] = \"\\u0020\\u3099\";\n t[\"\\u309C\"] = \"\\u0020\\u309A\";\n t[\"\\u3131\"] = \"\\u1100\";\n t[\"\\u3132\"] = \"\\u1101\";\n t[\"\\u3133\"] = \"\\u11AA\";\n t[\"\\u3134\"] = \"\\u1102\";\n t[\"\\u3135\"] = \"\\u11AC\";\n t[\"\\u3136\"] = \"\\u11AD\";\n t[\"\\u3137\"] = \"\\u1103\";\n t[\"\\u3138\"] = \"\\u1104\";\n t[\"\\u3139\"] = \"\\u1105\";\n t[\"\\u313A\"] = \"\\u11B0\";\n t[\"\\u313B\"] = \"\\u11B1\";\n t[\"\\u313C\"] = \"\\u11B2\";\n t[\"\\u313D\"] = \"\\u11B3\";\n t[\"\\u313E\"] = \"\\u11B4\";\n t[\"\\u313F\"] = \"\\u11B5\";\n t[\"\\u3140\"] = \"\\u111A\";\n t[\"\\u3141\"] = \"\\u1106\";\n t[\"\\u3142\"] = \"\\u1107\";\n t[\"\\u3143\"] = \"\\u1108\";\n t[\"\\u3144\"] = \"\\u1121\";\n t[\"\\u3145\"] = \"\\u1109\";\n t[\"\\u3146\"] = \"\\u110A\";\n t[\"\\u3147\"] = \"\\u110B\";\n t[\"\\u3148\"] = \"\\u110C\";\n t[\"\\u3149\"] = \"\\u110D\";\n t[\"\\u314A\"] = \"\\u110E\";\n t[\"\\u314B\"] = \"\\u110F\";\n t[\"\\u314C\"] = \"\\u1110\";\n t[\"\\u314D\"] = \"\\u1111\";\n t[\"\\u314E\"] = \"\\u1112\";\n t[\"\\u314F\"] = \"\\u1161\";\n t[\"\\u3150\"] = \"\\u1162\";\n t[\"\\u3151\"] = \"\\u1163\";\n t[\"\\u3152\"] = \"\\u1164\";\n t[\"\\u3153\"] = \"\\u1165\";\n t[\"\\u3154\"] = \"\\u1166\";\n t[\"\\u3155\"] = \"\\u1167\";\n t[\"\\u3156\"] = \"\\u1168\";\n t[\"\\u3157\"] = \"\\u1169\";\n t[\"\\u3158\"] = \"\\u116A\";\n t[\"\\u3159\"] = \"\\u116B\";\n t[\"\\u315A\"] = \"\\u116C\";\n t[\"\\u315B\"] = \"\\u116D\";\n t[\"\\u315C\"] = \"\\u116E\";\n t[\"\\u315D\"] = \"\\u116F\";\n t[\"\\u315E\"] = \"\\u1170\";\n t[\"\\u315F\"] = \"\\u1171\";\n t[\"\\u3160\"] = \"\\u1172\";\n t[\"\\u3161\"] = \"\\u1173\";\n t[\"\\u3162\"] = \"\\u1174\";\n t[\"\\u3163\"] = \"\\u1175\";\n t[\"\\u3164\"] = \"\\u1160\";\n t[\"\\u3165\"] = \"\\u1114\";\n t[\"\\u3166\"] = \"\\u1115\";\n t[\"\\u3167\"] = \"\\u11C7\";\n t[\"\\u3168\"] = \"\\u11C8\";\n t[\"\\u3169\"] = \"\\u11CC\";\n t[\"\\u316A\"] = \"\\u11CE\";\n t[\"\\u316B\"] = \"\\u11D3\";\n t[\"\\u316C\"] = \"\\u11D7\";\n t[\"\\u316D\"] = \"\\u11D9\";\n t[\"\\u316E\"] = \"\\u111C\";\n t[\"\\u316F\"] = \"\\u11DD\";\n t[\"\\u3170\"] = \"\\u11DF\";\n t[\"\\u3171\"] = \"\\u111D\";\n t[\"\\u3172\"] = \"\\u111E\";\n t[\"\\u3173\"] = \"\\u1120\";\n t[\"\\u3174\"] = \"\\u1122\";\n t[\"\\u3175\"] = \"\\u1123\";\n t[\"\\u3176\"] = \"\\u1127\";\n t[\"\\u3177\"] = \"\\u1129\";\n t[\"\\u3178\"] = \"\\u112B\";\n t[\"\\u3179\"] = \"\\u112C\";\n t[\"\\u317A\"] = \"\\u112D\";\n t[\"\\u317B\"] = \"\\u112E\";\n t[\"\\u317C\"] = \"\\u112F\";\n t[\"\\u317D\"] = \"\\u1132\";\n t[\"\\u317E\"] = \"\\u1136\";\n t[\"\\u317F\"] = \"\\u1140\";\n t[\"\\u3180\"] = \"\\u1147\";\n t[\"\\u3181\"] = \"\\u114C\";\n t[\"\\u3182\"] = \"\\u11F1\";\n t[\"\\u3183\"] = \"\\u11F2\";\n t[\"\\u3184\"] = \"\\u1157\";\n t[\"\\u3185\"] = \"\\u1158\";\n t[\"\\u3186\"] = \"\\u1159\";\n t[\"\\u3187\"] = \"\\u1184\";\n t[\"\\u3188\"] = \"\\u1185\";\n t[\"\\u3189\"] = \"\\u1188\";\n t[\"\\u318A\"] = \"\\u1191\";\n t[\"\\u318B\"] = \"\\u1192\";\n t[\"\\u318C\"] = \"\\u1194\";\n t[\"\\u318D\"] = \"\\u119E\";\n t[\"\\u318E\"] = \"\\u11A1\";\n t[\"\\u3200\"] = \"\\u0028\\u1100\\u0029\";\n t[\"\\u3201\"] = \"\\u0028\\u1102\\u0029\";\n t[\"\\u3202\"] = \"\\u0028\\u1103\\u0029\";\n t[\"\\u3203\"] = \"\\u0028\\u1105\\u0029\";\n t[\"\\u3204\"] = \"\\u0028\\u1106\\u0029\";\n t[\"\\u3205\"] = \"\\u0028\\u1107\\u0029\";\n t[\"\\u3206\"] = \"\\u0028\\u1109\\u0029\";\n t[\"\\u3207\"] = \"\\u0028\\u110B\\u0029\";\n t[\"\\u3208\"] = \"\\u0028\\u110C\\u0029\";\n t[\"\\u3209\"] = \"\\u0028\\u110E\\u0029\";\n t[\"\\u320A\"] = \"\\u0028\\u110F\\u0029\";\n t[\"\\u320B\"] = \"\\u0028\\u1110\\u0029\";\n t[\"\\u320C\"] = \"\\u0028\\u1111\\u0029\";\n t[\"\\u320D\"] = \"\\u0028\\u1112\\u0029\";\n t[\"\\u320E\"] = \"\\u0028\\u1100\\u1161\\u0029\";\n t[\"\\u320F\"] = \"\\u0028\\u1102\\u1161\\u0029\";\n t[\"\\u3210\"] = \"\\u0028\\u1103\\u1161\\u0029\";\n t[\"\\u3211\"] = \"\\u0028\\u1105\\u1161\\u0029\";\n t[\"\\u3212\"] = \"\\u0028\\u1106\\u1161\\u0029\";\n t[\"\\u3213\"] = \"\\u0028\\u1107\\u1161\\u0029\";\n t[\"\\u3214\"] = \"\\u0028\\u1109\\u1161\\u0029\";\n t[\"\\u3215\"] = \"\\u0028\\u110B\\u1161\\u0029\";\n t[\"\\u3216\"] = \"\\u0028\\u110C\\u1161\\u0029\";\n t[\"\\u3217\"] = \"\\u0028\\u110E\\u1161\\u0029\";\n t[\"\\u3218\"] = \"\\u0028\\u110F\\u1161\\u0029\";\n t[\"\\u3219\"] = \"\\u0028\\u1110\\u1161\\u0029\";\n t[\"\\u321A\"] = \"\\u0028\\u1111\\u1161\\u0029\";\n t[\"\\u321B\"] = \"\\u0028\\u1112\\u1161\\u0029\";\n t[\"\\u321C\"] = \"\\u0028\\u110C\\u116E\\u0029\";\n t[\"\\u321D\"] = \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\";\n t[\"\\u321E\"] = \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\";\n t[\"\\u3220\"] = \"\\u0028\\u4E00\\u0029\";\n t[\"\\u3221\"] = \"\\u0028\\u4E8C\\u0029\";\n t[\"\\u3222\"] = \"\\u0028\\u4E09\\u0029\";\n t[\"\\u3223\"] = \"\\u0028\\u56DB\\u0029\";\n t[\"\\u3224\"] = \"\\u0028\\u4E94\\u0029\";\n t[\"\\u3225\"] = \"\\u0028\\u516D\\u0029\";\n t[\"\\u3226\"] = \"\\u0028\\u4E03\\u0029\";\n t[\"\\u3227\"] = \"\\u0028\\u516B\\u0029\";\n t[\"\\u3228\"] = \"\\u0028\\u4E5D\\u0029\";\n t[\"\\u3229\"] = \"\\u0028\\u5341\\u0029\";\n t[\"\\u322A\"] = \"\\u0028\\u6708\\u0029\";\n t[\"\\u322B\"] = \"\\u0028\\u706B\\u0029\";\n t[\"\\u322C\"] = \"\\u0028\\u6C34\\u0029\";\n t[\"\\u322D\"] = \"\\u0028\\u6728\\u0029\";\n t[\"\\u322E\"] = \"\\u0028\\u91D1\\u0029\";\n t[\"\\u322F\"] = \"\\u0028\\u571F\\u0029\";\n t[\"\\u3230\"] = \"\\u0028\\u65E5\\u0029\";\n t[\"\\u3231\"] = \"\\u0028\\u682A\\u0029\";\n t[\"\\u3232\"] = \"\\u0028\\u6709\\u0029\";\n t[\"\\u3233\"] = \"\\u0028\\u793E\\u0029\";\n t[\"\\u3234\"] = \"\\u0028\\u540D\\u0029\";\n t[\"\\u3235\"] = \"\\u0028\\u7279\\u0029\";\n t[\"\\u3236\"] = \"\\u0028\\u8CA1\\u0029\";\n t[\"\\u3237\"] = \"\\u0028\\u795D\\u0029\";\n t[\"\\u3238\"] = \"\\u0028\\u52B4\\u0029\";\n t[\"\\u3239\"] = \"\\u0028\\u4EE3\\u0029\";\n t[\"\\u323A\"] = \"\\u0028\\u547C\\u0029\";\n t[\"\\u323B\"] = \"\\u0028\\u5B66\\u0029\";\n t[\"\\u323C\"] = \"\\u0028\\u76E3\\u0029\";\n t[\"\\u323D\"] = \"\\u0028\\u4F01\\u0029\";\n t[\"\\u323E\"] = \"\\u0028\\u8CC7\\u0029\";\n t[\"\\u323F\"] = \"\\u0028\\u5354\\u0029\";\n t[\"\\u3240\"] = \"\\u0028\\u796D\\u0029\";\n t[\"\\u3241\"] = \"\\u0028\\u4F11\\u0029\";\n t[\"\\u3242\"] = \"\\u0028\\u81EA\\u0029\";\n t[\"\\u3243\"] = \"\\u0028\\u81F3\\u0029\";\n t[\"\\u32C0\"] = \"\\u0031\\u6708\";\n t[\"\\u32C1\"] = \"\\u0032\\u6708\";\n t[\"\\u32C2\"] = \"\\u0033\\u6708\";\n t[\"\\u32C3\"] = \"\\u0034\\u6708\";\n t[\"\\u32C4\"] = \"\\u0035\\u6708\";\n t[\"\\u32C5\"] = \"\\u0036\\u6708\";\n t[\"\\u32C6\"] = \"\\u0037\\u6708\";\n t[\"\\u32C7\"] = \"\\u0038\\u6708\";\n t[\"\\u32C8\"] = \"\\u0039\\u6708\";\n t[\"\\u32C9\"] = \"\\u0031\\u0030\\u6708\";\n t[\"\\u32CA\"] = \"\\u0031\\u0031\\u6708\";\n t[\"\\u32CB\"] = \"\\u0031\\u0032\\u6708\";\n t[\"\\u3358\"] = \"\\u0030\\u70B9\";\n t[\"\\u3359\"] = \"\\u0031\\u70B9\";\n t[\"\\u335A\"] = \"\\u0032\\u70B9\";\n t[\"\\u335B\"] = \"\\u0033\\u70B9\";\n t[\"\\u335C\"] = \"\\u0034\\u70B9\";\n t[\"\\u335D\"] = \"\\u0035\\u70B9\";\n t[\"\\u335E\"] = \"\\u0036\\u70B9\";\n t[\"\\u335F\"] = \"\\u0037\\u70B9\";\n t[\"\\u3360\"] = \"\\u0038\\u70B9\";\n t[\"\\u3361\"] = \"\\u0039\\u70B9\";\n t[\"\\u3362\"] = \"\\u0031\\u0030\\u70B9\";\n t[\"\\u3363\"] = \"\\u0031\\u0031\\u70B9\";\n t[\"\\u3364\"] = \"\\u0031\\u0032\\u70B9\";\n t[\"\\u3365\"] = \"\\u0031\\u0033\\u70B9\";\n t[\"\\u3366\"] = \"\\u0031\\u0034\\u70B9\";\n t[\"\\u3367\"] = \"\\u0031\\u0035\\u70B9\";\n t[\"\\u3368\"] = \"\\u0031\\u0036\\u70B9\";\n t[\"\\u3369\"] = \"\\u0031\\u0037\\u70B9\";\n t[\"\\u336A\"] = \"\\u0031\\u0038\\u70B9\";\n t[\"\\u336B\"] = \"\\u0031\\u0039\\u70B9\";\n t[\"\\u336C\"] = \"\\u0032\\u0030\\u70B9\";\n t[\"\\u336D\"] = \"\\u0032\\u0031\\u70B9\";\n t[\"\\u336E\"] = \"\\u0032\\u0032\\u70B9\";\n t[\"\\u336F\"] = \"\\u0032\\u0033\\u70B9\";\n t[\"\\u3370\"] = \"\\u0032\\u0034\\u70B9\";\n t[\"\\u33E0\"] = \"\\u0031\\u65E5\";\n t[\"\\u33E1\"] = \"\\u0032\\u65E5\";\n t[\"\\u33E2\"] = \"\\u0033\\u65E5\";\n t[\"\\u33E3\"] = \"\\u0034\\u65E5\";\n t[\"\\u33E4\"] = \"\\u0035\\u65E5\";\n t[\"\\u33E5\"] = \"\\u0036\\u65E5\";\n t[\"\\u33E6\"] = \"\\u0037\\u65E5\";\n t[\"\\u33E7\"] = \"\\u0038\\u65E5\";\n t[\"\\u33E8\"] = \"\\u0039\\u65E5\";\n t[\"\\u33E9\"] = \"\\u0031\\u0030\\u65E5\";\n t[\"\\u33EA\"] = \"\\u0031\\u0031\\u65E5\";\n t[\"\\u33EB\"] = \"\\u0031\\u0032\\u65E5\";\n t[\"\\u33EC\"] = \"\\u0031\\u0033\\u65E5\";\n t[\"\\u33ED\"] = \"\\u0031\\u0034\\u65E5\";\n t[\"\\u33EE\"] = \"\\u0031\\u0035\\u65E5\";\n t[\"\\u33EF\"] = \"\\u0031\\u0036\\u65E5\";\n t[\"\\u33F0\"] = \"\\u0031\\u0037\\u65E5\";\n t[\"\\u33F1\"] = \"\\u0031\\u0038\\u65E5\";\n t[\"\\u33F2\"] = \"\\u0031\\u0039\\u65E5\";\n t[\"\\u33F3\"] = \"\\u0032\\u0030\\u65E5\";\n t[\"\\u33F4\"] = \"\\u0032\\u0031\\u65E5\";\n t[\"\\u33F5\"] = \"\\u0032\\u0032\\u65E5\";\n t[\"\\u33F6\"] = \"\\u0032\\u0033\\u65E5\";\n t[\"\\u33F7\"] = \"\\u0032\\u0034\\u65E5\";\n t[\"\\u33F8\"] = \"\\u0032\\u0035\\u65E5\";\n t[\"\\u33F9\"] = \"\\u0032\\u0036\\u65E5\";\n t[\"\\u33FA\"] = \"\\u0032\\u0037\\u65E5\";\n t[\"\\u33FB\"] = \"\\u0032\\u0038\\u65E5\";\n t[\"\\u33FC\"] = \"\\u0032\\u0039\\u65E5\";\n t[\"\\u33FD\"] = \"\\u0033\\u0030\\u65E5\";\n t[\"\\u33FE\"] = \"\\u0033\\u0031\\u65E5\";\n t[\"\\uFB00\"] = \"\\u0066\\u0066\";\n t[\"\\uFB01\"] = \"\\u0066\\u0069\";\n t[\"\\uFB02\"] = \"\\u0066\\u006C\";\n t[\"\\uFB03\"] = \"\\u0066\\u0066\\u0069\";\n t[\"\\uFB04\"] = \"\\u0066\\u0066\\u006C\";\n t[\"\\uFB05\"] = \"\\u017F\\u0074\";\n t[\"\\uFB06\"] = \"\\u0073\\u0074\";\n t[\"\\uFB13\"] = \"\\u0574\\u0576\";\n t[\"\\uFB14\"] = \"\\u0574\\u0565\";\n t[\"\\uFB15\"] = \"\\u0574\\u056B\";\n t[\"\\uFB16\"] = \"\\u057E\\u0576\";\n t[\"\\uFB17\"] = \"\\u0574\\u056D\";\n t[\"\\uFB4F\"] = \"\\u05D0\\u05DC\";\n t[\"\\uFB50\"] = \"\\u0671\";\n t[\"\\uFB51\"] = \"\\u0671\";\n t[\"\\uFB52\"] = \"\\u067B\";\n t[\"\\uFB53\"] = \"\\u067B\";\n t[\"\\uFB54\"] = \"\\u067B\";\n t[\"\\uFB55\"] = \"\\u067B\";\n t[\"\\uFB56\"] = \"\\u067E\";\n t[\"\\uFB57\"] = \"\\u067E\";\n t[\"\\uFB58\"] = \"\\u067E\";\n t[\"\\uFB59\"] = \"\\u067E\";\n t[\"\\uFB5A\"] = \"\\u0680\";\n t[\"\\uFB5B\"] = \"\\u0680\";\n t[\"\\uFB5C\"] = \"\\u0680\";\n t[\"\\uFB5D\"] = \"\\u0680\";\n t[\"\\uFB5E\"] = \"\\u067A\";\n t[\"\\uFB5F\"] = \"\\u067A\";\n t[\"\\uFB60\"] = \"\\u067A\";\n t[\"\\uFB61\"] = \"\\u067A\";\n t[\"\\uFB62\"] = \"\\u067F\";\n t[\"\\uFB63\"] = \"\\u067F\";\n t[\"\\uFB64\"] = \"\\u067F\";\n t[\"\\uFB65\"] = \"\\u067F\";\n t[\"\\uFB66\"] = \"\\u0679\";\n t[\"\\uFB67\"] = \"\\u0679\";\n t[\"\\uFB68\"] = \"\\u0679\";\n t[\"\\uFB69\"] = \"\\u0679\";\n t[\"\\uFB6A\"] = \"\\u06A4\";\n t[\"\\uFB6B\"] = \"\\u06A4\";\n t[\"\\uFB6C\"] = \"\\u06A4\";\n t[\"\\uFB6D\"] = \"\\u06A4\";\n t[\"\\uFB6E\"] = \"\\u06A6\";\n t[\"\\uFB6F\"] = \"\\u06A6\";\n t[\"\\uFB70\"] = \"\\u06A6\";\n t[\"\\uFB71\"] = \"\\u06A6\";\n t[\"\\uFB72\"] = \"\\u0684\";\n t[\"\\uFB73\"] = \"\\u0684\";\n t[\"\\uFB74\"] = \"\\u0684\";\n t[\"\\uFB75\"] = \"\\u0684\";\n t[\"\\uFB76\"] = \"\\u0683\";\n t[\"\\uFB77\"] = \"\\u0683\";\n t[\"\\uFB78\"] = \"\\u0683\";\n t[\"\\uFB79\"] = \"\\u0683\";\n t[\"\\uFB7A\"] = \"\\u0686\";\n t[\"\\uFB7B\"] = \"\\u0686\";\n t[\"\\uFB7C\"] = \"\\u0686\";\n t[\"\\uFB7D\"] = \"\\u0686\";\n t[\"\\uFB7E\"] = \"\\u0687\";\n t[\"\\uFB7F\"] = \"\\u0687\";\n t[\"\\uFB80\"] = \"\\u0687\";\n t[\"\\uFB81\"] = \"\\u0687\";\n t[\"\\uFB82\"] = \"\\u068D\";\n t[\"\\uFB83\"] = \"\\u068D\";\n t[\"\\uFB84\"] = \"\\u068C\";\n t[\"\\uFB85\"] = \"\\u068C\";\n t[\"\\uFB86\"] = \"\\u068E\";\n t[\"\\uFB87\"] = \"\\u068E\";\n t[\"\\uFB88\"] = \"\\u0688\";\n t[\"\\uFB89\"] = \"\\u0688\";\n t[\"\\uFB8A\"] = \"\\u0698\";\n t[\"\\uFB8B\"] = \"\\u0698\";\n t[\"\\uFB8C\"] = \"\\u0691\";\n t[\"\\uFB8D\"] = \"\\u0691\";\n t[\"\\uFB8E\"] = \"\\u06A9\";\n t[\"\\uFB8F\"] = \"\\u06A9\";\n t[\"\\uFB90\"] = \"\\u06A9\";\n t[\"\\uFB91\"] = \"\\u06A9\";\n t[\"\\uFB92\"] = \"\\u06AF\";\n t[\"\\uFB93\"] = \"\\u06AF\";\n t[\"\\uFB94\"] = \"\\u06AF\";\n t[\"\\uFB95\"] = \"\\u06AF\";\n t[\"\\uFB96\"] = \"\\u06B3\";\n t[\"\\uFB97\"] = \"\\u06B3\";\n t[\"\\uFB98\"] = \"\\u06B3\";\n t[\"\\uFB99\"] = \"\\u06B3\";\n t[\"\\uFB9A\"] = \"\\u06B1\";\n t[\"\\uFB9B\"] = \"\\u06B1\";\n t[\"\\uFB9C\"] = \"\\u06B1\";\n t[\"\\uFB9D\"] = \"\\u06B1\";\n t[\"\\uFB9E\"] = \"\\u06BA\";\n t[\"\\uFB9F\"] = \"\\u06BA\";\n t[\"\\uFBA0\"] = \"\\u06BB\";\n t[\"\\uFBA1\"] = \"\\u06BB\";\n t[\"\\uFBA2\"] = \"\\u06BB\";\n t[\"\\uFBA3\"] = \"\\u06BB\";\n t[\"\\uFBA4\"] = \"\\u06C0\";\n t[\"\\uFBA5\"] = \"\\u06C0\";\n t[\"\\uFBA6\"] = \"\\u06C1\";\n t[\"\\uFBA7\"] = \"\\u06C1\";\n t[\"\\uFBA8\"] = \"\\u06C1\";\n t[\"\\uFBA9\"] = \"\\u06C1\";\n t[\"\\uFBAA\"] = \"\\u06BE\";\n t[\"\\uFBAB\"] = \"\\u06BE\";\n t[\"\\uFBAC\"] = \"\\u06BE\";\n t[\"\\uFBAD\"] = \"\\u06BE\";\n t[\"\\uFBAE\"] = \"\\u06D2\";\n t[\"\\uFBAF\"] = \"\\u06D2\";\n t[\"\\uFBB0\"] = \"\\u06D3\";\n t[\"\\uFBB1\"] = \"\\u06D3\";\n t[\"\\uFBD3\"] = \"\\u06AD\";\n t[\"\\uFBD4\"] = \"\\u06AD\";\n t[\"\\uFBD5\"] = \"\\u06AD\";\n t[\"\\uFBD6\"] = \"\\u06AD\";\n t[\"\\uFBD7\"] = \"\\u06C7\";\n t[\"\\uFBD8\"] = \"\\u06C7\";\n t[\"\\uFBD9\"] = \"\\u06C6\";\n t[\"\\uFBDA\"] = \"\\u06C6\";\n t[\"\\uFBDB\"] = \"\\u06C8\";\n t[\"\\uFBDC\"] = \"\\u06C8\";\n t[\"\\uFBDD\"] = \"\\u0677\";\n t[\"\\uFBDE\"] = \"\\u06CB\";\n t[\"\\uFBDF\"] = \"\\u06CB\";\n t[\"\\uFBE0\"] = \"\\u06C5\";\n t[\"\\uFBE1\"] = \"\\u06C5\";\n t[\"\\uFBE2\"] = \"\\u06C9\";\n t[\"\\uFBE3\"] = \"\\u06C9\";\n t[\"\\uFBE4\"] = \"\\u06D0\";\n t[\"\\uFBE5\"] = \"\\u06D0\";\n t[\"\\uFBE6\"] = \"\\u06D0\";\n t[\"\\uFBE7\"] = \"\\u06D0\";\n t[\"\\uFBE8\"] = \"\\u0649\";\n t[\"\\uFBE9\"] = \"\\u0649\";\n t[\"\\uFBEA\"] = \"\\u0626\\u0627\";\n t[\"\\uFBEB\"] = \"\\u0626\\u0627\";\n t[\"\\uFBEC\"] = \"\\u0626\\u06D5\";\n t[\"\\uFBED\"] = \"\\u0626\\u06D5\";\n t[\"\\uFBEE\"] = \"\\u0626\\u0648\";\n t[\"\\uFBEF\"] = \"\\u0626\\u0648\";\n t[\"\\uFBF0\"] = \"\\u0626\\u06C7\";\n t[\"\\uFBF1\"] = \"\\u0626\\u06C7\";\n t[\"\\uFBF2\"] = \"\\u0626\\u06C6\";\n t[\"\\uFBF3\"] = \"\\u0626\\u06C6\";\n t[\"\\uFBF4\"] = \"\\u0626\\u06C8\";\n t[\"\\uFBF5\"] = \"\\u0626\\u06C8\";\n t[\"\\uFBF6\"] = \"\\u0626\\u06D0\";\n t[\"\\uFBF7\"] = \"\\u0626\\u06D0\";\n t[\"\\uFBF8\"] = \"\\u0626\\u06D0\";\n t[\"\\uFBF9\"] = \"\\u0626\\u0649\";\n t[\"\\uFBFA\"] = \"\\u0626\\u0649\";\n t[\"\\uFBFB\"] = \"\\u0626\\u0649\";\n t[\"\\uFBFC\"] = \"\\u06CC\";\n t[\"\\uFBFD\"] = \"\\u06CC\";\n t[\"\\uFBFE\"] = \"\\u06CC\";\n t[\"\\uFBFF\"] = \"\\u06CC\";\n t[\"\\uFC00\"] = \"\\u0626\\u062C\";\n t[\"\\uFC01\"] = \"\\u0626\\u062D\";\n t[\"\\uFC02\"] = \"\\u0626\\u0645\";\n t[\"\\uFC03\"] = \"\\u0626\\u0649\";\n t[\"\\uFC04\"] = \"\\u0626\\u064A\";\n t[\"\\uFC05\"] = \"\\u0628\\u062C\";\n t[\"\\uFC06\"] = \"\\u0628\\u062D\";\n t[\"\\uFC07\"] = \"\\u0628\\u062E\";\n t[\"\\uFC08\"] = \"\\u0628\\u0645\";\n t[\"\\uFC09\"] = \"\\u0628\\u0649\";\n t[\"\\uFC0A\"] = \"\\u0628\\u064A\";\n t[\"\\uFC0B\"] = \"\\u062A\\u062C\";\n t[\"\\uFC0C\"] = \"\\u062A\\u062D\";\n t[\"\\uFC0D\"] = \"\\u062A\\u062E\";\n t[\"\\uFC0E\"] = \"\\u062A\\u0645\";\n t[\"\\uFC0F\"] = \"\\u062A\\u0649\";\n t[\"\\uFC10\"] = \"\\u062A\\u064A\";\n t[\"\\uFC11\"] = \"\\u062B\\u062C\";\n t[\"\\uFC12\"] = \"\\u062B\\u0645\";\n t[\"\\uFC13\"] = \"\\u062B\\u0649\";\n t[\"\\uFC14\"] = \"\\u062B\\u064A\";\n t[\"\\uFC15\"] = \"\\u062C\\u062D\";\n t[\"\\uFC16\"] = \"\\u062C\\u0645\";\n t[\"\\uFC17\"] = \"\\u062D\\u062C\";\n t[\"\\uFC18\"] = \"\\u062D\\u0645\";\n t[\"\\uFC19\"] = \"\\u062E\\u062C\";\n t[\"\\uFC1A\"] = \"\\u062E\\u062D\";\n t[\"\\uFC1B\"] = \"\\u062E\\u0645\";\n t[\"\\uFC1C\"] = \"\\u0633\\u062C\";\n t[\"\\uFC1D\"] = \"\\u0633\\u062D\";\n t[\"\\uFC1E\"] = \"\\u0633\\u062E\";\n t[\"\\uFC1F\"] = \"\\u0633\\u0645\";\n t[\"\\uFC20\"] = \"\\u0635\\u062D\";\n t[\"\\uFC21\"] = \"\\u0635\\u0645\";\n t[\"\\uFC22\"] = \"\\u0636\\u062C\";\n t[\"\\uFC23\"] = \"\\u0636\\u062D\";\n t[\"\\uFC24\"] = \"\\u0636\\u062E\";\n t[\"\\uFC25\"] = \"\\u0636\\u0645\";\n t[\"\\uFC26\"] = \"\\u0637\\u062D\";\n t[\"\\uFC27\"] = \"\\u0637\\u0645\";\n t[\"\\uFC28\"] = \"\\u0638\\u0645\";\n t[\"\\uFC29\"] = \"\\u0639\\u062C\";\n t[\"\\uFC2A\"] = \"\\u0639\\u0645\";\n t[\"\\uFC2B\"] = \"\\u063A\\u062C\";\n t[\"\\uFC2C\"] = \"\\u063A\\u0645\";\n t[\"\\uFC2D\"] = \"\\u0641\\u062C\";\n t[\"\\uFC2E\"] = \"\\u0641\\u062D\";\n t[\"\\uFC2F\"] = \"\\u0641\\u062E\";\n t[\"\\uFC30\"] = \"\\u0641\\u0645\";\n t[\"\\uFC31\"] = \"\\u0641\\u0649\";\n t[\"\\uFC32\"] = \"\\u0641\\u064A\";\n t[\"\\uFC33\"] = \"\\u0642\\u062D\";\n t[\"\\uFC34\"] = \"\\u0642\\u0645\";\n t[\"\\uFC35\"] = \"\\u0642\\u0649\";\n t[\"\\uFC36\"] = \"\\u0642\\u064A\";\n t[\"\\uFC37\"] = \"\\u0643\\u0627\";\n t[\"\\uFC38\"] = \"\\u0643\\u062C\";\n t[\"\\uFC39\"] = \"\\u0643\\u062D\";\n t[\"\\uFC3A\"] = \"\\u0643\\u062E\";\n t[\"\\uFC3B\"] = \"\\u0643\\u0644\";\n t[\"\\uFC3C\"] = \"\\u0643\\u0645\";\n t[\"\\uFC3D\"] = \"\\u0643\\u0649\";\n t[\"\\uFC3E\"] = \"\\u0643\\u064A\";\n t[\"\\uFC3F\"] = \"\\u0644\\u062C\";\n t[\"\\uFC40\"] = \"\\u0644\\u062D\";\n t[\"\\uFC41\"] = \"\\u0644\\u062E\";\n t[\"\\uFC42\"] = \"\\u0644\\u0645\";\n t[\"\\uFC43\"] = \"\\u0644\\u0649\";\n t[\"\\uFC44\"] = \"\\u0644\\u064A\";\n t[\"\\uFC45\"] = \"\\u0645\\u062C\";\n t[\"\\uFC46\"] = \"\\u0645\\u062D\";\n t[\"\\uFC47\"] = \"\\u0645\\u062E\";\n t[\"\\uFC48\"] = \"\\u0645\\u0645\";\n t[\"\\uFC49\"] = \"\\u0645\\u0649\";\n t[\"\\uFC4A\"] = \"\\u0645\\u064A\";\n t[\"\\uFC4B\"] = \"\\u0646\\u062C\";\n t[\"\\uFC4C\"] = \"\\u0646\\u062D\";\n t[\"\\uFC4D\"] = \"\\u0646\\u062E\";\n t[\"\\uFC4E\"] = \"\\u0646\\u0645\";\n t[\"\\uFC4F\"] = \"\\u0646\\u0649\";\n t[\"\\uFC50\"] = \"\\u0646\\u064A\";\n t[\"\\uFC51\"] = \"\\u0647\\u062C\";\n t[\"\\uFC52\"] = \"\\u0647\\u0645\";\n t[\"\\uFC53\"] = \"\\u0647\\u0649\";\n t[\"\\uFC54\"] = \"\\u0647\\u064A\";\n t[\"\\uFC55\"] = \"\\u064A\\u062C\";\n t[\"\\uFC56\"] = \"\\u064A\\u062D\";\n t[\"\\uFC57\"] = \"\\u064A\\u062E\";\n t[\"\\uFC58\"] = \"\\u064A\\u0645\";\n t[\"\\uFC59\"] = \"\\u064A\\u0649\";\n t[\"\\uFC5A\"] = \"\\u064A\\u064A\";\n t[\"\\uFC5B\"] = \"\\u0630\\u0670\";\n t[\"\\uFC5C\"] = \"\\u0631\\u0670\";\n t[\"\\uFC5D\"] = \"\\u0649\\u0670\";\n t[\"\\uFC5E\"] = \"\\u0020\\u064C\\u0651\";\n t[\"\\uFC5F\"] = \"\\u0020\\u064D\\u0651\";\n t[\"\\uFC60\"] = \"\\u0020\\u064E\\u0651\";\n t[\"\\uFC61\"] = \"\\u0020\\u064F\\u0651\";\n t[\"\\uFC62\"] = \"\\u0020\\u0650\\u0651\";\n t[\"\\uFC63\"] = \"\\u0020\\u0651\\u0670\";\n t[\"\\uFC64\"] = \"\\u0626\\u0631\";\n t[\"\\uFC65\"] = \"\\u0626\\u0632\";\n t[\"\\uFC66\"] = \"\\u0626\\u0645\";\n t[\"\\uFC67\"] = \"\\u0626\\u0646\";\n t[\"\\uFC68\"] = \"\\u0626\\u0649\";\n t[\"\\uFC69\"] = \"\\u0626\\u064A\";\n t[\"\\uFC6A\"] = \"\\u0628\\u0631\";\n t[\"\\uFC6B\"] = \"\\u0628\\u0632\";\n t[\"\\uFC6C\"] = \"\\u0628\\u0645\";\n t[\"\\uFC6D\"] = \"\\u0628\\u0646\";\n t[\"\\uFC6E\"] = \"\\u0628\\u0649\";\n t[\"\\uFC6F\"] = \"\\u0628\\u064A\";\n t[\"\\uFC70\"] = \"\\u062A\\u0631\";\n t[\"\\uFC71\"] = \"\\u062A\\u0632\";\n t[\"\\uFC72\"] = \"\\u062A\\u0645\";\n t[\"\\uFC73\"] = \"\\u062A\\u0646\";\n t[\"\\uFC74\"] = \"\\u062A\\u0649\";\n t[\"\\uFC75\"] = \"\\u062A\\u064A\";\n t[\"\\uFC76\"] = \"\\u062B\\u0631\";\n t[\"\\uFC77\"] = \"\\u062B\\u0632\";\n t[\"\\uFC78\"] = \"\\u062B\\u0645\";\n t[\"\\uFC79\"] = \"\\u062B\\u0646\";\n t[\"\\uFC7A\"] = \"\\u062B\\u0649\";\n t[\"\\uFC7B\"] = \"\\u062B\\u064A\";\n t[\"\\uFC7C\"] = \"\\u0641\\u0649\";\n t[\"\\uFC7D\"] = \"\\u0641\\u064A\";\n t[\"\\uFC7E\"] = \"\\u0642\\u0649\";\n t[\"\\uFC7F\"] = \"\\u0642\\u064A\";\n t[\"\\uFC80\"] = \"\\u0643\\u0627\";\n t[\"\\uFC81\"] = \"\\u0643\\u0644\";\n t[\"\\uFC82\"] = \"\\u0643\\u0645\";\n t[\"\\uFC83\"] = \"\\u0643\\u0649\";\n t[\"\\uFC84\"] = \"\\u0643\\u064A\";\n t[\"\\uFC85\"] = \"\\u0644\\u0645\";\n t[\"\\uFC86\"] = \"\\u0644\\u0649\";\n t[\"\\uFC87\"] = \"\\u0644\\u064A\";\n t[\"\\uFC88\"] = \"\\u0645\\u0627\";\n t[\"\\uFC89\"] = \"\\u0645\\u0645\";\n t[\"\\uFC8A\"] = \"\\u0646\\u0631\";\n t[\"\\uFC8B\"] = \"\\u0646\\u0632\";\n t[\"\\uFC8C\"] = \"\\u0646\\u0645\";\n t[\"\\uFC8D\"] = \"\\u0646\\u0646\";\n t[\"\\uFC8E\"] = \"\\u0646\\u0649\";\n t[\"\\uFC8F\"] = \"\\u0646\\u064A\";\n t[\"\\uFC90\"] = \"\\u0649\\u0670\";\n t[\"\\uFC91\"] = \"\\u064A\\u0631\";\n t[\"\\uFC92\"] = \"\\u064A\\u0632\";\n t[\"\\uFC93\"] = \"\\u064A\\u0645\";\n t[\"\\uFC94\"] = \"\\u064A\\u0646\";\n t[\"\\uFC95\"] = \"\\u064A\\u0649\";\n t[\"\\uFC96\"] = \"\\u064A\\u064A\";\n t[\"\\uFC97\"] = \"\\u0626\\u062C\";\n t[\"\\uFC98\"] = \"\\u0626\\u062D\";\n t[\"\\uFC99\"] = \"\\u0626\\u062E\";\n t[\"\\uFC9A\"] = \"\\u0626\\u0645\";\n t[\"\\uFC9B\"] = \"\\u0626\\u0647\";\n t[\"\\uFC9C\"] = \"\\u0628\\u062C\";\n t[\"\\uFC9D\"] = \"\\u0628\\u062D\";\n t[\"\\uFC9E\"] = \"\\u0628\\u062E\";\n t[\"\\uFC9F\"] = \"\\u0628\\u0645\";\n t[\"\\uFCA0\"] = \"\\u0628\\u0647\";\n t[\"\\uFCA1\"] = \"\\u062A\\u062C\";\n t[\"\\uFCA2\"] = \"\\u062A\\u062D\";\n t[\"\\uFCA3\"] = \"\\u062A\\u062E\";\n t[\"\\uFCA4\"] = \"\\u062A\\u0645\";\n t[\"\\uFCA5\"] = \"\\u062A\\u0647\";\n t[\"\\uFCA6\"] = \"\\u062B\\u0645\";\n t[\"\\uFCA7\"] = \"\\u062C\\u062D\";\n t[\"\\uFCA8\"] = \"\\u062C\\u0645\";\n t[\"\\uFCA9\"] = \"\\u062D\\u062C\";\n t[\"\\uFCAA\"] = \"\\u062D\\u0645\";\n t[\"\\uFCAB\"] = \"\\u062E\\u062C\";\n t[\"\\uFCAC\"] = \"\\u062E\\u0645\";\n t[\"\\uFCAD\"] = \"\\u0633\\u062C\";\n t[\"\\uFCAE\"] = \"\\u0633\\u062D\";\n t[\"\\uFCAF\"] = \"\\u0633\\u062E\";\n t[\"\\uFCB0\"] = \"\\u0633\\u0645\";\n t[\"\\uFCB1\"] = \"\\u0635\\u062D\";\n t[\"\\uFCB2\"] = \"\\u0635\\u062E\";\n t[\"\\uFCB3\"] = \"\\u0635\\u0645\";\n t[\"\\uFCB4\"] = \"\\u0636\\u062C\";\n t[\"\\uFCB5\"] = \"\\u0636\\u062D\";\n t[\"\\uFCB6\"] = \"\\u0636\\u062E\";\n t[\"\\uFCB7\"] = \"\\u0636\\u0645\";\n t[\"\\uFCB8\"] = \"\\u0637\\u062D\";\n t[\"\\uFCB9\"] = \"\\u0638\\u0645\";\n t[\"\\uFCBA\"] = \"\\u0639\\u062C\";\n t[\"\\uFCBB\"] = \"\\u0639\\u0645\";\n t[\"\\uFCBC\"] = \"\\u063A\\u062C\";\n t[\"\\uFCBD\"] = \"\\u063A\\u0645\";\n t[\"\\uFCBE\"] = \"\\u0641\\u062C\";\n t[\"\\uFCBF\"] = \"\\u0641\\u062D\";\n t[\"\\uFCC0\"] = \"\\u0641\\u062E\";\n t[\"\\uFCC1\"] = \"\\u0641\\u0645\";\n t[\"\\uFCC2\"] = \"\\u0642\\u062D\";\n t[\"\\uFCC3\"] = \"\\u0642\\u0645\";\n t[\"\\uFCC4\"] = \"\\u0643\\u062C\";\n t[\"\\uFCC5\"] = \"\\u0643\\u062D\";\n t[\"\\uFCC6\"] = \"\\u0643\\u062E\";\n t[\"\\uFCC7\"] = \"\\u0643\\u0644\";\n t[\"\\uFCC8\"] = \"\\u0643\\u0645\";\n t[\"\\uFCC9\"] = \"\\u0644\\u062C\";\n t[\"\\uFCCA\"] = \"\\u0644\\u062D\";\n t[\"\\uFCCB\"] = \"\\u0644\\u062E\";\n t[\"\\uFCCC\"] = \"\\u0644\\u0645\";\n t[\"\\uFCCD\"] = \"\\u0644\\u0647\";\n t[\"\\uFCCE\"] = \"\\u0645\\u062C\";\n t[\"\\uFCCF\"] = \"\\u0645\\u062D\";\n t[\"\\uFCD0\"] = \"\\u0645\\u062E\";\n t[\"\\uFCD1\"] = \"\\u0645\\u0645\";\n t[\"\\uFCD2\"] = \"\\u0646\\u062C\";\n t[\"\\uFCD3\"] = \"\\u0646\\u062D\";\n t[\"\\uFCD4\"] = \"\\u0646\\u062E\";\n t[\"\\uFCD5\"] = \"\\u0646\\u0645\";\n t[\"\\uFCD6\"] = \"\\u0646\\u0647\";\n t[\"\\uFCD7\"] = \"\\u0647\\u062C\";\n t[\"\\uFCD8\"] = \"\\u0647\\u0645\";\n t[\"\\uFCD9\"] = \"\\u0647\\u0670\";\n t[\"\\uFCDA\"] = \"\\u064A\\u062C\";\n t[\"\\uFCDB\"] = \"\\u064A\\u062D\";\n t[\"\\uFCDC\"] = \"\\u064A\\u062E\";\n t[\"\\uFCDD\"] = \"\\u064A\\u0645\";\n t[\"\\uFCDE\"] = \"\\u064A\\u0647\";\n t[\"\\uFCDF\"] = \"\\u0626\\u0645\";\n t[\"\\uFCE0\"] = \"\\u0626\\u0647\";\n t[\"\\uFCE1\"] = \"\\u0628\\u0645\";\n t[\"\\uFCE2\"] = \"\\u0628\\u0647\";\n t[\"\\uFCE3\"] = \"\\u062A\\u0645\";\n t[\"\\uFCE4\"] = \"\\u062A\\u0647\";\n t[\"\\uFCE5\"] = \"\\u062B\\u0645\";\n t[\"\\uFCE6\"] = \"\\u062B\\u0647\";\n t[\"\\uFCE7\"] = \"\\u0633\\u0645\";\n t[\"\\uFCE8\"] = \"\\u0633\\u0647\";\n t[\"\\uFCE9\"] = \"\\u0634\\u0645\";\n t[\"\\uFCEA\"] = \"\\u0634\\u0647\";\n t[\"\\uFCEB\"] = \"\\u0643\\u0644\";\n t[\"\\uFCEC\"] = \"\\u0643\\u0645\";\n t[\"\\uFCED\"] = \"\\u0644\\u0645\";\n t[\"\\uFCEE\"] = \"\\u0646\\u0645\";\n t[\"\\uFCEF\"] = \"\\u0646\\u0647\";\n t[\"\\uFCF0\"] = \"\\u064A\\u0645\";\n t[\"\\uFCF1\"] = \"\\u064A\\u0647\";\n t[\"\\uFCF2\"] = \"\\u0640\\u064E\\u0651\";\n t[\"\\uFCF3\"] = \"\\u0640\\u064F\\u0651\";\n t[\"\\uFCF4\"] = \"\\u0640\\u0650\\u0651\";\n t[\"\\uFCF5\"] = \"\\u0637\\u0649\";\n t[\"\\uFCF6\"] = \"\\u0637\\u064A\";\n t[\"\\uFCF7\"] = \"\\u0639\\u0649\";\n t[\"\\uFCF8\"] = \"\\u0639\\u064A\";\n t[\"\\uFCF9\"] = \"\\u063A\\u0649\";\n t[\"\\uFCFA\"] = \"\\u063A\\u064A\";\n t[\"\\uFCFB\"] = \"\\u0633\\u0649\";\n t[\"\\uFCFC\"] = \"\\u0633\\u064A\";\n t[\"\\uFCFD\"] = \"\\u0634\\u0649\";\n t[\"\\uFCFE\"] = \"\\u0634\\u064A\";\n t[\"\\uFCFF\"] = \"\\u062D\\u0649\";\n t[\"\\uFD00\"] = \"\\u062D\\u064A\";\n t[\"\\uFD01\"] = \"\\u062C\\u0649\";\n t[\"\\uFD02\"] = \"\\u062C\\u064A\";\n t[\"\\uFD03\"] = \"\\u062E\\u0649\";\n t[\"\\uFD04\"] = \"\\u062E\\u064A\";\n t[\"\\uFD05\"] = \"\\u0635\\u0649\";\n t[\"\\uFD06\"] = \"\\u0635\\u064A\";\n t[\"\\uFD07\"] = \"\\u0636\\u0649\";\n t[\"\\uFD08\"] = \"\\u0636\\u064A\";\n t[\"\\uFD09\"] = \"\\u0634\\u062C\";\n t[\"\\uFD0A\"] = \"\\u0634\\u062D\";\n t[\"\\uFD0B\"] = \"\\u0634\\u062E\";\n t[\"\\uFD0C\"] = \"\\u0634\\u0645\";\n t[\"\\uFD0D\"] = \"\\u0634\\u0631\";\n t[\"\\uFD0E\"] = \"\\u0633\\u0631\";\n t[\"\\uFD0F\"] = \"\\u0635\\u0631\";\n t[\"\\uFD10\"] = \"\\u0636\\u0631\";\n t[\"\\uFD11\"] = \"\\u0637\\u0649\";\n t[\"\\uFD12\"] = \"\\u0637\\u064A\";\n t[\"\\uFD13\"] = \"\\u0639\\u0649\";\n t[\"\\uFD14\"] = \"\\u0639\\u064A\";\n t[\"\\uFD15\"] = \"\\u063A\\u0649\";\n t[\"\\uFD16\"] = \"\\u063A\\u064A\";\n t[\"\\uFD17\"] = \"\\u0633\\u0649\";\n t[\"\\uFD18\"] = \"\\u0633\\u064A\";\n t[\"\\uFD19\"] = \"\\u0634\\u0649\";\n t[\"\\uFD1A\"] = \"\\u0634\\u064A\";\n t[\"\\uFD1B\"] = \"\\u062D\\u0649\";\n t[\"\\uFD1C\"] = \"\\u062D\\u064A\";\n t[\"\\uFD1D\"] = \"\\u062C\\u0649\";\n t[\"\\uFD1E\"] = \"\\u062C\\u064A\";\n t[\"\\uFD1F\"] = \"\\u062E\\u0649\";\n t[\"\\uFD20\"] = \"\\u062E\\u064A\";\n t[\"\\uFD21\"] = \"\\u0635\\u0649\";\n t[\"\\uFD22\"] = \"\\u0635\\u064A\";\n t[\"\\uFD23\"] = \"\\u0636\\u0649\";\n t[\"\\uFD24\"] = \"\\u0636\\u064A\";\n t[\"\\uFD25\"] = \"\\u0634\\u062C\";\n t[\"\\uFD26\"] = \"\\u0634\\u062D\";\n t[\"\\uFD27\"] = \"\\u0634\\u062E\";\n t[\"\\uFD28\"] = \"\\u0634\\u0645\";\n t[\"\\uFD29\"] = \"\\u0634\\u0631\";\n t[\"\\uFD2A\"] = \"\\u0633\\u0631\";\n t[\"\\uFD2B\"] = \"\\u0635\\u0631\";\n t[\"\\uFD2C\"] = \"\\u0636\\u0631\";\n t[\"\\uFD2D\"] = \"\\u0634\\u062C\";\n t[\"\\uFD2E\"] = \"\\u0634\\u062D\";\n t[\"\\uFD2F\"] = \"\\u0634\\u062E\";\n t[\"\\uFD30\"] = \"\\u0634\\u0645\";\n t[\"\\uFD31\"] = \"\\u0633\\u0647\";\n t[\"\\uFD32\"] = \"\\u0634\\u0647\";\n t[\"\\uFD33\"] = \"\\u0637\\u0645\";\n t[\"\\uFD34\"] = \"\\u0633\\u062C\";\n t[\"\\uFD35\"] = \"\\u0633\\u062D\";\n t[\"\\uFD36\"] = \"\\u0633\\u062E\";\n t[\"\\uFD37\"] = \"\\u0634\\u062C\";\n t[\"\\uFD38\"] = \"\\u0634\\u062D\";\n t[\"\\uFD39\"] = \"\\u0634\\u062E\";\n t[\"\\uFD3A\"] = \"\\u0637\\u0645\";\n t[\"\\uFD3B\"] = \"\\u0638\\u0645\";\n t[\"\\uFD3C\"] = \"\\u0627\\u064B\";\n t[\"\\uFD3D\"] = \"\\u0627\\u064B\";\n t[\"\\uFD50\"] = \"\\u062A\\u062C\\u0645\";\n t[\"\\uFD51\"] = \"\\u062A\\u062D\\u062C\";\n t[\"\\uFD52\"] = \"\\u062A\\u062D\\u062C\";\n t[\"\\uFD53\"] = \"\\u062A\\u062D\\u0645\";\n t[\"\\uFD54\"] = \"\\u062A\\u062E\\u0645\";\n t[\"\\uFD55\"] = \"\\u062A\\u0645\\u062C\";\n t[\"\\uFD56\"] = \"\\u062A\\u0645\\u062D\";\n t[\"\\uFD57\"] = \"\\u062A\\u0645\\u062E\";\n t[\"\\uFD58\"] = \"\\u062C\\u0645\\u062D\";\n t[\"\\uFD59\"] = \"\\u062C\\u0645\\u062D\";\n t[\"\\uFD5A\"] = \"\\u062D\\u0645\\u064A\";\n t[\"\\uFD5B\"] = \"\\u062D\\u0645\\u0649\";\n t[\"\\uFD5C\"] = \"\\u0633\\u062D\\u062C\";\n t[\"\\uFD5D\"] = \"\\u0633\\u062C\\u062D\";\n t[\"\\uFD5E\"] = \"\\u0633\\u062C\\u0649\";\n t[\"\\uFD5F\"] = \"\\u0633\\u0645\\u062D\";\n t[\"\\uFD60\"] = \"\\u0633\\u0645\\u062D\";\n t[\"\\uFD61\"] = \"\\u0633\\u0645\\u062C\";\n t[\"\\uFD62\"] = \"\\u0633\\u0645\\u0645\";\n t[\"\\uFD63\"] = \"\\u0633\\u0645\\u0645\";\n t[\"\\uFD64\"] = \"\\u0635\\u062D\\u062D\";\n t[\"\\uFD65\"] = \"\\u0635\\u062D\\u062D\";\n t[\"\\uFD66\"] = \"\\u0635\\u0645\\u0645\";\n t[\"\\uFD67\"] = \"\\u0634\\u062D\\u0645\";\n t[\"\\uFD68\"] = \"\\u0634\\u062D\\u0645\";\n t[\"\\uFD69\"] = \"\\u0634\\u062C\\u064A\";\n t[\"\\uFD6A\"] = \"\\u0634\\u0645\\u062E\";\n t[\"\\uFD6B\"] = \"\\u0634\\u0645\\u062E\";\n t[\"\\uFD6C\"] = \"\\u0634\\u0645\\u0645\";\n t[\"\\uFD6D\"] = \"\\u0634\\u0645\\u0645\";\n t[\"\\uFD6E\"] = \"\\u0636\\u062D\\u0649\";\n t[\"\\uFD6F\"] = \"\\u0636\\u062E\\u0645\";\n t[\"\\uFD70\"] = \"\\u0636\\u062E\\u0645\";\n t[\"\\uFD71\"] = \"\\u0637\\u0645\\u062D\";\n t[\"\\uFD72\"] = \"\\u0637\\u0645\\u062D\";\n t[\"\\uFD73\"] = \"\\u0637\\u0645\\u0645\";\n t[\"\\uFD74\"] = \"\\u0637\\u0645\\u064A\";\n t[\"\\uFD75\"] = \"\\u0639\\u062C\\u0645\";\n t[\"\\uFD76\"] = \"\\u0639\\u0645\\u0645\";\n t[\"\\uFD77\"] = \"\\u0639\\u0645\\u0645\";\n t[\"\\uFD78\"] = \"\\u0639\\u0645\\u0649\";\n t[\"\\uFD79\"] = \"\\u063A\\u0645\\u0645\";\n t[\"\\uFD7A\"] = \"\\u063A\\u0645\\u064A\";\n t[\"\\uFD7B\"] = \"\\u063A\\u0645\\u0649\";\n t[\"\\uFD7C\"] = \"\\u0641\\u062E\\u0645\";\n t[\"\\uFD7D\"] = \"\\u0641\\u062E\\u0645\";\n t[\"\\uFD7E\"] = \"\\u0642\\u0645\\u062D\";\n t[\"\\uFD7F\"] = \"\\u0642\\u0645\\u0645\";\n t[\"\\uFD80\"] = \"\\u0644\\u062D\\u0645\";\n t[\"\\uFD81\"] = \"\\u0644\\u062D\\u064A\";\n t[\"\\uFD82\"] = \"\\u0644\\u062D\\u0649\";\n t[\"\\uFD83\"] = \"\\u0644\\u062C\\u062C\";\n t[\"\\uFD84\"] = \"\\u0644\\u062C\\u062C\";\n t[\"\\uFD85\"] = \"\\u0644\\u062E\\u0645\";\n t[\"\\uFD86\"] = \"\\u0644\\u062E\\u0645\";\n t[\"\\uFD87\"] = \"\\u0644\\u0645\\u062D\";\n t[\"\\uFD88\"] = \"\\u0644\\u0645\\u062D\";\n t[\"\\uFD89\"] = \"\\u0645\\u062D\\u062C\";\n t[\"\\uFD8A\"] = \"\\u0645\\u062D\\u0645\";\n t[\"\\uFD8B\"] = \"\\u0645\\u062D\\u064A\";\n t[\"\\uFD8C\"] = \"\\u0645\\u062C\\u062D\";\n t[\"\\uFD8D\"] = \"\\u0645\\u062C\\u0645\";\n t[\"\\uFD8E\"] = \"\\u0645\\u062E\\u062C\";\n t[\"\\uFD8F\"] = \"\\u0645\\u062E\\u0645\";\n t[\"\\uFD92\"] = \"\\u0645\\u062C\\u062E\";\n t[\"\\uFD93\"] = \"\\u0647\\u0645\\u062C\";\n t[\"\\uFD94\"] = \"\\u0647\\u0645\\u0645\";\n t[\"\\uFD95\"] = \"\\u0646\\u062D\\u0645\";\n t[\"\\uFD96\"] = \"\\u0646\\u062D\\u0649\";\n t[\"\\uFD97\"] = \"\\u0646\\u062C\\u0645\";\n t[\"\\uFD98\"] = \"\\u0646\\u062C\\u0645\";\n t[\"\\uFD99\"] = \"\\u0646\\u062C\\u0649\";\n t[\"\\uFD9A\"] = \"\\u0646\\u0645\\u064A\";\n t[\"\\uFD9B\"] = \"\\u0646\\u0645\\u0649\";\n t[\"\\uFD9C\"] = \"\\u064A\\u0645\\u0645\";\n t[\"\\uFD9D\"] = \"\\u064A\\u0645\\u0645\";\n t[\"\\uFD9E\"] = \"\\u0628\\u062E\\u064A\";\n t[\"\\uFD9F\"] = \"\\u062A\\u062C\\u064A\";\n t[\"\\uFDA0\"] = \"\\u062A\\u062C\\u0649\";\n t[\"\\uFDA1\"] = \"\\u062A\\u062E\\u064A\";\n t[\"\\uFDA2\"] = \"\\u062A\\u062E\\u0649\";\n t[\"\\uFDA3\"] = \"\\u062A\\u0645\\u064A\";\n t[\"\\uFDA4\"] = \"\\u062A\\u0645\\u0649\";\n t[\"\\uFDA5\"] = \"\\u062C\\u0645\\u064A\";\n t[\"\\uFDA6\"] = \"\\u062C\\u062D\\u0649\";\n t[\"\\uFDA7\"] = \"\\u062C\\u0645\\u0649\";\n t[\"\\uFDA8\"] = \"\\u0633\\u062E\\u0649\";\n t[\"\\uFDA9\"] = \"\\u0635\\u062D\\u064A\";\n t[\"\\uFDAA\"] = \"\\u0634\\u062D\\u064A\";\n t[\"\\uFDAB\"] = \"\\u0636\\u062D\\u064A\";\n t[\"\\uFDAC\"] = \"\\u0644\\u062C\\u064A\";\n t[\"\\uFDAD\"] = \"\\u0644\\u0645\\u064A\";\n t[\"\\uFDAE\"] = \"\\u064A\\u062D\\u064A\";\n t[\"\\uFDAF\"] = \"\\u064A\\u062C\\u064A\";\n t[\"\\uFDB0\"] = \"\\u064A\\u0645\\u064A\";\n t[\"\\uFDB1\"] = \"\\u0645\\u0645\\u064A\";\n t[\"\\uFDB2\"] = \"\\u0642\\u0645\\u064A\";\n t[\"\\uFDB3\"] = \"\\u0646\\u062D\\u064A\";\n t[\"\\uFDB4\"] = \"\\u0642\\u0645\\u062D\";\n t[\"\\uFDB5\"] = \"\\u0644\\u062D\\u0645\";\n t[\"\\uFDB6\"] = \"\\u0639\\u0645\\u064A\";\n t[\"\\uFDB7\"] = \"\\u0643\\u0645\\u064A\";\n t[\"\\uFDB8\"] = \"\\u0646\\u062C\\u062D\";\n t[\"\\uFDB9\"] = \"\\u0645\\u062E\\u064A\";\n t[\"\\uFDBA\"] = \"\\u0644\\u062C\\u0645\";\n t[\"\\uFDBB\"] = \"\\u0643\\u0645\\u0645\";\n t[\"\\uFDBC\"] = \"\\u0644\\u062C\\u0645\";\n t[\"\\uFDBD\"] = \"\\u0646\\u062C\\u062D\";\n t[\"\\uFDBE\"] = \"\\u062C\\u062D\\u064A\";\n t[\"\\uFDBF\"] = \"\\u062D\\u062C\\u064A\";\n t[\"\\uFDC0\"] = \"\\u0645\\u062C\\u064A\";\n t[\"\\uFDC1\"] = \"\\u0641\\u0645\\u064A\";\n t[\"\\uFDC2\"] = \"\\u0628\\u062D\\u064A\";\n t[\"\\uFDC3\"] = \"\\u0643\\u0645\\u0645\";\n t[\"\\uFDC4\"] = \"\\u0639\\u062C\\u0645\";\n t[\"\\uFDC5\"] = \"\\u0635\\u0645\\u0645\";\n t[\"\\uFDC6\"] = \"\\u0633\\u062E\\u064A\";\n t[\"\\uFDC7\"] = \"\\u0646\\u062C\\u064A\";\n t[\"\\uFE49\"] = \"\\u203E\";\n t[\"\\uFE4A\"] = \"\\u203E\";\n t[\"\\uFE4B\"] = \"\\u203E\";\n t[\"\\uFE4C\"] = \"\\u203E\";\n t[\"\\uFE4D\"] = \"\\u005F\";\n t[\"\\uFE4E\"] = \"\\u005F\";\n t[\"\\uFE4F\"] = \"\\u005F\";\n t[\"\\uFE80\"] = \"\\u0621\";\n t[\"\\uFE81\"] = \"\\u0622\";\n t[\"\\uFE82\"] = \"\\u0622\";\n t[\"\\uFE83\"] = \"\\u0623\";\n t[\"\\uFE84\"] = \"\\u0623\";\n t[\"\\uFE85\"] = \"\\u0624\";\n t[\"\\uFE86\"] = \"\\u0624\";\n t[\"\\uFE87\"] = \"\\u0625\";\n t[\"\\uFE88\"] = \"\\u0625\";\n t[\"\\uFE89\"] = \"\\u0626\";\n t[\"\\uFE8A\"] = \"\\u0626\";\n t[\"\\uFE8B\"] = \"\\u0626\";\n t[\"\\uFE8C\"] = \"\\u0626\";\n t[\"\\uFE8D\"] = \"\\u0627\";\n t[\"\\uFE8E\"] = \"\\u0627\";\n t[\"\\uFE8F\"] = \"\\u0628\";\n t[\"\\uFE90\"] = \"\\u0628\";\n t[\"\\uFE91\"] = \"\\u0628\";\n t[\"\\uFE92\"] = \"\\u0628\";\n t[\"\\uFE93\"] = \"\\u0629\";\n t[\"\\uFE94\"] = \"\\u0629\";\n t[\"\\uFE95\"] = \"\\u062A\";\n t[\"\\uFE96\"] = \"\\u062A\";\n t[\"\\uFE97\"] = \"\\u062A\";\n t[\"\\uFE98\"] = \"\\u062A\";\n t[\"\\uFE99\"] = \"\\u062B\";\n t[\"\\uFE9A\"] = \"\\u062B\";\n t[\"\\uFE9B\"] = \"\\u062B\";\n t[\"\\uFE9C\"] = \"\\u062B\";\n t[\"\\uFE9D\"] = \"\\u062C\";\n t[\"\\uFE9E\"] = \"\\u062C\";\n t[\"\\uFE9F\"] = \"\\u062C\";\n t[\"\\uFEA0\"] = \"\\u062C\";\n t[\"\\uFEA1\"] = \"\\u062D\";\n t[\"\\uFEA2\"] = \"\\u062D\";\n t[\"\\uFEA3\"] = \"\\u062D\";\n t[\"\\uFEA4\"] = \"\\u062D\";\n t[\"\\uFEA5\"] = \"\\u062E\";\n t[\"\\uFEA6\"] = \"\\u062E\";\n t[\"\\uFEA7\"] = \"\\u062E\";\n t[\"\\uFEA8\"] = \"\\u062E\";\n t[\"\\uFEA9\"] = \"\\u062F\";\n t[\"\\uFEAA\"] = \"\\u062F\";\n t[\"\\uFEAB\"] = \"\\u0630\";\n t[\"\\uFEAC\"] = \"\\u0630\";\n t[\"\\uFEAD\"] = \"\\u0631\";\n t[\"\\uFEAE\"] = \"\\u0631\";\n t[\"\\uFEAF\"] = \"\\u0632\";\n t[\"\\uFEB0\"] = \"\\u0632\";\n t[\"\\uFEB1\"] = \"\\u0633\";\n t[\"\\uFEB2\"] = \"\\u0633\";\n t[\"\\uFEB3\"] = \"\\u0633\";\n t[\"\\uFEB4\"] = \"\\u0633\";\n t[\"\\uFEB5\"] = \"\\u0634\";\n t[\"\\uFEB6\"] = \"\\u0634\";\n t[\"\\uFEB7\"] = \"\\u0634\";\n t[\"\\uFEB8\"] = \"\\u0634\";\n t[\"\\uFEB9\"] = \"\\u0635\";\n t[\"\\uFEBA\"] = \"\\u0635\";\n t[\"\\uFEBB\"] = \"\\u0635\";\n t[\"\\uFEBC\"] = \"\\u0635\";\n t[\"\\uFEBD\"] = \"\\u0636\";\n t[\"\\uFEBE\"] = \"\\u0636\";\n t[\"\\uFEBF\"] = \"\\u0636\";\n t[\"\\uFEC0\"] = \"\\u0636\";\n t[\"\\uFEC1\"] = \"\\u0637\";\n t[\"\\uFEC2\"] = \"\\u0637\";\n t[\"\\uFEC3\"] = \"\\u0637\";\n t[\"\\uFEC4\"] = \"\\u0637\";\n t[\"\\uFEC5\"] = \"\\u0638\";\n t[\"\\uFEC6\"] = \"\\u0638\";\n t[\"\\uFEC7\"] = \"\\u0638\";\n t[\"\\uFEC8\"] = \"\\u0638\";\n t[\"\\uFEC9\"] = \"\\u0639\";\n t[\"\\uFECA\"] = \"\\u0639\";\n t[\"\\uFECB\"] = \"\\u0639\";\n t[\"\\uFECC\"] = \"\\u0639\";\n t[\"\\uFECD\"] = \"\\u063A\";\n t[\"\\uFECE\"] = \"\\u063A\";\n t[\"\\uFECF\"] = \"\\u063A\";\n t[\"\\uFED0\"] = \"\\u063A\";\n t[\"\\uFED1\"] = \"\\u0641\";\n t[\"\\uFED2\"] = \"\\u0641\";\n t[\"\\uFED3\"] = \"\\u0641\";\n t[\"\\uFED4\"] = \"\\u0641\";\n t[\"\\uFED5\"] = \"\\u0642\";\n t[\"\\uFED6\"] = \"\\u0642\";\n t[\"\\uFED7\"] = \"\\u0642\";\n t[\"\\uFED8\"] = \"\\u0642\";\n t[\"\\uFED9\"] = \"\\u0643\";\n t[\"\\uFEDA\"] = \"\\u0643\";\n t[\"\\uFEDB\"] = \"\\u0643\";\n t[\"\\uFEDC\"] = \"\\u0643\";\n t[\"\\uFEDD\"] = \"\\u0644\";\n t[\"\\uFEDE\"] = \"\\u0644\";\n t[\"\\uFEDF\"] = \"\\u0644\";\n t[\"\\uFEE0\"] = \"\\u0644\";\n t[\"\\uFEE1\"] = \"\\u0645\";\n t[\"\\uFEE2\"] = \"\\u0645\";\n t[\"\\uFEE3\"] = \"\\u0645\";\n t[\"\\uFEE4\"] = \"\\u0645\";\n t[\"\\uFEE5\"] = \"\\u0646\";\n t[\"\\uFEE6\"] = \"\\u0646\";\n t[\"\\uFEE7\"] = \"\\u0646\";\n t[\"\\uFEE8\"] = \"\\u0646\";\n t[\"\\uFEE9\"] = \"\\u0647\";\n t[\"\\uFEEA\"] = \"\\u0647\";\n t[\"\\uFEEB\"] = \"\\u0647\";\n t[\"\\uFEEC\"] = \"\\u0647\";\n t[\"\\uFEED\"] = \"\\u0648\";\n t[\"\\uFEEE\"] = \"\\u0648\";\n t[\"\\uFEEF\"] = \"\\u0649\";\n t[\"\\uFEF0\"] = \"\\u0649\";\n t[\"\\uFEF1\"] = \"\\u064A\";\n t[\"\\uFEF2\"] = \"\\u064A\";\n t[\"\\uFEF3\"] = \"\\u064A\";\n t[\"\\uFEF4\"] = \"\\u064A\";\n t[\"\\uFEF5\"] = \"\\u0644\\u0622\";\n t[\"\\uFEF6\"] = \"\\u0644\\u0622\";\n t[\"\\uFEF7\"] = \"\\u0644\\u0623\";\n t[\"\\uFEF8\"] = \"\\u0644\\u0623\";\n t[\"\\uFEF9\"] = \"\\u0644\\u0625\";\n t[\"\\uFEFA\"] = \"\\u0644\\u0625\";\n t[\"\\uFEFB\"] = \"\\u0644\\u0627\";\n t[\"\\uFEFC\"] = \"\\u0644\\u0627\";\n});\nfunction reverseIfRtl(chars) {\n var charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n var s = \"\";\n for (var ii = charsLength - 1; ii >= 0; ii--) {\n s += chars[ii];\n }\n return s;\n}\nexports.mapSpecialUnicodeValues = mapSpecialUnicodeValues;\nexports.reverseIfRtl = reverseIfRtl;\nexports.getUnicodeRangeFor = getUnicodeRangeFor;\nexports.getNormalizedUnicodes = getNormalizedUnicodes;\nexports.getUnicodeForGlyph = getUnicodeForGlyph;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontRendererFactory = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(30);\n\nvar _glyphlist = __w_pdfjs_require__(33);\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar FontRendererFactory = function FontRendererFactoryClosure() {\n function getLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n }\n\n function getUshort(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n }\n\n function getSubroutineBias(subrs) {\n const numSubrs = subrs.length;\n let bias = 32768;\n\n if (numSubrs < 1240) {\n bias = 107;\n } else if (numSubrs < 33900) {\n bias = 1131;\n }\n\n return bias;\n }\n\n function parseCmap(data, start, end) {\n var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16);\n var format = getUshort(data, start + offset);\n var ranges, p, i;\n\n if (format === 4) {\n getUshort(data, start + offset + 2);\n var segCount = getUshort(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = {\n end: getUshort(data, p)\n };\n }\n\n p += 2;\n\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUshort(data, p);\n }\n\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUshort(data, p);\n }\n\n for (i = 0; i < segCount; i++, p += 2) {\n var idOffset = getUshort(data, p);\n\n if (idOffset === 0) {\n continue;\n }\n\n ranges[i].ids = [];\n\n for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUshort(data, p + idOffset);\n idOffset += 2;\n }\n }\n\n return ranges;\n } else if (format === 12) {\n getLong(data, start + offset + 4);\n var groups = getLong(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n\n for (i = 0; i < groups; i++) {\n ranges.push({\n start: getLong(data, p),\n end: getLong(data, p + 4),\n idDelta: getLong(data, p + 8) - getLong(data, p)\n });\n p += 12;\n }\n\n return ranges;\n }\n\n throw new _util.FormatError(`unsupported cmap: ${format}`);\n }\n\n function parseCff(data, start, end, seacAnalysisEnabled) {\n var properties = {};\n var parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n var cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects,\n gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n isCFFCIDFont: cff.isCIDFont,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray\n };\n }\n\n function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n var itemSize, itemDecode;\n\n if (isGlyphLocationsLong) {\n itemSize = 4;\n\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n } else {\n itemSize = 2;\n\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n }\n\n var glyphs = [];\n var startOffset = itemDecode(loca, 0);\n\n for (var j = itemSize; j < loca.length; j += itemSize) {\n var endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n\n return glyphs;\n }\n\n function lookupCmap(ranges, unicode) {\n var code = unicode.codePointAt(0),\n gid = 0;\n var l = 0,\n r = ranges.length - 1;\n\n while (l < r) {\n var c = l + r + 1 >> 1;\n\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff;\n }\n\n return {\n charCode: code,\n glyphId: gid\n };\n }\n\n function compileGlyf(code, cmds, font) {\n function moveTo(x, y) {\n cmds.push({\n cmd: \"moveTo\",\n args: [x, y]\n });\n }\n\n function lineTo(x, y) {\n cmds.push({\n cmd: \"lineTo\",\n args: [x, y]\n });\n }\n\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({\n cmd: \"quadraticCurveTo\",\n args: [xa, ya, x, y]\n });\n }\n\n var i = 0;\n var numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16;\n var flags;\n var x = 0,\n y = 0;\n i += 10;\n\n if (numberOfContours < 0) {\n do {\n flags = code[i] << 8 | code[i + 1];\n var glyphIndex = code[i + 2] << 8 | code[i + 3];\n i += 4;\n var arg1, arg2;\n\n if (flags & 0x01) {\n arg1 = (code[i] << 24 | code[i + 1] << 16) >> 16;\n arg2 = (code[i + 2] << 24 | code[i + 3] << 16) >> 16;\n i += 4;\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n\n var scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n\n if (flags & 0x08) {\n scaleX = scaleY = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n i += 2;\n } else if (flags & 0x40) {\n scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n scaleY = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n i += 4;\n } else if (flags & 0x80) {\n scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n scale01 = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n scale10 = (code[i + 4] << 24 | code[i + 5] << 16) / 1073741824;\n scaleY = (code[i + 6] << 24 | code[i + 7] << 16) / 1073741824;\n i += 8;\n }\n\n var subglyph = font.glyphs[glyphIndex];\n\n if (subglyph) {\n cmds.push({\n cmd: \"save\"\n });\n cmds.push({\n cmd: \"transform\",\n args: [scaleX, scale01, scale10, scaleY, x, y]\n });\n compileGlyf(subglyph, cmds, font);\n cmds.push({\n cmd: \"restore\"\n });\n }\n } while (flags & 0x20);\n } else {\n var endPtsOfContours = [];\n var j, jj;\n\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(code[i] << 8 | code[i + 1]);\n i += 2;\n }\n\n var instructionLength = code[i] << 8 | code[i + 1];\n i += 2 + instructionLength;\n var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n var points = [];\n\n while (points.length < numberOfPoints) {\n flags = code[i++];\n var repeat = 1;\n\n if (flags & 0x08) {\n repeat += code[i++];\n }\n\n while (repeat-- > 0) {\n points.push({\n flags\n });\n }\n }\n\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n\n case 0x02:\n x -= code[i++];\n break;\n\n case 0x12:\n x += code[i++];\n break;\n }\n\n points[j].x = x;\n }\n\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n\n case 0x04:\n y -= code[i++];\n break;\n\n case 0x24:\n y += code[i++];\n break;\n }\n\n points[j].y = y;\n }\n\n var startPoint = 0;\n\n for (i = 0; i < numberOfContours; i++) {\n var endPoint = endPtsOfContours[i];\n var contour = points.slice(startPoint, endPoint + 1);\n\n if (contour[0].flags & 1) {\n contour.push(contour[0]);\n } else if (contour[contour.length - 1].flags & 1) {\n contour.unshift(contour[contour.length - 1]);\n } else {\n var p = {\n flags: 1,\n x: (contour[0].x + contour[contour.length - 1].x) / 2,\n y: (contour[0].y + contour[contour.length - 1].y) / 2\n };\n contour.unshift(p);\n contour.push(p);\n }\n\n moveTo(contour[0].x, contour[0].y);\n\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n j++;\n } else {\n quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);\n }\n }\n\n startPoint = endPoint + 1;\n }\n }\n }\n\n function compileCharString(charStringCode, cmds, font, glyphId) {\n function moveTo(x, y) {\n cmds.push({\n cmd: \"moveTo\",\n args: [x, y]\n });\n }\n\n function lineTo(x, y) {\n cmds.push({\n cmd: \"lineTo\",\n args: [x, y]\n });\n }\n\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({\n cmd: \"bezierCurveTo\",\n args: [x1, y1, x2, y2, x, y]\n });\n }\n\n var stack = [];\n var x = 0,\n y = 0;\n var stems = 0;\n\n function parse(code) {\n var i = 0;\n\n while (i < code.length) {\n var stackClean = false;\n var v = code[i++];\n var xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n\n switch (v) {\n case 1:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 3:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 4:\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n\n case 5:\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n\n break;\n\n case 6:\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n y += stack.shift();\n lineTo(x, y);\n }\n\n break;\n\n case 7:\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n x += stack.shift();\n lineTo(x, y);\n }\n\n break;\n\n case 8:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n case 10:\n n = stack.pop();\n subrCode = null;\n\n if (font.isCFFCIDFont) {\n const fdIndex = font.fdSelect.getFDIndex(glyphId);\n\n if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n const fontDict = font.fdArray[fdIndex];\n let subrs;\n\n if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n subrs = fontDict.privateDict.subrsIndex.objects;\n }\n\n if (subrs) {\n n += getSubroutineBias(subrs);\n subrCode = subrs[n];\n }\n } else {\n (0, _util.warn)(\"Invalid fd index for glyph index.\");\n }\n } else {\n subrCode = font.subrs[n + font.subrsBias];\n }\n\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n\n case 11:\n return;\n\n case 12:\n v = code[i++];\n\n switch (v) {\n case 34:\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y1 = y + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y, xb, y1, x, y1);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y, x, y);\n break;\n\n case 35:\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n stack.pop();\n break;\n\n case 36:\n xa = x + stack.shift();\n y1 = y + stack.shift();\n xb = xa + stack.shift();\n y2 = y1 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y2, x, y2);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y3 = y2 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y2, xb, y3, x, y);\n break;\n\n case 37:\n var x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n\n default:\n throw new _util.FormatError(`unknown operator: 12 ${v}`);\n }\n\n break;\n\n case 14:\n if (stack.length >= 4) {\n var achar = stack.pop();\n var bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({\n cmd: \"save\"\n });\n cmds.push({\n cmd: \"translate\",\n args: [x, y]\n });\n var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n cmds.push({\n cmd: \"restore\"\n });\n cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n }\n\n return;\n\n case 18:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 19:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n\n case 20:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n\n case 21:\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n\n case 22:\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n\n case 23:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n\n case 24:\n while (stack.length > 2) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n\n case 25:\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n\n case 26:\n if (stack.length % 2) {\n x += stack.shift();\n }\n\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n case 27:\n if (stack.length % 2) {\n y += stack.shift();\n }\n\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n case 28:\n stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n i += 2;\n break;\n\n case 29:\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n\n case 30:\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n case 31:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n\n if (stack.length === 0) {\n break;\n }\n\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n\n break;\n\n default:\n if (v < 32) {\n throw new _util.FormatError(`unknown operator: ${v}`);\n }\n\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n i += 4;\n }\n\n break;\n }\n\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n\n parse(charStringCode);\n }\n\n const NOOP = [];\n\n class CompiledFont {\n constructor(fontMatrix) {\n if (this.constructor === CompiledFont) {\n (0, _util.unreachable)(\"Cannot initialize CompiledFont.\");\n }\n\n this.fontMatrix = fontMatrix;\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n }\n\n getPathJs(unicode) {\n const cmap = lookupCmap(this.cmap, unicode);\n let fn = this.compiledGlyphs[cmap.glyphId];\n\n if (!fn) {\n fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId);\n this.compiledGlyphs[cmap.glyphId] = fn;\n }\n\n if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) {\n this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId;\n }\n\n return fn;\n }\n\n compileGlyph(code, glyphId) {\n if (!code || code.length === 0 || code[0] === 14) {\n return NOOP;\n }\n\n let fontMatrix = this.fontMatrix;\n\n if (this.isCFFCIDFont) {\n const fdIndex = this.fdSelect.getFDIndex(glyphId);\n\n if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n const fontDict = this.fdArray[fdIndex];\n fontMatrix = fontDict.getByName(\"FontMatrix\") || _util.FONT_IDENTITY_MATRIX;\n } else {\n (0, _util.warn)(\"Invalid fd index for glyph index.\");\n }\n }\n\n const cmds = [];\n cmds.push({\n cmd: \"save\"\n });\n cmds.push({\n cmd: \"transform\",\n args: fontMatrix.slice()\n });\n cmds.push({\n cmd: \"scale\",\n args: [\"size\", \"-size\"]\n });\n this.compileGlyphImpl(code, cmds, glyphId);\n cmds.push({\n cmd: \"restore\"\n });\n return cmds;\n }\n\n compileGlyphImpl() {\n (0, _util.unreachable)(\"Children classes should implement this.\");\n }\n\n hasBuiltPath(unicode) {\n const cmap = lookupCmap(this.cmap, unicode);\n return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined;\n }\n\n }\n\n class TrueTypeCompiled extends CompiledFont {\n constructor(glyphs, cmap, fontMatrix) {\n super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n this.glyphs = glyphs;\n this.cmap = cmap;\n }\n\n compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n\n }\n\n class Type2Compiled extends CompiledFont {\n constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n this.gsubrsBias = getSubroutineBias(this.gsubrs);\n this.subrsBias = getSubroutineBias(this.subrs);\n this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n this.fdSelect = cffInfo.fdSelect;\n this.fdArray = cffInfo.fdArray;\n }\n\n compileGlyphImpl(code, cmds, glyphId) {\n compileCharString(code, cmds, this, glyphId);\n }\n\n }\n\n return {\n create: function FontRendererFactory_create(font, seacAnalysisEnabled) {\n var data = new Uint8Array(font.data);\n var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n var numTables = getUshort(data, 4);\n\n for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n var tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n var offset = getLong(data, p + 8);\n var length = getLong(data, p + 12);\n\n switch (tag) {\n case \"cmap\":\n cmap = parseCmap(data, offset, offset + length);\n break;\n\n case \"glyf\":\n glyf = data.subarray(offset, offset + length);\n break;\n\n case \"loca\":\n loca = data.subarray(offset, offset + length);\n break;\n\n case \"head\":\n unitsPerEm = getUshort(data, offset + 18);\n indexToLocFormat = getUshort(data, offset + 50);\n break;\n\n case \"CFF \":\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n\n if (glyf) {\n var fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n }\n\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n };\n}();\n\nexports.FontRendererFactory = FontRendererFactory;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Type1Parser = void 0;\n\nvar _encodings = __w_pdfjs_require__(32);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar HINTING_ENABLED = false;\n\nvar Type1CharString = function Type1CharStringClosure() {\n var COMMAND_MAP = {\n hstem: [1],\n vstem: [3],\n vmoveto: [4],\n rlineto: [5],\n hlineto: [6],\n vlineto: [7],\n rrcurveto: [8],\n callsubr: [10],\n flex: [12, 35],\n drop: [12, 18],\n endchar: [14],\n rmoveto: [21],\n hmoveto: [22],\n vhcurveto: [30],\n hvcurveto: [31]\n };\n\n function Type1CharString() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n\n Type1CharString.prototype = {\n convert: function Type1CharString_convert(encoded, subrs, seacAnalysisEnabled) {\n var count = encoded.length;\n var error = false;\n var wx, sbx, subrNumber;\n\n for (var i = 0; i < count; i++) {\n var value = encoded[i];\n\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n\n switch (value) {\n case 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n\n case 3:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n\n case 4:\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n\n var dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n\n case 5:\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n\n case 6:\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n\n case 7:\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n\n case 8:\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n\n case 9:\n this.stack = [];\n break;\n\n case 10:\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n\n subrNumber = this.stack.pop();\n\n if (!subrs[subrNumber]) {\n error = true;\n break;\n }\n\n error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n break;\n\n case 11:\n return error;\n\n case 13:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n\n wx = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx);\n error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n break;\n\n case 14:\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n\n case 21:\n if (this.flexing) {\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n\n case 22:\n if (this.flexing) {\n this.stack.push(0);\n break;\n }\n\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n\n case 30:\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n\n case 31:\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n\n case (12 << 8) + 0:\n this.stack = [];\n break;\n\n case (12 << 8) + 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n\n case (12 << 8) + 2:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n\n case (12 << 8) + 6:\n if (seacAnalysisEnabled) {\n this.seac = this.stack.splice(-4, 4);\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n\n break;\n\n case (12 << 8) + 7:\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n\n this.stack.pop();\n wx = this.stack.pop();\n var sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n\n case (12 << 8) + 12:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n\n var num2 = this.stack.pop();\n var num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n\n case (12 << 8) + 16:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n\n subrNumber = this.stack.pop();\n var numArgs = this.stack.pop();\n\n if (subrNumber === 0 && numArgs === 3) {\n var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]);\n error = this.executeCommand(13, COMMAND_MAP.flex, true);\n this.flexing = false;\n this.stack.push(flexArgs[15], flexArgs[16]);\n } else if (subrNumber === 1 && numArgs === 0) {\n this.flexing = true;\n }\n\n break;\n\n case (12 << 8) + 17:\n break;\n\n case (12 << 8) + 33:\n this.stack = [];\n break;\n\n default:\n (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n\n if (error) {\n break;\n }\n\n continue;\n } else if (value <= 246) {\n value = value - 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n }\n\n this.stack.push(value);\n }\n\n return error;\n },\n\n executeCommand(howManyArgs, command, keepStack) {\n var stackLength = this.stack.length;\n\n if (howManyArgs > stackLength) {\n return true;\n }\n\n var start = stackLength - howManyArgs;\n\n for (var i = start; i < stackLength; i++) {\n var value = this.stack[i];\n\n if (Number.isInteger(value)) {\n this.output.push(28, value >> 8 & 0xff, value & 0xff);\n } else {\n value = 65536 * value | 0;\n this.output.push(255, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n }\n }\n\n this.output.push.apply(this.output, command);\n\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n\n return false;\n }\n\n };\n return Type1CharString;\n}();\n\nvar Type1Parser = function Type1ParserClosure() {\n var EEXEC_ENCRYPT_KEY = 55665;\n var CHAR_STRS_ENCRYPT_KEY = 4330;\n\n function isHexDigit(code) {\n return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n }\n\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n\n var r = key | 0,\n c1 = 52845,\n c2 = 22719,\n i,\n j;\n\n for (i = 0; i < discardNumber; i++) {\n r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n }\n\n var count = data.length - discardNumber;\n var decrypted = new Uint8Array(count);\n\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n var value = data[i];\n decrypted[j] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n\n return decrypted;\n }\n\n function decryptAscii(data, key, discardNumber) {\n var r = key | 0,\n c1 = 52845,\n c2 = 22719;\n var count = data.length,\n maybeLength = count >>> 1;\n var decrypted = new Uint8Array(maybeLength);\n var i, j;\n\n for (i = 0, j = 0; i < count; i++) {\n var digit1 = data[i];\n\n if (!isHexDigit(digit1)) {\n continue;\n }\n\n i++;\n var digit2;\n\n while (i < count && !isHexDigit(digit2 = data[i])) {\n i++;\n }\n\n if (i < count) {\n var value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n }\n\n return decrypted.slice(discardNumber, j);\n }\n\n function isSpecial(c) {\n return c === 0x2f || c === 0x5b || c === 0x5d || c === 0x7b || c === 0x7d || c === 0x28 || c === 0x29;\n }\n\n function Type1Parser(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n var data = stream.getBytes();\n var isBinary = !((isHexDigit(data[0]) || (0, _core_utils.isWhiteSpace)(data[0])) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7]));\n stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n }\n\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n this.stream = stream;\n this.nextChar();\n }\n\n Type1Parser.prototype = {\n readNumberArray: function Type1Parser_readNumberArray() {\n this.getToken();\n var array = [];\n\n while (true) {\n var token = this.getToken();\n\n if (token === null || token === \"]\" || token === \"}\") {\n break;\n }\n\n array.push(parseFloat(token || 0));\n }\n\n return array;\n },\n readNumber: function Type1Parser_readNumber() {\n var token = this.getToken();\n return parseFloat(token || 0);\n },\n readInt: function Type1Parser_readInt() {\n var token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n },\n readBoolean: function Type1Parser_readBoolean() {\n var token = this.getToken();\n return token === \"true\" ? 1 : 0;\n },\n nextChar: function Type1_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n getToken: function Type1Parser_getToken() {\n var comment = false;\n var ch = this.currentChar;\n\n while (true) {\n if (ch === -1) {\n return null;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (!(0, _core_utils.isWhiteSpace)(ch)) {\n break;\n }\n\n ch = this.nextChar();\n }\n\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n\n var token = \"\";\n\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !(0, _core_utils.isWhiteSpace)(ch) && !isSpecial(ch));\n\n return token;\n },\n readCharStrings: function Type1Parser_readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n return bytes;\n }\n\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n },\n extractFontProgram: function Type1Parser_extractFontProgram(properties) {\n var stream = this.stream;\n var subrs = [],\n charstrings = [];\n var privateData = Object.create(null);\n privateData.lenIV = 4;\n var program = {\n subrs: [],\n charstrings: [],\n properties: {\n privateData\n }\n };\n var token, length, data, lenIV, encoded;\n\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n\n token = this.getToken();\n\n switch (token) {\n case \"CharStrings\":\n this.getToken();\n this.getToken();\n this.getToken();\n this.getToken();\n\n while (true) {\n token = this.getToken();\n\n if (token === null || token === \"end\") {\n break;\n }\n\n if (token !== \"/\") {\n continue;\n }\n\n var glyph = this.getToken();\n length = this.readInt();\n this.getToken();\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken();\n\n if (token === \"noaccess\") {\n this.getToken();\n }\n\n charstrings.push({\n glyph,\n encoded\n });\n }\n\n break;\n\n case \"Subrs\":\n this.readInt();\n this.getToken();\n\n while (this.getToken() === \"dup\") {\n const index = this.readInt();\n length = this.readInt();\n this.getToken();\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken();\n\n if (token === \"noaccess\") {\n this.getToken();\n }\n\n subrs[index] = encoded;\n }\n\n break;\n\n case \"BlueValues\":\n case \"OtherBlues\":\n case \"FamilyBlues\":\n case \"FamilyOtherBlues\":\n var blueArray = this.readNumberArray();\n\n if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n program.properties.privateData[token] = blueArray;\n }\n\n break;\n\n case \"StemSnapH\":\n case \"StemSnapV\":\n program.properties.privateData[token] = this.readNumberArray();\n break;\n\n case \"StdHW\":\n case \"StdVW\":\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n\n case \"BlueShift\":\n case \"lenIV\":\n case \"BlueFuzz\":\n case \"BlueScale\":\n case \"LanguageGroup\":\n case \"ExpansionFactor\":\n program.properties.privateData[token] = this.readNumber();\n break;\n\n case \"ForceBold\":\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n\n for (var i = 0; i < charstrings.length; i++) {\n glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n var charString = new Type1CharString();\n var error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n var output = charString.output;\n\n if (error) {\n output = [14];\n }\n\n const charStringObject = {\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac\n };\n\n if (glyph === \".notdef\") {\n program.charstrings.unshift(charStringObject);\n } else {\n program.charstrings.push(charStringObject);\n }\n\n if (properties.builtInEncoding) {\n const index = properties.builtInEncoding.indexOf(glyph);\n\n if (index > -1 && properties.widths[index] === undefined && index >= properties.firstChar && index <= properties.lastChar) {\n properties.widths[index] = charString.width;\n }\n }\n }\n\n return program;\n },\n extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n var token;\n\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n\n token = this.getToken();\n\n switch (token) {\n case \"FontMatrix\":\n var matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n\n case \"Encoding\":\n var encodingArg = this.getToken();\n var encoding;\n\n if (!/^\\d+$/.test(encodingArg)) {\n encoding = (0, _encodings.getEncoding)(encodingArg);\n } else {\n encoding = [];\n var size = parseInt(encodingArg, 10) | 0;\n this.getToken();\n\n for (var j = 0; j < size; j++) {\n token = this.getToken();\n\n while (token !== \"dup\" && token !== \"def\") {\n token = this.getToken();\n\n if (token === null) {\n return;\n }\n }\n\n if (token === \"def\") {\n break;\n }\n\n var index = this.readInt();\n this.getToken();\n var glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken();\n }\n }\n\n properties.builtInEncoding = encoding;\n break;\n\n case \"FontBBox\":\n var fontBBox = this.readNumberArray();\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n };\n return Type1Parser;\n}();\n\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTilingPatternIR = getTilingPatternIR;\nexports.Pattern = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7\n};\n\nvar Pattern = function PatternClosure() {\n function Pattern() {\n (0, _util.unreachable)(\"should not call Pattern constructor\");\n }\n\n Pattern.prototype = {\n getPattern: function Pattern_getPattern(ctx) {\n (0, _util.unreachable)(`Should not call Pattern.getStyle: ${ctx}`);\n }\n };\n\n Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory) {\n var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading;\n var type = dict.get(\"ShadingType\");\n\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory);\n\n case ShadingType.FREE_FORM_MESH:\n case ShadingType.LATTICE_FORM_MESH:\n case ShadingType.COONS_PATCH_MESH:\n case ShadingType.TENSOR_PATCH_MESH:\n return new Shadings.Mesh(shading, matrix, xref, res, pdfFunctionFactory);\n\n default:\n throw new _util.FormatError(\"Unsupported ShadingType: \" + type);\n }\n } catch (ex) {\n if (ex instanceof _core_utils.MissingDataException) {\n throw ex;\n }\n\n handler.send(\"UnsupportedFeature\", {\n featureId: _util.UNSUPPORTED_FEATURES.shadingPattern\n });\n (0, _util.warn)(ex);\n return new Shadings.Dummy();\n }\n };\n\n return Pattern;\n}();\n\nexports.Pattern = Pattern;\nvar Shadings = {};\nShadings.SMALL_NUMBER = 1e-6;\n\nShadings.RadialAxial = function RadialAxialClosure() {\n function RadialAxial(dict, matrix, xref, res, pdfFunctionFactory) {\n this.matrix = matrix;\n this.coordsArr = dict.getArray(\"Coords\");\n this.shadingType = dict.get(\"ShadingType\");\n this.type = \"Pattern\";\n var cs = dict.get(\"ColorSpace\", \"CS\");\n cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n this.cs = cs;\n const bbox = dict.getArray(\"BBox\");\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = _util.Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n var t0 = 0.0,\n t1 = 1.0;\n\n if (dict.has(\"Domain\")) {\n var domainArr = dict.getArray(\"Domain\");\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n\n var extendStart = false,\n extendEnd = false;\n\n if (dict.has(\"Extend\")) {\n var extendArr = dict.getArray(\"Extend\");\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n\n if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n var x1 = this.coordsArr[0];\n var y1 = this.coordsArr[1];\n var r1 = this.coordsArr[2];\n var x2 = this.coordsArr[3];\n var y2 = this.coordsArr[4];\n var r2 = this.coordsArr[5];\n var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n (0, _util.warn)(\"Unsupported radial gradient.\");\n }\n }\n\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n var fnObj = dict.get(\"Function\");\n var fn = pdfFunctionFactory.createFromArray(fnObj);\n const NUMBER_OF_SAMPLES = 10;\n const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n var colorStops = this.colorStops = [];\n\n if (t0 >= t1 || step <= 0) {\n (0, _util.info)(\"Bad shading domain.\");\n return;\n }\n\n var color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n var rgbColor;\n\n for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {\n ratio[0] = t0 + i * step;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n\n var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n\n colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n }\n\n var background = \"transparent\";\n\n if (dict.has(\"Background\")) {\n rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n\n if (!extendStart) {\n colorStops.unshift([0, background]);\n colorStops[1][0] += Shadings.SMALL_NUMBER;\n }\n\n if (!extendEnd) {\n colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n\n this.colorStops = colorStops;\n }\n\n RadialAxial.prototype = {\n getIR: function RadialAxial_getIR() {\n var coordsArr = this.coordsArr;\n var shadingType = this.shadingType;\n var type, p0, p1, r0, r1;\n\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = \"axial\";\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = \"radial\";\n } else {\n (0, _util.unreachable)(`getPattern type unknown: ${shadingType}`);\n }\n\n var matrix = this.matrix;\n\n if (matrix) {\n p0 = _util.Util.applyTransform(p0, matrix);\n p1 = _util.Util.applyTransform(p1, matrix);\n\n if (shadingType === ShadingType.RADIAL) {\n var scale = _util.Util.singularValueDecompose2dScale(matrix);\n\n r0 *= scale[0];\n r1 *= scale[1];\n }\n }\n\n return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n }\n };\n return RadialAxial;\n}();\n\nShadings.Mesh = function MeshClosure() {\n function MeshStreamReader(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n var numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n var csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n }\n\n MeshStreamReader.prototype = {\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n\n if (this.bufferLength > 0) {\n return true;\n }\n\n var nextByte = this.stream.getByte();\n\n if (nextByte < 0) {\n return false;\n }\n\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n },\n\n readBits: function MeshStreamReader_readBits(n) {\n var buffer = this.buffer;\n var bufferLength = this.bufferLength;\n\n if (n === 32) {\n if (bufferLength === 0) {\n return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n }\n\n buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n var nextByte = this.stream.getByte();\n this.buffer = nextByte & (1 << bufferLength) - 1;\n return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0;\n }\n\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n\n while (bufferLength < n) {\n buffer = buffer << 8 | this.stream.getByte();\n bufferLength += 8;\n }\n\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & (1 << bufferLength) - 1;\n return buffer >> bufferLength;\n },\n align: function MeshStreamReader_align() {\n this.buffer = 0;\n this.bufferLength = 0;\n },\n readFlag: function MeshStreamReader_readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n },\n readCoordinate: function MeshStreamReader_readCoordinate() {\n var bitsPerCoordinate = this.context.bitsPerCoordinate;\n var xi = this.readBits(bitsPerCoordinate);\n var yi = this.readBits(bitsPerCoordinate);\n var decode = this.context.decode;\n var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n },\n readComponents: function MeshStreamReader_readComponents() {\n var numComps = this.context.numComps;\n var bitsPerComponent = this.context.bitsPerComponent;\n var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n var decode = this.context.decode;\n var components = this.tmpCompsBuf;\n\n for (var i = 0, j = 4; i < numComps; i++, j += 2) {\n var ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n\n var color = this.tmpCsCompsBuf;\n\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n\n return this.context.colorSpace.getRgb(color, 0);\n }\n };\n\n function decodeType4Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var operators = [];\n var ps = [];\n var verticesLeft = 0;\n\n while (reader.hasData) {\n var f = reader.readFlag();\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n\n if (verticesLeft === 0) {\n if (!(0 <= f && f <= 2)) {\n throw new _util.FormatError(\"Unknown type4 flag\");\n }\n\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n\n operators.push(f);\n }\n\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n reader.align();\n }\n\n mesh.figures.push({\n type: \"triangles\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps)\n });\n }\n\n function decodeType5Shading(mesh, reader, verticesPerRow) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = [];\n\n while (reader.hasData) {\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n\n mesh.figures.push({\n type: \"lattice\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow\n });\n }\n\n var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n var TRIANGLE_DENSITY = 20;\n\n var getB = function getBClosure() {\n function buildB(count) {\n var lut = [];\n\n for (var i = 0; i <= count; i++) {\n var t = i / count,\n t_ = 1 - t;\n lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n }\n\n return lut;\n }\n\n var cache = [];\n return function getB(count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n\n return cache[count];\n };\n }();\n\n function buildFigureFromPatch(mesh, index) {\n var figure = mesh.figures[index];\n (0, _util.assert)(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n var coords = mesh.coords,\n colors = mesh.colors;\n var pi = figure.coords;\n var ci = figure.colors;\n var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0]));\n splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1]));\n splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\n var verticesPerRow = splitXBy + 1;\n var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n var k = 0;\n var cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n var c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n var bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n\n for (var row = 0; row <= splitYBy; row++) {\n cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n\n for (var col = 0; col <= splitXBy; col++, k++) {\n if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n continue;\n }\n\n var x = 0,\n y = 0;\n var q = 0;\n\n for (var i = 0; i <= 3; i++) {\n for (var j = 0; j <= 3; j++, q++) {\n var m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n var newColor = new Uint8Array(3);\n newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n colors.push(newColor);\n }\n }\n\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n mesh.figures[index] = {\n type: \"lattice\",\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow\n };\n }\n\n function decodeType6Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n\n while (reader.hasData) {\n var f = reader.readFlag();\n\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError(\"Unknown type6 flag\");\n }\n\n var i, ii;\n var pi = coords.length;\n\n for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n\n var ci = colors.length;\n\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n\n var tmp1, tmp2, tmp3, tmp4;\n\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n\n ps[5] = coords.length;\n coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]);\n ps[6] = coords.length;\n coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]);\n ps[9] = coords.length;\n coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]);\n ps[10] = coords.length;\n coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);\n mesh.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps),\n colors: new Int32Array(cs)\n });\n }\n }\n\n function decodeType7Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n\n while (reader.hasData) {\n var f = reader.readFlag();\n\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError(\"Unknown type7 flag\");\n }\n\n var i, ii;\n var pi = coords.length;\n\n for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n\n var ci = colors.length;\n\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n\n var tmp1, tmp2, tmp3, tmp4;\n\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[9] = pi + 13;\n ps[10] = pi + 14;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[5] = pi + 12;\n ps[6] = pi + 15;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n\n mesh.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps),\n colors: new Int32Array(cs)\n });\n }\n }\n\n function updateBounds(mesh) {\n var minX = mesh.coords[0][0],\n minY = mesh.coords[0][1],\n maxX = minX,\n maxY = minY;\n\n for (var i = 1, ii = mesh.coords.length; i < ii; i++) {\n var x = mesh.coords[i][0],\n y = mesh.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n\n mesh.bounds = [minX, minY, maxX, maxY];\n }\n\n function packData(mesh) {\n var i, ii, j, jj;\n var coords = mesh.coords;\n var coordsPacked = new Float32Array(coords.length * 2);\n\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n var xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n\n mesh.coords = coordsPacked;\n var colors = mesh.colors;\n var colorsPacked = new Uint8Array(colors.length * 3);\n\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n var c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n\n mesh.colors = colorsPacked;\n var figures = mesh.figures;\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 for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n\n function Mesh(stream, matrix, xref, res, pdfFunctionFactory) {\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError(\"Mesh data is not a stream\");\n }\n\n var dict = stream.dict;\n this.matrix = matrix;\n this.shadingType = dict.get(\"ShadingType\");\n this.type = \"Pattern\";\n const bbox = dict.getArray(\"BBox\");\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = _util.Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n var cs = dict.get(\"ColorSpace\", \"CS\");\n cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n this.cs = cs;\n this.background = dict.has(\"Background\") ? cs.getRgb(dict.get(\"Background\"), 0) : null;\n var fnObj = dict.get(\"Function\");\n var fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n this.coords = [];\n this.colors = [];\n this.figures = [];\n var decodeContext = {\n bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n bitsPerComponent: dict.get(\"BitsPerComponent\"),\n bitsPerFlag: dict.get(\"BitsPerFlag\"),\n decode: dict.getArray(\"Decode\"),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps\n };\n var reader = new MeshStreamReader(stream, decodeContext);\n var patchMesh = false;\n\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n decodeType4Shading(this, reader);\n break;\n\n case ShadingType.LATTICE_FORM_MESH:\n var verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n\n if (verticesPerRow < 2) {\n throw new _util.FormatError(\"Invalid VerticesPerRow\");\n }\n\n decodeType5Shading(this, reader, verticesPerRow);\n break;\n\n case ShadingType.COONS_PATCH_MESH:\n decodeType6Shading(this, reader);\n patchMesh = true;\n break;\n\n case ShadingType.TENSOR_PATCH_MESH:\n decodeType7Shading(this, reader);\n patchMesh = true;\n break;\n\n default:\n (0, _util.unreachable)(\"Unsupported mesh type.\");\n break;\n }\n\n if (patchMesh) {\n updateBounds(this);\n\n for (var i = 0, ii = this.figures.length; i < ii; i++) {\n buildFigureFromPatch(this, i);\n }\n }\n\n updateBounds(this);\n packData(this);\n }\n\n Mesh.prototype = {\n getIR: function Mesh_getIR() {\n return [\"Mesh\", this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background];\n }\n };\n return Mesh;\n}();\n\nShadings.Dummy = function DummyClosure() {\n function Dummy() {\n this.type = \"Pattern\";\n }\n\n Dummy.prototype = {\n getIR: function Dummy_getIR() {\n return [\"Dummy\"];\n }\n };\n return Dummy;\n}();\n\nfunction getTilingPatternIR(operatorList, dict, args) {\n const matrix = dict.getArray(\"Matrix\");\n\n const bbox = _util.Util.normalizeRect(dict.getArray(\"BBox\"));\n\n const xstep = dict.get(\"XStep\");\n const ystep = dict.get(\"YStep\");\n const paintType = dict.get(\"PaintType\");\n const tilingType = dict.get(\"TilingType\");\n\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new _util.FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n }\n\n return [\"TilingPattern\", args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bidi = bidi;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar baseTypes = [\"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\", \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\", \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\", \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"];\nvar arabicTypes = [\"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\", \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"];\n\nfunction isOdd(i) {\n return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n for (var j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n\n return j;\n}\n\nfunction setValues(arr, start, end, value) {\n for (var j = start; j < end; ++j) {\n arr[j] = value;\n }\n}\n\nfunction reverseValues(arr, start, end) {\n for (var i = start, j = end - 1; i < j; ++i, --j) {\n var temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n let dir = \"ltr\";\n\n if (vertical) {\n dir = \"ttb\";\n } else if (!isLTR) {\n dir = \"rtl\";\n }\n\n return {\n str,\n dir\n };\n}\n\nvar chars = [];\nvar types = [];\n\nfunction bidi(str, startLevel, vertical) {\n var isLTR = true;\n var strLength = str.length;\n\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n\n chars.length = strLength;\n types.length = strLength;\n var numBidi = 0;\n var i, ii;\n\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n var charCode = str.charCodeAt(i);\n var charType = \"L\";\n\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = \"R\";\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n\n if (!charType) {\n (0, _util.warn)(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n charType = \"AL\";\n }\n\n if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n numBidi++;\n }\n\n types[i] = charType;\n }\n\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\n }\n\n if (startLevel === -1) {\n if (numBidi / strLength < 0.3) {\n isLTR = true;\n startLevel = 0;\n } else {\n isLTR = false;\n startLevel = 1;\n }\n }\n\n var levels = [];\n\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n\n var e = isOdd(startLevel) ? \"R\" : \"L\";\n var sor = e;\n var eor = sor;\n var lastType = sor;\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"NSM\") {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n\n lastType = sor;\n var t;\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"EN\") {\n types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n lastType = t;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"AL\") {\n types[i] = \"R\";\n }\n }\n\n for (i = 1; i < strLength - 1; ++i) {\n if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n types[i] = \"EN\";\n }\n\n if (types[i] === \"CS\" && (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") && types[i + 1] === types[i - 1]) {\n types[i] = types[i - 1];\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"EN\") {\n var j;\n\n for (j = i - 1; j >= 0; --j) {\n if (types[j] !== \"ET\") {\n break;\n }\n\n types[j] = \"EN\";\n }\n\n for (j = i + 1; j < strLength; ++j) {\n if (types[j] !== \"ET\") {\n break;\n }\n\n types[j] = \"EN\";\n }\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n types[i] = \"ON\";\n }\n }\n\n lastType = sor;\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (t === \"EN\") {\n types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n } else if (t === \"R\" || t === \"L\") {\n lastType = t;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n var end = findUnequal(types, i + 1, \"ON\");\n var before = sor;\n\n if (i > 0) {\n before = types[i - 1];\n }\n\n var after = eor;\n\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n\n if (before !== \"L\") {\n before = \"R\";\n }\n\n if (after !== \"L\") {\n after = \"R\";\n }\n\n if (before === after) {\n setValues(types, i, end, before);\n }\n\n i = end - 1;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n types[i] = e;\n }\n }\n\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n\n if (isEven(levels[i])) {\n if (t === \"R\") {\n levels[i] += 1;\n } else if (t === \"AN\" || t === \"EN\") {\n levels[i] += 2;\n }\n } else {\n if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n levels[i] += 1;\n }\n }\n }\n\n var highestLevel = -1;\n var lowestOddLevel = 99;\n var level;\n\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n\n if (highestLevel < level) {\n highestLevel = level;\n }\n\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n var start = -1;\n\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n\n for (i = 0, ii = chars.length; i < ii; ++i) {\n var ch = chars[i];\n\n if (ch === \"<\" || ch === \">\") {\n chars[i] = \"\";\n }\n }\n\n return createBidiText(chars.join(\"\"), isLTR);\n}\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getMetrics = void 0;\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nvar getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.Courier = 600;\n t[\"Courier-Bold\"] = 600;\n t[\"Courier-BoldOblique\"] = 600;\n t[\"Courier-Oblique\"] = 600;\n t.Helvetica = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n t[\"Helvetica-Bold\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n t[\"Helvetica-BoldOblique\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n t[\"Helvetica-Oblique\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n t.Symbol = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.universal = 713;\n t.numbersign = 500;\n t.existential = 549;\n t.percent = 833;\n t.ampersand = 778;\n t.suchthat = 439;\n t.parenleft = 333;\n t.parenright = 333;\n t.asteriskmath = 500;\n t.plus = 549;\n t.comma = 250;\n t.minus = 549;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 549;\n t.equal = 549;\n t.greater = 549;\n t.question = 444;\n t.congruent = 549;\n t.Alpha = 722;\n t.Beta = 667;\n t.Chi = 722;\n t.Delta = 612;\n t.Epsilon = 611;\n t.Phi = 763;\n t.Gamma = 603;\n t.Eta = 722;\n t.Iota = 333;\n t.theta1 = 631;\n t.Kappa = 722;\n t.Lambda = 686;\n t.Mu = 889;\n t.Nu = 722;\n t.Omicron = 722;\n t.Pi = 768;\n t.Theta = 741;\n t.Rho = 556;\n t.Sigma = 592;\n t.Tau = 611;\n t.Upsilon = 690;\n t.sigma1 = 439;\n t.Omega = 768;\n t.Xi = 645;\n t.Psi = 795;\n t.Zeta = 611;\n t.bracketleft = 333;\n t.therefore = 863;\n t.bracketright = 333;\n t.perpendicular = 658;\n t.underscore = 500;\n t.radicalex = 500;\n t.alpha = 631;\n t.beta = 549;\n t.chi = 549;\n t.delta = 494;\n t.epsilon = 439;\n t.phi = 521;\n t.gamma = 411;\n t.eta = 603;\n t.iota = 329;\n t.phi1 = 603;\n t.kappa = 549;\n t.lambda = 549;\n t.mu = 576;\n t.nu = 521;\n t.omicron = 549;\n t.pi = 549;\n t.theta = 521;\n t.rho = 549;\n t.sigma = 603;\n t.tau = 439;\n t.upsilon = 576;\n t.omega1 = 713;\n t.omega = 686;\n t.xi = 493;\n t.psi = 686;\n t.zeta = 494;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.similar = 549;\n t.Euro = 750;\n t.Upsilon1 = 620;\n t.minute = 247;\n t.lessequal = 549;\n t.fraction = 167;\n t.infinity = 713;\n t.florin = 500;\n t.club = 753;\n t.diamond = 753;\n t.heart = 753;\n t.spade = 753;\n t.arrowboth = 1042;\n t.arrowleft = 987;\n t.arrowup = 603;\n t.arrowright = 987;\n t.arrowdown = 603;\n t.degree = 400;\n t.plusminus = 549;\n t.second = 411;\n t.greaterequal = 549;\n t.multiply = 549;\n t.proportional = 713;\n t.partialdiff = 494;\n t.bullet = 460;\n t.divide = 549;\n t.notequal = 549;\n t.equivalence = 549;\n t.approxequal = 549;\n t.ellipsis = 1000;\n t.arrowvertex = 603;\n t.arrowhorizex = 1000;\n t.carriagereturn = 658;\n t.aleph = 823;\n t.Ifraktur = 686;\n t.Rfraktur = 795;\n t.weierstrass = 987;\n t.circlemultiply = 768;\n t.circleplus = 768;\n t.emptyset = 823;\n t.intersection = 768;\n t.union = 768;\n t.propersuperset = 713;\n t.reflexsuperset = 713;\n t.notsubset = 713;\n t.propersubset = 713;\n t.reflexsubset = 713;\n t.element = 713;\n t.notelement = 713;\n t.angle = 768;\n t.gradient = 713;\n t.registerserif = 790;\n t.copyrightserif = 790;\n t.trademarkserif = 890;\n t.product = 823;\n t.radical = 549;\n t.dotmath = 250;\n t.logicalnot = 713;\n t.logicaland = 603;\n t.logicalor = 603;\n t.arrowdblboth = 1042;\n t.arrowdblleft = 987;\n t.arrowdblup = 603;\n t.arrowdblright = 987;\n t.arrowdbldown = 603;\n t.lozenge = 494;\n t.angleleft = 329;\n t.registersans = 790;\n t.copyrightsans = 790;\n t.trademarksans = 786;\n t.summation = 713;\n t.parenlefttp = 384;\n t.parenleftex = 384;\n t.parenleftbt = 384;\n t.bracketlefttp = 384;\n t.bracketleftex = 384;\n t.bracketleftbt = 384;\n t.bracelefttp = 494;\n t.braceleftmid = 494;\n t.braceleftbt = 494;\n t.braceex = 494;\n t.angleright = 329;\n t.integral = 274;\n t.integraltp = 686;\n t.integralex = 686;\n t.integralbt = 686;\n t.parenrighttp = 384;\n t.parenrightex = 384;\n t.parenrightbt = 384;\n t.bracketrighttp = 384;\n t.bracketrightex = 384;\n t.bracketrightbt = 384;\n t.bracerighttp = 494;\n t.bracerightmid = 494;\n t.bracerightbt = 494;\n t.apple = 790;\n });\n t[\"Times-Roman\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 408;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 564;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 564;\n t.equal = 564;\n t.greater = 564;\n t.question = 444;\n t.at = 921;\n t.A = 722;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 556;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 389;\n t.K = 722;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 556;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 722;\n t.W = 944;\n t.X = 722;\n t.Y = 722;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 469;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 444;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 333;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.asciitilde = 541;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 180;\n t.quotedblleft = 444;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 453;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 444;\n t.quotedblright = 444;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 444;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 889;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 444;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 564;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 444;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 444;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 444;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 444;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 444;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 444;\n t.Amacron = 722;\n t.rcaron = 333;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 556;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 588;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 564;\n t.uacute = 500;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 444;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 722;\n t.Iacute = 333;\n t.plusminus = 564;\n t.brokenbar = 200;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 333;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 326;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 444;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 344;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 722;\n t.zdotaccent = 444;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 500;\n t.minus = 564;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 564;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n t[\"Times-Bold\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 1000;\n t.ampersand = 833;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 930;\n t.A = 722;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 778;\n t.L = 667;\n t.M = 944;\n t.N = 722;\n t.O = 778;\n t.P = 611;\n t.Q = 778;\n t.R = 722;\n t.S = 556;\n t.T = 667;\n t.U = 722;\n t.V = 722;\n t.W = 1000;\n t.X = 722;\n t.Y = 722;\n t.Z = 667;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 581;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 556;\n t.c = 444;\n t.d = 556;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 333;\n t.k = 556;\n t.l = 278;\n t.m = 833;\n t.n = 556;\n t.o = 500;\n t.p = 556;\n t.q = 556;\n t.r = 444;\n t.s = 389;\n t.t = 333;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 394;\n t.bar = 220;\n t.braceright = 394;\n t.asciitilde = 520;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 540;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 300;\n t.Lslash = 667;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 330;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 556;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 570;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 667;\n t.Cacute = 722;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 722;\n t.rcaron = 444;\n t.ccedilla = 444;\n t.Zdotaccent = 667;\n t.Thorn = 611;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 556;\n t.dcaron = 672;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 667;\n t.partialdiff = 494;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 778;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 444;\n t.omacron = 500;\n t.Zacute = 667;\n t.Zcaron = 667;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 416;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 300;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 394;\n t.Kcommaaccent = 778;\n t.Lacute = 667;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 667;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 444;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 667;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 444;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 556;\n t.minus = 570;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 333;\n t.logicalnot = 570;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n t[\"Times-BoldItalic\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 389;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 832;\n t.A = 667;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 667;\n t.F = 667;\n t.G = 722;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 667;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 889;\n t.X = 667;\n t.Y = 611;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 570;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 556;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 556;\n t.v = 444;\n t.w = 667;\n t.x = 500;\n t.y = 444;\n t.z = 389;\n t.braceleft = 348;\n t.bar = 220;\n t.braceright = 348;\n t.asciitilde = 570;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 500;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 944;\n t.ordfeminine = 266;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 300;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 611;\n t.divide = 570;\n t.Yacute = 611;\n t.Acircumflex = 667;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 667;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 608;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 444;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 722;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 366;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 576;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 382;\n t.Kcommaaccent = 667;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 500;\n t.minus = 606;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 606;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n t[\"Times-Italic\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 420;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 675;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 675;\n t.equal = 675;\n t.greater = 675;\n t.question = 500;\n t.at = 920;\n t.A = 611;\n t.B = 611;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 611;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 444;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 667;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 611;\n t.S = 500;\n t.T = 556;\n t.U = 722;\n t.V = 611;\n t.W = 833;\n t.X = 611;\n t.Y = 556;\n t.Z = 556;\n t.bracketleft = 389;\n t.backslash = 278;\n t.bracketright = 389;\n t.asciicircum = 422;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 278;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 444;\n t.l = 278;\n t.m = 722;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 444;\n t.w = 667;\n t.x = 444;\n t.y = 444;\n t.z = 389;\n t.braceleft = 400;\n t.bar = 275;\n t.braceright = 400;\n t.asciitilde = 541;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 214;\n t.quotedblleft = 556;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 523;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 556;\n t.quotedblright = 556;\n t.guillemotright = 500;\n t.ellipsis = 889;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 889;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 556;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 667;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 556;\n t.divide = 675;\n t.Yacute = 556;\n t.Acircumflex = 611;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 667;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 556;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 611;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 500;\n t.Amacron = 611;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 556;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 611;\n t.Sacute = 500;\n t.dcaron = 544;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 611;\n t.Abreve = 611;\n t.multiply = 675;\n t.uacute = 500;\n t.Tcaron = 556;\n t.partialdiff = 476;\n t.ydieresis = 444;\n t.Nacute = 667;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 667;\n t.Iacute = 333;\n t.plusminus = 675;\n t.brokenbar = 275;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 556;\n t.Zcaron = 556;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 300;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 611;\n t.Adieresis = 611;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 500;\n t.lcaron = 300;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 500;\n t.Scommaaccent = 500;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 667;\n t.otilde = 500;\n t.Rcommaaccent = 611;\n t.Lcommaaccent = 556;\n t.Atilde = 611;\n t.Aogonek = 611;\n t.Aring = 611;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 444;\n t.minus = 675;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 675;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n t.ZapfDingbats = (0, _core_utils.getLookupTableFactory)(function (t) {\n t.space = 278;\n t.a1 = 974;\n t.a2 = 961;\n t.a202 = 974;\n t.a3 = 980;\n t.a4 = 719;\n t.a5 = 789;\n t.a119 = 790;\n t.a118 = 791;\n t.a117 = 690;\n t.a11 = 960;\n t.a12 = 939;\n t.a13 = 549;\n t.a14 = 855;\n t.a15 = 911;\n t.a16 = 933;\n t.a105 = 911;\n t.a17 = 945;\n t.a18 = 974;\n t.a19 = 755;\n t.a20 = 846;\n t.a21 = 762;\n t.a22 = 761;\n t.a23 = 571;\n t.a24 = 677;\n t.a25 = 763;\n t.a26 = 760;\n t.a27 = 759;\n t.a28 = 754;\n t.a6 = 494;\n t.a7 = 552;\n t.a8 = 537;\n t.a9 = 577;\n t.a10 = 692;\n t.a29 = 786;\n t.a30 = 788;\n t.a31 = 788;\n t.a32 = 790;\n t.a33 = 793;\n t.a34 = 794;\n t.a35 = 816;\n t.a36 = 823;\n t.a37 = 789;\n t.a38 = 841;\n t.a39 = 823;\n t.a40 = 833;\n t.a41 = 816;\n t.a42 = 831;\n t.a43 = 923;\n t.a44 = 744;\n t.a45 = 723;\n t.a46 = 749;\n t.a47 = 790;\n t.a48 = 792;\n t.a49 = 695;\n t.a50 = 776;\n t.a51 = 768;\n t.a52 = 792;\n t.a53 = 759;\n t.a54 = 707;\n t.a55 = 708;\n t.a56 = 682;\n t.a57 = 701;\n t.a58 = 826;\n t.a59 = 815;\n t.a60 = 789;\n t.a61 = 789;\n t.a62 = 707;\n t.a63 = 687;\n t.a64 = 696;\n t.a65 = 689;\n t.a66 = 786;\n t.a67 = 787;\n t.a68 = 713;\n t.a69 = 791;\n t.a70 = 785;\n t.a71 = 791;\n t.a72 = 873;\n t.a73 = 761;\n t.a74 = 762;\n t.a203 = 762;\n t.a75 = 759;\n t.a204 = 759;\n t.a76 = 892;\n t.a77 = 892;\n t.a78 = 788;\n t.a79 = 784;\n t.a81 = 438;\n t.a82 = 138;\n t.a83 = 277;\n t.a84 = 415;\n t.a97 = 392;\n t.a98 = 392;\n t.a99 = 668;\n t.a100 = 668;\n t.a89 = 390;\n t.a90 = 390;\n t.a93 = 317;\n t.a94 = 317;\n t.a91 = 276;\n t.a92 = 276;\n t.a205 = 509;\n t.a85 = 509;\n t.a206 = 410;\n t.a86 = 410;\n t.a87 = 234;\n t.a88 = 234;\n t.a95 = 334;\n t.a96 = 334;\n t.a101 = 732;\n t.a102 = 544;\n t.a103 = 544;\n t.a104 = 910;\n t.a106 = 667;\n t.a107 = 760;\n t.a108 = 760;\n t.a112 = 776;\n t.a111 = 595;\n t.a110 = 694;\n t.a109 = 626;\n t.a120 = 788;\n t.a121 = 788;\n t.a122 = 788;\n t.a123 = 788;\n t.a124 = 788;\n t.a125 = 788;\n t.a126 = 788;\n t.a127 = 788;\n t.a128 = 788;\n t.a129 = 788;\n t.a130 = 788;\n t.a131 = 788;\n t.a132 = 788;\n t.a133 = 788;\n t.a134 = 788;\n t.a135 = 788;\n t.a136 = 788;\n t.a137 = 788;\n t.a138 = 788;\n t.a139 = 788;\n t.a140 = 788;\n t.a141 = 788;\n t.a142 = 788;\n t.a143 = 788;\n t.a144 = 788;\n t.a145 = 788;\n t.a146 = 788;\n t.a147 = 788;\n t.a148 = 788;\n t.a149 = 788;\n t.a150 = 788;\n t.a151 = 788;\n t.a152 = 788;\n t.a153 = 788;\n t.a154 = 788;\n t.a155 = 788;\n t.a156 = 788;\n t.a157 = 788;\n t.a158 = 788;\n t.a159 = 788;\n t.a160 = 894;\n t.a161 = 838;\n t.a163 = 1016;\n t.a164 = 458;\n t.a196 = 748;\n t.a165 = 924;\n t.a192 = 748;\n t.a166 = 918;\n t.a167 = 927;\n t.a168 = 928;\n t.a169 = 928;\n t.a170 = 834;\n t.a171 = 873;\n t.a172 = 828;\n t.a173 = 924;\n t.a162 = 924;\n t.a174 = 917;\n t.a175 = 930;\n t.a176 = 931;\n t.a177 = 463;\n t.a178 = 883;\n t.a179 = 836;\n t.a193 = 836;\n t.a180 = 867;\n t.a199 = 867;\n t.a181 = 696;\n t.a200 = 696;\n t.a182 = 874;\n t.a201 = 874;\n t.a183 = 760;\n t.a184 = 946;\n t.a197 = 771;\n t.a185 = 865;\n t.a194 = 771;\n t.a198 = 888;\n t.a186 = 967;\n t.a195 = 888;\n t.a187 = 831;\n t.a188 = 873;\n t.a189 = 927;\n t.a190 = 970;\n t.a191 = 918;\n });\n});\nexports.getMetrics = getMetrics;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isPDFFunction = isPDFFunction;\nexports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFactory = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _ps_parser = __w_pdfjs_require__(42);\n\nclass PDFFunctionFactory {\n constructor({\n xref,\n isEvalSupported = true\n }) {\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n }\n\n create(fn) {\n return PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn\n });\n }\n\n createFromArray(fnObj) {\n return PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj\n });\n }\n\n}\n\nexports.PDFFunctionFactory = PDFFunctionFactory;\n\nfunction toNumberArray(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n\n const length = arr.length;\n\n for (let i = 0; i < length; i++) {\n if (typeof arr[i] !== \"number\") {\n const result = new Array(length);\n\n for (let j = 0; j < length; j++) {\n result[j] = +arr[j];\n }\n\n return result;\n }\n }\n\n return arr;\n}\n\nvar PDFFunction = function PDFFunctionClosure() {\n const CONSTRUCT_SAMPLED = 0;\n const CONSTRUCT_INTERPOLATED = 2;\n const CONSTRUCT_STICHED = 3;\n const CONSTRUCT_POSTSCRIPT = 4;\n return {\n getSampleArray(size, outputSize, bps, stream) {\n var i, ii;\n var length = 1;\n\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n\n length *= outputSize;\n var array = new Array(length);\n var codeSize = 0;\n var codeBuf = 0;\n var sampleMul = 1.0 / (2.0 ** bps - 1);\n var strBytes = stream.getBytes((length * bps + 7) / 8);\n var strIdx = 0;\n\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n\n return array;\n },\n\n getIR({\n xref,\n isEvalSupported,\n fn\n }) {\n var dict = fn.dict;\n\n if (!dict) {\n dict = fn;\n }\n\n var types = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript];\n var typeNum = dict.get(\"FunctionType\");\n var typeFn = types[typeNum];\n\n if (!typeFn) {\n throw new _util.FormatError(\"Unknown type of function\");\n }\n\n return typeFn.call(this, {\n xref,\n isEvalSupported,\n fn,\n dict\n });\n },\n\n fromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var type = IR[0];\n\n switch (type) {\n case CONSTRUCT_SAMPLED:\n return this.constructSampledFromIR({\n xref,\n isEvalSupported,\n IR\n });\n\n case CONSTRUCT_INTERPOLATED:\n return this.constructInterpolatedFromIR({\n xref,\n isEvalSupported,\n IR\n });\n\n case CONSTRUCT_STICHED:\n return this.constructStichedFromIR({\n xref,\n isEvalSupported,\n IR\n });\n\n default:\n return this.constructPostScriptFromIR({\n xref,\n isEvalSupported,\n IR\n });\n }\n },\n\n parse({\n xref,\n isEvalSupported,\n fn\n }) {\n const IR = this.getIR({\n xref,\n isEvalSupported,\n fn\n });\n return this.fromIR({\n xref,\n isEvalSupported,\n IR\n });\n },\n\n parseArray({\n xref,\n isEvalSupported,\n fnObj\n }) {\n if (!Array.isArray(fnObj)) {\n return this.parse({\n xref,\n isEvalSupported,\n fn: fnObj\n });\n }\n\n var fnArray = [];\n\n for (var j = 0, jj = fnObj.length; j < jj; j++) {\n fnArray.push(this.parse({\n xref,\n isEvalSupported,\n fn: xref.fetchIfRef(fnObj[j])\n }));\n }\n\n return function (src, srcOffset, dest, destOffset) {\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n },\n\n constructSampled({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n function toMultiArray(arr) {\n var inputLength = arr.length;\n var out = [];\n var index = 0;\n\n for (var i = 0; i < inputLength; i += 2) {\n out[index] = [arr[i], arr[i + 1]];\n ++index;\n }\n\n return out;\n }\n\n var domain = toNumberArray(dict.getArray(\"Domain\"));\n var range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain || !range) {\n throw new _util.FormatError(\"No domain or range\");\n }\n\n var inputSize = domain.length / 2;\n var outputSize = range.length / 2;\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n var size = toNumberArray(dict.getArray(\"Size\"));\n var bps = dict.get(\"BitsPerSample\");\n var order = dict.get(\"Order\") || 1;\n\n if (order !== 1) {\n (0, _util.info)(\"No support for cubic spline interpolation: \" + order);\n }\n\n var encode = toNumberArray(dict.getArray(\"Encode\"));\n\n if (!encode) {\n encode = [];\n\n for (var i = 0; i < inputSize; ++i) {\n encode.push([0, size[i] - 1]);\n }\n } else {\n encode = toMultiArray(encode);\n }\n\n var decode = toNumberArray(dict.getArray(\"Decode\"));\n\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n\n var samples = this.getSampleArray(size, outputSize, bps, fn);\n return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, 2 ** bps - 1, range];\n },\n\n constructSampledFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n\n return function constructSampledFromIRResult(src, srcOffset, dest, destOffset) {\n var m = IR[1];\n var domain = IR[2];\n var encode = IR[3];\n var decode = IR[4];\n var samples = IR[5];\n var size = IR[6];\n var n = IR[7];\n var range = IR[9];\n var cubeVertices = 1 << m;\n var cubeN = new Float64Array(cubeVertices);\n var cubeVertex = new Uint32Array(cubeVertices);\n var i, j;\n\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n\n var k = n,\n pos = 1;\n\n for (i = 0; i < m; ++i) {\n var domain_2i = domain[i][0];\n var domain_2i_1 = domain[i][1];\n var xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1);\n var e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]);\n var size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n var e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n var n0 = e0 + 1 - e;\n var n1 = e - e0;\n var offset0 = e0 * k;\n var offset1 = offset0 + k;\n\n for (j = 0; j < cubeVertices; j++) {\n if (j & pos) {\n cubeN[j] *= n1;\n cubeVertex[j] += offset1;\n } else {\n cubeN[j] *= n0;\n cubeVertex[j] += offset0;\n }\n }\n\n k *= size_i;\n pos <<= 1;\n }\n\n for (j = 0; j < n; ++j) {\n var rj = 0;\n\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n },\n\n constructInterpolated({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n var c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n var c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n var n = dict.get(\"N\");\n var length = c0.length;\n var diff = [];\n\n for (var i = 0; i < length; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n\n return [CONSTRUCT_INTERPOLATED, c0, diff, n];\n },\n\n constructInterpolatedFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var c0 = IR[1];\n var diff = IR[2];\n var n = IR[3];\n var length = diff.length;\n return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) {\n var x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n for (var j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n },\n\n constructStiched({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n var domain = toNumberArray(dict.getArray(\"Domain\"));\n\n if (!domain) {\n throw new _util.FormatError(\"No domain\");\n }\n\n var inputSize = domain.length / 2;\n\n if (inputSize !== 1) {\n throw new _util.FormatError(\"Bad domain for stiched function\");\n }\n\n var fnRefs = dict.get(\"Functions\");\n var fns = [];\n\n for (var i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(this.parse({\n xref,\n isEvalSupported,\n fn: xref.fetchIfRef(fnRefs[i])\n }));\n }\n\n var bounds = toNumberArray(dict.getArray(\"Bounds\"));\n var encode = toNumberArray(dict.getArray(\"Encode\"));\n return [CONSTRUCT_STICHED, domain, bounds, encode, fns];\n },\n\n constructStichedFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var domain = IR[1];\n var bounds = IR[2];\n var encode = IR[3];\n var fns = IR[4];\n var tmpBuf = new Float32Array(1);\n return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) {\n var clip = function constructStichedFromIRClip(v, min, max) {\n if (v > max) {\n v = max;\n } else if (v < min) {\n v = min;\n }\n\n return v;\n };\n\n var v = clip(src[srcOffset], domain[0], domain[1]);\n\n for (var i = 0, ii = bounds.length; i < ii; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n\n var dmin = domain[0];\n\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n\n var dmax = domain[1];\n\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n\n var rmin = encode[2 * i];\n var rmax = encode[2 * i + 1];\n tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n },\n\n constructPostScript({\n xref,\n isEvalSupported,\n fn,\n dict\n }) {\n var domain = toNumberArray(dict.getArray(\"Domain\"));\n var range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain) {\n throw new _util.FormatError(\"No domain.\");\n }\n\n if (!range) {\n throw new _util.FormatError(\"No range.\");\n }\n\n var lexer = new _ps_parser.PostScriptLexer(fn);\n var parser = new _ps_parser.PostScriptParser(lexer);\n var code = parser.parse();\n return [CONSTRUCT_POSTSCRIPT, domain, range, code];\n },\n\n constructPostScriptFromIR({\n xref,\n isEvalSupported,\n IR\n }) {\n var domain = IR[1];\n var range = IR[2];\n var code = IR[3];\n\n if (isEvalSupported && _util.IsEvalSupportedCached.value) {\n const compiled = new PostScriptCompiler().compile(code, domain, range);\n\n if (compiled) {\n return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n }\n }\n\n (0, _util.info)(\"Unable to compile PS function\");\n var numOutputs = range.length >> 1;\n var numInputs = domain.length >> 1;\n var evaluator = new PostScriptEvaluator(code);\n var cache = Object.create(null);\n var MAX_CACHE_SIZE = 2048 * 4;\n var cache_available = MAX_CACHE_SIZE;\n var tmpBuf = new Float32Array(numInputs);\n return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) {\n var i, value;\n var key = \"\";\n var input = tmpBuf;\n\n for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + \"_\";\n }\n\n var cachedValue = cache[key];\n\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n\n var output = new Float32Array(numOutputs);\n var stack = evaluator.execute(input);\n var stackIndex = stack.length - numOutputs;\n\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n var bound = range[i * 2];\n\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n\n if (value > bound) {\n value = bound;\n }\n }\n\n output[i] = value;\n }\n\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n\n dest.set(output, destOffset);\n };\n }\n\n };\n}();\n\nfunction isPDFFunction(v) {\n var fnDict;\n\n if (typeof v !== \"object\") {\n return false;\n } else if ((0, _primitives.isDict)(v)) {\n fnDict = v;\n } else if ((0, _primitives.isStream)(v)) {\n fnDict = v.dict;\n } else {\n return false;\n }\n\n return fnDict.has(\"FunctionType\");\n}\n\nvar PostScriptStack = function PostScriptStackClosure() {\n var MAX_STACK_SIZE = 100;\n\n function PostScriptStack(initialStack) {\n this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n }\n\n PostScriptStack.prototype = {\n push: function PostScriptStack_push(value) {\n if (this.stack.length >= MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n\n this.stack.push(value);\n },\n pop: function PostScriptStack_pop() {\n if (this.stack.length <= 0) {\n throw new Error(\"PostScript function stack underflow.\");\n }\n\n return this.stack.pop();\n },\n copy: function PostScriptStack_copy(n) {\n if (this.stack.length + n >= MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n\n var stack = this.stack;\n\n for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n },\n index: function PostScriptStack_index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n },\n roll: function PostScriptStack_roll(n, p) {\n var stack = this.stack;\n var l = stack.length - n;\n var r = stack.length - 1,\n c = l + (p - Math.floor(p / n) * n),\n i,\n j,\n t;\n\n for (i = l, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n\n for (i = l, j = c - 1; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n\n for (i = c, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n };\n return PostScriptStack;\n}();\n\nvar PostScriptEvaluator = function PostScriptEvaluatorClosure() {\n function PostScriptEvaluator(operators) {\n this.operators = operators;\n }\n\n PostScriptEvaluator.prototype = {\n execute: function PostScriptEvaluator_execute(initialStack) {\n var stack = new PostScriptStack(initialStack);\n var counter = 0;\n var operators = this.operators;\n var length = operators.length;\n var operator, a, b;\n\n while (counter < length) {\n operator = operators[counter++];\n\n if (typeof operator === \"number\") {\n stack.push(operator);\n continue;\n }\n\n switch (operator) {\n case \"jz\":\n b = stack.pop();\n a = stack.pop();\n\n if (!a) {\n counter = b;\n }\n\n break;\n\n case \"j\":\n a = stack.pop();\n counter = a;\n break;\n\n case \"abs\":\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n\n case \"add\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n\n case \"and\":\n b = stack.pop();\n a = stack.pop();\n\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n\n break;\n\n case \"atan\":\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n\n case \"bitshift\":\n b = stack.pop();\n a = stack.pop();\n\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n\n break;\n\n case \"ceiling\":\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n\n case \"copy\":\n a = stack.pop();\n stack.copy(a);\n break;\n\n case \"cos\":\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n\n case \"cvi\":\n a = stack.pop() | 0;\n stack.push(a);\n break;\n\n case \"cvr\":\n break;\n\n case \"div\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n\n case \"dup\":\n stack.copy(1);\n break;\n\n case \"eq\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n\n case \"exch\":\n stack.roll(2, 1);\n break;\n\n case \"exp\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a ** b);\n break;\n\n case \"false\":\n stack.push(false);\n break;\n\n case \"floor\":\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n\n case \"ge\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n\n case \"gt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n\n case \"idiv\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b | 0);\n break;\n\n case \"index\":\n a = stack.pop();\n stack.index(a);\n break;\n\n case \"le\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n\n case \"ln\":\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n\n case \"log\":\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n\n case \"lt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n\n case \"mod\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n\n case \"mul\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n\n case \"ne\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n\n case \"neg\":\n a = stack.pop();\n stack.push(-a);\n break;\n\n case \"not\":\n a = stack.pop();\n\n if ((0, _util.isBool)(a)) {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n\n break;\n\n case \"or\":\n b = stack.pop();\n a = stack.pop();\n\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n\n break;\n\n case \"pop\":\n stack.pop();\n break;\n\n case \"roll\":\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n\n case \"round\":\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n\n case \"sin\":\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n\n case \"sqrt\":\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n\n case \"sub\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n\n case \"true\":\n stack.push(true);\n break;\n\n case \"truncate\":\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n\n case \"xor\":\n b = stack.pop();\n a = stack.pop();\n\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n\n break;\n\n default:\n throw new _util.FormatError(`Unknown operator ${operator}`);\n }\n }\n\n return stack.stack;\n }\n };\n return PostScriptEvaluator;\n}();\n\nexports.PostScriptEvaluator = PostScriptEvaluator;\n\nvar PostScriptCompiler = function PostScriptCompilerClosure() {\n function AstNode(type) {\n this.type = type;\n }\n\n AstNode.prototype.visit = function (visitor) {\n (0, _util.unreachable)(\"abstract method\");\n };\n\n function AstArgument(index, min, max) {\n AstNode.call(this, \"args\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n AstArgument.prototype = Object.create(AstNode.prototype);\n\n AstArgument.prototype.visit = function (visitor) {\n visitor.visitArgument(this);\n };\n\n function AstLiteral(number) {\n AstNode.call(this, \"literal\");\n this.number = number;\n this.min = number;\n this.max = number;\n }\n\n AstLiteral.prototype = Object.create(AstNode.prototype);\n\n AstLiteral.prototype.visit = function (visitor) {\n visitor.visitLiteral(this);\n };\n\n function AstBinaryOperation(op, arg1, arg2, min, max) {\n AstNode.call(this, \"binary\");\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n\n AstBinaryOperation.prototype = Object.create(AstNode.prototype);\n\n AstBinaryOperation.prototype.visit = function (visitor) {\n visitor.visitBinaryOperation(this);\n };\n\n function AstMin(arg, max) {\n AstNode.call(this, \"max\");\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n\n AstMin.prototype = Object.create(AstNode.prototype);\n\n AstMin.prototype.visit = function (visitor) {\n visitor.visitMin(this);\n };\n\n function AstVariable(index, min, max) {\n AstNode.call(this, \"var\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n AstVariable.prototype = Object.create(AstNode.prototype);\n\n AstVariable.prototype.visit = function (visitor) {\n visitor.visitVariable(this);\n };\n\n function AstVariableDefinition(variable, arg) {\n AstNode.call(this, \"definition\");\n this.variable = variable;\n this.arg = arg;\n }\n\n AstVariableDefinition.prototype = Object.create(AstNode.prototype);\n\n AstVariableDefinition.prototype.visit = function (visitor) {\n visitor.visitVariableDefinition(this);\n };\n\n function ExpressionBuilderVisitor() {\n this.parts = [];\n }\n\n ExpressionBuilderVisitor.prototype = {\n visitArgument(arg) {\n this.parts.push(\"Math.max(\", arg.min, \", Math.min(\", arg.max, \", src[srcOffset + \", arg.index, \"]))\");\n },\n\n visitVariable(variable) {\n this.parts.push(\"v\", variable.index);\n },\n\n visitLiteral(literal) {\n this.parts.push(literal.number);\n },\n\n visitBinaryOperation(operation) {\n this.parts.push(\"(\");\n operation.arg1.visit(this);\n this.parts.push(\" \", operation.op, \" \");\n operation.arg2.visit(this);\n this.parts.push(\")\");\n },\n\n visitVariableDefinition(definition) {\n this.parts.push(\"var \");\n definition.variable.visit(this);\n this.parts.push(\" = \");\n definition.arg.visit(this);\n this.parts.push(\";\");\n },\n\n visitMin(max) {\n this.parts.push(\"Math.min(\");\n max.arg.visit(this);\n this.parts.push(\", \", max.max, \")\");\n },\n\n toString() {\n return this.parts.join(\"\");\n }\n\n };\n\n function buildAddOperation(num1, num2) {\n if (num2.type === \"literal\" && num2.number === 0) {\n return num1;\n }\n\n if (num1.type === \"literal\" && num1.number === 0) {\n return num2;\n }\n\n if (num2.type === \"literal\" && num1.type === \"literal\") {\n return new AstLiteral(num1.number + num2.number);\n }\n\n return new AstBinaryOperation(\"+\", num1, num2, num1.min + num2.min, num1.max + num2.max);\n }\n\n function buildMulOperation(num1, num2) {\n if (num2.type === \"literal\") {\n if (num2.number === 0) {\n return new AstLiteral(0);\n } else if (num2.number === 1) {\n return num1;\n } else if (num1.type === \"literal\") {\n return new AstLiteral(num1.number * num2.number);\n }\n }\n\n if (num1.type === \"literal\") {\n if (num1.number === 0) {\n return new AstLiteral(0);\n } else if (num1.number === 1) {\n return num2;\n }\n }\n\n var min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n var max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n return new AstBinaryOperation(\"*\", num1, num2, min, max);\n }\n\n function buildSubOperation(num1, num2) {\n if (num2.type === \"literal\") {\n if (num2.number === 0) {\n return num1;\n } else if (num1.type === \"literal\") {\n return new AstLiteral(num1.number - num2.number);\n }\n }\n\n if (num2.type === \"binary\" && num2.op === \"-\" && num1.type === \"literal\" && num1.number === 1 && num2.arg1.type === \"literal\" && num2.arg1.number === 1) {\n return num2.arg2;\n }\n\n return new AstBinaryOperation(\"-\", num1, num2, num1.min - num2.max, num1.max - num2.min);\n }\n\n function buildMinOperation(num1, max) {\n if (num1.min >= max) {\n return new AstLiteral(max);\n } else if (num1.max <= max) {\n return num1;\n }\n\n return new AstMin(num1, max);\n }\n\n function PostScriptCompiler() {}\n\n PostScriptCompiler.prototype = {\n compile: function PostScriptCompiler_compile(code, domain, range) {\n var stack = [];\n var instructions = [];\n var inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n var lastRegister = 0;\n var n, j;\n var num1, num2, ast1, ast2, tmpVar, item;\n\n for (let i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n\n for (let i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n\n if (typeof item === \"number\") {\n stack.push(new AstLiteral(item));\n continue;\n }\n\n switch (item) {\n case \"add\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n\n case \"cvr\":\n if (stack.length < 1) {\n return null;\n }\n\n break;\n\n case \"mul\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n\n case \"sub\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n\n case \"exch\":\n if (stack.length < 2) {\n return null;\n }\n\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n\n case \"pop\":\n if (stack.length < 1) {\n return null;\n }\n\n stack.pop();\n break;\n\n case \"index\":\n if (stack.length < 1) {\n return null;\n }\n\n num1 = stack.pop();\n\n if (num1.type !== \"literal\") {\n return null;\n }\n\n n = num1.number;\n\n if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n return null;\n }\n\n ast1 = stack[stack.length - n - 1];\n\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\n\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n\n case \"dup\":\n if (stack.length < 1) {\n return null;\n }\n\n if (typeof code[i + 1] === \"number\" && code[i + 2] === \"gt\" && code[i + 3] === i + 7 && code[i + 4] === \"jz\" && code[i + 5] === \"pop\" && code[i + 6] === code[i + 1]) {\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n\n ast1 = stack[stack.length - 1];\n\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\n\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n\n case \"roll\":\n if (stack.length < 2) {\n return null;\n }\n\n num2 = stack.pop();\n num1 = stack.pop();\n\n if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n return null;\n }\n\n j = num2.number;\n n = num1.number;\n\n if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) {\n return null;\n }\n\n j = (j % n + n) % n;\n\n if (j === 0) {\n break;\n }\n\n Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n break;\n\n default:\n return null;\n }\n }\n\n if (stack.length !== outputSize) {\n return null;\n }\n\n var result = [];\n instructions.forEach(function (instruction) {\n var statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n });\n stack.forEach(function (expr, i) {\n var statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n var min = range[i * 2],\n max = range[i * 2 + 1];\n var out = [statementBuilder.toString()];\n\n if (min > expr.min) {\n out.unshift(\"Math.max(\", min, \", \");\n out.push(\")\");\n }\n\n if (max < expr.max) {\n out.unshift(\"Math.min(\", max, \", \");\n out.push(\")\");\n }\n\n out.unshift(\"dest[destOffset + \", i, \"] = \");\n out.push(\";\");\n result.push(out.join(\"\"));\n });\n return result.join(\"\\n\");\n }\n };\n return PostScriptCompiler;\n}();\n\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PostScriptParser = exports.PostScriptLexer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(8);\n\nclass PostScriptParser {\n constructor(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n\n nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n }\n\n accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n\n return false;\n }\n\n expect(type) {\n if (this.accept(type)) {\n return true;\n }\n\n throw new _util.FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`);\n }\n\n parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n }\n\n parseBlock() {\n while (true) {\n if (this.accept(PostScriptTokenTypes.NUMBER)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n this.parseCondition();\n } else {\n return;\n }\n }\n }\n\n parseCondition() {\n const conditionLocation = this.operators.length;\n this.operators.push(null, null);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n\n if (this.accept(PostScriptTokenTypes.IF)) {\n this.operators[conditionLocation] = this.operators.length;\n this.operators[conditionLocation + 1] = \"jz\";\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n const jumpLocation = this.operators.length;\n this.operators.push(null, null);\n const endOfTrue = this.operators.length;\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n this.expect(PostScriptTokenTypes.IFELSE);\n this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = \"j\";\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = \"jz\";\n } else {\n throw new _util.FormatError(\"PS Function: error parsing conditional.\");\n }\n }\n\n}\n\nexports.PostScriptParser = PostScriptParser;\nconst PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5\n};\n\nconst PostScriptToken = function PostScriptTokenClosure() {\n const opCache = Object.create(null);\n\n class PostScriptToken {\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n\n static getOperator(op) {\n const opValue = opCache[op];\n\n if (opValue) {\n return opValue;\n }\n\n return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n }\n\n static get LBRACE() {\n return (0, _util.shadow)(this, \"LBRACE\", new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\"));\n }\n\n static get RBRACE() {\n return (0, _util.shadow)(this, \"RBRACE\", new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\"));\n }\n\n static get IF() {\n return (0, _util.shadow)(this, \"IF\", new PostScriptToken(PostScriptTokenTypes.IF, \"IF\"));\n }\n\n static get IFELSE() {\n return (0, _util.shadow)(this, \"IFELSE\", new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\"));\n }\n\n }\n\n return PostScriptToken;\n}();\n\nclass PostScriptLexer {\n constructor(stream) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n }\n\n nextChar() {\n return this.currentChar = this.stream.getByte();\n }\n\n getToken() {\n let comment = false;\n let ch = this.currentChar;\n\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (!(0, _core_utils.isWhiteSpace)(ch)) {\n break;\n }\n\n ch = this.nextChar();\n }\n\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2b:\n case 0x2d:\n case 0x2e:\n return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());\n\n case 0x7b:\n this.nextChar();\n return PostScriptToken.LBRACE;\n\n case 0x7d:\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5a || ch >= 0x61 && ch <= 0x7a)) {\n strBuf.push(String.fromCharCode(ch));\n }\n\n const str = strBuf.join(\"\");\n\n switch (str.toLowerCase()) {\n case \"if\":\n return PostScriptToken.IF;\n\n case \"ifelse\":\n return PostScriptToken.IFELSE;\n\n default:\n return PostScriptToken.getOperator(str);\n }\n }\n\n getNumber() {\n let ch = this.currentChar;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= 0x30 && ch <= 0x39 || ch === 0x2d || ch === 0x2e) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n\n const value = parseFloat(strBuf.join(\"\"));\n\n if (isNaN(value)) {\n throw new _util.FormatError(`Invalid floating point number: ${value}`);\n }\n\n return value;\n }\n\n}\n\nexports.PostScriptLexer = PostScriptLexer;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n\n if ((0, _util.isString)(input)) {\n data = new Uint8Array(input.length * 2);\n length = 0;\n\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input;\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n\n}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _colorspace = __w_pdfjs_require__(23);\n\nvar _stream = __w_pdfjs_require__(12);\n\nvar _jpeg_stream = __w_pdfjs_require__(18);\n\nvar _jpx = __w_pdfjs_require__(21);\n\nvar PDFImage = function PDFImageClosure() {\n function decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n\n return value;\n }\n\n function resizeImageMask(src, bpc, w1, h1, w2, h2) {\n var length = w2 * h2;\n let dest;\n\n if (bpc <= 8) {\n dest = new Uint8Array(length);\n } else if (bpc <= 16) {\n dest = new Uint16Array(length);\n } else {\n dest = new Uint32Array(length);\n }\n\n var xRatio = w1 / w2;\n var yRatio = h1 / h2;\n var i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n var xScaled = new Uint16Array(w2);\n var w1Scanline = w1;\n\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n\n return dest;\n }\n\n function PDFImage({\n xref,\n res,\n image,\n isInline = false,\n smask = null,\n mask = null,\n isMask = false,\n pdfFunctionFactory\n }) {\n this.image = image;\n var dict = image.dict;\n const filter = dict.get(\"Filter\");\n\n if ((0, _primitives.isName)(filter)) {\n switch (filter.name) {\n case \"JPXDecode\":\n var jpxImage = new _jpx.JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n image.width = jpxImage.width;\n image.height = jpxImage.height;\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n break;\n\n case \"JBIG2Decode\":\n image.bitsPerComponent = 1;\n image.numComps = 1;\n break;\n }\n }\n\n let width = dict.get(\"Width\", \"W\");\n let height = dict.get(\"Height\", \"H\");\n\n if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) {\n (0, _util.warn)(\"PDFImage - using the Width/Height of the image data, \" + \"rather than the image dictionary.\");\n width = image.width;\n height = image.height;\n }\n\n if (width < 1 || height < 1) {\n throw new _util.FormatError(`Invalid image width: ${width} or height: ${height}`);\n }\n\n this.width = width;\n this.height = height;\n this.interpolate = dict.get(\"Interpolate\", \"I\") || false;\n this.imageMask = dict.get(\"ImageMask\", \"IM\") || false;\n this.matte = dict.get(\"Matte\") || false;\n var bitsPerComponent = image.bitsPerComponent;\n\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get(\"BitsPerComponent\", \"BPC\");\n\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new _util.FormatError(`Bits per component missing in image: ${this.imageMask}`);\n }\n }\n }\n\n this.bpc = bitsPerComponent;\n\n if (!this.imageMask) {\n var colorSpace = dict.get(\"ColorSpace\", \"CS\");\n\n if (!colorSpace) {\n (0, _util.info)(\"JPX images (which do not require color spaces)\");\n\n switch (image.numComps) {\n case 1:\n colorSpace = _primitives.Name.get(\"DeviceGray\");\n break;\n\n case 3:\n colorSpace = _primitives.Name.get(\"DeviceRGB\");\n break;\n\n case 4:\n colorSpace = _primitives.Name.get(\"DeviceCMYK\");\n break;\n\n default:\n throw new Error(`JPX images with ${image.numComps} ` + \"color components not supported.\");\n }\n }\n\n const resources = isInline ? res : null;\n this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, resources, pdfFunctionFactory);\n this.numComps = this.colorSpace.numComps;\n }\n\n this.decode = dict.getArray(\"Decode\", \"D\");\n this.needsDecode = false;\n\n if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n this.needsDecode = true;\n var max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n\n for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n var dmin = this.decode[i];\n var dmax = this.decode[i + 1];\n this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin;\n this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n }\n }\n\n if (smask) {\n this.smask = new PDFImage({\n xref,\n res,\n image: smask,\n isInline,\n pdfFunctionFactory\n });\n } else if (mask) {\n if ((0, _primitives.isStream)(mask)) {\n var maskDict = mask.dict,\n imageMask = maskDict.get(\"ImageMask\", \"IM\");\n\n if (!imageMask) {\n (0, _util.warn)(\"Ignoring /Mask in image without /ImageMask.\");\n } else {\n this.mask = new PDFImage({\n xref,\n res,\n image: mask,\n isInline,\n isMask: true,\n pdfFunctionFactory\n });\n }\n } else {\n this.mask = mask;\n }\n }\n }\n\n PDFImage.buildImage = function ({\n xref,\n res,\n image,\n isInline = false,\n pdfFunctionFactory\n }) {\n const imageData = image;\n let smaskData = null;\n let maskData = null;\n const smask = image.dict.get(\"SMask\");\n const mask = image.dict.get(\"Mask\");\n\n if (smask) {\n smaskData = smask;\n } else if (mask) {\n if ((0, _primitives.isStream)(mask) || Array.isArray(mask)) {\n maskData = mask;\n } else {\n (0, _util.warn)(\"Unsupported mask format.\");\n }\n }\n\n return Promise.resolve(new PDFImage({\n xref,\n res,\n image: imageData,\n isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory\n }));\n };\n\n PDFImage.createMask = function ({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode\n }) {\n var computedLength = (width + 7 >> 3) * height;\n var actualLength = imgArray.byteLength;\n var haveFullData = computedLength === actualLength;\n var data, i;\n\n if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n data = imgArray;\n } else if (!inverseDecode) {\n data = new Uint8ClampedArray(actualLength);\n data.set(imgArray);\n } else {\n data = new Uint8ClampedArray(computedLength);\n data.set(imgArray);\n\n for (i = actualLength; i < computedLength; i++) {\n data[i] = 0xff;\n }\n }\n\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xff;\n }\n }\n\n return {\n data,\n width,\n height\n };\n };\n\n PDFImage.prototype = {\n get drawWidth() {\n return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n },\n\n get drawHeight() {\n return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n },\n\n decodeBuffer(buffer) {\n var bpc = this.bpc;\n var numComps = this.numComps;\n var decodeAddends = this.decodeAddends;\n var decodeCoefficients = this.decodeCoefficients;\n var max = (1 << bpc) - 1;\n var i, ii;\n\n if (bpc === 1) {\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n\n return;\n }\n\n var index = 0;\n\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (var j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n index++;\n }\n }\n },\n\n getComponents(buffer) {\n var bpc = this.bpc;\n\n if (bpc === 8) {\n return buffer;\n }\n\n var width = this.width;\n var height = this.height;\n var numComps = this.numComps;\n var length = width * height * numComps;\n var bufferPos = 0;\n let output;\n\n if (bpc <= 8) {\n output = new Uint8Array(length);\n } else if (bpc <= 16) {\n output = new Uint16Array(length);\n } else {\n output = new Uint32Array(length);\n }\n\n var rowComps = width * numComps;\n var max = (1 << bpc) - 1;\n var i = 0,\n ii,\n buf;\n\n if (bpc === 1) {\n var mask, loop1End, loop2End;\n\n for (var j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n\n while (i < loop1End) {\n buf = buffer[bufferPos++];\n output[i] = buf >> 7 & 1;\n output[i + 1] = buf >> 6 & 1;\n output[i + 2] = buf >> 5 & 1;\n output[i + 3] = buf >> 4 & 1;\n output[i + 4] = buf >> 3 & 1;\n output[i + 5] = buf >> 2 & 1;\n output[i + 6] = buf >> 1 & 1;\n output[i + 7] = buf & 1;\n i += 8;\n }\n\n if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n var bits = 0;\n buf = 0;\n\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n\n while (bits < bpc) {\n buf = buf << 8 | buffer[bufferPos++];\n bits += 8;\n }\n\n var remainingBits = bits - bpc;\n let value = buf >> remainingBits;\n\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n\n output[i] = value;\n buf = buf & (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n\n return output;\n },\n\n fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n var smask = this.smask;\n var mask = this.mask;\n var alphaBuf, sw, sh, i, ii, j;\n\n if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n }\n } else if (mask) {\n if (mask instanceof PDFImage) {\n sw = mask.width;\n sh = mask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n mask.numComps = 1;\n mask.fillGrayBuffer(alphaBuf);\n\n for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\n }\n\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if (Array.isArray(mask)) {\n alphaBuf = new Uint8ClampedArray(width * height);\n var numComps = this.numComps;\n\n for (i = 0, ii = width * height; i < ii; ++i) {\n var opacity = 0;\n var imageOffset = i * numComps;\n\n for (j = 0; j < numComps; ++j) {\n var color = image[imageOffset + j];\n var maskOffset = j * 2;\n\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n\n alphaBuf[i] = opacity;\n }\n } else {\n throw new _util.FormatError(\"Unknown mask format.\");\n }\n }\n\n if (alphaBuf) {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = alphaBuf[i];\n }\n } else {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = 255;\n }\n }\n },\n\n undoPreblend(buffer, width, height) {\n var matte = this.smask && this.smask.matte;\n\n if (!matte) {\n return;\n }\n\n var matteRgb = this.colorSpace.getRgb(matte, 0);\n var matteR = matteRgb[0];\n var matteG = matteRgb[1];\n var matteB = matteRgb[2];\n var length = width * height * 4;\n\n for (var i = 0; i < length; i += 4) {\n var alpha = buffer[i + 3];\n\n if (alpha === 0) {\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n\n var k = 255 / alpha;\n buffer[i] = (buffer[i] - matteR) * k + matteR;\n buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n }\n },\n\n createImageData(forceRGBA = false) {\n var drawWidth = this.drawWidth;\n var drawHeight = this.drawHeight;\n var imgData = {\n width: drawWidth,\n height: drawHeight,\n kind: 0,\n data: null\n };\n var numComps = this.numComps;\n var originalWidth = this.width;\n var originalHeight = this.height;\n var bpc = this.bpc;\n var rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n var imgArray;\n\n if (!forceRGBA) {\n var kind;\n\n if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n kind = _util.ImageKind.GRAYSCALE_1BPP;\n } else if (this.colorSpace.name === \"DeviceRGB\" && bpc === 8 && !this.needsDecode) {\n kind = _util.ImageKind.RGB_24BPP;\n }\n\n if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n imgData.kind = kind;\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n\n if (this.image instanceof _stream.DecodeStream) {\n imgData.data = imgArray;\n } else {\n var newArray = new Uint8ClampedArray(imgArray.length);\n newArray.set(imgArray);\n imgData.data = newArray;\n }\n\n if (this.needsDecode) {\n (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, \"PDFImage.createImageData: The image must be grayscale.\");\n var buffer = imgData.data;\n\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n\n return imgData;\n }\n\n if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) {\n let imageLength = originalHeight * rowBytes;\n\n switch (this.colorSpace.name) {\n case \"DeviceGray\":\n imageLength *= 3;\n\n case \"DeviceRGB\":\n case \"DeviceCMYK\":\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(imageLength, drawWidth, drawHeight, true);\n return imgData;\n }\n }\n }\n\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n var actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n var comps = this.getComponents(imgArray);\n var alpha01, maybeUndoPreblend;\n\n if (!forceRGBA && !this.smask && !this.mask) {\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n alpha01 = 0;\n maybeUndoPreblend = false;\n } else {\n imgData.kind = _util.ImageKind.RGBA_32BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n alpha01 = 1;\n maybeUndoPreblend = true;\n this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps);\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n\n this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n\n return imgData;\n },\n\n fillGrayBuffer(buffer) {\n var numComps = this.numComps;\n\n if (numComps !== 1) {\n throw new _util.FormatError(`Reading gray scale from a color image: ${numComps}`);\n }\n\n var width = this.width;\n var height = this.height;\n var bpc = this.bpc;\n var rowBytes = width * numComps * bpc + 7 >> 3;\n var imgArray = this.getImageBytes(height * rowBytes);\n var comps = this.getComponents(imgArray);\n var i, length;\n\n if (bpc === 1) {\n length = width * height;\n\n if (this.needsDecode) {\n for (i = 0; i < length; ++i) {\n buffer[i] = comps[i] - 1 & 255;\n }\n } else {\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n\n return;\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n\n length = width * height;\n var scale = 255 / ((1 << bpc) - 1);\n\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i];\n }\n },\n\n getImageBytes(length, drawWidth, drawHeight, forceRGB = false) {\n this.image.reset();\n this.image.drawWidth = drawWidth || this.width;\n this.image.drawHeight = drawHeight || this.height;\n this.image.forceRGB = !!forceRGB;\n return this.image.getBytes(length, true);\n }\n\n };\n return PDFImage;\n}();\n\nexports.PDFImage = PDFImage;\n\n/***/ }),\n/* 45 */\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/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFWorkerStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass PDFWorkerStream {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFWorkerStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\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.PDFWorkerStream = PDFWorkerStream;\n\nclass PDFWorkerStreamReader {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n\n this._reader = readableStream.getReader();\n this._headersReady = this._msgHandler.sendWithPromise(\"ReaderHeadersReady\").then(data => {\n this._isStreamingSupported = data.isStreamingSupported;\n this._isRangeSupported = data.isRangeSupported;\n this._contentLength = data.contentLength;\n });\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n async read() {\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n return {\n value: value.buffer,\n done: false\n };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n\n}\n\nclass PDFWorkerStreamRangeReader {\n constructor(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n begin,\n end\n });\n\n this._reader = readableStream.getReader();\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n return {\n value: value.buffer,\n done: false\n };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n\n}\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.worker.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"alert alert-info\"},[_c('h1',[_vm._v(\"Feature not available\")]),(_vm.hasSlotData)?_vm._t(\"text\"):_c('div',[_c('p',[_vm._v(\" We are sorry, the \"),_c('strong',[_vm._v(_vm._s(_vm.$route.meta.subTitle))]),_vm._v(\" module is not activated for \"),_c('span',[_vm._v(_vm._s(_vm.vesselName))]),_vm._v(\".\"),_c('br'),_vm._v(\" This module is available as part of the \"),_c('b',[_vm._v(\"«Danelec Fleet Insights Plus»\")]),_vm._v(\" subscription.\"),_c('br'),_vm._v(\" More information is available at \"),_c('a',{attrs:{\"href\":\"https://www.danelec.com/products/ship-performance-monitoring/\",\"target\":\"_blank\"}},[_vm._v(\"www.danelec.com\")]),_vm._v(\". \")]),_vm._m(0)])],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"mb-0\"},[_vm._v(\"Please contact \"),_c('a',{attrs:{\"href\":\"mailto:sales@danelec.com\"}},[_vm._v(\"sales@danelec.com\")]),_vm._v(\" for a quotation to activate a subscription.\")])}]\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\nimport { Component, Vue } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport { getModule } from \"vuex-module-decorators\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\n\nconst Vessels = getModule(VesselsModule, store);\n\n@Component\nexport default class FeatureNotAvailable extends Vue {\n vessel = Vessels.currentVessel;\n get vesselName(): string | boolean {\n if (!this.vessel) return false;\n return this.vessel.name;\n }\n\n get hasSlotData(): boolean {\n return Boolean(this.$slots.text);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatureNotAvailable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatureNotAvailable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FeatureNotAvailable.vue?vue&type=template&id=37c9e46a&scoped=true&\"\nimport script from \"./FeatureNotAvailable.vue?vue&type=script&lang=ts&\"\nexport * from \"./FeatureNotAvailable.vue?vue&type=script&lang=ts&\"\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 \"37c9e46a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"overflow-hidden\",attrs:{\"outlined\":\"\"}},[_c('v-toolbar',{staticStyle:{\"z-index\":\"1\"},attrs:{\"dense\":\"\",\"dark\":\"\",\"color\":\"neutralDark75\"}},[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"space-between\",\"no-gutters\":\"\"}},[_c('v-col'),_c('v-col',{staticClass:\"d-flex justify-center align-center\"},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.pdfScale -= _vm.pdfScale > 0.2 ? 0.1 : 0}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-magnify-minus-outline\")])],1),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.pdfScale = 1}}},[_vm._v(\" \"+_vm._s(_vm.formatZoom(_vm.pdfScale))+\" \")]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.pdfScale += _vm.pdfScale < 2 ? 0.1 : 0}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-magnify-plus-outline\")])],1)],1),_c('v-col',{staticClass:\"d-flex justify-end\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.downloadPdf}},[_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":\"primary\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-file-download-outline\")])],1)]}}])},[_c('span',[_vm._v(\"Download\")])]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.pdfFullscreen = true}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-arrow-expand\")])],1)]}}])},[_c('span',[_vm._v(\"Fullscreen\")])])],1)],1)],1),_c('v-sheet',{staticClass:\"overflow-y-auto\",attrs:{\"id\":\"pdfContent\",\"color\":\"grey lighten-2\"}},[(_vm.pdfLoaded)?_c('v-container',_vm._l((_vm.numPages),function(i){return _c('Pdf',{key:i,staticClass:\"pdf-element\",attrs:{\"id\":i,\"src\":_vm.pdfSrc,\"page\":i,\"scale\":_vm.pdfScale,\"annotation\":true},on:{\"update:scale\":function($event){_vm.pdfScale=$event}}})}),1):_vm._e(),(_vm.pdfLoading)?_c('v-container',[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"indeterminate\":\"\",\"rounded\":\"\",\"height\":\"6\"}})],1):_vm._e(),(_vm.pdfError)?_c('div',{staticClass:\"d-flex justify-center mt-10\"},[_c('v-alert',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"type\":\"error\"}},[_c('span',[_vm._v(\"Something went wrong. \")]),_c('span',[_vm._v(_vm._s(_vm.pdfErrorMessage))])])],1):_vm._e()],1),_c('v-dialog',{attrs:{\"retain-focus\":false,\"max-width\":\"1200\",\"scrollable\":\"\"},model:{value:(_vm.pdfFullscreen),callback:function ($$v) {_vm.pdfFullscreen=$$v},expression:\"pdfFullscreen\"}},[_c('v-card',{attrs:{\"min-height\":\"400px\",\"color\":\"grey\"}},[_c('v-card-title',{staticClass:\"pa-0\"},[_c('v-toolbar',{staticStyle:{\"z-index\":\"1\"},attrs:{\"dense\":\"\",\"dark\":\"\",\"color\":\"accentDarker110\"}},[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"space-between\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"text-overline d-flex pl-5\"},[_vm._v(\" \"+_vm._s(_vm.pdfTitle)+\" \")]),_c('v-col',{staticClass:\"d-flex justify-center align-center\"},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.pdfFullscreenScale -= _vm.pdfFullscreenScale > 0.2 ? 0.1 : 0}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-magnify-minus-outline\")])],1),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.pdfFullscreenScale = 1}}},[_vm._v(\" \"+_vm._s(_vm.formatZoom(_vm.pdfFullscreenScale))+\" \")]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.pdfFullscreenScale += _vm.pdfFullscreenScale < 2 ? 0.1 : 0}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-magnify-plus-outline\")])],1)],1),_c('v-col',{staticClass:\"d-flex justify-end\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.downloadPdf}},[_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":\"primary\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-file-download-outline\")])],1)]}}])},[_c('span',[_vm._v(\"Download\")])]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.pdfFullscreen = false}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1),_c('v-card-text',[(_vm.pdfLoaded)?_c('v-container',_vm._l((_vm.numPages),function(i){return _c('Pdf',{key:i,staticClass:\"pdf-element mb-2\",attrs:{\"id\":i,\"src\":_vm.pdfSrc,\"page\":i,\"annotation\":false,\"scale\":_vm.pdfFullscreenScale},on:{\"update:scale\":function($event){_vm.pdfFullscreenScale=$event}}})}),1):_vm._e()],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render, staticRenderFns\nimport script from \"./resize-sensor.vue?vue&type=script&lang=js&\"\nexport * from \"./resize-sensor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./resize-sensor.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_vm._t(\"loading\"):_vm._e(),_c('div',{ref:\"container\",attrs:{\"id\":\"viewerContainer\"}},[_c('div',{staticClass:\"pdfViewer\",attrs:{\"id\":\"viewer\"}}),_c('resizeSensor',{attrs:{\"initial\":true},on:{\"resize\":_vm.resizeScale}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--13-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--1-0!../../vue-loader/lib/index.js??vue-loader-options!./resize-sensor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--13-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--1-0!../../vue-loader/lib/index.js??vue-loader-options!./resize-sensor.vue?vue&type=script&lang=js&\"","\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--13-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--1-0!../../vue-loader/lib/index.js??vue-loader-options!./Pdfvuer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--13-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--1-0!../../vue-loader/lib/index.js??vue-loader-options!./Pdfvuer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pdfvuer.vue?vue&type=template&id=1c98349c&\"\nimport script from \"./Pdfvuer.vue?vue&type=script&lang=js&\"\nexport * from \"./Pdfvuer.vue?vue&type=script&lang=js&\"\nimport style0 from \"pdfjs-dist/web/pdf_viewer.css?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Watch, Vue } from \"vue-property-decorator\";\n//NOTE: there is a bug in the latest pdfvuer (19.05.2021, version 1.8.2) where there is a\n//mismatch between compiled pdfjs version in pdfvuer (2.5.207) and pdfjs dependency installed by npm\n//(2.7.570, where worker is loaded from)\n//The workaround is to currently lock pdfvuer to 1.7.5 and manually added pdfjs as devdependency locked to v2.5.207\n//When this is fixed, we can change to latest pdfvuer and remove pdfjs from devdependencies\nimport pdfvuer from \"pdfvuer\";\nimport \"pdfjs-dist/build/pdf.worker.entry\";\nimport net from \"@/Scripts/app/net\";\n\n@Component({\n components: {\n Pdf: pdfvuer,\n },\n})\nexport default class PdfViewer extends Vue {\n @Prop() readonly pdfSrc!: string;\n @Prop() readonly downloadUrl!: number;\n @Prop() readonly pdfTitle!: string;\n @Prop() readonly pdfErrorMsg!: string;\n @PropSync(\"pdfLoader\", { type: Boolean, default: false }) pdfLoading!: boolean;\n\n pdfUrl: any = null;\n pdfLoaded = false;\n pdfError = false;\n pdfErrorMessage = \"\";\n numPages = 0;\n page = 1;\n pdfScale = 1;\n pdfFullscreenScale = 1;\n pdfFullscreen = false;\n pdfFullscreenSettingsbar = true;\n\n @Watch(\"pdfSrc\")\n onPdfSrcChange(): void {\n if (this.pdfSrc) this.createPdf();\n this.setPdfHeight();\n }\n\n mounted(): void {\n window.addEventListener(\"resize\", this.setPdfHeight);\n }\n\n setPdfHeight(): void {\n const pdfSheet = document.querySelector(\"#pdfContent\");\n\n if (pdfSheet) {\n const pdfHeight = window.innerHeight - pdfSheet.getBoundingClientRect().top - 45;\n (pdfSheet as any).style.maxHeight = `${pdfHeight}px`;\n }\n }\n\n createPdf(): void {\n this.pdfScale = 1;\n this.pdfFullscreenScale = 1;\n this.pdfLoaded = false;\n this.pdfError = false;\n this.pdfLoading = true;\n this.pdfUrl = pdfvuer.createLoadingTask(this.pdfSrc);\n\n this.pdfUrl.then(\n (pdfO: any) => {\n this.numPages = pdfO.numPages;\n this.pdfLoaded = true;\n this.pdfLoading = false;\n },\n (error: any) => {\n this.pdfLoading = false;\n this.pdfError = true;\n this.pdfErrorMessage = error.message;\n }\n );\n }\n\n downloadPdf(): void {\n net.fileDownload(this.downloadUrl);\n }\n\n beforeDestroy(): void {\n window.removeEventListener(\"resize\", this.setPdfHeight);\n }\n\n formatZoom(scale: number): string {\n return `${Math.floor(scale * 100)}%`;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-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--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-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=a6a64d82&scoped=true&\"\nimport script from \"./PdfViewer.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdfViewer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"pdfvuer/dist/pdfvuer.css?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./PdfViewer.vue?vue&type=style&index=1&lang=scss&\"\nimport style2 from \"./PdfViewer.vue?vue&type=style&index=2&id=a6a64d82&lang=scss&scoped=true&\"\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 \"a6a64d82\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardText,VCardTitle,VCol,VContainer,VDialog,VIcon,VProgressLinear,VRow,VSheet,VToolbar,VTooltip})\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\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__(16);\n\nvar _api_compatibility = __w_pdfjs_require__(7);\n\nvar _worker_options = __w_pdfjs_require__(10);\n\nvar _text_layer = __w_pdfjs_require__(17);\n\nvar _svg = __w_pdfjs_require__(18);\n\nconst pdfjsVersion = '2.5.207';\nconst pdfjsBuild = '0974d605';\n{\n const {\n isNodeJS\n } = __w_pdfjs_require__(4);\n\n if (isNodeJS) {\n const PDFNodeStream = __w_pdfjs_require__(19).PDFNodeStream;\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const PDFNetworkStream = __w_pdfjs_require__(22).PDFNetworkStream;\n\n let PDFFetchStream;\n\n if ((0, _display_utils.isFetchSupported)()) {\n PDFFetchStream = __w_pdfjs_require__(23).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.DOMCanvasFactory = 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 DOMCanvasFactory {\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n canvas.width = width;\n canvas.height = height;\n return {\n canvas,\n context\n };\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nclass DOMCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = false\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\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 }).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}` + `CMap at: ${url}`);\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 }).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}` + `CMap at: ${url}`);\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.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isBool = isBool;\nexports.isEmptyObj = isEmptyObj;\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};\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 stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (const key in obj) {\n return false;\n }\n\n return true;\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 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;\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 _api_compatibility = __w_pdfjs_require__(7);\n\nvar _canvas = __w_pdfjs_require__(8);\n\nvar _worker_options = __w_pdfjs_require__(10);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(11);\n\nvar _metadata = __w_pdfjs_require__(12);\n\nvar _transport_stream = __w_pdfjs_require__(14);\n\nvar _webgl = __w_pdfjs_require__(15);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\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 || _display_utils.DOMCMapReaderFactory;\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.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.5.207',\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 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 getOpenActionDestination() {\n (0, _display_utils.deprecated)(\"getOpenActionDestination, use getOpenAction instead.\");\n return this.getOpenAction().then(function (openAction) {\n return openAction && openAction.dest ? openAction.dest : null;\n });\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 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}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\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 = Object.create(null);\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 }) {\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 (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n const intentState = this.intentStates[renderingIntent];\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();\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 });\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 intentState.displayReadyCapability.promise.then(transparency => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics(transparency);\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 if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n const intentState = this.intentStates[renderingIntent];\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\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 Object.keys(this.intentStates).forEach(intent => {\n const intentState = this.intentStates[intent];\n\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intent === \"oplist\") {\n return;\n }\n\n intentState.renderTasks.forEach(function (renderTask) {\n const renderCompleted = renderTask.capability.promise.catch(function () {});\n waitOn.push(renderCompleted);\n renderTask.cancel();\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 || Object.keys(this.intentStates).some(intent => {\n const intentState = this.intentStates[intent];\n return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;\n })) {\n return false;\n }\n\n Object.keys(this.intentStates).forEach(intent => {\n delete this.intentStates[intent];\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[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 const intentState = this.intentStates[args.intent];\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 Object.keys(this.intentStates).some(intent => {\n if (this.intentStates[intent] === intentState) {\n delete this.intentStates[intent];\n return true;\n }\n\n return false;\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 });\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 });\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 };\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 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 \"FontType3Res\":\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.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 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 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 initializeGraphics(transparency = false) {\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);\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.5.207';\nexports.version = version;\nconst build = '0974d605';\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 }) {\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n 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(function (nativeFontFace) {\n 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 document !== \"undefined\" && !!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(docId) {\n super(docId);\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 const canvas = document.createElement(\"canvas\");\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 const div = document.createElement(\"div\");\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 = document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n\n document.body.appendChild(div);\n isFontReady(loadTestFontId, function () {\n document.body.removeChild(div);\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.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/* 8 */\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__(9);\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 }\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) {\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.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) {\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\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 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 var 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 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 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 ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\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 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 }\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) {\n width = this.getSinglePixelWidth();\n }\n\n if (height === 0) {\n height = this.getSinglePixelWidth();\n }\n\n var xw = x + width;\n var yh = y + height;\n this.ctx.moveTo(x, y);\n this.ctx.lineTo(xw, y);\n this.ctx.lineTo(xw, yh);\n this.ctx.lineTo(x, yh);\n this.ctx.lineTo(x, y);\n this.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 (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 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.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\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 (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 + accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - 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 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 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 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 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 this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\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 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 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 paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {\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, 0, 0, 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 paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\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 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 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 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);\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 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);\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 this.ctx.fillRect(0, 0, 1, 1);\n },\n paintXObject: function CanvasGraphics_paintXObject() {\n (0, _util.warn)(\"Unsupported 'paintXObject' command.\");\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},\n endMarkedContent: function CanvasGraphics_endMarkedContent() {},\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 };\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/* 9 */\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/* 10 */\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/* 11 */\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/* 12 */\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__(13);\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 const obj = Object.create(null);\n\n for (const [key, value] of this._metadataMap) {\n obj[key] = value;\n }\n\n return obj;\n }\n\n has(name) {\n return this._metadataMap.has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\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.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/* 14 */\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/* 15 */\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/* 16 */\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\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\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 this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderInteractiveForms) {\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = this.data.fieldValue;\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", this.data.fieldValue);\n }\n\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n 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 this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n element.disabled = this.data.readOnly;\n element.type = \"checkbox\";\n element.name = this.data.fieldName;\n\n if (this.data.fieldValue && this.data.fieldValue !== \"Off\") {\n element.setAttribute(\"checked\", true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const element = document.createElement(\"input\");\n element.disabled = this.data.readOnly;\n element.type = \"radio\";\n element.name = this.data.fieldName;\n\n if (this.data.fieldValue === this.data.buttonValue) {\n element.setAttribute(\"checked\", true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n 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 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.displayValue)) {\n optionElement.setAttribute(\"selected\", true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.title || parameters.data.contents);\n super(parameters, 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: parameters.renderInteractiveForms || false,\n svgFactory: new _display_utils.DOMSVGFactory()\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/* 17 */\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._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 const canvas = document.createElement(\"canvas\");\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/* 18 */\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 = 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/* 19 */\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__(20);\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/* 20 */\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__(21);\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/* 21 */\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/* 22 */\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__(20);\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 hasPendingRequests() {\n for (const xhrId in this.pendingRequests) {\n return true;\n }\n\n return false;\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 abortAllRequests() {\n for (const xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\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/* 23 */\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__(20);\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 });\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.5.207';\nconst pdfjsBuild = '0974d605';\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 imageResourcesPath = \"\",\n renderInteractiveForms = false,\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.div = null;\n this._cancelled = false;\n }\n\n render(viewport, intent = \"display\") {\n this.pdfPage.getAnnotations({\n intent\n }).then(annotations => {\n if (this._cancelled) {\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 };\n\n if (this.div) {\n _pdfjsLib.AnnotationLayer.update(parameters);\n } else {\n if (annotations.length === 0) {\n return;\n }\n\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, imageResourcesPath = \"\", renderInteractiveForms = false, 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 });\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.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 normalizeWheelEventDelta(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 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;\nconst DISABLE_CREATE_OBJECT_URL = _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL || false;\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 constructor({\n disableCreateObjectURL = DISABLE_CREATE_OBJECT_URL\n }) {\n this.disableCreateObjectURL = disableCreateObjectURL;\n }\n\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, this.disableCreateObjectURL);\n download(blobUrl, filename);\n }\n\n download(blob, url, filename) {\n if (navigator.msSaveBlob) {\n if (!navigator.msSaveBlob(blob, filename)) {\n this.downloadUrl(url, filename);\n }\n\n return;\n }\n\n if (this.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 });\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.hasRestrictedScaling = false;\n this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.renderInteractiveForms = options.renderInteractiveForms || false;\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 _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) {\n this.scale = scale || this.scale;\n\n if (typeof rotation !== \"undefined\") {\n this.rotation = rotation;\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.annotationLayer.render(this.viewport, \"display\");\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.imageResourcesPath, this.renderInteractiveForms, this.l10n);\n }\n\n this.annotationLayer.render(this.viewport, \"display\");\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 };\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 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 = options.renderInteractiveForms || false;\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\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 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 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._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, imageResourcesPath = \"\", renderInteractiveForms = false, l10n = _ui_utils.NullL10n) {\n return new _annotation_layer_builder.AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\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 const isFirstPagePortrait = (0, _ui_utils.isPortraitOrientation)(pagesOverview[0]);\n return pagesOverview.map(function (size) {\n if (isFirstPagePortrait === (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 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","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfViewer.vue?vue&type=style&index=1&lang=scss&\"","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--7-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--1-0!../../vue-loader/lib/index.js??vue-loader-options!./resize-sensor.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--7-oneOf-1-2!./pdfvuer.css?vue&type=style&index=0&lang=css&\"","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfViewer.vue?vue&type=style&index=2&id=a6a64d82&lang=scss&scoped=true&\""],"sourceRoot":""}